hush/libbb
Denys Vlasenko 9f93d62192 libbb: better unicode width support. Hopefully fixes bug 839.
Also opens up a possibility to make other unicode stuff smaller
and more correct later. but:

function                                             old     new   delta
static.combining                                       -     516    +516
bb_wcwidth                                             -     328    +328
unicode_cut_nchars                                     -     141    +141
mbstowc_internal                                       -      93     +93
in_table                                               -      78     +78
cal_main                                             899     961     +62
static.combining0x10000                                -      40     +40
unicode_strlen                                         -      31     +31
bb_mbstrlen                                           31       -     -31
bb_mbstowcs                                          173     102     -71
------------------------------------------------------------------------------
(add/remove: 7/1 grow/shrink: 1/1 up/down: 1289/-102)        Total: 1187 bytes

Uses code of Markus Kuhn, which is in public domain:
http://www.cl.cam.ac.uk/~mgk25/ucs/wcwidth.c
"Permission to use, copy, modify, and distribute this software
 for any purpose and without fee is hereby granted. The author
 disclaims all warranties with regard to this software."

Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2010-01-24 07:44:03 +01:00
..
appletlib.c build failure fix and some cosmetics 2009-10-23 01:30:26 +02:00
ask_confirmation.c libbb/ask_confirmation.c: shrink 2009-10-27 09:49:04 +01:00
bb_askpass.c *: introduce and use ffulsh_all() 2009-11-02 14:19:51 +01:00
bb_basename.c
bb_do_delay.c libbb/bb_do_delay.c: shrink 2009-10-27 09:54:34 +01:00
bb_pwd.c libbb: add xgetgrnam too. ~0 code size change 2008-12-05 16:23:06 +00:00
bb_qsort.c
bb_strtod.c libbb: stop using bb_strtod for now 2009-06-15 09:50:54 +02:00
bb_strtonum.c s/othervise/otherwise/g 2008-07-23 08:41:08 +00:00
change_identity.c
chomp.c
compare_string_array.c
concat_path_file.c
concat_subpath_file.c
Config.in rename sent_ESC_br_n6 variable to sent_ESC_br6n 2009-10-27 10:47:49 +01:00
copy_file.c cp: fix -H handling 2010-01-15 22:05:07 +01:00
copyfd.c
correct_password.c - add new applet mkpasswd(1) 2008-12-03 18:48:39 +00:00
crc32.c Fix forgotten license comments 2008-12-07 00:52:58 +00:00
create_icmp6_socket.c Fix forgotten license comments 2008-12-07 00:52:58 +00:00
create_icmp_socket.c Fix forgotten license comments 2008-12-07 00:52:58 +00:00
default_error_retval.c
device_open.c
die_if_bad_username.c libbb: fix typo in comment 2009-03-31 13:14:18 +00:00
dump.c libbb: robustify isXXXX(). +39 bytes 2009-11-18 11:34:43 +01:00
error_msg_and_die.c
error_msg.c
execable.c
fclose_nonstdin.c
fflush_stdout_and_exit.c
fgets_str.c ftpd: fix command fetching to not do it in 1-byte reads; 2009-03-18 17:32:44 +00:00
find_mount_point.c fix mountpoint test to not prevemt mkfs_xxx from making image in any file 2009-07-18 16:22:26 +02:00
find_pid_by_name.c make find_pid_by_name look at /proc/PID/exe too 2009-07-29 01:35:13 +02:00
find_root_device.c
full_write.c
get_console.c *: code shrink by adding a wrapper around very common tcsetattr(0, TCSANOW, xx) op 2008-11-05 13:20:58 +00:00
get_last_path_component.c
get_line_from_file.c optimize config_read() (by Timo Teras <timo.teras AT iki.fi>) 2008-08-09 17:16:40 +00:00
getopt32.c top: add -m ("memory") option 2009-09-11 23:26:42 +02:00
getpty.c libbb: use ptsname_r, it's smaller 2008-08-17 12:47:19 +00:00
herror_msg_and_die.c
herror_msg.c
human_readable.c ls: make it so that group never glues itself to file size 2010-01-18 01:55:00 +01:00
inet_common.c tweak Config texts and some broken English elsewhere 2009-06-18 13:23:58 +02:00
info_msg.c crond: do not log info messages at LOG_ERR. Closes bug 681. +62 bytes. 2009-12-13 17:42:49 +01:00
inode_hash.c du: fix "du /dir /dir" case 2008-11-11 21:15:56 +00:00
isdirectory.c httpd: shrink mime type matching code (suggested by Bernhard) 2009-09-10 01:46:02 +02:00
Kbuild randomconfig fixes 2009-12-12 02:42:35 +01:00
kernel_version.c *: use "can't" instead of "cannot" 2009-11-13 09:08:27 +01:00
last_char_is.c
lineedit_ptr_hack.c
lineedit.c libbb: better unicode width support. Hopefully fixes bug 839. 2010-01-24 07:44:03 +01:00
llist.c move llist_find_str from modutils to libbb 2009-04-13 20:52:00 +00:00
login.c *: introduce and use ffulsh_all() 2009-11-02 14:19:51 +01:00
loop.c remove some GNUisms. by Dan Fandrich (dan AT coneharvesters.com) 2009-09-06 02:36:23 +02:00
make_directory.c tar: fix bug 673 (misdetection of repeated dir as hardlink). +92 bytes 2009-11-29 07:45:33 +01:00
makedev.c
match_fstype.c mount: support "-O option"; stop trying to mount swap partitions 2009-03-14 22:57:20 +00:00
md5.c shrink sha hashing a bit more (remove wbuflen field from ctx), 2009-03-12 15:40:27 +00:00
md5prime.c libbb: disable a second md5 implementation which managed to creep in :) 2008-11-11 01:38:04 +00:00
messages.c ntpd: and real handling for -N, show usage w/o options; trim text 2009-11-25 14:52:47 +01:00
mode_string.c taskset: fix some careless code in both fancy and non-fancy cases. 2008-07-11 13:57:08 +00:00
mtab_file.c *: mass renaming of USE_XXXX to IF_XXXX 2009-04-21 11:09:40 +00:00
mtab.c libbb/mtab: fix xrealloc_vector fallout 2008-07-09 19:44:08 +00:00
obscure.c
parse_config.c documentation and typo fixes. By Dan Fandrich (dan AT coneharvesters.com) 2009-09-06 02:58:59 +02:00
parse_mode.c *: optimize code size in strtoul calls 2009-09-23 17:17:53 +02:00
perror_msg_and_die.c
perror_msg.c
perror_nomsg_and_die.c
perror_nomsg.c
pidfile.c
platform.c libbb: fix vasprintf implementation 2009-11-17 05:33:47 +01:00
print_flags.c libbb: fix print_flags() [fix somehow is only in 1.11.1?) 2008-07-20 13:47:51 +00:00
printable.c
process_escape_sequence.c echo et al: support \e escape 2009-10-29 03:39:55 +01:00
procps.c pidof/killall: fix bug 625 (kernel threads get stale "binary name") 2009-09-22 23:06:07 +02:00
progress.c fold: unicode support. Based on a patch by Tomas Heinrich <heinrich.tomas@gmail.com> 2010-01-04 20:49:58 +01:00
ptr_to_globals.c
pw_encrypt_des.c des encrypt: fix goof with NUL byte added at the end as '.' 2009-05-01 03:41:25 +02:00
pw_encrypt_md5.c libbb/crypt: code shrink 2008-12-04 15:29:35 +00:00
pw_encrypt_sha.c shrink sha hashing 2009-03-12 15:39:11 +00:00
pw_encrypt.c libbb: move crypt_make_salt() to pw_encrypt.c, reuse 2008-12-07 01:16:34 +00:00
read_key.c read_key,lineeedit: parse position answerback faster; sanitize its use 2009-10-26 15:23:32 +01:00
read.c tidy up O_NONBLOCK usage. use libbb functions in stty. 2009-11-11 21:05:42 +01:00
README
recursive_action.c find: -follow should not error out on dandling links 2009-09-29 11:07:04 +02:00
remove_file.c *: use "can't" instead of "cannot" 2009-11-13 09:08:27 +01:00
restricted_shell.c
rtc.c *: make it easier to distinquish "struct tm", pointer to one, etc 2010-01-09 19:10:49 +01:00
run_shell.c *: use "can't" instead of "cannot" 2009-11-13 09:08:27 +01:00
safe_gethostname.c
safe_poll.c
safe_strncpy.c fix all cases of strcpy on overlapping strings. 2008-07-22 20:16:55 +00:00
safe_write.c
selinux_common.c *: use "can't" instead of "cannot" 2009-11-13 09:08:27 +01:00
setup_environment.c setup_environment: cd $HOME regardless of clear_env value. 2008-10-30 23:58:19 +00:00
sha1.c big endian warning fixes 2009-11-07 01:31:14 +01:00
signals.c init: preparatory patch, no code changes 2009-01-31 01:02:07 +00:00
simplify_path.c httpd: simplify insane conf file parser 2009-04-22 13:49:16 +00:00
single_argv.c *: remove a few more cases of argc usage. -89 bytes. 2009-11-28 15:18:53 +01:00
skip_whitespace.c *: use better isspace implementation 2009-10-22 19:41:45 +02:00
speed_table.c add B921600 2009-10-20 19:53:24 +02:00
str_tolower.c
strrstr.c - update my name. No obj-code changes ;) 2008-09-25 12:13:34 +00:00
time.c libbb: introduce and use monotonic_ms 2010-01-12 12:52:30 +01:00
trim.c *: remove last function calls to isspace 2009-10-22 22:28:08 +02:00
u_signal_names.c
udp_io.c udp_io: fix two more potential cases of unaligned accesses. 0 code size changes. 2009-11-26 16:52:25 +01:00
unicode_wcwidth.c libbb: better unicode width support. Hopefully fixes bug 839. 2010-01-24 07:44:03 +01:00
unicode.c libbb: better unicode width support. Hopefully fixes bug 839. 2010-01-24 07:44:03 +01:00
update_passwd.c adduser: more fixes to "add user to specified group" 2010-01-09 20:57:06 +01:00
uuencode.c
vdprintf.c
verror_msg.c *: introduce and use ffulsh_all() 2009-11-02 14:19:51 +01:00
vfork_daemon_rexec.c *: introduce and use ffulsh_all() 2009-11-02 14:19:51 +01:00
warn_ignoring_args.c *: make 2 more "int argc"'s unused; more saved if !DESKTOP 2010-01-04 13:16:08 +01:00
wfopen_input.c
wfopen.c libbb: added xfdopen_for_read/write 2009-11-15 23:28:11 +01:00
write.c *: move get_sock_lsa and xwrite_str to libbb, use where appropriate 2009-03-09 00:12:37 +00:00
xatonum_template.c *: remove last function calls to isspace 2009-10-22 22:28:08 +02:00
xatonum.c
xconnect.c ntpd: locally bind every peer socket. +22 bytes 2009-11-24 16:03:47 +01:00
xfunc_die.c
xfuncs_printf.c *: do not assign to stdout/stderr, it's not portable. 2010-01-02 18:49:22 +01:00
xfuncs.c tidy up O_NONBLOCK usage. use libbb functions in stty. 2009-11-11 21:05:42 +01:00
xgetcwd.c Fix forgotten license comments 2008-12-07 00:52:58 +00:00
xgethostbyname.c
xreadlink.c ls: make readlink error to not disrupt output (try ls -l /proc/self/fd). 2009-03-21 19:11:23 +00:00
xrealloc_vector.c libbb/xrealloc_vector.c: better comment 2009-10-27 10:01:01 +01:00
xregcomp.c grep: option to use GNU regex matching instead of POSIX one. 2008-08-09 16:15:14 +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>