| Commit message (Collapse) | Author | Age | Files | Lines |
... | |
| |
| |
| |
| | |
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
|
| | |
|
| |
| |
| |
| |
| |
| |
| | |
The forkpoint_fn in the forkshell structure was redundant as
the fpid element indicated which function to call in the child.
Explicitly set fpid before calling spawn_forkshell and replace
the forkpoint_fn array with a function, forkshell_child.
|
| |
| |
| |
| |
| |
| |
| | |
Move some MinGW-specific code into sections at the top and
bottom of the file.
Exclude some code that isn't used in the MinGW port.
|
| | |
|
| | |
|
| | |
|
| | |
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
The builtin environment variables can be accessed using macros
that reference the varinit array. initvar puts pointers to varinit
into the variable hash table. During forkshell_prepare two copies
of the builtin variables are made: once as the varinit array and
again through the pointers in the hash table. One of these copies
is accessed by code that uses the macros and the other by code that
looks up the variable by name.
This is the cause of the strange behaviour of IFS in backticks:
https://github.com/pclouds/busybox-w32/issues/12
To avoid the problem the pointers in the hash table are reset to
the varinit array in forkshell_init. It seemed easier to do it
this way than to try and prevent the duplicate copies being made
in the first place.
|
| | |
|
|\|
| |
| |
| |
| |
| | |
Conflicts:
include/platform.h
scripts/basic/fixdep.c
|
| |
| |
| |
| |
| |
| |
| | |
function old new delta
ash_main 1437 1442 +5
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
|
| |
| |
| |
| |
| |
| | |
The localvars linked list is only required to tidy up local
variables when a shell function returns. There's no point in
copying it to a child process.
|
| |
| |
| |
| |
| |
| | |
A local variable can have a null text pointer: if so, don't call
strlen. localvar_copy handles this correctly because nodeckstrdup
doesn't try to copy from the null pointer.
|
| | |
|
| | |
|
| | |
|
|\|
| |
| |
| |
| |
| | |
Conflicts:
archival/Config.src
shell/ash.c
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
function old new delta
ash_main 1456 1505 +49
.rodata 148488 148494 +6
------------------------------------------------------------------------------
(add/remove: 0/0 grow/shrink: 2/0 up/down: 55/0) Total: 55 bytes
Signed-off-by: Bernhard Reutner-Fischer <rep.dot.nop@gmail.com>
|
| |
| |
| |
| |
| |
| | |
(add/remove: 0/0 grow/shrink: 10/15 up/down: 13/-27) Total: -14 bytes
Signed-off-by: Bernhard Reutner-Fischer <rep.dot.nop@gmail.com>
|
|\| |
|
| |
| |
| |
| | |
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
|
| |
| |
| |
| | |
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
function old new delta
show_history - 39 +39
builtin_history - 16 +16
historycmd - 13 +13
bltins1 312 324 +12
builtintab 336 344 +8
popstring 134 140 +6
hush_main 1048 1046 -2
ash_main 1398 1396 -2
size_from_HISTFILESIZE 44 40 -4
------------------------------------------------------------------------------
(add/remove: 3/0 grow/shrink: 3/3 up/down: 94/-8) Total: 86 bytes
Signed-off-by: Flemming Madsen <busybox@themadsens.dk>
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
|
| |
| |
| |
| |
| |
| | |
When a shell script is spawned from a GUI application a console
window is displayed. If the noconsole option is set the console
window is hidden.
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
A nonblocking waitpid was implemented using WaitForMultipleObjects
with a timeout of 0. This was to fix an issue where builtin
commands in a foreground shell were blocked while a background
command was running.
However, this caused the shell to consume 100% CPU. A workaround
seems to be to use a very small (1ms) timeout.
|
| | |
|
| | |
|
|\| |
|
| |
| |
| |
| | |
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
ash --login should read ~/.profile instead of .profile in the current
directory. I noticed it while trying to figure out why /root/.profile
is only read sometimes.
function old new delta
ash_main 1374 1398 +24
Signed-off-by: Stefan Hellermann <stefan@the2masters.de>
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
move HISTFILE=$HOME/.ash_history below reading /etc/profile,
so that /etc/profile can set $HOME. HOME can be unset when
directly invoking ash --login from init without going through
getty.
Signed-off-by: Stefan Hellermann <stefan@the2masters.de>
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>
|
|\| |
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
The script which triggers the leak:
while true
do
while true
do
break;
done</dev/null
done
Signed-off-by: Jon Tollefson <kniht@linux.vnet.ibm.com>
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
|
|\| |
|
| |
| |
| |
| |
| |
| |
| | |
function old new delta
exportcmd 129 175 +46
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
|
| |
| |
| |
| | |
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
|
|\|
| |
| |
| |
| |
| | |
Conflicts:
include/libbb.h
shell/ash.c
|
| |
| |
| |
| | |
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>
|
| | |
|
| | |
|
| | |
|
| | |
|
| | |
|