freebsd-dev/bin/sh
Jilles Tjoelker 8ef0ae8a8f sh: Make struct arglist an array instead of a linked list.
This simplifies the code (e.g. allowing use of qsort(3) instead of a
hand-rolled mergesort) and should have better cache properties.

The waste of unused args arrays after resizes is approximately the same as
the savings from getting rid of the next pointers.

At the same time, remove a piece of global state and move some duplicated
code into a function.
2015-10-11 21:33:00 +00:00
..
bltin sh: Fix compiler warnings related to duplicate or missing declarations. 2015-03-01 21:46:55 +00:00
funcs
tests sh: Allow empty << EOF markers. 2015-09-02 19:49:55 +00:00
alias.c sh: Fix some arithmetic undefined behaviour. 2015-06-24 20:51:48 +00:00
alias.h
arith_yacc.c sh: Remove two redundant (uintmax_t) casts. 2014-08-20 20:15:43 +00:00
arith_yacc.h sh: Fix compiler warnings related to duplicate or missing declarations. 2015-03-01 21:46:55 +00:00
arith_yylex.c sh: Fix compiler warnings related to duplicate or missing declarations. 2015-03-01 21:46:55 +00:00
arith.h
builtins.def wordexp: Rewrite to make WRDE_NOCMD reliable. 2015-09-30 21:32:29 +00:00
cd.c sh: Prefer "" to nullstr where possible. 2015-02-15 21:47:43 +00:00
cd.h
error.c sh: Fix more compiler warnings related to variable declarations. 2015-03-03 21:21:43 +00:00
error.h sh: Move some code from onint() to onsig(), making onint() noreturn. 2014-12-21 23:09:59 +00:00
eval.c sh: Make struct arglist an array instead of a linked list. 2015-10-11 21:33:00 +00:00
eval.h sh: Make struct arglist an array instead of a linked list. 2015-10-11 21:33:00 +00:00
exec.c sh: Fix some arithmetic undefined behaviour. 2015-06-24 20:51:48 +00:00
exec.h
expand.c sh: Make struct arglist an array instead of a linked list. 2015-10-11 21:33:00 +00:00
expand.h sh: Make struct arglist an array instead of a linked list. 2015-10-11 21:33:00 +00:00
histedit.c sh: Fix more compiler warnings. 2015-03-01 22:32:23 +00:00
input.c sh: Remove arbitrary length limit on << EOF markers. 2014-09-14 16:46:30 +00:00
input.h sh: Remove arbitrary length limit on << EOF markers. 2014-09-14 16:46:30 +00:00
jobs.c sh: Pass along SIGINT from a child if job control is enabled, even when not 2015-04-25 13:34:25 +00:00
jobs.h sh: Fix race condition with signals and wait or set -T. 2013-09-02 21:57:46 +00:00
mail.c sh: Prefer "" to nullstr where possible. 2015-02-15 21:47:43 +00:00
mail.h
main.c sh: Add more necessary INTOFF/INTON. 2014-05-09 13:27:30 +00:00
main.h
Makefile Convert bin/ to LIBADD, reduce overlinking allow to build all components as 2014-11-25 11:15:40 +00:00
Makefile.depend Add META_MODE support. 2015-06-13 19:20:56 +00:00
memalloc.c sh: Add stsavestr(), like savestr() but allocates using stalloc(). 2015-02-15 21:41:29 +00:00
memalloc.h sh: Add stsavestr(), like savestr() but allocates using stalloc(). 2015-02-15 21:41:29 +00:00
miscbltin.c sh: Fix read with escaped IFS characters at the end. 2015-08-30 17:24:22 +00:00
mkbuiltins
mknodes.c sh: Fix more compiler warnings related to variable declarations. 2015-03-03 21:21:43 +00:00
mksyntax.c sh: Fix more compiler warnings related to variable declarations. 2015-03-03 21:21:43 +00:00
mktokens sh: Fix compiler warnings related to duplicate or missing declarations. 2015-03-01 21:46:55 +00:00
myhistedit.h
mystring.c sh: Reject integer overflow in number and is_number. 2014-08-17 16:40:29 +00:00
mystring.h sh: Remove prefix() function. Use strncmp() instead. 2014-07-20 12:06:52 +00:00
nodes.c.pat sh: Add const to nodesavestr(). 2013-04-07 16:28:36 +00:00
nodetypes sh: Prefer "" to nullstr where possible. 2015-02-15 21:47:43 +00:00
options.c sh: Add set -o nolog. 2015-08-29 19:41:47 +00:00
options.h sh: Add set -o nolog. 2015-08-29 19:41:47 +00:00
output.c sh: Make sure output suitable as shell input is also printable. 2014-12-14 16:26:19 +00:00
output.h sh: Detect and flag write errors on stdout in builtins. 2012-12-12 22:01:10 +00:00
parser.c wordexp: Rewrite to make WRDE_NOCMD reliable. 2015-09-30 21:32:29 +00:00
parser.h wordexp: Rewrite to make WRDE_NOCMD reliable. 2015-09-30 21:32:29 +00:00
redir.c sh: Eliminate some gotos. 2014-10-05 21:51:36 +00:00
redir.h sh: Remove unnecessary reset functions. 2013-08-16 20:24:41 +00:00
sh.1 sh: Add set -o nolog. 2015-08-29 19:41:47 +00:00
shell.h sh: Remove #define MKINIT. 2013-07-25 19:48:15 +00:00
show.c sh: Prefer memcpy() to strcpy() in most cases. Remove the scopy macro. 2013-11-30 21:27:11 +00:00
show.h
TOUR sh: Remove mkinit. 2013-07-25 15:08:41 +00:00
trap.c sh: Fix the trap builtin to be POSIX-compliant for 'trap exit SIG' and 'trap n n...'. 2015-04-18 23:49:57 +00:00
trap.h sh: Move some code from onint() to onsig(), making onint() noreturn. 2014-12-21 23:09:59 +00:00
var.c sh: Make struct arglist an array instead of a linked list. 2015-10-11 21:33:00 +00:00
var.h sh: Make struct arglist an array instead of a linked list. 2015-10-11 21:33:00 +00:00