New version to cut size. Includes optional basename() compatibility, but enabling that would break the basename applet at least for one corner case.
No binary (build failed)
—
$ git checkout -f 3280f9a3fc775f35472f420ede1d6c333ace87d1
HEAD is now at 3280f9a3f New version to cut size. Includes optional basename() compatibility, but enabling that would break the basename applet at least for one corner case.
$ git clean -fdx
Removing include/config/
Removing scripts/lxdialog/checklist.o
Removing scripts/lxdialog/inputbox.o
Removing scripts/lxdialog/lxdialog
Removing scripts/lxdialog/lxdialog.o
Removing scripts/lxdialog/menubox.o
Removing scripts/lxdialog/msgbox.o
Removing scripts/lxdialog/textbox.o
Removing scripts/lxdialog/util.o
Removing scripts/lxdialog/yesno.o
$ make SHELL=/bin/bash CC=/root/asi_db/compat/cc-wrapper.sh HOSTCC=/root/asi_db/compat/cc-wrapper.sh defconfig
make: *** No rule to make target 'defconfig'. Stop.
$ make SHELL=/bin/bash CC=/root/asi_db/compat/cc-wrapper.sh HOSTCC=/root/asi_db/compat/cc-wrapper.sh allnoconfig
make: *** No rule to make target 'allnoconfig'. Stop.
$ make SHELL=/bin/bash CC=/root/asi_db/compat/cc-wrapper.sh HOSTCC=/root/asi_db/compat/cc-wrapper.sh include/bb_config.h
make: *** No rule to make target 'include/bb_config.h'. Stop.
$ make SHELL=/bin/bash CC=/root/asi_db/compat/cc-wrapper.sh HOSTCC=/root/asi_db/compat/cc-wrapper.sh -j3 V=1
mkdir -p /root/asi_db/builds/busybox/_worktrees/w0/include/config
make -C scripts/lxdialog all
make[1]: Entering directory '/root/asi_db/builds/busybox/_worktrees/w0/scripts/lxdialog'
/root/asi_db/compat/cc-wrapper.sh -Wall -Wstrict-prototypes -O2 -fomit-frame-pointer -DLOCALE -DCURSES_LOC="<ncurses.h>" -c -o checklist.o checklist.c
/root/asi_db/compat/cc-wrapper.sh -Wall -Wstrict-prototypes -O2 -fomit-frame-pointer -DLOCALE -DCURSES_LOC="<ncurses.h>" -c -o menubox.o menubox.c
/root/asi_db/compat/cc-wrapper.sh -Wall -Wstrict-prototypes -O2 -fomit-frame-pointer -DLOCALE -DCURSES_LOC="<ncurses.h>" -c -o textbox.o textbox.c
/root/asi_db/compat/cc-wrapper.sh -Wall -Wstrict-prototypes -O2 -fomit-frame-pointer -DLOCALE -DCURSES_LOC="<ncurses.h>" -c -o yesno.o yesno.c
/root/asi_db/compat/cc-wrapper.sh -Wall -Wstrict-prototypes -O2 -fomit-frame-pointer -DLOCALE -DCURSES_LOC="<ncurses.h>" -c -o inputbox.o inputbox.c
/root/asi_db/compat/cc-wrapper.sh -Wall -Wstrict-prototypes -O2 -fomit-frame-pointer -DLOCALE -DCURSES_LOC="<ncurses.h>" -c -o util.o util.c
/root/asi_db/compat/cc-wrapper.sh -Wall -Wstrict-prototypes -O2 -fomit-frame-pointer -DLOCALE -DCURSES_LOC="<ncurses.h>" -c -o lxdialog.o lxdialog.c
/root/asi_db/compat/cc-wrapper.sh -Wall -Wstrict-prototypes -O2 -fomit-frame-pointer -DLOCALE -DCURSES_LOC="<ncurses.h>" -c -o msgbox.o msgbox.c
/root/asi_db/compat/cc-wrapper.sh -o lxdialog checklist.o menubox.o textbox.o yesno.o inputbox.o util.o lxdialog.o msgbox.o -lncurses
make[1]: Leaving directory '/root/asi_db/builds/busybox/_worktrees/w0/scripts/lxdialog'
/bin/bash scripts/Menuconfig sysdeps/linux/config.in
Using defaults found in sysdeps/linux/defconfig
Preparing scripts: functions, parsingAwk died with error code 137. Giving up.
.....done.
Your BusyBox configuration changes were NOT saved.
lxtemp.c:1:1: warning: return type defaults to ‘int’ [-Wimplicit-int]
1 | main() {}
| ^~~~
textbox.c: In function ‘dialog_textbox’:
textbox.c:42:10: warning: variable ‘search_term’ set but not used [-Wunused-but-set-variable]
42 | char search_term[MAX_LEN + 1];
| ^~~~~~~~~~~
textbox.c: In function ‘print_line’:
textbox.c:462:12: warning: variable ‘x’ set but not used [-Wunused-but-set-variable]
462 | int y, x;
| ^
textbox.c:462:9: warning: variable ‘y’ set but not used [-Wunused-but-set-variable]
462 | int y, x;
| ^
inputbox.c: In function ‘dialog_inputbox’:
inputbox.c:107:17: warning: pointer targets in passing argument 1 of ‘strcpy’ differ in signedness [-Wpointer-sign]
107 | strcpy (instr, init);
| ^~~~~
| |
| unsigned char *
In file included from /usr/include/features.h:486,
from /usr/include/x86_64-linux-gnu/sys/sysmacros.h:22,
from /root/asi_db/compat/compat_stime.h:9,
from <command-line>:
/usr/include/x86_64-linux-gnu/bits/string_fortified.h:77:1: note: expected ‘char * restrict’ but argument is of type ‘unsigned char *’
77 | __NTH (strcpy (char *__restrict __dest, const char *__restrict __src))
| ^~~~~
inputbox.c:109:23: warning: pointer targets in passing argument 1 of ‘strlen’ differ in signedness [-Wpointer-sign]
109 | input_x = strlen (instr);
| ^~~~~
| |
| unsigned char *
In file included from dialog.h:27,
from inputbox.c:22:
/usr/include/string.h:407:35: note: expected ‘const char *’ but argument is of type ‘unsigned char *’
407 | extern size_t strlen (const char *__s)
| ~~~~~~~~~~~~^~~
In file included from dialog.h:29,
from inputbox.c:22:
inputbox.c:117:26: warning: pointer targets in passing argument 2 of ‘waddnstr’ differ in signedness [-Wpointer-sign]
117 | waddstr (dialog, instr);
| ^~~~~
| |
| unsigned char *
/usr/include/curses.h:830:47: note: expected ‘const char *’ but argument is of type ‘unsigned char *’
830 | extern NCURSES_EXPORT(int) waddnstr (WINDOW *,const char *,int); /* implemented */
| ^~~~~~~~~~~~
inputbox.c:147:43: warning: pointer targets in passing argument 1 of ‘strlen’ differ in signedness [-Wpointer-sign]
147 | input_x = strlen (instr) - scroll;
| ^~~~~
| |
| unsigned char *
In file included from dialog.h:27,
from inputbox.c:22:
/usr/include/string.h:407:35: note: expected ‘const char *’ but argument is of type ‘unsigned char *’
407 | extern size_t strlen (const char *__s)
| ~~~~~~~~~~~~^~~
lxdialog.c: In function ‘j_inputbox’:
lxdialog.c:211:25: warning: pointer targets in passing argument 2 of ‘fprintf’ differ in signedness [-Wpointer-sign]
211 | fprintf(stderr, dialog_input_result);
| ^~~~~~~~~~~~~~~~~~~
| |
| unsigned char *
In file included from /usr/include/stdio.h:894,
from /usr/include/curses.h:232,
from dialog.h:29,
from lxdialog.c:22:
/usr/include/x86_64-linux-gnu/bits/stdio2.h:103:60: note: expected ‘const char * restrict’ but argument is of type ‘unsigned char *’
103 | fprintf (FILE *__restrict __stream, const char *__restrict __fmt, ...)
| ~~~~~~~~~~~~~~~~~~~~~~~^~~~~
lxdialog.c:211:25: warning: format not a string literal and no format arguments [-Wformat-security]
211 | fprintf(stderr, dialog_input_result);
| ^~~~~~~~~~~~~~~~~~~
scripts/Menuconfig: line 559: 957394 Killed awk "$1"
Error opening terminal: unknown.
| @@ -1,8 +1,8 @@ | |
| /* vi: set sw=4 ts=4: */ | |
| /* | |
| - | * Utility routines. |
| + | * get_last_path_component implementation for busybox |
| * | |
| - | * Copyright (C) 1999,2000,2001 by Erik Andersen <[email protected]> |
| + | * Copyright (C) 2001 Manuel Novoa III <[email protected]> |
| * | |
| * This program is free software; you can redistribute it and/or modify | |
| * it under the terms of the GNU General Public License as published by | |
| @@ -17,49 +17,40 @@ | |
| * You should have received a copy of the GNU General Public License | |
| * along with this program; if not, write to the Free Software | |
| * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA | |
| + | * |
| */ | |
| - | #include <stdio.h> |
| - | #include <string.h> |
| - | #include "libbb.h" |
| - | |
| + | /* Set to 1 if you want basename() behavior for NULL or "". */ |
| + | /* WARNING!!! Doing so will break basename applet at least! */ |
| + | #define EMULATE_BASENAME 0 |
| char *get_last_path_component(char *path) | |
| { | |
| - | char *s; |
| - | register char *ptr = path; |
| - | register char *prev = 0; |
| + | #if EMULATE_BASENAME |
| + | static const char null_or_empty[] = "."; |
| + | #endif |
| + | char *first = path; |
| + | char *last; |
| + | |
| + | #if EMULATE_BASENAME |
| + | if (!path || !*path) { |
| + | return (char *) null_or_empty; |
| + | } |
| + | #endif |
| - | while (*ptr) |
| - | ptr++; |
| - | s = ptr - 1; |
| + | last = path - 1; |
| - | /* strip trailing slashes */ |
| - | while (s != path && *s == '/') { |
| - | *s-- = '\0'; |
| + | while (*path) { |
| + | if ((*path != '/') && (path > ++last)) { |
| + | last = first = path; |
| + | } |
| + | ++path; |
| } | |
| - | /* find last component */ |
| - | ptr = path; |
| - | while (*ptr != '\0') { |
| - | if (*ptr == '/') |
| - | prev = ptr; |
| - | ptr++; |
| + | if (*first == '/') { |
| + | last = first; |
| } | |
| - | s = prev; |
| + | last[1] = 0; |
| - | if (s == NULL || s[1] == '\0') |
| - | return path; |
| - | else |
| - | return s+1; |
| + | return first; |
| } | |
| - | |
| - | |
| - | /* END CODE */ |
| - | /* |
| - | Local Variables: |
| - | c-file-style: "linux" |
| - | c-basic-offset: 4 |
| - | tab-width: 4 |
| - | End: |
| - | */ |