aboutsummaryrefslogtreecommitdiff
path: root/scripts/basic/split-include.c (unfollow)
Commit message (Collapse)AuthorFilesLines
2019-02-27win32: make more use of common lazy loading codeRon Yorston2-27/+10
2019-02-25win32: fake permissions/ownership for inaccessible filesRon Yorston1-0/+5
If stat(2) knows a file exists but can't obtain additional metadata for it give it root ownership and no permissions for other.
2019-02-22dpkg: enable in the default configurationRon Yorston3-2/+7
BusyBox's dpkg is marginally more useful than rpm because it maintains package status. Run the following commands to initialise the filesystem: mkdir -p /var/lib/dpkg/info touch /var/lib/dpkg/status
2019-02-21uname: drop support for ia64Ron Yorston1-4/+3
2019-02-21win32: use manifest provided by MinGW-w64Ron Yorston7-44/+1
The manifest included here wasn't effective in telling Windows about version compatibility. Use the default manifest provided by MinGW-w64 instead. On Fedora this requires installing the mingw32-windows-default-manifest and/or mingw64-windows-default-manifest packages.
2019-02-20win32: remove unused include filesRon Yorston2-0/+0
Upstream commit d9aabfe578 (make busybox more portable) moved a couple of include files into platform-dependent code so we no longer need dummy versions.
2019-02-19win32: stat(2) succeeds if fetching extra metadata failsRon Yorston5-17/+19
Some files can't be opened to fetch additional metadata. When that happens allow stat(2) to successfully return what data it has. In a few cases where the inode number is used to determine if files are identical ignore invalid inode numbers.
2019-02-18win32: tidy up stat(2) implementationRon Yorston1-21/+22
Since st_nlink now depends on st_mode it should be set after st_mode is initialised. Rearrange the code to fetch extra metadata.
2019-02-18win32: avoid use of uninitialised metadata in stat(2)Ron Yorston1-2/+8
When additional metadata was being fetched the code for non-disk files used uninitialised data from the BY_HANDLE_FILE_INFORMATION structure.
2019-02-17win32: fix POSIX buildRon Yorston4-5/+28
There were a few places where changes intended for the WIN32 build also affected the POSIX build. Fix these so the result of 'make defconfig; make' for busybox-w32 is identical to upstream BusyBox.
2019-02-17ash: updated support for hiding consoleRon Yorston4-10/+21
Move the code to hide the console to a separate function in win32/mingw.c. Use lazy loading to avoid problems on platforms where the require APIs aren't supported (PR #70). Enable console hiding in the default 64-bit configuration.
2019-02-17ash: tidy up handling of -X optionRon Yorston1-8/+7
2019-02-16win32: make stat(2) fetch additional metadataRon Yorston12-16/+74
Modify the WIN32 implementation of stat(2) to fetch inode number, device id and number of hardlinks. This requires opening a handle to the target file so it will be slower. A number of features can be enabled or start to work: - tar can detect if an archive is being stored in itself; - find can support the -inum and -links options; - ls can display inode numbers; - diff can detect attempts to compare a file with itself; - du has better support for hardlinked files; - cp can detect attempts to copy a file over itself.
2019-02-14vi: add a function to count CRs in the text bufferRon Yorston1-29/+27
2019-02-14win32: add a function to remove CRs from a text bufferRon Yorston4-25/+19
2019-02-14libarchive: remove more symlink codeRon Yorston3-4/+9
Since symlinks aren't supported in busybox-w32 remove more of the code that handles them. Saves 64 bytes.
2019-02-12Update default configurationRon Yorston2-2/+4
2019-02-11i2c_tools.c: i2ctransferNikolaus Voss1-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>
2019-02-11vi: further fixes to undo after autoindentRon Yorston1-13/+15
Commit bb983f30e (vi: fix faulty undo after autoinsert) has a number of problems: - The commit message refers to 'autoinsert' when it really means 'autoindent'. - The indentation of undo_push_insert() was incorrect. - Most seriously the commit only fixed the problem for cases where the indentation was exactly one character. This is because undo_push() only allows single characters to be queued for UNDO_INS_QUEUED. Lifting this restriction allows the example given in the previous commit message (with a three character indent) to work. function old new delta undo_push 406 435 +29 ------------------------------------------------------------------------------ (add/remove: 0/0 grow/shrink: 1/0 up/down: 29/0) Total: 29 bytes Signed-off-by: Ron Yorston <rmy@pobox.com> Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2019-02-10i2ctransfer: new appletNikolaus Voss1-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>
2019-02-08sysctl: fix compatibility with procps sysctlAaro Koskinen1-2/+26
Busybox sysctl is incompatible with procps when '.' appears in directory name, mostly happens with VLANs. busybox syntax (since 2008): net.ipv4.conf.eth0.100.mc_forwarding procps syntax (since 2002): net.ipv4.conf.eth0/100.mc_forwarding (supported by both: net/ipv4/conf/eth0.100/mc_forwarding) Use procps syntax for output; for input, allow both. function old new delta sysctl_dots_to_slashes 86 143 +57 sysctl_act_on_setting 443 453 +10 ------------------------------------------------------------------------------ (add/remove: 0/0 grow/shrink: 2/0 up/down: 67/0) Total: 67 bytes Signed-off-by: Aaro Koskinen <aaro.koskinen@nokia.com> Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2019-02-08sysctl: do slash/dot conversions only on name, not value partDenys Vlasenko1-3/+5
function old new delta sysctl_dots_to_slashes 71 86 +15 Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2019-02-08sysctl: on EIO ("sysctl net.ipv6.conf.all.stable_secret") set nonzero exitcodeDenys Vlasenko1-0/+1
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2019-02-08sysctl: avoid stat() on every item if in -w modeDenys Vlasenko1-6/+10
function old new delta sysctl_act_recursive 163 167 +4 Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2019-02-08sysctl: allow setting empty valuesDenys Vlasenko1-2/+4
function old new delta sysctl_act_on_setting 451 445 -6 Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2019-02-08vi: fix replacement of single character with CRRon Yorston1-8/+3
Currently if the 'r' command is followed by a carriage return a literal CR replaces the current character. Fix this so that: - a new line is inserted - the autoindent setting is respected - the cursor is placed at the start of the new line function old new delta do_cmd 5052 5060 +8 ------------------------------------------------------------------------------ (add/remove: 0/0 grow/shrink: 1/0 up/down: 8/0) Total: 8 bytes Signed-off-by: Ron Yorston <rmy@pobox.com> Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2019-02-08vi: fix faulty undo after autoinsertRon Yorston1-35/+22
Enable autoinsert and enter the following with an indent of three spaces: line 1 line 2 Using 'u' to undo the last insert results in: line1e 2 The insertion of the indent hasn't been properly recorded. Since recording insertions is a common operation add a convenience function, undo_push_insert(), to handle this and use it to record the autoindent correctly. function old new delta undo_push_insert - 36 +36 string_insert 133 129 -4 char_insert 518 473 -45 ------------------------------------------------------------------------------ (add/remove: 1/0 grow/shrink: 0/2 up/down: 36/-49) Total: -13 bytes Signed-off-by: Ron Yorston <rmy@pobox.com> Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2019-02-08chcon: Fix typo in ACTION_RECURSERostislav Skudnov1-1/+1
Signed-off-by: Rostislav Skudnov <rostislav@tuxera.com> Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2019-02-08ash: improve handling of 'read -t 0'Ron Yorston1-4/+12
Instead of always returning that no input is available: - for a disk file return 'available'; - for the console return 'not available'; - for anything else (e.g. pipe) return whatever poll says. This fixes the test ash-read/read_t0.tests.
2019-02-08dhcp service example: rewrite "private network to mask" as case statementDenys Vlasenko1-8/+13
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2019-02-07win32: don't try to run non-existent scriptRon Yorston1-1/+1
In parse_interpreter return an error when the file doesn't exist. The current code tries to run non-existent scripts with a .sh suffix, thus breaking the test ash-misc/exec.tests.
2019-02-07libbb: skip fake path componentsRon Yorston1-4/+5
Commit 3476fb9f4 added a fake prefix to the applet pathname to identify the argument containing the name of an interpreted script. Skip over the prefix to prevent it appearing in error messages.
2019-02-06ash: make spawn_forkshell more like forkshellRon Yorston1-8/+12
These are cosmetic changes only. Make the arguments to spawn_forkshell more like those of forkshell. Since job control isn't currently supported in busybox-w32 the node argument isn't actually used. The node passed in the forkshell structure is used in the child code. It may be different from the node passed as an argument to spawn_forkshell which, in the upstream code, is forwarded to forkparent and forkchild.
2019-02-05dhcp service example: cater for servers hot giving subnet and/or routerDenys Vlasenko1-0/+19
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2019-02-04lineedit: fix SEGV in isk, hexedit, ed, closes 11661Denys Vlasenko1-4/+5
fdisk, hexedit and ed calls read_line_edit in libbb/lineedit.c with NULL as first argument. On line 2373 of lineedit.c of busybox version 1.29.3, state->hist_file is referenced without checking the state->flag. This causes segmentation fault on fdisk, hexedit and ed on ARM Cortex-A9. It somehow works on x86_64. Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2019-02-04which: standardise slashes in outputRon Yorston1-0/+10
Closes GitHub issue #21.
2019-02-02service examples: do not respawn supplicant too oftenDenys Vlasenko1-1/+2
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2019-02-02win32: add support for the euro currency symbolRon Yorston6-2/+103
The euro currency symbol was added to some OEM code pages. See: https://www.aivosto.com/articles/charsets-codepages-dos.html Add a configuration option (enabled by default) to support this. When enabled: - The read_key() function requests wide character key events. This allows the euro symbol to be entered regardless of the console OEM code page, though it needs to be available in the ANSI code page. - Conversions between OEM and ANSI code pages in winansi.c are modified to work around a bug in the Microsoft routines. - If the OEM code page is 850 when BusyBox starts it's changed to 858. This is the only currently supported OEM code page. Also, the shell read builtin is modified to use read_key() whenever input is being taken from the console.
2019-02-01vi: simplify code to display pasted textRon Yorston1-8/+4
2019-01-29grep: short-circuit -v to bail out on first matchAri Sundholm1-5/+14
A small optimization. There is no need to try matching the current input line against any further patterns if a match was already found and -v is specified. function old new delta grep_file 1463 1440 -23 Signed-off-by: Ari Sundholm <ari@tuxera.com> Signed-off-by: Niko Vähäsarja <niko@tuxera.com> Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2019-01-29grep: fix -x -v with certain pattern ordersAri Sundholm2-1/+8
We found out that busybox -x -v is a bit broken: ari@ari-thinkpad:~/busybox$ echo ' aa bb cc' | ./busybox grep -x -e 'aa.*' -e '.*bb.*' aa bb cc ari@ari-thinkpad:~/busybox$ echo ' aa bb cc' | ./busybox grep -x -v -e 'aa.*' -e '.*bb.*' ari@ari-thinkpad:~/busybox$ echo ' aa bb cc' | ./busybox grep -x -e '.*aa.*' -e 'bb.*' aa bb cc ari@ari-thinkpad:~/busybox$ echo ' aa bb cc' | ./busybox grep -x -v -e '.*aa.*' -e 'bb.*' aa bb cc Last one is wrong. This patch fixes the issue by making sure that the variable 'found' never makes a transition from 1 to 0, as this would mean that grep previously found a match on this input line. Signed-off-by: Ari Sundholm <ari@tuxera.com> Signed-off-by: Niko Vähäsarja <niko@tuxera.com> Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2019-01-26ash: remove carriage returns from strings to be evaluatedRon Yorston1-0/+12
The shell could fail to evaluate strings containing carriage returns. For example: awk 'BEGIN { "set -ex\r\npwd\r\n" | getline }' </dev/null The string is passed as an argument to "sh -c". The "set" built-in fails because it attempts to treat the carriage return as an option. Although this is correct behaviour on Unix it may be unhelpful on Microsoft Windows. See GitHub issue #138.
2019-01-26win32: allow characters to be entered as ALTNNNRon Yorston1-3/+34
It wasn't possible to enter characters using Alt and the decimal character code. This was because the character is generated when the Alt key is released but the WIN32 implementation of read_key() ignored all key up events. Modify read_key() to ignore numbers entered on the numeric keypad with Alt pressed and to detect when Alt is released. Fixes GitHub issue #136.
2019-01-26vi: display pasted textRon Yorston1-1/+14
vi tries to avoid updating the display if more input is available. This didn't work when text was pasted in because a key release event was left in the event queue. When mysleep() is called to test for this condition allow up to one event to be present in the queue before reporting that input is available.
2019-01-25bc: implement pass-by-reference code from upstreamDenys Vlasenko3-86/+503
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>
2019-01-23awk: fix handling of regular expressions that match end-of-lineRon Yorston1-0/+24
awk failed to match regular expressions that included an end-of-line: it was looking for a LF whereas lines were terminated by CRLF. Rather than tinker with the regex code or arrange for input to be in text mode I've stripped CRs from the input.
2019-01-22login: close PAM session on errors as well, not only on successDenys Vlasenko1-3/+5
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2019-01-22ip link: Fix vlan proto, closes 8261 and 11638Bernhard Reutner-Fischer1-5/+11
The proto has to be passed in network byte-order. While at it allow for ip link add link eth0 name eth0.2.24 type vlan proto 802.1ad id 24 ip link del link eth0 name eth0.2.24 type vlan proto 802.1ad id 24 The del was lacking a dev_str and thus errored out. Fix by using name/dev counterpart as fallback. The proto identifier 802.1Q was not recognized, just it's lowercase variant, fix that too. function old new delta do_add_or_delete 1275 1376 +101 ------------------------------------------------------------------------------ (add/remove: 0/0 grow/shrink: 1/0 up/down: 101/0) Total: 101 bytes Signed-off-by: Bernhard Reutner-Fischer <rep.dot.nop@gmail.com>
2019-01-22ip link: fix mismatched enums in vlan_parse_opt(), closes 11631Denys Vlasenko1-1/+1
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2019-01-21wget: detect when the length of received file is less than advertisedDenys Vlasenko1-8/+10
function old new delta retrieve_file_data 579 596 +17 Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>