-rw-r--r-- | scripts/lxdialog/Makefile | 34 | ||||
-rwxr-xr-x | scripts/lxdialog/lxdialog | bin | 37159 -> 0 bytes | |||
-rw-r--r-- | scripts/lxdialog/util.c | 2 |
3 files changed, 21 insertions, 15 deletions
diff --git a/scripts/lxdialog/Makefile b/scripts/lxdialog/Makefile index 75b7bac..b34bbc3 100644 --- a/scripts/lxdialog/Makefile +++ b/scripts/lxdialog/Makefile @@ -1,44 +1,50 @@ -HOST_CFLAGS := -DLOCALE -HOST_LDFLAGS := -lncurses +HOST_EXTRACFLAGS := -DLOCALE +HOST_LOADLIBES := -lncurses +HOSTCC = gcc ifeq (/usr/include/ncurses/ncurses.h, $(wildcard /usr/include/ncurses/ncurses.h)) - HOST_CFLAGS += -I/usr/include/ncurses -DCURSES_LOC="<ncurses.h>" + HOST_EXTRACFLAGS += -I/usr/include/ncurses -DCURSES_LOC="<ncurses.h>" else ifeq (/usr/include/ncurses/curses.h, $(wildcard /usr/include/ncurses/curses.h)) - HOST_CFLAGS += -I/usr/include/ncurses -DCURSES_LOC="<ncurses/curses.h>" + HOST_EXTRACFLAGS += -I/usr/include/ncurses -DCURSES_LOC="<ncurses/curses.h>" else ifeq (/usr/include/ncurses.h, $(wildcard /usr/include/ncurses.h)) - HOST_CFLAGS += -DCURSES_LOC="<ncurses.h>" + HOST_EXTRACFLAGS += -DCURSES_LOC="<ncurses.h>" else - HOST_CFLAGS += -DCURSES_LOC="<curses.h>" + HOST_EXTRACFLAGS += -DCURSES_LOC="<curses.h>" endif endif endif -host-progs := lxdialog +host-progs := lxdialog +always := $(host-progs) lxdialog-objs := checklist.o menubox.o textbox.o yesno.o inputbox.o \ util.o lxdialog.o msgbox.o -EXTRA_TARGETS := lxdialog - -first_rule: ncurses - -include $(TOPDIR)/Rules.make +first_rule: ncurses lxdialog .PHONY: ncurses - ncurses: @echo "main() {}" > lxtemp.c - @if $(HOSTCC) $(HOST_CFLAGS) lxtemp.c $(HOST_LDFLAGS); then \ + @if $(HOSTCC) lxtemp.c $(HOST_LOADLIBES); then \ rm -f lxtemp.c a.out; \ else \ rm -f lxtemp.c; \ echo -e "\007" ;\ echo ">> Unable to find the Ncurses libraries." ;\ echo ">>" ;\ echo ">> You must have Ncurses installed in order" ;\ echo ">> to use 'make menuconfig'" ;\ echo ;\ exit 1 ;\ fi + +clean: + rm -f $(lxdialog-objs) lxdialog + +%.o: %.c + $(HOSTCC) $(HOST_EXTRACFLAGS) -fPIC -c $^ -o $@ + +lxdialog: $(lxdialog-objs) + $(HOSTCC) $(HOST_EXTRACFLAGS) $(HOST_LOADLIBES) $^ -o $@ diff --git a/scripts/lxdialog/lxdialog b/scripts/lxdialog/lxdialog Binary files differdeleted file mode 100755 index f0dca91..0000000 --- a/scripts/lxdialog/lxdialog +++ b/dev/null diff --git a/scripts/lxdialog/util.c b/scripts/lxdialog/util.c index b3a7af9..e7bce9b 100644 --- a/scripts/lxdialog/util.c +++ b/scripts/lxdialog/util.c @@ -255,105 +255,105 @@ print_autowrap (WINDOW * win, const char *prompt, int width, int y, int x) * Print a button */ void print_button (WINDOW * win, const char *label, int y, int x, int selected) { int i, temp; wmove (win, y, x); wattrset (win, selected ? button_active_attr : button_inactive_attr); waddstr (win, "<"); temp = strspn (label, " "); label += temp; wattrset (win, selected ? button_label_active_attr : button_label_inactive_attr); for (i = 0; i < temp; i++) waddch (win, ' '); wattrset (win, selected ? button_key_active_attr : button_key_inactive_attr); waddch (win, label[0]); wattrset (win, selected ? button_label_active_attr : button_label_inactive_attr); waddstr (win, (char *)label + 1); wattrset (win, selected ? button_active_attr : button_inactive_attr); waddstr (win, ">"); wmove (win, y, x + temp + 1); } /* * Draw a rectangular box with line drawing characters */ void draw_box (WINDOW * win, int y, int x, int height, int width, chtype box, chtype border) { int i, j; wattrset (win, 0); for (i = 0; i < height; i++) { wmove (win, y + i, x); for (j = 0; j < width; j++) if (!i && !j) waddch (win, border | ACS_ULCORNER); else if (i == height - 1 && !j) waddch (win, border | ACS_LLCORNER); else if (!i && j == width - 1) waddch (win, box | ACS_URCORNER); else if (i == height - 1 && j == width - 1) waddch (win, box | ACS_LRCORNER); else if (!i) waddch (win, border | ACS_HLINE); else if (i == height - 1) waddch (win, box | ACS_HLINE); else if (!j) waddch (win, border | ACS_VLINE); else if (j == width - 1) waddch (win, box | ACS_VLINE); else waddch (win, box | ' '); } } /* * Draw shadows along the right and bottom edge to give a more 3D look * to the boxes */ void draw_shadow (WINDOW * win, int y, int x, int height, int width) { int i; if (has_colors ()) { /* Whether terminal supports color? */ wattrset (win, shadow_attr); wmove (win, y + height, x + 2); for (i = 0; i < width; i++) waddch (win, winch (win) & A_CHARTEXT); for (i = y + 1; i < y + height + 1; i++) { wmove (win, i, x + width); waddch (win, winch (win) & A_CHARTEXT); waddch (win, winch (win) & A_CHARTEXT); } wnoutrefresh (win); } } /* * Return the position of the first alphabetic character in a string. */ int first_alpha(const char *string, const char *exempt) { int i, in_paren=0, c; for (i = 0; i < strlen(string); i++) { c = tolower(string[i]); if (strchr("<[(", c)) ++in_paren; - if (strchr(">])", c)) --in_paren; + if (strchr(">])", c) && in_paren > 0) --in_paren; if ((! in_paren) && isalpha(c) && strchr(exempt, c) == 0) return i; } return 0; } |