Denis Vlasenko [Fri, 18 Jul 2008 11:10:51 +0000 (11:10 -0000)]
printf: fix %b, fix several bugs in %*.*, fix compat issues with
aborting too early, support %zd; expand testsuite
function old new delta
get_width_prec - 46 +46
multiconvert 82 99 +17
conv_strtod 44 54 +10
print_direc 382 391 +9
printf_main 629 633 +4
conv_strtoul 20 16 -4
conv_strtol 20 16 -4
my_xstrtoul 20 - -20
my_xstrtol 20 - -20
my_xstrtod 21 - -21
------------------------------------------------------------------------------
(add/remove: 1/3 grow/shrink: 4/2 up/down: 86/-69) Total: 17 bytes
Bernhard Reutner-Fischer [Fri, 18 Jul 2008 07:42:00 +0000 (07:42 -0000)]
- fix compilation for mips (Brian Daniels)
Denis Vlasenko [Thu, 17 Jul 2008 21:32:32 +0000 (21:32 -0000)]
vi: using array data after it fell out of scope is stupid.
Denis Vlasenko [Thu, 17 Jul 2008 19:37:09 +0000 (19:37 -0000)]
sendmail: update from the maintainer
Denis Vlasenko [Thu, 17 Jul 2008 18:39:36 +0000 (18:39 -0000)]
pidof/killall: allow find_pid_by_name to find running
processes started as scripts_with_name_longer_than_15_bytes.sh
closes bug 4054 (and is generally neat)
Denis Vlasenko [Thu, 17 Jul 2008 18:33:35 +0000 (18:33 -0000)]
update README
Denis Vlasenko [Thu, 17 Jul 2008 18:26:45 +0000 (18:26 -0000)]
build system: fix indentation in config menu
Denis Vlasenko [Thu, 17 Jul 2008 17:58:44 +0000 (17:58 -0000)]
init: fix compile-time error; fix exiting on broken config file
parse_config: cosmetics
Bernhard Reutner-Fischer [Thu, 17 Jul 2008 15:13:31 +0000 (15:13 -0000)]
- very minor shrinkage (-9b)
Bernhard Reutner-Fischer [Thu, 17 Jul 2008 14:00:42 +0000 (14:00 -0000)]
- fix "noreduce" flag of config_read (didn't work at all, at least for me).
- convert init's inittab parsing to the new config parser:
function old new delta
config_read 393 386 -7
static.actions 72 64 -8
.rodata 121772 121764 -8
parse_inittab 554 393 -161
------------------------------------------------------------------------------
(add/remove: 0/0 grow/shrink: 0/4 up/down: 0/-184) Total: -184 bytes
Bernhard Reutner-Fischer [Thu, 17 Jul 2008 11:59:13 +0000 (11:59 -0000)]
- fix segfault in nameif with mactab file
(by fixing and shrink config parser)
function old new delta
config_free_data - 37 +37
config_open 43 48 +5
pack_gzip 1658 1660 +2
nameif_main 527 525 -2
SynchronizeFile 629 623 -6
make_device 1184 1176 -8
config_close 31 18 -13
config_read 431 393 -38
------------------------------------------------------------------------------
(add/remove: 1/0 grow/shrink: 2/5 up/down: 44/-67) Total: -23 bytes
Denis Vlasenko [Thu, 17 Jul 2008 09:17:51 +0000 (09:17 -0000)]
printf: protect against bogus format specifiers. Hopefully closes bug 4184
Denis Vlasenko [Thu, 17 Jul 2008 08:48:13 +0000 (08:48 -0000)]
bb_strtoXXX: close bug 4174 (potential use of buf[-1])
Bernhard Reutner-Fischer [Thu, 17 Jul 2008 08:02:28 +0000 (08:02 -0000)]
- warn about overlong lines in help-texts
I initially bailed out with an error, but then that's a bit rough. Just warn to trick somebody into fixing them..
Denis Vlasenko [Wed, 16 Jul 2008 23:45:11 +0000 (23:45 -0000)]
config help fixes
Denis Vlasenko [Wed, 16 Jul 2008 23:04:49 +0000 (23:04 -0000)]
fix up callsites of config_read to check for >= 0
Denis Vlasenko [Wed, 16 Jul 2008 22:12:18 +0000 (22:12 -0000)]
update of config file parser from Vladimir
Denis Vlasenko [Wed, 16 Jul 2008 21:55:03 +0000 (21:55 -0000)]
sendmail: do not discard all headers
Denis Vlasenko [Wed, 16 Jul 2008 21:51:43 +0000 (21:51 -0000)]
cpio: make long opts depend only on ENABLE_GETOPT_LONG
Denis Vlasenko [Wed, 16 Jul 2008 21:49:02 +0000 (21:49 -0000)]
install: do not chown intermediate directories with install -d; shrink
(by Natanael Copa)
function old new delta
.rodata 171528 171511 -17
install_main 841 697 -144
------------------------------------------------------------------------------
(add/remove: 0/0 grow/shrink: 0/2 up/down: 0/-161) Total: -161 bytes
Denis Vlasenko [Wed, 16 Jul 2008 21:11:09 +0000 (21:11 -0000)]
s/SELINIX/SELINUX/
Denis Vlasenko [Wed, 16 Jul 2008 11:00:16 +0000 (11:00 -0000)]
libbb: get rid of statics in dump.c; code shrinks a lot too
function old new delta
alloc_dumper - 26 +26
hexdump_main 600 601 +1
static.done 1 - -1
static.ateof 1 - -1
bb_dump_vflag 1 - -1
static.savp 4 - -4
static.nextfs 4 - -4
static.curp 4 - -4
exitval 4 - -4
endfu 4 - -4
bb_dump_length 4 - -4
bb_dump_fshead 4 - -4
bb_dump_blocksize 4 - -4
_argv 4 - -4
bb_dump_add 365 358 -7
savaddress 8 - -8
eaddress 8 - -8
bb_dump_skip 8 - -8
address 8 - -8
bb_dump_dump 2748 2672 -76
next 538 445 -93
------------------------------------------------------------------------------
(add/remove: 1/16 grow/shrink: 1/3 up/down: 27/-247) Total: -220 bytes
text data bss dec hex filename
789458 607 6764 796829 c289d busybox_old
789309 601 6696 796606 c27be busybox_unstripped
Denis Vlasenko [Wed, 16 Jul 2008 07:34:00 +0000 (07:34 -0000)]
tee: fix infinite looping on open error (echo asd | tee "")
Denis Vlasenko [Wed, 16 Jul 2008 07:22:14 +0000 (07:22 -0000)]
od,hexdump: fix bug where xrealloc may move pointer,
leaving other pointers dangling (bug 4104).
+ many style fixes in libbb/dump.c.
Denis Vlasenko [Tue, 15 Jul 2008 22:33:13 +0000 (22:33 -0000)]
mdev: support for serializing hotplug
function old new delta
mdev_main 503 647 +144
Denis Vlasenko [Tue, 15 Jul 2008 22:01:49 +0000 (22:01 -0000)]
sleep: make fractional seconds separately selectable in .config
Denis Vlasenko [Tue, 15 Jul 2008 21:29:44 +0000 (21:29 -0000)]
libbb: document plans to speed up line-based input
Denis Vlasenko [Tue, 15 Jul 2008 21:09:30 +0000 (21:09 -0000)]
libbb: unified config parser (By Vladimir Dronnikov)
mdev: use it
function old new delta
config_read - 400 +400
config_open - 43 +43
config_close - 9 +9
qrealloc 33 36 +3
compare_keys 735 737 +2
xstrtoull_range_sfx 296 295 -1
qgravechar 109 106 -3
get_address 181 178 -3
next_token 928 923 -5
sv_main 1228 1222 -6
find_main 418 406 -12
next_field 32 - -32
make_device 1269 1184 -85
------------------------------------------------------------------------------
(add/remove: 3/1 grow/shrink: 2/7 up/down: 457/-147) Total: 310 bytes
Denis Vlasenko [Tue, 15 Jul 2008 20:56:23 +0000 (20:56 -0000)]
sendmail: do not ignore CC; accept to: and cc: case-insensitively.
+20 bytes.
Denis Vlasenko [Tue, 15 Jul 2008 10:33:12 +0000 (10:33 -0000)]
libbb: experimental faster string reading routines.
Denis Vlasenko [Tue, 15 Jul 2008 06:45:14 +0000 (06:45 -0000)]
comm: almost total rewrite; add testsuite
function old new delta
writeline 128 125 -3
comm_main 540 239 -301
------------------------------------------------------------------------------
(add/remove: 0/0 grow/shrink: 0/2 up/down: 0/-304) Total: -304 bytes
Denis Vlasenko [Tue, 15 Jul 2008 05:21:47 +0000 (05:21 -0000)]
ls: fix a bug where we may use uninintialized variable
Denis Vlasenko [Tue, 15 Jul 2008 05:10:15 +0000 (05:10 -0000)]
tee: "-" is a name for stdout, handle it that way
Denis Vlasenko [Mon, 14 Jul 2008 21:29:35 +0000 (21:29 -0000)]
insmod: users report that "|| defined(__powerpc__)" is missing
Denis Vlasenko [Mon, 14 Jul 2008 08:26:47 +0000 (08:26 -0000)]
hush: fix "... pattern) cmd;; esac" case
Denis Vlasenko [Mon, 14 Jul 2008 06:29:38 +0000 (06:29 -0000)]
hush: delete unused field in struct child.
reinstate needed check for invalid syntax.
document command parsing in hush_doc.txt.
Denis Vlasenko [Mon, 14 Jul 2008 04:32:29 +0000 (04:32 -0000)]
hush: add case statement support. It is incomplete and disabled for now.
costs ~300 bytes when enabled.
Denis Vlasenko [Sun, 13 Jul 2008 20:39:23 +0000 (20:39 -0000)]
ash: small code shrink
Denis Vlasenko [Sat, 12 Jul 2008 23:47:24 +0000 (23:47 -0000)]
libbb: shrink print_login_issue (by Vladimir Dronnikov)
function old new delta
print_login_issue 469 435 -34
Denis Vlasenko [Sat, 12 Jul 2008 23:02:43 +0000 (23:02 -0000)]
whitespace fixes
Denis Vlasenko [Sat, 12 Jul 2008 22:48:58 +0000 (22:48 -0000)]
whitespace fixing script
Denis Vlasenko [Sat, 12 Jul 2008 17:05:14 +0000 (17:05 -0000)]
sleep: if FANCY && DESKTOP, support fractional seconds, minutes,
hours and so on. It's coreutils compat. bloatcheck is atrocious :(
function old new delta
sleep_main 71 362 +291
bb_strtod - 127 +127
make_device 1269 1294 +25
getoptscmd 708 713 +5
switch_root_main 402 401 -1
display_speed 90 85 -5
show_entry 295 289 -6
parse_expr 841 833 -8
------------------------------------------------------------------------------
(add/remove: 1/0 grow/shrink: 3/4 up/down: 448/-20) Total: 428 bytes
Denis Vlasenko [Sat, 12 Jul 2008 11:23:36 +0000 (11:23 -0000)]
*: add FAST_FUNC markers
function old new delta
getopt_mk_fifo_nod 73 70 -3
mv_main 505 501 -4
cp_mv_stat2 79 73 -6
cp_main 266 257 -9
cp_mv_stat 22 10 -12
------------------------------------------------------------------------------
(add/remove: 0/1 grow/shrink: 1/5 up/down: 46/-80) Total: -34 bytes
Denis Vlasenko [Sat, 12 Jul 2008 11:22:19 +0000 (11:22 -0000)]
mv: fix a case when we move dangling symlink
Denis Vlasenko [Sat, 12 Jul 2008 10:28:41 +0000 (10:28 -0000)]
mdev: check for "/block/" substring for block dev detection
function old new delta
make_device 1294 1269 -25
Denis Vlasenko [Sat, 12 Jul 2008 10:23:16 +0000 (10:23 -0000)]
mdev: if device was moved at creation, at removal coreectly remove
it from moved location and also remove symlinks to it
function old new delta
build_alias - 78 +78
mdev_main 505 503 -2
make_device 1300 1294 -6
------------------------------------------------------------------------------
(add/remove: 1/0 grow/shrink: 0/2 up/down: 78/-8) Total: 70 bytes
Denis Vlasenko [Sat, 12 Jul 2008 09:32:38 +0000 (09:32 -0000)]
fuser: a bit of safety in scanf
Denis Vlasenko [Sat, 12 Jul 2008 09:20:44 +0000 (09:20 -0000)]
cpio: internalize archive_xread_all_eof. add a few paranoia checks
for corrupted cpio files.
modprobe-small: remove stray include
route: small code shrink
function old new delta
get_header_cpio 958 980 +22
archive_xread_all_eof 33 - -33
------------------------------------------------------------------------------
(add/remove: 0/1 grow/shrink: 1/0 up/down: 22/-33) Total: -11 bytes
Denis Vlasenko [Fri, 11 Jul 2008 23:44:50 +0000 (23:44 -0000)]
switch_root: shrink
function old new delta
switch_root_main 402 401 -1
rootdev 8 - -8
delete_contents 226 179 -47
------------------------------------------------------------------------------
(add/remove: 0/1 grow/shrink: 0/2 up/down: 0/-56) Total: -56 bytes
Denis Vlasenko [Fri, 11 Jul 2008 23:09:34 +0000 (23:09 -0000)]
ash: fix segfault in "command -v"
Denis Vlasenko [Fri, 11 Jul 2008 22:20:59 +0000 (22:20 -0000)]
cpio: on unpack, limit filename length to 8k; shorten comment a bit
Denis Vlasenko [Fri, 11 Jul 2008 22:11:50 +0000 (22:11 -0000)]
Announce 1.11.1
Denis Vlasenko [Fri, 11 Jul 2008 21:43:11 +0000 (21:43 -0000)]
cpio: testsuite for bugs.debian.org/cgi-bin/bugreport.cgi?bug=466771
which was fixed in proevious commit
Denis Vlasenko [Fri, 11 Jul 2008 21:42:12 +0000 (21:42 -0000)]
cpio: support some long options; document GNU options
Denis Vlasenko [Fri, 11 Jul 2008 21:41:14 +0000 (21:41 -0000)]
testsuite: uniformly use $ECHO with -n -e
Denis Vlasenko [Fri, 11 Jul 2008 15:05:51 +0000 (15:05 -0000)]
time: don't segfault with no arguments
Denis Vlasenko [Fri, 11 Jul 2008 13:57:08 +0000 (13:57 -0000)]
taskset: fix some careless code in both fancy and non-fancy cases.
-5 bytes for fancy, +5 for non-fancy
Denis Vlasenko [Fri, 11 Jul 2008 10:21:29 +0000 (10:21 -0000)]
build system: re-add mistakenly deleted script
Denis Vlasenko [Fri, 11 Jul 2008 09:55:58 +0000 (09:55 -0000)]
website: announce updated HOWTO
Denis Vlasenko [Fri, 11 Jul 2008 08:23:52 +0000 (08:23 -0000)]
fix compile failures resulting from last few commits
Denis Vlasenko [Thu, 10 Jul 2008 23:42:36 +0000 (23:42 -0000)]
fix typo in config help text
Denis Vlasenko [Thu, 10 Jul 2008 23:06:00 +0000 (23:06 -0000)]
dpkg_deb: slight code shrink
ar: reuse existing ar unpacking code
get_header_tar: handle autodetection for tiny .tar.gz files too
unarchive.h: do not include CONFIGed out things
function old new delta
get_header_tar 1521 1534 +13
dpkg_deb_main 400 380 -20
ar_main 260 196 -64
------------------------------------------------------------------------------
(add/remove: 0/0 grow/shrink: 1/2 up/down: 13/-84) Total: -71 bytes
Denis Vlasenko [Thu, 10 Jul 2008 17:43:01 +0000 (17:43 -0000)]
open_transformer: do not return fd, it does not change
libbb: adopt zipped read from modprobe-small
function old new delta
getoptscmd 708 713 +5
qgravechar 106 109 +3
huft_build 1165 1168 +3
tr_main 474 472 -2
open_transformer 91 89 -2
evalvar 1376 1374 -2
rpm_main 1691 1688 -3
qrealloc 36 33 -3
get_header_tar_lzma 55 52 -3
get_header_tar_gz 100 97 -3
get_header_tar_bz2 55 52 -3
get_header_tar_Z 89 86 -3
find_main 418 406 -12
prepare 302 283 -19
xmalloc_open_zipped_read_close 161 135 -26
xmalloc_read 248 199 -49
------------------------------------------------------------------------------
(add/remove: 0/0 grow/shrink: 3/13 up/down: 11/-130) Total: -119 bytes
Denis Vlasenko [Thu, 10 Jul 2008 14:16:11 +0000 (14:16 -0000)]
modprobe-small: make depmod compatible with kernel build.
three last commits' sizes combined:
function old new delta
find_alias 218 612 +394
load_dep_bb - 310 +310
modprobe_main 289 380 +91
copy_stringbuf - 40 +40
process_module 637 655 +18
reset_stringbuf - 15 +15
parse_module 333 334 +1
append 84 85 +1
fileAction 832 819 -13
------------------------------------------------------------------------------
(add/remove: 3/0 grow/shrink: 5/1 up/down: 870/-13) Total: 857 bytes
Denis Vlasenko [Thu, 10 Jul 2008 14:14:45 +0000 (14:14 -0000)]
modprobe-small: add depfile creation
Denis Vlasenko [Thu, 10 Jul 2008 14:14:20 +0000 (14:14 -0000)]
modprobe-small: add depfile loading
Denis Vlasenko [Thu, 10 Jul 2008 08:55:40 +0000 (08:55 -0000)]
website: add 'Laptop Computers' to sponsors page
Denis Vlasenko [Wed, 9 Jul 2008 22:04:37 +0000 (22:04 -0000)]
whitespace fix
Denis Vlasenko [Wed, 9 Jul 2008 21:24:18 +0000 (21:24 -0000)]
build system: libbusybox cannot be static
Denis Vlasenko [Wed, 9 Jul 2008 21:20:50 +0000 (21:20 -0000)]
fdisk: fix compile failure
Denis Vlasenko [Wed, 9 Jul 2008 20:14:53 +0000 (20:14 -0000)]
hush: compile fixes for !LOOPS case
Denis Vlasenko [Wed, 9 Jul 2008 20:07:59 +0000 (20:07 -0000)]
buld system: suppress a warning
Denis Vlasenko [Wed, 9 Jul 2008 19:48:43 +0000 (19:48 -0000)]
last: fix ctime(ptr) ptr type mismatch
Denis Vlasenko [Wed, 9 Jul 2008 19:44:08 +0000 (19:44 -0000)]
libbb/mtab: fix xrealloc_vector fallout
Bernhard Reutner-Fischer [Wed, 9 Jul 2008 17:56:53 +0000 (17:56 -0000)]
- fix typo (Cristian Ionescu-Idbohrn)
Denis Vlasenko [Wed, 9 Jul 2008 15:30:57 +0000 (15:30 -0000)]
modprobe-small: preparatory patch for modprobe.dep.bb creation patches,
Code size impact ~0.
Denis Vlasenko [Wed, 9 Jul 2008 09:50:33 +0000 (09:50 -0000)]
libbb: use improved xmalloc_read() from modprobe-small
who: fix compile breakage on some systems
modprobe-small: improve Config help text wording
Denis Vlasenko [Tue, 8 Jul 2008 20:41:57 +0000 (20:41 -0000)]
add xrealloc_vector.c
Denis Vlasenko [Tue, 8 Jul 2008 09:07:01 +0000 (09:07 -0000)]
website: return HOWTO link and GPL violations address to the top
of the page
Denis Vlasenko [Tue, 8 Jul 2008 05:14:36 +0000 (05:14 -0000)]
libbb: introduce and use xrealloc_vector
function old new delta
xrealloc_vector_helper - 51 +51
create_list 84 99 +15
getopt_main 690 695 +5
passwd_main 1049 1053 +4
get_cached 85 89 +4
msh_main 1377 1380 +3
add_match 42 41 -1
read_lines 720 718 -2
grave 1068 1066 -2
fill_match_lines 143 141 -2
add_to_dirlist 67 65 -2
add_input_file 49 47 -2
act 252 250 -2
fsck_main 2252 2246 -6
man_main 765 757 -8
bb_internal_initgroups 228 220 -8
cut_main 1052 1041 -11
add_edge_to_node 55 43 -12
dpkg_main 3851 3835 -16
ifupdown_main 2202 2178 -24
sort_main 838 812 -26
------------------------------------------------------------------------------
(add/remove: 1/0 grow/shrink: 5/15 up/down: 82/-124) Total: -42 bytes
Denis Vlasenko [Tue, 8 Jul 2008 03:25:25 +0000 (03:25 -0000)]
ifupdown: /etc/network/interfaces can have comments with leading blanks
Denis Vlasenko [Tue, 8 Jul 2008 02:57:40 +0000 (02:57 -0000)]
mount: testsuite for "-o mand"
Denis Vlasenko [Tue, 8 Jul 2008 02:56:53 +0000 (02:56 -0000)]
mount: support for "-o mand"
Denis Vlasenko [Sun, 6 Jul 2008 17:00:49 +0000 (17:00 -0000)]
mdev: reinstate "follow symlinks" flag, this time with explanation
Denis Vlasenko [Sun, 6 Jul 2008 11:52:23 +0000 (11:52 -0000)]
modprobe-small: match aliases with fnmatch(), making
shell pattern-specified alias names in module bodies work.
Denis Vlasenko [Sun, 6 Jul 2008 11:11:35 +0000 (11:11 -0000)]
modprobe-small: fix debug leftover
Denis Vlasenko [Sun, 6 Jul 2008 10:01:13 +0000 (10:01 -0000)]
hush: support "for if in do done then; do echo $if; done" case
function old new delta
done_pipe 83 95 +12
parse_stream 1758 1764 +6
done_word 674 647 -27
------------------------------------------------------------------------------
(add/remove: 0/0 grow/shrink: 2/1 up/down: 18/-27) Total: -9 bytes
Denis Vlasenko [Sun, 6 Jul 2008 07:00:11 +0000 (07:00 -0000)]
mdev: do not follow symlinks in /sys (as was intended prior to rev 18811).
If this breaks things, please document why!
mdev,init: use shared code for fd sanitization
function old new delta
bb_daemonize_or_rexec 155 172 +17
mdev_main 500 505 +5
init_main 907 856 -51
------------------------------------------------------------------------------
(add/remove: 0/0 grow/shrink: 2/1 up/down: 22/-51) Total: -29 bytes
Denis Vlasenko [Sat, 5 Jul 2008 20:29:59 +0000 (20:29 -0000)]
hush: support "for v; do ... done" syntax (implied 'in "$@"')
Denis Vlasenko [Sat, 5 Jul 2008 17:40:04 +0000 (17:40 -0000)]
hush: fix a case where "$@" must expand to no word at all
Denis Vlasenko [Sat, 5 Jul 2008 09:18:54 +0000 (09:18 -0000)]
*: rename ATTRIBUTE_XXX to just XXX.
Denis Vlasenko [Sat, 5 Jul 2008 08:50:08 +0000 (08:50 -0000)]
man: fix inverted cat/man bool variable
Denis Vlasenko [Sat, 5 Jul 2008 08:38:41 +0000 (08:38 -0000)]
man: code shrink
function old new delta
man_main 725 765 +40
show_manpage 112 - -112
------------------------------------------------------------------------------
(add/remove: 0/1 grow/shrink: 1/0 up/down: 40/-112) Total: -72 bytes
Denis Vlasenko [Fri, 4 Jul 2008 21:58:00 +0000 (21:58 -0000)]
man: support cat pages too (by Jason Curl <jcurlnews AT arcor.de>)
function old new delta
show_manpage - 112 +112
run_pipe 89 102 +13
man_main 721 725 +4
Denis Vlasenko [Fri, 4 Jul 2008 21:57:11 +0000 (21:57 -0000)]
man: fix missed NULL termination of an array
function old new delta
man_main 741 721 -20
Denis Vlasenko [Fri, 4 Jul 2008 10:29:30 +0000 (10:29 -0000)]
libbb/recursive_action.c: fix slight error in prev commit
Denis Vlasenko [Fri, 4 Jul 2008 10:25:44 +0000 (10:25 -0000)]
modutils: optional modutils-small by Vladimir Dronnikov.
15kb smaller than standard one.
libbb/recursive_action.c: commented-out code for aborting the scan.
Denis Vlasenko [Wed, 2 Jul 2008 22:47:49 +0000 (22:47 -0000)]
awk: another smallish code shrink
Denis Vlasenko [Wed, 2 Jul 2008 11:34:49 +0000 (11:34 -0000)]
webpage: fix typos
Denis Vlasenko [Wed, 2 Jul 2008 11:14:59 +0000 (11:14 -0000)]
uname,individual: fix improper printf usage
uname,awk: small code shrink
function old new delta
uname_main 175 166 -9
nvalloc 167 157 -10
evaluate 6381 6370 -11
------------------------------------------------------------------------------
(add/remove: 0/0 grow/shrink: 0/3 up/down: 0/-30) Total: -30 bytes