aboutsummaryrefslogtreecommitdiff
path: root/miscutils (follow)
Commit message (Collapse)AuthorAgeFilesLines
...
* | 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.
* | Merge branch 'busybox' into mergeRon Yorston2019-02-122-87/+360
|\|
| * i2c_tools.c: i2ctransferNikolaus Voss2019-02-111-5/+3
| | | | | | | | | | | | | | | | | | Call i2c_set_slave_addr() unconditionally as busy checking is skipped depending on force argument. Clarify usage texts for -f and -a flags. Signed-off-by: Nikolaus Voss <nv@vosn.de> Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
| * i2ctransfer: new appletNikolaus Voss2019-02-101-1/+177
| | | | | | | | | | | | | | | | | | | | | | | | i2ctransfer sends and receives user defined i2c messages v2: apply Xabier's comments: add -a option, don't decrement argc, use bb_show_usage() and xzalloc() v3: fix possible out of bound access to msgs[nmsgs] Reviewed-by: Xabier Oneca -- xOneca <xoneca@gmail.com> Signed-off-by: Nikolaus Voss <nikolaus.voss@loewensteinmedical.de> Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
| * bc: implement pass-by-reference code from upstreamDenys Vlasenko2019-01-251-86/+185
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | function old new delta zxc_program_popResultAndCopyToVar 298 493 +195 bc_vec_pushIndex - 75 +75 zxc_vm_process 859 928 +69 xc_program_dereference - 66 +66 bc_vec_npush - 65 +65 zbc_num_s 239 249 +10 zxc_program_num 1024 1032 +8 zbc_num_divmod 150 156 +6 xc_program_search 143 146 +3 zxc_program_assign 392 389 -3 zdc_program_execStr 520 517 -3 xc_program_pushVar 198 195 -3 zxc_program_exec 4101 4092 -9 zbc_program_call 318 308 -10 zbc_func_insert 120 104 -16 zbc_parse_stmt_possibly_auto 1460 1439 -21 bc_vec_push 53 12 -41 xc_parse_pushIndex 61 18 -43 ------------------------------------------------------------------------------ (add/remove: 3/0 grow/shrink: 6/9 up/down: 497/-149) Total: 348 bytes Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
* | iconv: depends on PLATFORM_MINGW32Ron Yorston2019-01-101-0/+1
| |
* | Merge branch 'busybox' into mergeRon Yorston2019-01-1036-110/+7501
|\|
| * bc: code shrinkDenys Vlasenko2019-01-091-14/+14
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | function old new delta xc_parse_pushInst_and_Index - 16 +16 zbc_parse_expr 1818 1816 -2 xc_parse_pushIndex 65 61 -4 zbc_parse_pushSTR 63 58 -5 zbc_parse_name 448 442 -6 xc_parse_pushNUM 74 67 -7 zdc_parse_expr 479 470 -9 bc_parse_pushJUMP_ZERO 21 12 -9 bc_parse_pushJUMP 21 12 -9 ------------------------------------------------------------------------------ (add/remove: 1/0 grow/shrink: 0/8 up/down: 16/-51) Total: -35 bytes Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
| * bc: remove "empty expression" check/message, parsing fails in these cases anywayDenys Vlasenko2019-01-081-3/+4
| | | | | | | | | | | | | | function old new delta zbc_parse_expr 1848 1818 -30 Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
| * bc: zbc_parse_expr_empty_ok() is unused except by zbc_parse_expr(), fold it inDenys Vlasenko2019-01-081-36/+25
| | | | | | | | | | | | | | function old new delta zbc_parse_expr 1865 1848 -17 Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
| * bc: disallow invalid syntax like "{ print 1 print 2 }"Denys Vlasenko2019-01-081-15/+21
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | statement parsing must NOT eat the terminator: caller needs to know what it was, to correctly decide whether it is a valid one. function old new delta zxc_program_read - 234 +234 zdc_program_printStream - 144 +144 zbc_parse_stmt_possibly_auto 1413 1460 +47 zxc_vm_process 869 859 -10 zxc_program_exec 4116 4101 -15 zdc_program_asciify 368 - -368 ------------------------------------------------------------------------------ (add/remove: 2/1 grow/shrink: 1/2 up/down: 425/-393) Total: 32 bytes Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
| * sleep: support "inf"Denys Vlasenko2019-01-071-1/+0
| | | | | | | | Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
| * bc: shorten "limits" outputDenys Vlasenko2019-01-041-4/+1
| | | | | | | | | | | | | | | | text data bss dec hex filename 979016 485 7296 986797 f0ead busybox_old 978959 485 7296 986740 f0e74 busybox_unstripped Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
| * bc: formatting changes, added a FIXME comment, no logic changesDenys Vlasenko2019-01-041-5/+8
| | | | | | | | Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
| * bc: support void functions (GNU compat)Denys Vlasenko2019-01-041-19/+56
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | function old new delta xc_program_print - 689 +689 zxc_vm_process 814 869 +55 zxc_program_exec 4098 4116 +18 zxc_program_assign 385 392 +7 bc_result_free 43 46 +3 zxc_program_binOpPrep 243 245 +2 zdc_program_execStr 518 520 +2 zxc_program_print 683 - -683 ------------------------------------------------------------------------------ (add/remove: 1/1 grow/shrink: 6/0 up/down: 776/-683) Total: 93 bytes Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
| * dc: fit returning of stringDenys Vlasenko2019-01-041-5/+13
| | | | | | | | | | | | | | function old new delta zxc_program_exec 4087 4098 +11 Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
| * dc: fix '?'Denys Vlasenko2019-01-041-9/+4
| | | | | | | | | | | | | | | | | | | | function old new delta zdc_parse_expr 470 479 +9 zxc_vm_process 839 814 -25 ------------------------------------------------------------------------------ (add/remove: 0/0 grow/shrink: 1/1 up/down: 9/-25) Total: -16 bytes Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
| * bc: eliminate struct BcInstPtr::results_len_before_call, it is redundantDenys Vlasenko2019-01-041-10/+1
| | | | | | | | | | | | | | | | | | | | function old new delta zbc_program_call 332 318 -14 zxc_program_exec 4147 4087 -60 ------------------------------------------------------------------------------ (add/remove: 0/0 grow/shrink: 0/2 up/down: 0/-74) Total: -74 bytes Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
| * bc: add a palceholder comment for "void" returnDenys Vlasenko2019-01-041-11/+15
| | | | | | | | Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
| * bc: remove extra div/0 test, remove test for string function parameterDenys Vlasenko2019-01-041-8/+7
| | | | | | | | | | | | | | | | | | | | function old new delta zbc_program_call 354 332 -22 zxc_program_assign 426 385 -41 ------------------------------------------------------------------------------ (add/remove: 0/0 grow/shrink: 0/2 up/down: 0/-63) Total: -63 bytes Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
| * bc: fix "...; return}" to work, disallow "return ()"Denys Vlasenko2019-01-031-8/+5
| | | | | | | | | | | | | | | | | | | | | | function old new delta zbc_parse_expr 24 1865 +1841 zbc_parse_stmt_possibly_auto 1425 1413 -12 bc_parse_expr_empty_ok 1843 - -1843 ------------------------------------------------------------------------------ (add/remove: 0/1 grow/shrink: 1/1 up/down: 1841/-1855) Total: -14 bytes Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>