busybox/libbb
Denys Vlasenko e52da5570e libbb: auto_string() for efficient handling of temporary malloced stirngs
Use it in libiproute: get rid of one static string buffer.

function                                             old     new   delta
auto_string                                            -      51     +51
ll_index_to_name                                      10      49     +39
buffer_fill_and_print                                169     178      +9
scan_recursive                                       378     380      +2
decode_one_format                                    732     734      +2
cmdputs                                              334     332      -2
static.cur_saved                                       4       1      -3
static.nbuf                                           16       -     -16
printable_string                                      94      57     -37
ll_idx_n2a                                            53       -     -53
------------------------------------------------------------------------------
(add/remove: 2/2 grow/shrink: 4/3 up/down: 103/-111)           Total: -8 bytes
   text	   data	    bss	    dec	    hex	filename
 939880	    992	  17496	 958368	  e9fa0	busybox_old
 939880	    992	  17480	 958352	  e9f90	busybox_unstripped

Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2015-10-09 17:59:56 +02:00
..
appletlib.c Removes stray empty line from code 2015-07-13 03:25:46 +02:00
ask_confirmation.c *: make GNU licensing statement forms more regular 2010-08-16 20:14:46 +02:00
auto_string.c libbb: auto_string() for efficient handling of temporary malloced stirngs 2015-10-09 17:59:56 +02:00
bb_askpass.c libbb: fix bb_ask() to flush input before prompt, not after. Closes 7190 2014-07-01 13:20:22 +02:00
bb_bswap_64.c *: deinline SWAP_xE64 on 32-bit CPUs. Wins !90 bytes both on 32 and 64 bits 2010-10-18 11:40:26 +02:00
bb_do_delay.c *: make GNU licensing statement forms more regular 2010-08-16 20:14:46 +02:00
bb_pwd.c libpwdgrp: rewritten to use malloced implementation 2015-01-02 21:37:59 +01:00
bb_qsort.c *: make GNU licensing statement forms more regular 2010-08-16 20:14:46 +02:00
bb_strtod.c *: make GNU licensing statement forms more regular 2010-08-16 20:14:46 +02:00
bb_strtonum.c libbb/bb_strtonum: always set end ptr, even on error return 2011-12-22 13:00:32 +01:00
bbunit.c unit-tests: remove code depending on WANT_TIMING 2015-08-17 17:01:49 +02:00
change_identity.c libbb: Enable support for !CONFIG_MULTIUSER 2015-05-12 23:59:57 +02:00
chomp.c *: make GNU licensing statement forms more regular 2010-08-16 20:14:46 +02:00
compare_string_array.c libbb: another unit test for is_suffixed_with 2015-09-15 23:38:01 +02:00
concat_path_file.c *: make GNU licensing statement forms more regular 2010-08-16 20:14:46 +02:00
concat_subpath_file.c *: make GNU licensing statement forms more regular 2010-08-16 20:14:46 +02:00
Config.src sha3: make size/speed optimization decision configurable 2013-01-15 01:12:26 +01:00
copy_file.c Add conditional support for -v / --verbose 2014-05-19 16:23:50 +02:00
copyfd.c libbb: use sendfile() to copy data between file descriptors 2014-11-27 23:31:58 +01:00
correct_password.c ftpd: add optional support for authentication 2014-08-05 21:57:18 +02:00
crc32.c whitespace fixes 2011-02-03 00:05:48 +01:00
default_error_retval.c libbb: xfunc_error_retval can be a byte 2010-09-01 16:04:24 +02:00
device_open.c *: make GNU licensing statement forms more regular 2010-08-16 20:14:46 +02:00
die_if_bad_username.c die_if_bad_username: tighten up a bit 2011-08-09 04:05:13 +02:00
dump.c hexdump: don't unconditionally limit the usable address range 2013-03-27 15:15:33 +01:00
endofname.c move endofname() to libbb 2013-02-26 00:36:53 +01:00
executable.c libbb: rename execable -> executable. No code changes 2014-05-02 17:15:58 +02:00
fclose_nonstdin.c sed: open input files sequentially to avoid EMFILE 2013-11-28 03:14:16 +01:00
fflush_stdout_and_exit.c remove global "jmp_buf die_jmp" from !FEATURE_PREFER_APPLETS builds 2015-10-09 16:42:57 +02:00
fgets_str.c *: make GNU licensing statement forms more regular 2010-08-16 20:14:46 +02:00
find_mount_point.c find_mount_point: fix find_mount_point for char devices 2012-01-18 01:49:11 +01:00
find_pid_by_name.c *: make GNU licensing statement forms more regular 2010-08-16 20:14:46 +02:00
find_root_device.c plug a DIR* leak on error path 2010-12-28 10:25:03 +01:00
full_write.c *: whitespace fixes 2010-10-28 18:57:19 +02:00
get_console.c *: make GNU licensing statement forms more regular 2010-08-16 20:14:46 +02:00
get_cpu_count.c *: make GNU licensing statement forms more regular 2010-08-16 20:14:46 +02:00
get_last_path_component.c find: cater for libc w/o FNM_CASEFOLD 2011-05-23 00:40:54 +02:00
get_line_from_file.c libbb: split bb_get_chunk_from_file and bb_get_chunk_with_continuation 2011-06-17 03:37:43 +02:00
get_shell_name.c mark get_shell_name FAST_FUNC 2012-10-03 09:42:21 +02:00
get_volsize.c *: make GNU licensing statement forms more regular 2010-08-16 20:14:46 +02:00
getopt32.c randomconfig fixes 2011-08-10 00:51:29 +02:00
getpty.c script: make it work even if fd 0 is closed 2014-03-16 12:34:53 +01:00
hash_md5_sha.c md5sum: code shrink 2015-10-07 19:17:01 +02:00
hash_md5prime.c regularize options which control size/speed trade 2011-09-10 13:25:57 +02:00
herror_msg.c *: make GNU licensing statement forms more regular 2010-08-16 20:14:46 +02:00
human_readable.c Make smart_ulltoa return pointer to end (allows for code shink in callers) 2013-09-06 12:53:14 +02:00
in_ether.c Removes stray empty line from code 2015-07-13 03:25:46 +02:00
inet_cksum.c inet_cksum: big-endian fix 2011-09-08 10:59:26 +02:00
inet_common.c libbb: make INET[6]_rresolve use sockaddr2{host,dotted}_noport 2015-02-03 12:07:40 +01:00
info_msg.c *: make GNU licensing statement forms more regular 2010-08-16 20:14:46 +02:00
inode_hash.c du, copy_file: fix file matching on cramfs. Closes 5456 2014-02-25 15:27:58 +01:00
isdirectory.c libbb: remove is_directory's argument which is always NULL 2011-12-18 03:27:46 +01:00
Kbuild.src randomconfig fixes 2014-12-22 19:37:05 +01:00
kernel_version.c get_linux_version_code: don't fail on Linux version strints like "3.0-foo" 2012-05-05 17:47:23 +02:00
last_char_is.c *: make GNU licensing statement forms more regular 2010-08-16 20:14:46 +02:00
lineedit_ptr_hack.c *: make GNU licensing statement forms more regular 2010-08-16 20:14:46 +02:00
lineedit.c libbb: introduce and use is_prefixed_with() 2015-03-12 17:48:34 +01:00
llist.c main: free suid_config list after use 2011-05-16 12:21:31 +02:00
logenv.c zcip: Add environment variable for overriding log functionality 2014-11-04 12:19:04 +01:00
login.c libbb: introduce and use strftime_[YYYYMMDD]HHMMSS() 2013-03-29 12:30:33 +01:00
loop.c libbb/loop: don't try to re-use existing loop device 2015-02-07 19:13:57 +01:00
make_directory.c Add conditional support for -v / --verbose 2014-05-19 16:23:50 +02:00
makedev.c nicer looking ifdef in libbb/makedev.c 2011-01-24 23:53:12 +01:00
match_fstype.c libbb: introduce and use is_prefixed_with() 2015-03-12 17:48:34 +01:00
messages.c libbb: add setsockopt_foo helpers 2015-08-24 20:00:17 +02:00
missing_syscalls.c Bionic lacks tcdrain; provide a workaround 2015-04-26 13:14:50 +02:00
mode_string.c *: make GNU licensing statement forms more regular 2010-08-16 20:14:46 +02:00
mtab.c *: make GNU licensing statement forms more regular 2010-08-16 20:14:46 +02:00
nuke_str.c fix failures found by randomconfig builds 2013-12-31 23:22:36 +01:00
obscure.c unit-tests: implement the unit-testing framework 2014-06-22 16:30:41 +02:00
parse_config.c mdev: do not treat non-leading '#' chars as start of comment. Closes 4676 2012-01-11 00:37:17 +01:00
parse_mode.c libbb: more compact API for bb_parse_mode() 2015-10-07 17:55:33 +02:00
percent_decode.c wget: URL-decode user:password before base64-encoding it into auth hdr. Closes 3625. 2011-09-11 21:04:02 +02:00
perror_msg.c *: make GNU licensing statement forms more regular 2010-08-16 20:14:46 +02:00
perror_nomsg_and_die.c *: make GNU licensing statement forms more regular 2010-08-16 20:14:46 +02:00
perror_nomsg.c *: make GNU licensing statement forms more regular 2010-08-16 20:14:46 +02:00
pidfile.c *: make GNU licensing statement forms more regular 2010-08-16 20:14:46 +02:00
platform.c Bionic lacks ttyname_r; provide a workaround 2015-04-25 21:32:48 +02:00
print_flags.c *: make GNU licensing statement forms more regular 2010-08-16 20:14:46 +02:00
printable_string.c libbb: auto_string() for efficient handling of temporary malloced stirngs 2015-10-09 17:59:56 +02:00
printable.c Refactor catv. Move visible() from stty to libbb. 2013-07-30 06:29:42 +02:00
process_escape_sequence.c libbb/process_escape_sequence.c: fix recently broken handling of \\ 2010-10-25 12:14:21 +02:00
procps.c libbb: add a function to make a copy of a region of memory 2015-07-19 23:05:20 +02:00
progress.c libbb: make warning go away 2011-03-12 02:19:50 +01:00
ptr_to_globals.c *: make GNU licensing statement forms more regular 2010-08-16 20:14:46 +02:00
pw_encrypt_des.c
pw_encrypt_md5.c fix assorted unused code and wrong format specs found by cppchekc (bug 6716) 2013-11-29 16:43:33 +01:00
pw_encrypt_sha.c libbb/pw_encrypt_sha: forgot to move &ctx to 1st param here in sha hash rework 2010-12-01 13:57:25 +01:00
pw_encrypt.c libbb: don't die if crypt() returns NULL 2014-02-09 14:38:03 +01:00
read_key.c Add comments in keyboard escape sequences table 2012-06-11 14:40:17 +02:00
read_printf.c libbb: remove unnecessary argument to nonblock_immune_read 2015-04-20 13:41:32 +02:00
read.c *: make GNU licensing statement forms more regular 2010-08-16 20:14:46 +02:00
README *: trailing empty lines removed 2010-07-26 01:49:12 +02:00
recursive_action.c *: make GNU licensing statement forms more regular 2010-08-16 20:14:46 +02:00
remove_file.c Add conditional support for -v / --verbose 2014-05-19 16:23:50 +02:00
replace.c xargs: add support for -I and -i. Closes 493 2014-02-27 11:17:06 +01:00
rtc.c libbb: introduce and use is_prefixed_with() 2015-03-12 17:48:34 +01:00
run_shell.c *: s/"/bin/sh"/DEFAULT_SHELL, run_shell() API fix, remove unneeded strdup 2010-06-27 03:23:31 +02:00
safe_gethostname.c sendmail: use host rather than NIS domain name for HELO 2012-04-28 17:04:19 +02:00
safe_poll.c *: make GNU licensing statement forms more regular 2010-08-16 20:14:46 +02:00
safe_strncpy.c klogd: do not log partial lines 2010-10-19 23:07:49 +02:00
safe_write.c *: make GNU licensing statement forms more regular 2010-08-16 20:14:46 +02:00
selinux_common.c whitespace cleanup. no code changes 2013-01-14 15:57:44 +01:00
setup_environment.c su: do not change to home dir unless -l 2012-06-12 13:21:02 +02:00
signals.c libbb: correctness/size tweaks in signal-related helpers 2012-09-27 13:20:34 +02:00
simplify_path.c whitespace cleanup 2010-10-29 11:46:52 +02:00
single_argv.c basename,dirname,freeramdisk,rx,raidautorun,runsv,chvt: skip "--" argument 2011-04-11 03:58:30 +02:00
skip_whitespace.c libbb: introduce and use is_prefixed_with() 2015-03-12 17:48:34 +01:00
speed_table.c libbb: FreeBSD fix for B<num> baud rate constants not fitting into a short. 2014-01-08 15:25:20 +01:00
str_tolower.c *: make GNU licensing statement forms more regular 2010-08-16 20:14:46 +02:00
strrstr.c unit-tests: implement the unit-testing framework 2014-06-22 16:30:41 +02:00
sysconf.c libbb: add sanity check in bb_arg_max() 2014-12-24 01:46:29 +01:00
systemd_support.c typo fix 2011-02-12 01:56:25 +01:00
time.c libbb: fix parsing of "10101010" date/time form 2014-01-21 07:58:18 +01:00
trim.c *: make GNU licensing statement forms more regular 2010-08-16 20:14:46 +02:00
u_signal_names.c kill[all[5]],pkill: make signal list show signal numbers, and show RTMIN/MAX 2011-01-03 13:08:58 +01:00
udp_io.c libbb: add setsockopt_foo helpers 2015-08-24 20:00:17 +02:00
unicode.c lineedit: improve Unicode handling (still buggy though) 2013-08-19 16:44:05 +02:00
update_passwd.c libbb: introduce and use is_prefixed_with() 2015-03-12 17:48:34 +01:00
utmp.c *: Switch to POSIX utmpx API 2015-04-02 23:03:46 +02:00
uuencode.c libbb: shrink base64 decoding a bit 2011-10-28 16:15:00 +02:00
vdprintf.c libbb.h: remove unused defines 2011-10-24 04:06:18 +02:00
verror_msg.c Fix compile failures 2014-05-02 07:18:55 +02:00
vfork_daemon_rexec.c remove global "jmp_buf die_jmp" from !FEATURE_PREFER_APPLETS builds 2015-10-09 16:42:57 +02:00
warn_ignoring_args.c *: make GNU licensing statement forms more regular 2010-08-16 20:14:46 +02:00
wfopen_input.c *: whitespace fixes 2010-10-28 18:57:19 +02:00
wfopen.c *: make GNU licensing statement forms more regular 2010-08-16 20:14:46 +02:00
write.c *: make GNU licensing statement forms more regular 2010-08-16 20:14:46 +02:00
xatonum_template.c whitespace fixes. no code changes 2013-01-15 13:58:01 +01:00
xatonum.c truncate: new applet 2015-03-22 17:56:38 +01:00
xconnect.c libbb: add setsockopt_foo helpers 2015-08-24 20:00:17 +02:00
xfunc_die.c remove global "jmp_buf die_jmp" from !FEATURE_PREFER_APPLETS builds 2015-10-09 16:42:57 +02:00
xfuncs_printf.c libbb: add a function to make a copy of a region of memory 2015-07-19 23:05:20 +02:00
xfuncs.c Removes stray empty line from code 2015-07-13 03:25:46 +02:00
xgetcwd.c *: whitespace fixes 2010-10-28 18:57:19 +02:00
xgethostbyname.c *: make GNU licensing statement forms more regular 2010-08-16 20:14:46 +02:00
xreadlink.c libbb: fix a bad check for uclibc >= 0.9.31 2014-03-16 20:53:40 +01:00
xrealloc_vector.c *: make GNU licensing statement forms more regular 2010-08-16 20:14:46 +02:00
xregcomp.c *: make GNU licensing statement forms more regular 2010-08-16 20:14:46 +02: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>