aboutsummaryrefslogtreecommitdiff
path: root/miscutils (follow)
Commit message (Collapse)AuthorAgeFilesLines
...
| * help text tweaksDenys Vlasenko2020-12-132-2/+2
| | | | | | | | | | | | | | function old new delta packed_usage 33547 33545 -2 Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
| * decrease padding: gcc-9.3.1 slaps 32-byte alignment on arrays willy-nillyDenys Vlasenko2020-11-302-3/+3
| | | | | | | | | | | | | | | | text data bss dec hex filename 1021236 559 5052 1026847 fab1f busybox_old 1021120 559 5052 1026731 faaab busybox_unstripped Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
| * decrease paddign: gcc-9.3.1 slaps 32-byte alignment on arrays willy-nillyDenys Vlasenko2020-11-308-18/+12
| | | | | | | | | | | | | | | | text data bss dec hex filename 1021988 559 5052 1027599 fae0f busybox_old 1021236 559 5052 1026847 fab1f busybox_unstripped Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
| * libbb: introduce and use msleep()Denys Vlasenko2020-11-292-3/+3
| | | | | | | | | | | | | | | | | | | | | | | | function old new delta msleep - 45 +45 watchdog_main 271 266 -5 common_traceroute_main 3546 3530 -16 beep_main 277 248 -29 ------------------------------------------------------------------------------ (add/remove: 1/0 grow/shrink: 0/3 up/down: 45/-50) Total: -5 bytes Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
| * use write_str() functions where appropriateDenys Vlasenko2020-11-291-2/+2
| | | | | | | | | | | | | | | | | | | | | | function old new delta chat_main 1300 1295 -5 finalize_tty_attrs 80 70 -10 getty_main 1538 1519 -19 ------------------------------------------------------------------------------ (add/remove: 0/0 grow/shrink: 0/3 up/down: 0/-34) Total: -34 bytes Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
| * libbb: introduce and use sleep1()Denys Vlasenko2020-11-292-3/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | function old new delta sleep1 - 9 +9 run_shutdown_and_kill_processes 97 95 -2 restore_state_and_exit 116 114 -2 reread_partition_table 67 65 -2 flush_buffer_cache 80 78 -2 chat_main 1302 1300 -2 timeout_main 310 307 -3 telnet_main 1235 1232 -3 stop_handler 86 83 -3 process_action 1078 1075 -3 nbdclient_main 1185 1182 -3 init_main 789 786 -3 getty_main 1541 1538 -3 do_time 410 407 -3 runsv_main 1682 1677 -5 pause_and_low_level_reboot 59 54 -5 inetd_main 1917 1911 -6 ------------------------------------------------------------------------------ (add/remove: 1/0 grow/shrink: 0/16 up/down: 9/-50) Total: -41 bytes Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
* | Merge branch 'busybox' into mergeRon Yorston2020-08-2319-45/+17
|\|
| * build system: drop PLATFORM_LINUXRon Yorston2020-08-1318-29/+0
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | PLATFORM_LINUX is a hidden configuration option which is disabled by default and enabled at over a hundred locations for features that are deemed to be Linux specific. The only effect of PLATFORM_LINUX is to control compilation of libbb/match_fstype.c. This file is only needed by mount and umount. Remove all references to PLATFORM_LINUX and compile match_fstype.c if mount or umount is enabled. Signed-off-by: Ron Yorston <rmy@pobox.com> Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
| * lsscsi: code shrinkDenys Vlasenko2020-07-201-15/+12
| | | | | | | | | | | | | | | | | | | | function old new delta lsscsi_main 298 302 +4 get_line 56 45 -11 ------------------------------------------------------------------------------ (add/remove: 0/0 grow/shrink: 1/1 up/down: 4/-11) Total: -7 bytes Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
| * crontab: Fix -e with editors saving using renaming strategyGray Wolf2020-07-111-1/+5
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Some editors (like vim) use renaming strategy to save file. That means they save a file to some random name and then rename it to final location. The advantage is that such save is atomic. However, crontab -e holds open fd to the temporary file, meaning it never sees the changes. The temporary file needs to be re-opened after the editor terminates for the changes to properly save. Fixes #12491 Signed-off-by: Gray Wolf <wolf@wolfsden.cz> Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
* | ts: correct output in 64-bit buildRon Yorston2020-07-191-0/+8
| | | | | | | | | | | | | | | | | | | | | | ts failed to output the correct time when built for 64-bit Windows. In 64-bit builds time_t is a 64-bit quantity whereas the tv_sec member of struct timeval is 32-bit. https://sourceforge.net/p/mingw-w64/bugs/783/ Use a temporary time_t value in 64-bit builds.
* | Merge branch 'busybox' into mergeRon Yorston2020-07-092-0/+3
|\|
| * bc: placate a "defined but not used" warningDenys Vlasenko2020-06-241-0/+2
| | | | | | | | Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
| * randomconfig fixesDenys Vlasenko2020-06-231-0/+1
| | | | | | | | Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
* | Merge branch 'busybox' into mergeFRP-3466-g53c09d0e1Ron Yorston2020-05-291-0/+15
|\|
| * mim: run scripts from a specification fileRon Yorston2020-04-301-0/+15
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | mim runs scripts from a specification file which can be thought of as an extremely limited Makefile. Neither make variables nor dependencies are supported. By default the file 'Mimfile' is read. An example: hello: echo hello $1 clean: rm -rf * The command 'mim' or 'mim hello' will echo 'hello'. Unlike 'make' arguments after the first are available to the script; they don't specify additional targets. mim isn't enabled by default. Enabling it increases the size of the binary by about 500 bytes. Signed-off-by: Ron Yorston <rmy@pobox.com> Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
* | inotifyd: WIN32 portRon Yorston2020-04-151-0/+211
| | | | | | | | | | | | | | | | | | | | | | | | Use ReadDirectoryChangesW to implement inotifyd for WIN32. There are limitations: - It's only possible to watch directories, not files. - The notification doesn't distinguish between different changes to file state. All changes other than creation, deletion and renaming are reported as 'c'.
* | Fix POSIX buildFRP-3445-g10e14d5ebRon Yorston2020-04-111-1/+1
| |
* | time: WIN32 portRon Yorston2020-04-061-0/+55
| | | | | | | | | | | | | | | | Port the time applet to WIN32. This requires the implemntation of a replacement for wait3(2). Only elapsed, user and system times are supported, not the memory and i/o statistics reported by GNU time.
* | iconv: minor fixesRon Yorston2020-02-181-13/+14
| | | | | | | | | | | | | | Add an explicit test for EOF. Otherwise when processing input from interactive stdin it's necessary to enter ^Z twice to signal EOF. Allow '-' to be mixed with actual file names on the command line.
* | iconv: more improvementsRon Yorston2020-02-161-55/+19
| | | | | | | | | | | | | | | | | | | | | | | | | | - Only load required functions from mlang.dll. - The '-f' and '-t' options aren't compulsory. - Use xstrdup() instead of xstrndup() and don't check its return value. - Replace string comparisons when checking for encoding options with a single call to index_in_strings(). Saves 224 bytes.
* | iconv: code shrink (2)Ron Yorston2020-02-141-86/+34
| | | | | | | | | | | | | | | | | | Rewrite iconv_open/iconv/iconv_close to merge Windows-specific code. Make them static. Use getopt32() to process options. Saves 400 bytes.
* | iconv: code shrinkRon Yorston2020-02-141-456/+457
| | | | | | | | | | | | | | Reduce the size of the codepage alias table by concatenating the alias strings rather than storing pointers to them. Saves 1328 bytes.
* | Merge branch 'busybox' into mergeRon Yorston2020-01-082-9/+21
|\|
| * bc: fix comparison bug, closes 12336Denys Vlasenko2019-11-231-1/+4
| | | | | | | | | | | | | | function old new delta bc_num_cmp 249 259 +10 Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
| * hdparm: placate "warning: taking the absolute value of unsigned type"Denys Vlasenko2019-10-251-1/+1
| | | | | | | | Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
| * bc: Add 'U' suffix in UINT_MAX preprocessor checkKang-Che Sung2019-09-121-2/+2
| | | | | | | | | | | | | | | | Without the 'U' unsigned suffix, gcc will throw a "integer constant is so large that it is unsigned" warning. Signed-off-by: Kang-Che Sung <explorer09@gmail.com> Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
| * dc: Parse error & fix out of bounds read in xc_program_printStringBrian Foley2019-09-051-2/+4
| | | | | | | | | | | | | | | | function old new delta xc_program_print 712 735 +23 Signed-off-by: Brian Foley <bpfoley@google.com> Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
| * dc: Fix segfault when executing strings generated using asciifyBrian Foley2019-09-051-2/+8
| | | | | | | | | | | | | | | | function old new delta zxc_vm_process 6884 6891 +7 Signed-off-by: Brian Foley <bpfoley@google.com> Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
| * dc: execute shouldn't pop if stack head is not a stringBrian Foley2019-09-051-1/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | This matches the behaviour of both GNU dc (as specified in its man page), and BSD dc (where stack_popstring() pops only if the head is a string.) Add a couple of tests to verify this behavior. function old new delta zxc_vm_process 6882 6884 +2 Signed-off-by: Brian Foley <bpfoley@google.com> Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
* | Merge branch 'busybox' into mergeRon Yorston2019-08-1619-73/+78
|\|
| * libbb: reduce the overhead of single parameter bb_error_msg() callsJames Byrne2019-07-0219-71/+76
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Back in 2007, commit 0c97c9d43707 ("'simple' error message functions by Loic Grenie") introduced bb_simple_perror_msg() to allow for a lower overhead call to bb_perror_msg() when only a string was being printed with no parameters. This saves space for some CPU architectures because it avoids the overhead of a call to a variadic function. However there has never been a simple version of bb_error_msg(), and since 2007 many new calls to bb_perror_msg() have been added that only take a single parameter and so could have been using bb_simple_perror_message(). This changeset introduces 'simple' versions of bb_info_msg(), bb_error_msg(), bb_error_msg_and_die(), bb_herror_msg() and bb_herror_msg_and_die(), and replaces all calls that only take a single parameter, or use something like ("%s", arg), with calls to the corresponding 'simple' version. Since it is likely that single parameter calls to the variadic functions may be accidentally reintroduced in the future a new debugging config option WARN_SIMPLE_MSG has been introduced. This uses some macro magic which will cause any such calls to generate a warning, but this is turned off by default to avoid use of the unpleasant macros in normal circumstances. This is a large changeset due to the number of calls that have been replaced. The only files that contain changes other than simple substitution of function calls are libbb.h, libbb/herror_msg.c, libbb/verror_msg.c and libbb/xfuncs_printf.c. In miscutils/devfsd.c, networking/udhcp/common.h and util-linux/mdev.c additonal macros have been added for logging so that single parameter and multiple parameter logging variants exist. The amount of space saved varies considerably by architecture, and was found to be as follows (for 'defconfig' using GCC 7.4): Arm: -92 bytes MIPS: -52 bytes PPC: -1836 bytes x86_64: -938 bytes Note that for the MIPS architecture only an exception had to be made disabling the 'simple' calls for 'udhcp' (in networking/udhcp/common.h) because it made these files larger on MIPS. Signed-off-by: James Byrne <james.byrne@origamienergy.com> Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
| * bc: placate compiler warningsDenys Vlasenko2019-06-081-2/+2
| | | | | | | | Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
* | Merge branch 'busybox' into mergeRon Yorston2019-05-273-11/+24
|\|
| * dc: make 4 % 0 emit error messgaes and set result to 0Denys Vlasenko2019-05-161-7/+12
| | | | | | | | | | | | | | function old new delta mod 105 136 +31 Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
| * dc: code shrinkDenys Vlasenko2019-05-091-6/+16
| | | | | | | | | | | | | | | | | | | | | | function old new delta check_under 20 21 +1 print_no_pop 32 27 -5 pop 24 18 -6 ------------------------------------------------------------------------------ (add/remove: 0/0 grow/shrink: 1/2 up/down: 1/-11) Total: -10 bytes Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
| * Optionally re-introduce bb_info_msg()James Byrne2019-04-302-5/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Between Busybox 1.24.2 and 1.25.0 the bb_info_msg() function was eliminated and calls to it changed to be bb_error_msg(). The downside of this is that daemons now log all messages to syslog at the LOG_ERR level which makes it hard to filter errors from informational messages. This change optionally re-introduces bb_info_msg(), controlled by a new option FEATURE_SYSLOG_INFO, restores all the calls to bb_info_msg() that were removed (only in applets that set logmode to LOGMODE_SYSLOG or LOGMODE_BOTH), and also changes informational messages in ifplugd and ntpd. The code size change of this is as follows (using 'defconfig' on x86_64 with gcc 7.3.0-27ubuntu1~18.04) function old new delta bb_info_msg - 182 +182 bb_vinfo_msg - 27 +27 static.log7 194 198 +4 log8 190 191 +1 log5 190 191 +1 crondlog 45 - -45 ------------------------------------------------------------------------------ (add/remove: 2/1 grow/shrink: 3/0 up/down: 215/-45) Total: 170 bytes If you don't care about everything being logged at LOG_ERR level then when FEATURE_SYSLOG_INFO is disabled Busybox actually gets smaller: function old new delta static.log7 194 200 +6 log8 190 193 +3 log5 190 193 +3 syslog_level 1 - -1 bb_verror_msg 583 581 -2 crondlog 45 - -45 ------------------------------------------------------------------------------ (add/remove: 0/2 grow/shrink: 3/1 up/down: 12/-48) Total: -36 bytes Signed-off-by: James Byrne <james.byrne@origamienergy.com> Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
* | less: use alternate screen bufferRon Yorston2019-04-071-1/+5
| |
* | Merge branch 'busybox' into mergeRon Yorston2019-03-314-33/+111
|\|
| * man: add "/usr/share/man" as another default MANPATH, fix col overrideDenys Vlasenko2019-03-301-20/+13
| | | | | | | | | | | | | | | | | | | | | | | | function old new delta static.mpl - 12 +12 packed_usage 33307 33316 +9 man_main 857 851 -6 add_MANPATH 148 138 -10 ------------------------------------------------------------------------------ (add/remove: 1/0 grow/shrink: 1/2 up/down: 21/-16) Total: 5 bytes Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
| * man: don't skip default path which appears in config fileRon Yorston2019-03-261-1/+5
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | If the MANPATH environment variable isn't set a provisional default path of /usr/man is placed in man_path_list. This is only used if a configuration file doesn't contain an alternative path. If a configuration file lists the default path first: MANPATH /usr/man:/usr/share/man add_MANPATH() sees that the default entry is already present and skips it. As a result man_path_list only contains the second and subsequent components of the configured MANPATH. In such cases the path should not be skipped. function old new delta add_MANPATH 170 183 +13 ------------------------------------------------------------------------------ (add/remove: 0/0 grow/shrink: 1/0 up/down: 13/0) Total: 13 bytes Signed-off-by: Ron Yorston <rmy@pobox.com> Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
| * ts: do call localtime() when neither -s nor -i specifiedDenys Vlasenko2019-03-261-1/+1
| | | | | | | | Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
| * ts: use gettimeofday - we don't use nanoseconds hereDenys Vlasenko2019-03-261-13/+9
| | | | | | | | | | | | | | function old new delta ts_main 398 376 -22 Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
| * ts: replace overlapping strcpy with shorter codeDenys Vlasenko2019-03-261-1/+2
| | | | | | | | | | | | | | function old new delta ts_main 401 398 -3 Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
| * ts: fix incorrect (copy-pasted) copyright attributionDenys Vlasenko2019-03-261-4/+3
| | | | | | | | Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
| * ts: new appletDenys Vlasenko2019-03-261-0/+88
| | | | | | | | Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
| * do not duplicate CONFIG_PID_FILE_PATH and ".pid" stringsDenys Vlasenko2019-03-172-3/+3
| | | | | | | | | | | | | | | | text data bss dec hex filename 981737 485 7296 989518 f194e busybox_old 981704 485 7296 989485 f192d busybox_unstripped Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
* | win32: interpret absolute paths as relative to %SYSTEMDRIVE%Ron Yorston2019-03-281-1/+13
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | BusyBox contains hardcoded references to absolute paths which are unique in the *nix world but on Microsoft Windows are interpreted as being on the current drive. To make these unique again consider them to be relative to %SYSTEMDRIVE%. Support this by adding functions to: - determine the system drive (not using the environment variable); - change a process's current directory to the root of the system drive; - make relative paths absolute before changing directory (if needed). The following applications have been modified: - ash references /etc/profile from the system drive; - dpkg places its data store on and installs files to the system drive; - rpm installs files to the system drive; - man looks for configuration files and man pages on the system drive. See GitHub issue #158.
* | man: proper handling of default path and config fileRon Yorston2019-03-281-0/+4
| | | | | | | | | | | | | | | | Don't overwrite the default path when the path relative to the executable is added. Remove trailing carriage returns when parsing the configuration file.
* | man: don't skip default path which appears in config fileRon Yorston2019-03-281-1/+5
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | If the MANPATH environment variable isn't set a provisional default path of /usr/man is placed in man_path_list. This is only used if a configuration file doesn't contain an alternative path. If a configuration file lists the default path first: MANPATH /usr/man:/usr/share/man add_MANPATH() sees that the default entry is already present and skips it. As a result man_path_list only contains the second and subsequent components of the configured MANPATH. In such cases the path should not be skipped.