| Commit message (Collapse) | Author | Files | Lines |
|
|
|
Apply upstream commit 9b67dde8c.
Adds 8 bytes in the 32-bit build.
|
|
Apply upstream commit 81274d8b3.
On Windows it isn't necessary to reset the exception handler in
evalbackcmd() or evalpipe(), as that will have been done by
forkshell_init().
The globals_misc structure now contains a setjmp() buffer. On
64-bit Windows this needs 16-byte alignment. This is achieved
in the forkshell data structure by placing the globals_misc
data immediately after the 16-byte aligned forkshell data.
Saves 144 bytes in the 64-bit build.
|
|
Merge upstream commit 4ce8afe6b. This has no effect on Windows.
|
|
Merge upstream commit df154028d. Since we don't have vfork() on
Windows we continue to use the spawn_forkshell() mechanism.
Although there is some rearrangement of the code it's functionally
the same.
|
|
Merge upstream commit 9f490785e. The changes are cosmetic, to
bring the code into line with dash.
|
|
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
|
|
If more than one single-colon target rule has commands only the
last set of commands should be used.
Previously the presence of more than one single-colon target rule
with commands was treated as an error.
Adds 88-112 bytes.
|
|
function old new delta
write2pipe - 133 +133
.rodata 105992 106009 +17
readtoken1 3101 3111 +10
cmdtxt 631 641 +10
nodesize 27 28 +1
redirect 961 916 -45
------------------------------------------------------------------------------
(add/remove: 1/0 grow/shrink: 4/1 up/down: 171/-45) Total: 126 bytes
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
|
|
The previous code had issues with buffer management,
resulting in failures.
|
|
For some reason upstream doesn't include the '-g' option in the
usage message for 'ls'. Commit 551bfdb97 (ls: implement -q, fix
-w0, reduce startup time) added a description but left it
commented out. It didn't add 'g' to the list of options.
'C' appears in the list but its description is commented out.
Adds 24-32 bytes.
(GitHub issue #517)
|
|
An upstream bug caused '\W' to return an empty string for the
root directory of any drive. bash displays '/' in similar
circumstances on Linux.
Adds 16 bytes.
(GitHub issue #516)
|
|
Upstream commit d683c5c2f1 (tr: support octal ranges) broke the
previous behaviour that an escaped dash doesn't indicate a range:
'[p\-r]' should match 'p', '-' or 'r', not 'p', 'q' or 'r'.
Add a special case to handle this.
Adds 16 bytes.
(GitHub issue #515)
|
|
function old new delta
parse_stream 3063 3075 +12
done_word 777 784 +7
------------------------------------------------------------------------------
(add/remove: 0/0 grow/shrink: 2/0 up/down: 19/0) Total: 19 bytes
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
|
|
function old new delta
done_word 766 777 +11
static.reserved_match 16 12 -4
reserved_list 240 168 -72
------------------------------------------------------------------------------
(add/remove: 0/0 grow/shrink: 1/2 up/down: 11/-76) Total: -65 bytes
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
|
|
For some reason, it was only happening in interactive use
function old new delta
initialize_context 39 54 +15
parse_stream 3077 3063 -14
------------------------------------------------------------------------------
(add/remove: 0/0 grow/shrink: 1/1 up/down: 15/-14) Total: 1 bytes
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
|
|
function old new delta
done_word 790 766 -24
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
|
|
|
|
Changes to the ls applet upstream assumed that the return value of
isatty() followed the C standard and would be 0 or 1. The wrapper
for Windows' _isatty() didn't allow for it returning a non-zero
value for a tty, not 1. This confused ls.
Fix the wrapper.
(GitHub issue #513)
|
|
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
|
|
function old new delta
die_if_script 28 34 +6
hush_main 1146 1150 +4
run_list 1031 1028 -3
------------------------------------------------------------------------------
(add/remove: 0/0 grow/shrink: 2/1 up/down: 10/-3) Total: 7 bytes
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
|
|
function old new delta
reserved_list - 240 +240
parse_stream 2923 3077 +154
done_word 771 790 +19
.rodata 105975 105992 +17
static.reserved_match 12 16 +4
static.reserved_list 168 - -168
------------------------------------------------------------------------------
(add/remove: 1/1 grow/shrink: 4/0 up/down: 434/-168) Total: 266 bytes
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
|
|
function old new delta
parse_stream 2940 2923 -17
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
|
|
function old new delta
parse_stream 2857 2940 +83
i_peek 55 69 +14
i_free_alias_buffer 33 37 +4
------------------------------------------------------------------------------
(add/remove: 0/0 grow/shrink: 3/0 up/down: 101/0) Total: 101 bytes
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
|
|
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
|
|
function old new delta
print_pfx_escaped_nl - 83 +83
builtin_alias 216 218 +2
.rodata 105985 105975 -10
parse_stream 2873 2857 -16
builtin_set 301 259 -42
builtin_readonly 107 59 -48
builtin_export 145 93 -52
------------------------------------------------------------------------------
(add/remove: 1/0 grow/shrink: 1/5 up/down: 85/-168) Total: -83 bytes
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
|
|
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
|
|
function old new delta
parse_stream 2540 2873 +333
i_getch 85 410 +325
builtin_alias - 216 +216
builtin_unalias - 185 +185
.rodata 105806 105985 +179
word_matches_alias - 82 +82
find_alias_slot - 77 +77
end_of_alias_name - 69 +69
builtin_type 128 179 +51
i_free_alias_buffer - 33 +33
enable_all_aliases - 29 +29
bltins1 396 420 +24
o_reset_to_empty_unquoted - 21 +21
run_pipe 1554 1566 +12
i_peek 57 55 -2
parse_redirect 351 346 -5
redirect_opt_num 63 53 -10
encode_then_append_var_plusminus 552 532 -20
done_word 796 771 -25
i_getch_interactive 308 - -308
------------------------------------------------------------------------------
(add/remove: 8/1 grow/shrink: 6/5 up/down: 1636/-370) Total: 1266 bytes
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
|
|
function old new delta
set_local_var 416 409 -7
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
|
|
function old new delta
setup_heredoc 299 351 +52
parse_stream 2514 2540 +26
parse_redirect 335 351 +16
redir_table 40 48 +8
static.setup_redirects 394 400 +6
------------------------------------------------------------------------------
(add/remove: 0/0 grow/shrink: 5/0 up/down: 108/0) Total: 108 bytes
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
|
|
function old new delta
parse_stream 2513 2514 +1
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
|
|
Was trying to add code to reject more invalid "case" syntaxes, but it's not that easy
function old new delta
done_word 795 796 +1
parse_stream 2529 2513 -16
.rodata 105825 105806 -19
------------------------------------------------------------------------------
(add/remove: 0/0 grow/shrink: 1/2 up/down: 1/-35) Total: -34 bytes
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
|
|
While at it, remove now-unused WORD_IS_KEYWORD
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
|
|
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
|
|
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
|
|
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
|
|
function old new delta
parse_stream 2566 2524 -42
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
|
|
function old new delta
parse_stream 2572 2566 -6
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
|
|
function old new delta
parse_stream 2565 2572 +7
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
|
|
Final link with: <none>
function old new delta
i_getch_interactive - 308 +308
i_getch 102 85 -17
fgetc_interactive 309 - -309
------------------------------------------------------------------------------
(add/remove: 1/1 grow/shrink: 0/1 up/down: 308/-326) Total: -18 bytes
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
|
|
0-9,A-Z,a-z are never special and just go into the current word.
function old new delta
parse_stream 2476 2565 +89
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
|
|
No logic changes
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
|
|
function old new delta
parse_stream 2446 2476 +30
done_word 797 800 +3
------------------------------------------------------------------------------
(add/remove: 0/0 grow/shrink: 2/0 up/down: 33/0) Total: 33 bytes
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
|
|
Also, deindent "ch == EOF" code branch in parse_stream()
function old new delta
done_word 799 797 -2
parse_stream 2453 2446 -7
------------------------------------------------------------------------------
(add/remove: 0/0 grow/shrink: 0/2 up/down: 0/-9) Total: -9 bytes
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
|
|
function old new delta
done_word 776 799 +23
parse_stream 2456 2453 -3
done_pipe 252 242 -10
.rodata 105837 105825 -12
------------------------------------------------------------------------------
(add/remove: 0/0 grow/shrink: 1/3 up/down: 23/-25) Total: -2 bytes
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
|
|
This is not accepted by bash, we may also disallow this,
but for now, at least do not crash
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
|
|
The ARM64 build had native Windows support for TLS by default,
but not checksums. Add this, so the ARM 64 build matches the
Unicode build.
|
|
Upstream has moved some functions from networking/tls.c to a new
file, libbb/hash_hmac.c. The merge didn't adjust this code to
allow it to work with the native Windows checksum API.
This only matters if FEATURE_USE_CNG_API is enabled and
CONFIG_FEATURE_TLS_SCHANNEL isn't. In that case the wget applet
fails to handle https. None of the default configurations
has this combination, but it should work. Make it so.
The Windows code doesn't implement hmac_block(), as that's only
used for password encryption which isn't currently supported.
The variadic function hmac_peek_hash() isn't declared FAST_FUNC,
as that causes clang to issue many warnings.
|
|
function old new delta
parse_stream 2292 2456 +164
done_pipe 231 252 +21
------------------------------------------------------------------------------
(add/remove: 0/0 grow/shrink: 2/0 up/down: 185/0) Total: 185 bytes
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
|
|
Upstream commit
Date: Wed, 14 Dec 2022 02:06:05 +0100
parser: Invalid redirections are run-time, not syntax errors
This fixes a long-standing bug where
echo 'echo >&a' | sh
errors out with
sh: 2: Syntax error: Bad fd number
despite the error being on line 1
This patch makes the error
sh: 1: Bad fd number: a
as expected
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
|