Fix exec from setuid/setgid binaries
[dragonfly.git] / gnu / lib / libdialog / gauge.c
blobace58ea8a355564521632d36aeb21811365bdf3f
1 /*
2 * gauge.c
4 * progress indicator for libdialog
7 * Copyright (c) 1995, Marc van Kempen
9 * All rights reserved.
11 * This software may be used, modified, copied, distributed, and
12 * sold, in both source and binary form provided that the above
13 * copyright and these terms are retained, verbatim, as the first
14 * lines of this file. Under no circumstances is the author
15 * responsible for the proper functioning of this software, nor does
16 * the author assume any responsibility for damages incurred with
17 * its use.
19 * $FreeBSD: src/gnu/lib/libdialog/gauge.c,v 1.2.12.2 2002/06/18 07:55:55 dougb Exp $
20 * $DragonFly: src/gnu/lib/libdialog/gauge.c,v 1.3 2005/06/04 13:42:28 eirikn Exp $
23 #include <stdlib.h>
24 #include <string.h>
26 #include "dialog.h"
28 void
29 dialog_gauge(char *title, char *prompt, int y, int x,
30 int height, int width, int perc)
32 * Desc: display a progress bar, progress indicated by <perc>
35 WINDOW *gw;
36 int glen, i;
37 char percs[5];
39 gw = newwin(height, width, y, x);
40 if (!gw) {
41 fprintf(stderr, "dialog_gauge: Error creating window (%d, %d, %d, %d)",
42 height, width, y, x);
43 exit(-1);
46 draw_box(gw, 0, 0, height, width, dialog_attr, border_attr);
47 draw_shadow(stdscr, y, x, height, width);
49 wattrset(gw, title_attr);
50 if (title) {
51 wmove(gw, 0, (width - strlen(title))/2 - 1);
52 waddstr(gw, "[ ");
53 waddstr(gw, title);
54 waddstr(gw, " ]");
56 wattrset(gw, dialog_attr);
57 if (prompt) {
58 wmove(gw, 1, (width - strlen(prompt))/2 - 1);
59 waddstr(gw, prompt);
62 draw_box(gw, 2, 2, 3, width-4, dialog_attr, border_attr);
63 glen = (int) ((float) perc/100 * (width-6));
65 wattrset(gw, dialog_attr);
66 sprintf(percs, "%3d%%", perc);
67 wmove(gw, 5, width/2 - 2);
68 waddstr(gw, percs);
70 wattrset(gw, A_BOLD);
71 wmove(gw, 3, 3);
72 for (i=0; i<glen; i++) waddch(gw, ' ');
74 wrefresh(gw);
75 delwin(gw);
77 return;
78 } /* dialog_gauge() */