busybox/libbb
Denis Vlasenko 7465dbcf2a ash: speed up NOFORK code in ash by eliminating second find_applet().
some code reduction along the way.

function                                             old     new   delta
run_list                                            1971    1981     +10
run_nofork_applet_prime                              181     182      +1
unsetcmd                                              97      96      -1
delete_cmd_entry                                      54      53      -1
describe_command                                     399     397      -2
cmdlookup                                            152     150      -2
evaltreenr                                           602     599      -3
evaltree                                             602     599      -3
clearcmdentry                                        101      98      -3
cdcmd                                                675     672      -3
hashcmd                                              305     301      -4
find_command                                         933     910     -23
evalcommand                                         1371    1229    -142
------------------------------------------------------------------------------
(add/remove: 0/0 grow/shrink: 2/11 up/down: 11/-187)         Total: -176 bytes
2008-04-13 02:25:53 +00:00
..
appletlib.c Avoid linking in printf/bsearch if possible. -20k for static bbox with 2008-04-08 21:13:28 +00:00
ask_confirmation.c delete tons of extra #includes 2007-05-31 22:42:12 +00:00
bb_askpass.c libbb: introduse and use signal_[no_]SA_RESTART_empty_mask and sigaction_set 2008-03-12 23:19:35 +00:00
bb_basename.c actually add bb_qsort.c 2008-03-02 12:53:15 +00:00
bb_do_delay.c delete tons of extra #includes 2007-05-31 22:42:12 +00:00
bb_pwd.c bb_getpwuid, bb_getgrgid: change order of arguments to more intuitive one; 2007-07-27 11:20:10 +00:00
bb_qsort.c actually add bb_qsort.c 2008-03-02 12:53:15 +00:00
bb_strtonum.c merge post-1.3.0 fixes 2006-12-26 18:17:42 +00:00
change_identity.c inetd: use change_identity(). 2008-03-20 15:12:58 +00:00
chomp.c cryptpw: new applet (a bit less than 3k added) 2007-05-08 17:52:17 +00:00
compare_string_array.c ps: fix build breakage from vda's recent commit 2008-01-07 16:13:14 +00:00
concat_path_file.c ls: cleanup part 1 2006-10-28 12:37:16 +00:00
concat_subpath_file.c teach find_root_device to deal with /dev/ subdirs 2007-04-13 23:59:52 +00:00
Config.in *: mode tcp/udpsvd to networking, delete ipsvd/* 2008-03-17 09:13:22 +00:00
copy_file.c copy_file: handle "cp /dev/foo file" (almost) compatibly to coreutils. 2008-03-28 17:49:31 +00:00
copyfd.c explain why we use mmap instead of malloc 2007-12-02 07:18:29 +00:00
correct_password.c appletlib.c: make it actally follow _BB_SUID_ALWAYS rules 2007-10-29 19:25:45 +00:00
crc32.c make compressed help code NOMMU- and NOFORK-friendly - 2007-04-10 21:40:19 +00:00
create_icmp6_socket.c inetd: make it NOMMU-capable and IPv6-friendly. Lots of renames 2008-03-12 22:14:34 +00:00
create_icmp_socket.c inetd: make it NOMMU-capable and IPv6-friendly. Lots of renames 2008-03-12 22:14:34 +00:00
crypt_make_salt.c chpasswd: new applet by Alexander Shishkin <virtuoso@slind.org> 2007-07-20 21:28:41 +00:00
default_error_retval.c Rename two config options: 2007-04-10 23:03:30 +00:00
device_open.c fbset: fix buglet where we were using wrong pointer 2007-11-06 03:05:54 +00:00
die_if_bad_username.c die_if_bad_username: shrink: 88 -> 77 bytes 2008-03-19 23:25:00 +00:00
dump.c clean up TODO file. No real code changes. 2008-03-17 09:05:21 +00:00
error_msg_and_die.c shells: do not frocibly enable test, echo and kill _applets_, 2008-04-01 14:47:57 +00:00
error_msg.c use "glibc errno" trick not only for ash, but for entire busybox 2007-05-31 22:16:38 +00:00
execable.c reorganize applet table. Eliminates pointers to names. 2007-11-28 06:49:03 +00:00
fclose_nonstdin.c *: shrink by using [f]open_or_warn_stdin where appropriate 2008-03-17 09:07:36 +00:00
fflush_stdout_and_exit.c expand, unexpand: new applets from Tito <farmatito@tiscali.it> 2007-08-13 14:10:24 +00:00
fgets_str.c Fix xmalloc_fgets_str so that it really does NOT strip terminator. 2007-12-26 20:44:45 +00:00
find_mount_point.c cut 0.5k off mkfs.minix 2006-11-29 18:15:52 +00:00
find_pid_by_name.c which: fix testsuite failure 2007-11-25 04:54:13 +00:00
find_root_device.c find_root_device: use lstat - don't follow links 2007-04-21 23:28:03 +00:00
full_write.c lpd: spool mode added by Vladimir 2008-02-25 20:30:24 +00:00
get_console.c kbd_mode: new applet by Loïc Grenié <loic.grenie@gmail.com> 2007-10-20 00:17:34 +00:00
get_last_path_component.c *: kill bb_get_last_path_component, replace with two functions 2007-09-24 18:27:04 +00:00
get_line_from_file.c *: more uniform naming: s/xmalloc_getline/xmalloc_fgetline/ 2008-03-26 20:04:27 +00:00
getopt32.c Splitting xfuncs.c into two parts. No code chabges. 2008-04-09 00:33:23 +00:00
getpty.c remove extra spaces in help text; delete duplicate #define 2008-03-17 09:37:24 +00:00
herror_msg_and_die.c v[hp]error_msg have 2-3 callsites only -> incorporate there. 2007-08-15 20:07:53 +00:00
herror_msg.c v[hp]error_msg have 2-3 callsites only -> incorporate there. 2007-08-15 20:07:53 +00:00
human_readable.c trylink: produce even more info about final link stage 2007-08-12 20:58:27 +00:00
inet_common.c fdisk: fix a case where break was reached only for DOS labels 2008-01-24 22:49:15 +00:00
info_msg.c - fix conflicting decls of syslog related facilitynames and prioritynames tables 2008-01-27 12:50:12 +00:00
inode_hash.c make copy_file() a bit easier to understand, and smaller 2007-08-25 21:14:55 +00:00
isdirectory.c lpd: spool mode added by Vladimir 2008-02-25 20:30:24 +00:00
Kbuild Splitting xfuncs.c into two parts. No code chabges. 2008-04-09 00:33:23 +00:00
kernel_version.c modprobe: reformat to match bbox style 2006-10-27 15:12:50 +00:00
last_char_is.c diff: fix -q exit code 2006-12-16 22:18:44 +00:00
lineedit.c *: more uniform naming: s/xmalloc_getline/xmalloc_fgetline/ 2008-03-26 20:04:27 +00:00
llist.c delete tons of extra #includes 2007-05-31 22:42:12 +00:00
login.c *: whitespace fixes, no code changes 2008-03-24 02:18:03 +00:00
loop.c mount: print errno on NFS error (again) 2007-08-03 14:16:24 +00:00
make_directory.c stat: fix option -Z segv (bug 1454) 2007-08-09 08:10:13 +00:00
makedev.c actually add bb_qsort.c 2008-03-02 12:53:15 +00:00
match_fstype.c whitespace fixes 2007-05-30 00:29:55 +00:00
md5.c whitespace fixes 2008-03-28 01:00:09 +00:00
messages.c *: add optimization barrier to all "G trick" locations 2008-02-27 18:41:59 +00:00
mode_string.c trylink: produce even more info about final link stage 2007-08-12 20:58:27 +00:00
mtab_file.c trylink: produce even more info about final link stage 2007-08-12 20:58:27 +00:00
mtab.c erase_mtab: do not limit ourself to 40 mtab entries 2006-11-27 17:29:09 +00:00
obscure.c *: intrduce and use safe_gethostname. By Tito <farmatito AT tiscali.it> 2008-02-25 23:23:58 +00:00
parse_mode.c trylink: produce even more info about final link stage 2007-08-12 20:58:27 +00:00
perror_msg_and_die.c 'simple' error message functions by Loic Grenie <loic.grenie@gmail.com>. 2007-10-01 11:58:38 +00:00
perror_msg.c 'simple' error message functions by Loic Grenie <loic.grenie@gmail.com>. 2007-10-01 11:58:38 +00:00
perror_nomsg_and_die.c fix warning from needlessly-global functions 2007-01-22 23:04:27 +00:00
perror_nomsg.c fix warning from needlessly-global functions 2007-01-22 23:04:27 +00:00
pidfile.c if pidfile turned out to be !regular file, do not unlink it. 2007-08-15 20:05:37 +00:00
printable.c actually add bb_qsort.c 2008-03-02 12:53:15 +00:00
process_escape_sequence.c trylink: produce even more info about final link stage 2007-08-12 20:58:27 +00:00
procps.c *: add -Wunused-parameter; fix resulting breakage 2008-03-17 09:00:54 +00:00
ptr_to_globals.c fix build with gcc -combine 2008-04-11 11:27:29 +00:00
pw_encrypt.c libbb: random hunt for statics 2007-06-18 10:35:06 +00:00
read.c *: more uniform naming: s/xmalloc_getline/xmalloc_fgetline/ 2008-03-26 20:04:27 +00:00
README Remove trailing whitespace. Update copyright to include 2004. 2004-03-15 08:29:22 +00:00
recursive_action.c *: add -Wunused-parameter; fix resulting breakage 2008-03-17 09:00:54 +00:00
remove_file.c mdev: plug a few memory and fd leaks; simplify code a bit 2008-03-27 22:45:44 +00:00
restricted_shell.c su: make /etc/shells check configurable 2006-12-19 00:20:20 +00:00
rtc.c we need to pass back the rtc device name that was actually used so that we can turn around and check its sysfs status 2008-02-15 07:19:03 +00:00
run_shell.c *: kill bb_get_last_path_component, replace with two functions 2007-09-24 18:27:04 +00:00
safe_gethostname.c *: whitespace fixes, no code changes 2008-03-24 02:18:03 +00:00
safe_poll.c introduce safe_poll (fixes a problem in top) 2007-09-27 10:09:59 +00:00
safe_strncpy.c introduce safe_poll (fixes a problem in top) 2007-09-27 10:09:59 +00:00
safe_write.c use "glibc errno" trick not only for ash, but for entire busybox 2007-05-31 22:16:38 +00:00
selinux_common.c ping: fix breakage from -I fix 2007-10-20 02:00:49 +00:00
setup_environment.c dos2unix: tiny shrink 2008-03-17 08:42:43 +00:00
sha1.c delete tons of extra #includes 2007-05-31 22:42:12 +00:00
signals.c libbb: introduce and use sigprocmask_allsigs and sigaction_set. 2008-03-17 08:29:08 +00:00
simplify_path.c teach find_root_device to deal with /dev/ subdirs 2007-04-13 23:59:52 +00:00
skip_whitespace.c documentation bits in comments, no code changes 2007-09-25 18:35:28 +00:00
speed_table.c style fix (stray space before ';') 2007-07-21 15:08:09 +00:00
str_tolower.c - add libbb function str_tolower to convert a string to lowercase. 2007-04-10 09:37:29 +00:00
time.c actually add bb_qsort.c 2008-03-02 12:53:15 +00:00
trim.c syscall: code shrink 2007-10-29 19:22:13 +00:00
u_signal_names.c signal names hack was wrong, it broke "get signal name" function. 2007-12-04 21:44:52 +00:00
udp_io.c dnsd: properly set _src_ IP:port on outgoing UDP packets 2008-03-17 09:02:21 +00:00
update_passwd.c xmalloc_follow_symlinks() -- fix ELOOP issue with absolute paths, 2007-11-08 20:00:36 +00:00
uuencode.c trylink: produce even more info about final link stage 2007-08-12 20:58:27 +00:00
vdprintf.c httpd: fix CGI handling bug (we were closing wrong fd). 2007-08-11 20:20:02 +00:00
verror_msg.c - fix conflicting decls of syslog related facilitynames and prioritynames tables 2008-01-27 12:50:12 +00:00
vfork_daemon_rexec.c ash: speed up NOFORK code in ash by eliminating second find_applet(). 2008-04-13 02:25:53 +00:00
warn_ignoring_args.c hunt down improper include <>, make mkswap output 4Gb+ friendly 2006-11-24 15:38:03 +00:00
wfopen_input.c *: shrink by using [f]open_or_warn_stdin where appropriate 2008-03-17 09:07:36 +00:00
wfopen.c 'simple' error message functions by Loic Grenie <loic.grenie@gmail.com>. 2007-10-01 11:58:38 +00:00
xatonum_template.c num conversions: allow for leading '+' (renice needs that) 2007-12-11 13:15:11 +00:00
xatonum.c diff: shrink code (-85 bytes): 2007-06-12 20:54:54 +00:00
xconnect.c inetd: make it NOMMU-capable and IPv6-friendly. Lots of renames 2008-03-12 22:14:34 +00:00
xfunc_die.c xfunc_die: resurrect (actually, it's "svn add" being forgotten again) 2008-04-01 17:43:03 +00:00
xfuncs_printf.c actually adding xfuncs_printf.c :( 2008-04-09 00:33:53 +00:00
xfuncs.c Splitting xfuncs.c into two parts. No code chabges. 2008-04-09 00:33:23 +00:00
xgetcwd.c xrealloc_getcwd_or_warn: smaller cod and less wasted RAM at run time 2007-09-29 19:19:55 +00:00
xgethostbyname.c s/#ifdef CONFIG_/#if ENABLE_/g 2007-08-13 10:36:25 +00:00
xreadlink.c syslogd: support "symlink to symlink" for /dev/log; reduce stack usage 2007-11-10 01:28:19 +00:00
xregcomp.c less: stop dying on bad regexps, quietly pipe data w/o 2006-12-21 13:24:58 +00:00

Please see the LICENSE file for copyright information (GPLv2)

libbb is BusyBox's utility library.  All of this stuff used to be stuffed into
a single file named utility.c.  When I split utility.c to create libbb, some of
the very oldest stuff ended up without their original copyright and licensing
information (which is now lost in the mists of time).  If you see something
that you wrote that is mis-attributed, do let me know so we can fix that up.

	Erik Andersen
	<andersen@codepoet.org>