diff options
author | Ron Yorston <rmy@pobox.com> | 2012-03-22 13:15:08 +0000 |
---|---|---|
committer | Ron Yorston <rmy@pobox.com> | 2012-03-22 13:15:08 +0000 |
commit | c0d4367d6b581eb5989c02815880cf0fa2851ae8 (patch) | |
tree | 868c266e627e2d7f65ba5a4d5f98a1c421453181 /include | |
parent | f6bad5ef766b0447158e3de2f55c35f1f6cecb58 (diff) | |
parent | da4441c44f6efccb6f7b7588404d9c6bfb7b6af8 (diff) | |
download | busybox-w32-c0d4367d6b581eb5989c02815880cf0fa2851ae8.tar.gz busybox-w32-c0d4367d6b581eb5989c02815880cf0fa2851ae8.tar.bz2 busybox-w32-c0d4367d6b581eb5989c02815880cf0fa2851ae8.zip |
Merge commit 'da4441c44f6efccb6f7b7588404d9c6bfb7b6af8' into merge
Conflicts:
libbb/vfork_daemon_rexec.c
networking/wget.c
procps/ps.c
Diffstat (limited to 'include')
-rw-r--r-- | include/applets.src.h | 2 | ||||
-rw-r--r-- | include/archive.h | 20 | ||||
-rw-r--r-- | include/libbb.h | 57 | ||||
-rw-r--r-- | include/platform.h | 12 | ||||
-rw-r--r-- | include/usage.src.h | 20 |
5 files changed, 52 insertions, 59 deletions
diff --git a/include/applets.src.h b/include/applets.src.h index fa7d0cc55..133f376a3 100644 --- a/include/applets.src.h +++ b/include/applets.src.h | |||
@@ -211,7 +211,7 @@ IF_KILLALL(APPLET_ODDNAME(killall, kill, BB_DIR_USR_BIN, BB_SUID_DROP, killall)) | |||
211 | IF_KILLALL5(APPLET_ODDNAME(killall5, kill, BB_DIR_USR_BIN, BB_SUID_DROP, killall5)) | 211 | IF_KILLALL5(APPLET_ODDNAME(killall5, kill, BB_DIR_USR_BIN, BB_SUID_DROP, killall5)) |
212 | IF_KLOGD(APPLET(klogd, BB_DIR_SBIN, BB_SUID_DROP)) | 212 | IF_KLOGD(APPLET(klogd, BB_DIR_SBIN, BB_SUID_DROP)) |
213 | IF_LAST(APPLET(last, BB_DIR_USR_BIN, BB_SUID_DROP)) | 213 | IF_LAST(APPLET(last, BB_DIR_USR_BIN, BB_SUID_DROP)) |
214 | IF_LENGTH(APPLET_NOFORK(length, length, BB_DIR_USR_BIN, BB_SUID_DROP, length)) | 214 | //IF_LENGTH(APPLET_NOFORK(length, length, BB_DIR_USR_BIN, BB_SUID_DROP, length)) |
215 | IF_LESS(APPLET(less, BB_DIR_USR_BIN, BB_SUID_DROP)) | 215 | IF_LESS(APPLET(less, BB_DIR_USR_BIN, BB_SUID_DROP)) |
216 | IF_SETARCH(APPLET_ODDNAME(linux32, setarch, BB_DIR_BIN, BB_SUID_DROP, linux32)) | 216 | IF_SETARCH(APPLET_ODDNAME(linux32, setarch, BB_DIR_BIN, BB_SUID_DROP, linux32)) |
217 | IF_SETARCH(APPLET_ODDNAME(linux64, setarch, BB_DIR_BIN, BB_SUID_DROP, linux64)) | 217 | IF_SETARCH(APPLET_ODDNAME(linux64, setarch, BB_DIR_BIN, BB_SUID_DROP, linux64)) |
diff --git a/include/archive.h b/include/archive.h index ba6d323e0..49c478728 100644 --- a/include/archive.h +++ b/include/archive.h | |||
@@ -8,22 +8,22 @@ enum { | |||
8 | #if BB_BIG_ENDIAN | 8 | #if BB_BIG_ENDIAN |
9 | COMPRESS_MAGIC = 0x1f9d, | 9 | COMPRESS_MAGIC = 0x1f9d, |
10 | GZIP_MAGIC = 0x1f8b, | 10 | GZIP_MAGIC = 0x1f8b, |
11 | BZIP2_MAGIC = 'B' * 256 + 'Z', | 11 | BZIP2_MAGIC = 256 * 'B' + 'Z', |
12 | /* .xz signature: 0xfd, '7', 'z', 'X', 'Z', 0x00 */ | 12 | /* .xz signature: 0xfd, '7', 'z', 'X', 'Z', 0x00 */ |
13 | /* More info at: http://tukaani.org/xz/xz-file-format.txt */ | 13 | /* More info at: http://tukaani.org/xz/xz-file-format.txt */ |
14 | XZ_MAGIC1 = 0xfd * 256 + '7', | 14 | XZ_MAGIC1 = 256 * 0xfd + '7', |
15 | XZ_MAGIC2 = (('z' * 256 + 'X') * 256 + 'Z') * 256 + 0, | 15 | XZ_MAGIC2 = 256 * (256 * (256 * 'z' + 'X') + 'Z') + 0, |
16 | /* Different form: 32 bits, then 16 bits: */ | 16 | /* Different form: 32 bits, then 16 bits: */ |
17 | XZ_MAGIC1a = ((0xfd * 256 + '7') * 256 + 'z') * 256 + 'X', | 17 | XZ_MAGIC1a = 256 * (256 * (256 * 0xfd + '7') + 'z') + 'X', |
18 | XZ_MAGIC2a = 'Z' * 256 + 0, | 18 | XZ_MAGIC2a = 256 * 'Z' + 0, |
19 | #else | 19 | #else |
20 | COMPRESS_MAGIC = 0x9d1f, | 20 | COMPRESS_MAGIC = 0x9d1f, |
21 | GZIP_MAGIC = 0x8b1f, | 21 | GZIP_MAGIC = 0x8b1f, |
22 | BZIP2_MAGIC = 'Z' * 256 + 'B', | 22 | BZIP2_MAGIC = 'B' + 'Z' * 256, |
23 | XZ_MAGIC1 = '7' * 256 + 0xfd, | 23 | XZ_MAGIC1 = 0xfd + '7' * 256, |
24 | XZ_MAGIC2 = ((0 * 256 + 'Z') * 256 + 'X') * 256 + 'z', | 24 | XZ_MAGIC2 = 'z' + ('X' + ('Z' + 0 * 256) * 256) * 256, |
25 | XZ_MAGIC1a = (('X' * 256 + 'z') * 256 + '7') * 256 + 0xfd, | 25 | XZ_MAGIC1a = 0xfd + ('7' + ('z' + 'X' * 256) * 256) * 256, |
26 | XZ_MAGIC2a = 0 * 256 + 'Z', | 26 | XZ_MAGIC2a = 'Z' + 0 * 256, |
27 | #endif | 27 | #endif |
28 | }; | 28 | }; |
29 | 29 | ||
diff --git a/include/libbb.h b/include/libbb.h index 7efa32349..6564038e9 100644 --- a/include/libbb.h +++ b/include/libbb.h | |||
@@ -33,10 +33,12 @@ | |||
33 | #include <sys/stat.h> | 33 | #include <sys/stat.h> |
34 | #include <sys/time.h> | 34 | #include <sys/time.h> |
35 | #include <sys/types.h> | 35 | #include <sys/types.h> |
36 | #ifndef major | ||
37 | # include <sys/sysmacros.h> | ||
38 | #endif | ||
36 | #include <sys/wait.h> | 39 | #include <sys/wait.h> |
37 | #include <termios.h> | 40 | #include <termios.h> |
38 | #include <time.h> | 41 | #include <time.h> |
39 | #include <unistd.h> | ||
40 | #include <sys/param.h> | 42 | #include <sys/param.h> |
41 | #ifdef HAVE_MNTENT_H | 43 | #ifdef HAVE_MNTENT_H |
42 | # include <mntent.h> | 44 | # include <mntent.h> |
@@ -875,6 +877,7 @@ void FAST_FUNC update_utmp(pid_t pid, int new_type, const char *tty_name, const | |||
875 | # define update_utmp(pid, new_type, tty_name, username, hostname) ((void)0) | 877 | # define update_utmp(pid, new_type, tty_name, username, hostname) ((void)0) |
876 | #endif | 878 | #endif |
877 | 879 | ||
880 | |||
878 | int execable_file(const char *name) FAST_FUNC; | 881 | int execable_file(const char *name) FAST_FUNC; |
879 | char *find_execable(const char *filename, char **PATHp) FAST_FUNC; | 882 | char *find_execable(const char *filename, char **PATHp) FAST_FUNC; |
880 | int exists_execable(const char *filename) FAST_FUNC; | 883 | int exists_execable(const char *filename) FAST_FUNC; |
@@ -883,14 +886,16 @@ int exists_execable(const char *filename) FAST_FUNC; | |||
883 | * but it may exec busybox and call applet instead of searching PATH. | 886 | * but it may exec busybox and call applet instead of searching PATH. |
884 | */ | 887 | */ |
885 | #if ENABLE_FEATURE_PREFER_APPLETS | 888 | #if ENABLE_FEATURE_PREFER_APPLETS |
886 | int bb_execvp(const char *file, char *const argv[]) FAST_FUNC; | 889 | int BB_EXECVP(const char *file, char *const argv[]) FAST_FUNC; |
887 | #define BB_EXECVP(prog,cmd) bb_execvp(prog,cmd) | ||
888 | #define BB_EXECLP(prog,cmd,...) \ | 890 | #define BB_EXECLP(prog,cmd,...) \ |
889 | execlp((find_applet_by_name(prog) >= 0) ? CONFIG_BUSYBOX_EXEC_PATH : prog, \ | 891 | do { \ |
890 | cmd, __VA_ARGS__) | 892 | if (find_applet_by_name(prog) >= 0) \ |
893 | execlp(bb_busybox_exec_path, cmd, __VA_ARGS__); \ | ||
894 | execlp(prog, cmd, __VA_ARGS__); \ | ||
895 | } while (0) | ||
891 | #else | 896 | #else |
892 | #define BB_EXECVP(prog,cmd) execvp(prog,cmd) | 897 | #define BB_EXECVP(prog,cmd) execvp(prog,cmd) |
893 | #define BB_EXECLP(prog,cmd,...) execlp(prog,cmd, __VA_ARGS__) | 898 | #define BB_EXECLP(prog,cmd,...) execlp(prog,cmd,__VA_ARGS__) |
894 | #endif | 899 | #endif |
895 | int BB_EXECVP_or_die(char **argv) NORETURN FAST_FUNC; | 900 | int BB_EXECVP_or_die(char **argv) NORETURN FAST_FUNC; |
896 | 901 | ||
@@ -924,19 +929,8 @@ pid_t wait_any_nohang(int *wstat) FAST_FUNC; | |||
924 | int wait4pid(pid_t pid) FAST_FUNC; | 929 | int wait4pid(pid_t pid) FAST_FUNC; |
925 | /* Same as wait4pid(spawn(argv)), but with NOFORK/NOEXEC if configured: */ | 930 | /* Same as wait4pid(spawn(argv)), but with NOFORK/NOEXEC if configured: */ |
926 | int spawn_and_wait(char **argv) FAST_FUNC; | 931 | int spawn_and_wait(char **argv) FAST_FUNC; |
927 | struct nofork_save_area { | ||
928 | jmp_buf die_jmp; | ||
929 | const char *applet_name; | ||
930 | uint32_t option_mask32; | ||
931 | int die_sleep; | ||
932 | uint8_t xfunc_error_retval; | ||
933 | smallint saved; | ||
934 | }; | ||
935 | void save_nofork_data(struct nofork_save_area *save) FAST_FUNC; | ||
936 | void restore_nofork_data(struct nofork_save_area *save) FAST_FUNC; | ||
937 | /* Does NOT check that applet is NOFORK, just blindly runs it */ | 932 | /* Does NOT check that applet is NOFORK, just blindly runs it */ |
938 | int run_nofork_applet(int applet_no, char **argv) FAST_FUNC; | 933 | int run_nofork_applet(int applet_no, char **argv) FAST_FUNC; |
939 | int run_nofork_applet_prime(struct nofork_save_area *old, int applet_no, char **argv) FAST_FUNC; | ||
940 | 934 | ||
941 | /* Helpers for daemonization. | 935 | /* Helpers for daemonization. |
942 | * | 936 | * |
@@ -1417,17 +1411,18 @@ enum { | |||
1417 | }; | 1411 | }; |
1418 | line_input_t *new_line_input_t(int flags) FAST_FUNC; | 1412 | line_input_t *new_line_input_t(int flags) FAST_FUNC; |
1419 | /* So far static: void free_line_input_t(line_input_t *n) FAST_FUNC; */ | 1413 | /* So far static: void free_line_input_t(line_input_t *n) FAST_FUNC; */ |
1420 | /* maxsize must be >= 2. | 1414 | /* |
1415 | * maxsize must be >= 2. | ||
1421 | * Returns: | 1416 | * Returns: |
1422 | * -1 on read errors or EOF, or on bare Ctrl-D, | 1417 | * -1 on read errors or EOF, or on bare Ctrl-D, |
1423 | * 0 on ctrl-C (the line entered is still returned in 'command'), | 1418 | * 0 on ctrl-C (the line entered is still returned in 'command'), |
1424 | * >0 length of input string, including terminating '\n' | 1419 | * >0 length of input string, including terminating '\n' |
1425 | */ | 1420 | */ |
1426 | int read_line_input(const char* prompt, char* command, int maxsize, line_input_t *state) FAST_FUNC; | 1421 | int read_line_input(line_input_t *st, const char *prompt, char *command, int maxsize, int timeout) FAST_FUNC; |
1427 | #else | 1422 | #else |
1428 | #define MAX_HISTORY 0 | 1423 | #define MAX_HISTORY 0 |
1429 | int read_line_input(const char* prompt, char* command, int maxsize) FAST_FUNC; | 1424 | int read_line_input(const char* prompt, char* command, int maxsize) FAST_FUNC; |
1430 | #define read_line_input(prompt, command, maxsize, state) \ | 1425 | #define read_line_input(state, prompt, command, maxsize, timeout) \ |
1431 | read_line_input(prompt, command, maxsize) | 1426 | read_line_input(prompt, command, maxsize) |
1432 | #endif | 1427 | #endif |
1433 | 1428 | ||
@@ -1608,16 +1603,24 @@ int print_flags_separated(const int *masks, const char *labels, | |||
1608 | int print_flags(const masks_labels_t *ml, int flags) FAST_FUNC; | 1603 | int print_flags(const masks_labels_t *ml, int flags) FAST_FUNC; |
1609 | 1604 | ||
1610 | typedef struct bb_progress_t { | 1605 | typedef struct bb_progress_t { |
1611 | off_t lastsize; | 1606 | unsigned last_size; |
1612 | unsigned lastupdate_sec; | 1607 | unsigned last_update_sec; |
1608 | unsigned last_change_sec; | ||
1613 | unsigned start_sec; | 1609 | unsigned start_sec; |
1614 | smallint inited; | 1610 | const char *curfile; |
1615 | } bb_progress_t; | 1611 | } bb_progress_t; |
1616 | 1612 | ||
1617 | void bb_progress_init(bb_progress_t *p) FAST_FUNC; | 1613 | #define is_bb_progress_inited(p) ((p)->curfile != NULL) |
1618 | void bb_progress_update(bb_progress_t *p, const char *curfile, | 1614 | #define bb_progress_free(p) do { \ |
1619 | off_t beg_range, off_t transferred, | 1615 | if (ENABLE_UNICODE_SUPPORT) free((char*)((p)->curfile)); \ |
1620 | off_t totalsize) FAST_FUNC; | 1616 | (p)->curfile = NULL; \ |
1617 | } while (0) | ||
1618 | void bb_progress_init(bb_progress_t *p, const char *curfile) FAST_FUNC; | ||
1619 | void bb_progress_update(bb_progress_t *p, | ||
1620 | uoff_t beg_range, | ||
1621 | uoff_t transferred, | ||
1622 | uoff_t totalsize) FAST_FUNC; | ||
1623 | |||
1621 | 1624 | ||
1622 | extern const char *applet_name; | 1625 | extern const char *applet_name; |
1623 | 1626 | ||
diff --git a/include/platform.h b/include/platform.h index c272fbb05..395ec5d45 100644 --- a/include/platform.h +++ b/include/platform.h | |||
@@ -28,6 +28,7 @@ | |||
28 | #define HAVE_PTSNAME_R 1 | 28 | #define HAVE_PTSNAME_R 1 |
29 | #define HAVE_SETBIT 1 | 29 | #define HAVE_SETBIT 1 |
30 | #define HAVE_SIGHANDLER_T 1 | 30 | #define HAVE_SIGHANDLER_T 1 |
31 | #define HAVE_STPCPY 1 | ||
31 | #define HAVE_STRCASESTR 1 | 32 | #define HAVE_STRCASESTR 1 |
32 | #define HAVE_STRCHRNUL 1 | 33 | #define HAVE_STRCHRNUL 1 |
33 | #define HAVE_STRSEP 1 | 34 | #define HAVE_STRSEP 1 |
@@ -374,13 +375,16 @@ typedef unsigned smalluint; | |||
374 | # define ADJ_TICK MOD_CLKB | 375 | # define ADJ_TICK MOD_CLKB |
375 | # endif | 376 | # endif |
376 | 377 | ||
378 | # undef HAVE_STPCPY | ||
379 | |||
377 | #else | 380 | #else |
378 | 381 | ||
379 | # define bb_setpgrp() setpgrp() | 382 | # define bb_setpgrp() setpgrp() |
380 | 383 | ||
381 | #endif | 384 | #endif |
382 | 385 | ||
383 | #if defined(__GLIBC__) | 386 | #include <unistd.h> |
387 | #if (defined(_POSIX_VERSION) && _POSIX_VERSION >= 200809L) || defined(__GLIBC__) | ||
384 | # define fdprintf dprintf | 388 | # define fdprintf dprintf |
385 | #endif | 389 | #endif |
386 | 390 | ||
@@ -393,6 +397,7 @@ typedef unsigned smalluint; | |||
393 | # undef HAVE_MEMRCHR | 397 | # undef HAVE_MEMRCHR |
394 | # undef HAVE_MKDTEMP | 398 | # undef HAVE_MKDTEMP |
395 | # undef HAVE_SETBIT | 399 | # undef HAVE_SETBIT |
400 | # undef HAVE_STPCPY | ||
396 | # undef HAVE_STRCASESTR | 401 | # undef HAVE_STRCASESTR |
397 | # undef HAVE_STRCHRNUL | 402 | # undef HAVE_STRCHRNUL |
398 | # undef HAVE_STRSIGNAL | 403 | # undef HAVE_STRSIGNAL |
@@ -406,6 +411,7 @@ typedef unsigned smalluint; | |||
406 | # undef HAVE_MEMRCHR | 411 | # undef HAVE_MEMRCHR |
407 | # undef HAVE_MKDTEMP | 412 | # undef HAVE_MKDTEMP |
408 | # undef HAVE_SETBIT | 413 | # undef HAVE_SETBIT |
414 | # undef HAVE_STPCPY | ||
409 | # undef HAVE_STRCASESTR | 415 | # undef HAVE_STRCASESTR |
410 | # undef HAVE_STRCHRNUL | 416 | # undef HAVE_STRCHRNUL |
411 | # undef HAVE_STRSEP | 417 | # undef HAVE_STRSEP |
@@ -444,6 +450,10 @@ extern char *mkdtemp(char *template) FAST_FUNC; | |||
444 | typedef void (*sighandler_t)(int); | 450 | typedef void (*sighandler_t)(int); |
445 | #endif | 451 | #endif |
446 | 452 | ||
453 | #ifndef HAVE_STPCPY | ||
454 | extern char *stpcpy(char *p, const char *to_add) FAST_FUNC; | ||
455 | #endif | ||
456 | |||
447 | #ifndef HAVE_STRCASESTR | 457 | #ifndef HAVE_STRCASESTR |
448 | extern char *strcasestr(const char *s, const char *pattern) FAST_FUNC; | 458 | extern char *strcasestr(const char *s, const char *pattern) FAST_FUNC; |
449 | #endif | 459 | #endif |
diff --git a/include/usage.src.h b/include/usage.src.h index ebe80f8e1..c2575b561 100644 --- a/include/usage.src.h +++ b/include/usage.src.h | |||
@@ -2451,26 +2451,6 @@ INSERT | |||
2451 | "\nOptions:" \ | 2451 | "\nOptions:" \ |
2452 | "\n -L LBL Label" \ | 2452 | "\n -L LBL Label" \ |
2453 | 2453 | ||
2454 | #define mktemp_trivial_usage \ | ||
2455 | "[-dt] [-p DIR] [TEMPLATE]" | ||
2456 | #define mktemp_full_usage "\n\n" \ | ||
2457 | "Create a temporary file with name based on TEMPLATE and print its name.\n" \ | ||
2458 | "TEMPLATE must end with XXXXXX (e.g. [/dir/]nameXXXXXX).\n" \ | ||
2459 | "\nOptions:" \ | ||
2460 | "\n -d Make a directory instead of a file" \ | ||
2461 | /* "\n -q Fail silently if an error occurs" - we ignore it */ \ | ||
2462 | "\n -t Generate a path rooted in temporary directory" \ | ||
2463 | "\n -p DIR Use DIR as a temporary directory (implies -t)" \ | ||
2464 | "\n" \ | ||
2465 | "\nFor -t or -p, directory is chosen as follows:" \ | ||
2466 | "\n$TMPDIR if set, else -p DIR, else /tmp" \ | ||
2467 | |||
2468 | #define mktemp_example_usage \ | ||
2469 | "$ mktemp /tmp/temp.XXXXXX\n" \ | ||
2470 | "/tmp/temp.mWiLjM\n" \ | ||
2471 | "$ ls -la /tmp/temp.mWiLjM\n" \ | ||
2472 | "-rw------- 1 andersen andersen 0 Apr 25 17:10 /tmp/temp.mWiLjM\n" | ||
2473 | |||
2474 | #define more_trivial_usage \ | 2454 | #define more_trivial_usage \ |
2475 | "[FILE]..." | 2455 | "[FILE]..." |
2476 | #define more_full_usage "\n\n" \ | 2456 | #define more_full_usage "\n\n" \ |