Denys Vlasenko [Mon, 18 May 2009 11:08:57 +0000 (13:08 +0200)]
gzip: fix gzip with many files corrupting some files after first
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
Denys Vlasenko [Mon, 18 May 2009 11:08:04 +0000 (13:08 +0200)]
depmod: fix handling of .gz modules
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
Denys Vlasenko [Sun, 17 May 2009 17:28:14 +0000 (19:28 +0200)]
lineedit: small fixes
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
Denys Vlasenko [Sun, 17 May 2009 14:44:54 +0000 (16:44 +0200)]
line editing: add an option to emit ESC [ 6 n and use results
This makes line editing able to recognize case when
cursor was not at the beginning of the line. It may also
be adapted later to find out display size (serial line users
would love it).
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
Denys Vlasenko [Fri, 15 May 2009 21:23:23 +0000 (23:23 +0200)]
xmalloc_[open_]read[_close]: do not ignore xrealloc return value
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
Denys Vlasenko [Fri, 15 May 2009 01:27:53 +0000 (03:27 +0200)]
lineedit: use read_key to recognize ESC sequence.
This fixes several vi mode bugs and prepares for further fixes.
function old new delta
read_line_input 3287 5511 +2224
remember_in_history - 499 +499
lineedit_read_key - 70 +70
read_key 321 332 +11
input_tab 2823 - -2823
------------------------------------------------------------------------------
(add/remove: 2/1 grow/shrink: 2/0 up/down: 2804/-2823) Total: -19 bytes
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
Denys Vlasenko [Wed, 13 May 2009 22:23:34 +0000 (00:23 +0200)]
adduser/addgroup: make system id range configurable.
By Tito (farmatito AT tiscali.it).
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
Denys Vlasenko [Wed, 13 May 2009 21:48:59 +0000 (23:48 +0200)]
mount: save 80 bytes by forced de-inlining
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
Denys Vlasenko [Wed, 13 May 2009 14:32:32 +0000 (16:32 +0200)]
mount: document when kernel started accepting string as NFS options
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
Mike Frysinger [Wed, 13 May 2009 05:48:00 +0000 (01:48 -0400)]
split website off into dedicated git repo
Signed-off-by: Mike Frysinger <vapier@gentoo.org>
Denys Vlasenko [Wed, 13 May 2009 00:18:43 +0000 (02:18 +0200)]
TODO: add some
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
Bernhard Reutner-Fischer [Mon, 11 May 2009 20:51:49 +0000 (22:51 +0200)]
Adjust names, link contributing info in main index
Signed-off-by: Bernhard Reutner-Fischer <rep.dot.nop@gmail.com>
Denys Vlasenko [Sun, 10 May 2009 21:41:29 +0000 (23:41 +0200)]
sysctl: stop abusing parser->line
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
Denys Vlasenko [Sun, 10 May 2009 21:27:43 +0000 (23:27 +0200)]
tftp: do not risk invoking Sorcerer's Apprentice syndrome
examples/udhcp/simple.script: fix incorrect test for $1
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
Bernhard Reutner-Fischer [Fri, 8 May 2009 16:22:52 +0000 (18:22 +0200)]
test commit
Signed-off-by: Bernhard Reutner-Fischer <rep.dot.nop@gmail.com>
Bernhard Reutner-Fischer [Fri, 8 May 2009 16:19:58 +0000 (18:19 +0200)]
Revert "test commit"
This reverts commit
8606aba04b9f6b82820e739f9781dfc85ae4853a.
Signed-off-by: Bernhard Reutner-Fischer <rep.dot.nop@gmail.com>
Bernhard Reutner-Fischer [Fri, 8 May 2009 16:18:42 +0000 (18:18 +0200)]
test commit
Mike Frysinger [Wed, 6 May 2009 09:28:53 +0000 (05:28 -0400)]
LICENSE: update address of the FSF
Signed-off-by: Mike Frysinger <vapier@gentoo.org>
Mike Frysinger [Wed, 6 May 2009 09:24:41 +0000 (05:24 -0400)]
modprobe: add comment about expected modules.dep format
Signed-off-by: Mike Frysinger <vapier@gentoo.org>
Mike Frysinger [Wed, 6 May 2009 00:14:12 +0000 (20:14 -0400)]
depmod.pl: updates and fixes galore
The helper script needs updating to match latest busybox modprobe behavior
in that all dependencies need to be listed, not just the immediate ones.
Along the way, fix symbol prefixed ports, optimize the output, and add
some more depmod compatible options.
Signed-off-by: Mike Frysinger <vapier@gentoo.org>
Mike Frysinger [Wed, 6 May 2009 00:13:45 +0000 (20:13 -0400)]
modprobe: add more useful debug points
Signed-off-by: Mike Frysinger <vapier@gentoo.org>
Mike Frysinger [Tue, 5 May 2009 13:05:30 +0000 (09:05 -0400)]
add .gitignore files
Signed-off-by: Mike Frysinger <vapier@gentoo.org>
Mike Frysinger [Tue, 5 May 2009 11:00:27 +0000 (07:00 -0400)]
libunarchive: fix build failure with !FEATURE_TAR_UNAME_GNAME
We can't use C if(...) with ENABLE_FEATURE_TAR_UNAME_GNAME because it
relies on conditional members in the file_header_t structure:
archival/libunarchive/data_extract_all.c: In function ‘data_extract_all’:
archival/libunarchive/data_extract_all.c:123: error: ‘file_header_t’ has no member named ‘uname’
archival/libunarchive/data_extract_all.c:124: error: ‘file_header_t’ has no member named ‘uname’
archival/libunarchive/data_extract_all.c:127: error: ‘file_header_t’ has no member named ‘gname’
archival/libunarchive/data_extract_all.c:128: error: ‘file_header_t’ has no member named ‘gname’
make[1]: *** [archival/libunarchive/data_extract_all.o] Error 1
Signed-off-by: Mike Frysinger <vapier@gentoo.org>
Denys Vlasenko [Mon, 4 May 2009 19:59:05 +0000 (21:59 +0200)]
mdev: revert last wrong commit
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
root [Mon, 4 May 2009 10:00:19 +0000 (12:00 +0200)]
hush: small fix for unset -f on NOMMU.
Signed-off-by: root <root@localhost.localdomain>
Bernhard Reutner-Fischer [Sun, 3 May 2009 16:53:22 +0000 (18:53 +0200)]
fix debug message
Print the mime-type only after it has been set.
Add possible TODOs: use TCP_CORK, parse_config()
Denys Vlasenko [Sun, 3 May 2009 23:58:10 +0000 (01:58 +0200)]
hush: add more complex case to leak testcase, fix found breakage
function old new delta
unset_local_var_len - 167 +167
run_list 2350 2457 +107
set_vars_and_save_old - 87 +87
free_pipe 207 227 +20
builtin_unset 220 229 +9
builtin_exit 49 47 -2
free_strings_and_unset 53 - -53
set_vars_all_and_save_old 87 - -87
unset_local_var 168 - -168
------------------------------------------------------------------------------
(add/remove: 2/3 grow/shrink: 3/1 up/down: 390/-310) Total: 80 bytes
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
Denys Vlasenko [Sun, 3 May 2009 22:14:30 +0000 (00:14 +0200)]
hush: fix bug where in "var=val func" var's value is not visible in func
function old new delta
unset_local_var - 168 +168
set_vars_all_and_save_old - 87 +87
get_ptr_to_local_var - 77 +77
free_strings_and_unset - 53 +53
builtin_export 266 274 +8
get_local_var_value 31 33 +2
putenv_all 27 - -27
free_strings_and_unsetenv 53 - -53
get_local_var 68 - -68
run_list 2475 2350 -125
builtin_unset 380 220 -160
------------------------------------------------------------------------------
(add/remove: 4/3 grow/shrink: 2/2 up/down: 395/-433) Total: -38 bytes
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
Denys Vlasenko [Sun, 3 May 2009 00:15:18 +0000 (02:15 +0200)]
hush: fix \<newline> handling
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
Denys Vlasenko [Sat, 2 May 2009 15:18:34 +0000 (17:18 +0200)]
hush: fix handling of unterminated subshell: (<eof>. Fixes bug 229.
function old new delta
syntax_error_unexpected_ch 31 41 +10
parse_stream 2184 2191 +7
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
Denys Vlasenko [Sat, 2 May 2009 14:33:10 +0000 (16:33 +0200)]
mdev: do not exit if user:group parse failed. closes bug 309.
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
Denys Vlasenko [Sat, 2 May 2009 12:17:31 +0000 (14:17 +0200)]
hush: fix multiple redirections of the same fd (bug 227)
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
Denys Vlasenko [Sat, 2 May 2009 00:34:19 +0000 (02:34 +0200)]
hush: make . cmd search $PATH
function old new delta
builtin_source 128 249 +121
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
Denys Vlasenko [Fri, 1 May 2009 22:50:38 +0000 (00:50 +0200)]
httpd: speed up httpd.conf at the cost of 49 bytes of code
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
Denys Vlasenko [Fri, 1 May 2009 07:04:25 +0000 (09:04 +0200)]
ifplugd: fix warnings
Denys Vlasenko [Fri, 1 May 2009 01:41:25 +0000 (03:41 +0200)]
des encrypt: fix goof with NUL byte added at the end as '.'
Denys Vlasenko [Fri, 1 May 2009 01:09:54 +0000 (03:09 +0200)]
mdev: fix a case where we mangle device_path string and then use it.
Denys Vlasenko [Fri, 1 May 2009 01:00:04 +0000 (03:00 +0200)]
Make it clearer that usually people should _NOT_
select FEATURE_UNIX_LOCAL.
Denys Vlasenko [Thu, 30 Apr 2009 19:24:24 +0000 (21:24 +0200)]
git commit test
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
Denis Vlasenko [Wed, 29 Apr 2009 12:02:57 +0000 (12:02 -0000)]
*: bb_error_msg's messages should not be capitalized
Denis Vlasenko [Wed, 29 Apr 2009 12:01:51 +0000 (12:01 -0000)]
lzop: new applet. Busyboxed by Alain Knaff. +7700 bytes.
Denis Vlasenko [Mon, 27 Apr 2009 23:29:14 +0000 (23:29 -0000)]
hush: make it possible to have interactive shell on non-ctty.
init=/bin/hush: shows prompt, history works, etc.
function old new delta
hush_main 888 925 +37
block_signals 139 152 +13
builtin_fg_bg 284 293 +9
checkjobs_and_fg_shell 35 41 +6
sigexit 65 66 +1
reset_traps_to_defaults 165 164 -1
parse_stream 2200 2184 -16
run_list 2502 2475 -27
getpgid 35 - -35
------------------------------------------------------------------------------
(add/remove: 0/1 grow/shrink: 5/3 up/down: 66/-79) Total: -13 bytes
Denis Vlasenko [Sun, 26 Apr 2009 23:25:36 +0000 (23:25 -0000)]
make leak test more robust by unsetting all vars
Denis Vlasenko [Sun, 26 Apr 2009 23:22:40 +0000 (23:22 -0000)]
hush: make getopt32 usable in builtins. use it in unset.
more uses are expected in the future.
function old new delta
getopt32 1356 1393 +37
builtin_export 256 266 +10
builtin_unset 418 380 -38
Denis Vlasenko [Sun, 26 Apr 2009 20:06:14 +0000 (20:06 -0000)]
hush: nommu fix for function passing
Denis Vlasenko [Sun, 26 Apr 2009 11:25:19 +0000 (11:25 -0000)]
hush: fix SEGV in % expansion
function old new delta
expand_variables 2203 2217 +14
Denis Vlasenko [Sun, 26 Apr 2009 01:43:36 +0000 (01:43 -0000)]
ifplugd: tiny shrink
Denis Vlasenko [Sun, 26 Apr 2009 01:17:44 +0000 (01:17 -0000)]
ifplugd: add copyright
Denis Vlasenko [Sun, 26 Apr 2009 01:08:51 +0000 (01:08 -0000)]
ifplugd: new applet by Maksym Kryzhanovskyy (xmaks AT email.cz)
+3k code and 0.5k in messages. Most of the bloat due to compat :(
Denis Vlasenko [Sat, 25 Apr 2009 13:26:10 +0000 (13:26 -0000)]
shrink if FEATURE_SHADOWPASSWDS is off
Denis Vlasenko [Sat, 25 Apr 2009 13:16:53 +0000 (13:16 -0000)]
add FEATURE_UNIX_LOCAL. By Ingo van Lil (inguin AT gmx.de)
Denis Vlasenko [Sat, 25 Apr 2009 12:19:35 +0000 (12:19 -0000)]
unlzma: speedup, by Pascal Bellard (pascal.bellard AT ads-lu.com)
LZMA_FAST off: 10% faster and:
function old new delta
rc_is_bit_1 - 92 +92
rc_do_normalize 45 81 +36
rc_update_bit_1 25 - -25
rc_update_bit_0 30 - -30
rc_is_bit_0_helper 38 - -38
rc_get_bit 60 17 -43
rc_read 48 - -48
unpack_lzma_stream 1768 1517 -251
------------------------------------------------------------------------------
(add/remove: 1/4 grow/shrink: 1/2 up/down: 128/-435) Total: -307 bytes
LZMA_FAST on: 14% faster and:
unpack_lzma_stream 2301 2737 +436
rc_get_bit 106 - -106
Mike Frysinger [Sat, 25 Apr 2009 06:16:37 +0000 (06:16 -0000)]
we need to daemonize *before* opening the watchdog device
Mike Frysinger [Fri, 24 Apr 2009 06:40:30 +0000 (06:40 -0000)]
do not tell people they can enter "help" if help has actually been disabled
Mike Frysinger [Fri, 24 Apr 2009 06:26:18 +0000 (06:26 -0000)]
use get_local_var_value() rather than getenv() when working with PS1/PS2/HOME, respect the PS2 env var, and make sure that the prompt changes whenever PS1/PS2 changes so we dont have to re-exec the shell to get a changed prompt
Denis Vlasenko [Wed, 22 Apr 2009 23:25:48 +0000 (23:25 -0000)]
inetd: constify data
Denis Vlasenko [Wed, 22 Apr 2009 21:35:52 +0000 (21:35 -0000)]
adduser/addgroup: support specifying uid/gid, add system
account creation mode. By Tito.
function old new delta
adduser_main 650 726 +76
addgroup_main 341 402 +61
addgroup_longopts - 16 +16
adduser_longopts 97 103 +6
packed_usage 26161 26163 +2
------------------------------------------------------------------------------
(add/remove: 1/0 grow/shrink: 4/0 up/down: 161/0) Total: 161 bytes
Denis Vlasenko [Wed, 22 Apr 2009 14:16:59 +0000 (14:16 -0000)]
httpd: fix small bug in parser. it crept in during cleanup
Denis Vlasenko [Wed, 22 Apr 2009 13:52:22 +0000 (13:52 -0000)]
httpd: allow empty lines in conf file
Denis Vlasenko [Wed, 22 Apr 2009 13:49:16 +0000 (13:49 -0000)]
httpd: simplify insane conf file parser
function old new delta
bb_simplify_abs_path_inplace - 98 +98
parse_expr 824 832 +8
passwd_main 1025 1027 +2
evalvar 1374 1376 +2
parse_command 1463 1460 -3
bb_simplify_path 137 55 -82
parse_conf 1572 1422 -150
------------------------------------------------------------------------------
(add/remove: 3/2 grow/shrink: 3/3 up/down: 126/-251) Total: -125 bytes
Denis Vlasenko [Wed, 22 Apr 2009 02:53:02 +0000 (02:53 -0000)]
syslogd: added comment, no code changes
Denis Vlasenko [Wed, 22 Apr 2009 00:26:39 +0000 (00:26 -0000)]
httpd: improve help text
Denis Vlasenko [Tue, 21 Apr 2009 23:51:43 +0000 (23:51 -0000)]
nc: free lsa in server mode, we might be up for a long time
Denis Vlasenko [Tue, 21 Apr 2009 23:48:38 +0000 (23:48 -0000)]
*: remove check for errors on getsockaddr in cases we know they can't happen
libbb: make get_sock_lsa use only one getsockaddr syscall, not two
function old new delta
get_sock_lsa 72 101 +29
do_iplink 1151 1137 -14
arping_main 1585 1569 -16
dolisten 789 755 -34
xrtnl_open 161 94 -67
Denis Vlasenko [Tue, 21 Apr 2009 20:52:58 +0000 (20:52 -0000)]
switch_root: move misplaced comment
Denis Vlasenko [Tue, 21 Apr 2009 20:40:51 +0000 (20:40 -0000)]
switch_root: improve behavior on error; improve help text
*: make "can't execute '%s'" message uniform
Denis Vlasenko [Tue, 21 Apr 2009 11:23:56 +0000 (11:23 -0000)]
hush: speed up set_local_var
function old new delta
set_local_var 265 290 +25
Denis Vlasenko [Tue, 21 Apr 2009 11:09:40 +0000 (11:09 -0000)]
*: mass renaming of USE_XXXX to IF_XXXX
and SKIP_XXXX to IF_NOT_XXXX - the second one was especially
badly named. It was not skipping anything!
Denis Vlasenko [Tue, 21 Apr 2009 00:52:21 +0000 (00:52 -0000)]
tar: support for tar --numeric-owner. By Natanael Copa.
function old new delta
tar_longopts 221 237 +16
data_extract_all 692 705 +13
tar_main 690 702 +12
Denis Vlasenko [Tue, 21 Apr 2009 00:41:57 +0000 (00:41 -0000)]
udhcpc: fix truncation of last char in client hostnames
Denis Vlasenko [Tue, 21 Apr 2009 00:29:17 +0000 (00:29 -0000)]
switch_root: print errno on failure
Denis Vlasenko [Tue, 21 Apr 2009 00:17:00 +0000 (00:17 -0000)]
tweak example udhcp script
Denis Vlasenko [Mon, 20 Apr 2009 22:04:21 +0000 (22:04 -0000)]
hush: export -n support
function old new delta
builtin_export 206 256 +50
set_local_var 248 265 +17
expand_variables 2204 2203 -1
Denis Vlasenko [Mon, 20 Apr 2009 10:52:31 +0000 (10:52 -0000)]
hush: add two testcases
Denis Vlasenko [Mon, 20 Apr 2009 09:26:17 +0000 (09:26 -0000)]
watchdog: enable it before setting timeout
function old new delta
watchdog_main 239 259 +20
static.enable - 4 +4
Denis Vlasenko [Mon, 20 Apr 2009 00:34:01 +0000 (00:34 -0000)]
hush: fix stdin of backgrounded pipe
function old new delta
run_list 2450 2502 +52
Denis Vlasenko [Sun, 19 Apr 2009 23:38:08 +0000 (23:38 -0000)]
mdev: enlarge inline documentation
Denis Vlasenko [Sun, 19 Apr 2009 23:07:51 +0000 (23:07 -0000)]
hush: fix "export not_yet_defined_var", fix parsing of "cmd | }"
corner case; improve hush_leaktool.sh;
fix some false positives in testsuite
function old new delta
builtin_export 191 206 +15
parse_stream 2196 2200 +4
Denis Vlasenko [Sun, 19 Apr 2009 21:37:07 +0000 (21:37 -0000)]
mdev: support $ENVVAR=regex
Denis Vlasenko [Sun, 19 Apr 2009 14:12:50 +0000 (14:12 -0000)]
another stab at fixing out-of-tree build
Denis Vlasenko [Sun, 19 Apr 2009 14:03:11 +0000 (14:03 -0000)]
same as previous, but -100 bytes
Denis Vlasenko [Sun, 19 Apr 2009 13:57:51 +0000 (13:57 -0000)]
hush: fix handling of } which is not a closing one in { cmd; }
function old new delta
parse_stream 2176 2302 +126
builtin_unset 381 387 +6
Denis Vlasenko [Sun, 19 Apr 2009 12:15:51 +0000 (12:15 -0000)]
hopefully fix out-of-tree build broken by 26139
Denis Vlasenko [Sun, 19 Apr 2009 01:27:20 +0000 (01:27 -0000)]
mdev: Rob's #if forest removal
*: remove superfluous conts in "f(type *const param)"
Mike Frysinger [Sat, 18 Apr 2009 21:04:25 +0000 (21:04 -0000)]
fix build errors when function support is turned off
Denis Vlasenko [Sat, 18 Apr 2009 13:05:10 +0000 (13:05 -0000)]
hush: fix thinko in error msg
Denis Vlasenko [Sat, 18 Apr 2009 12:58:19 +0000 (12:58 -0000)]
hush: fix "trap -- handler SIGs..."; escape handlers in "trap" output
Denis Vlasenko [Sat, 18 Apr 2009 11:35:16 +0000 (11:35 -0000)]
acpid: prevent creation of zombies
Denis Vlasenko [Sat, 18 Apr 2009 11:25:18 +0000 (11:25 -0000)]
hush: fix thinko in unset_func
Denis Vlasenko [Sat, 18 Apr 2009 11:23:38 +0000 (11:23 -0000)]
hush: implement unset -f; beautify the handling of signal-killed pipe
four TODOs are gone
function old new delta
builtin_unset 271 364 +93
checkjobs 394 428 +34
builtin_exit 49 47 -2
Denis Vlasenko [Sat, 18 Apr 2009 02:06:54 +0000 (02:06 -0000)]
hush: deal with umask TODO (symbolic modes)
function old new delta
builtin_umask 79 125 +46
Denis Vlasenko [Sat, 18 Apr 2009 01:23:21 +0000 (01:23 -0000)]
hush: implement proper SIGHUP handling
function old new delta
check_and_run_traps 164 229 +65
insert_bg_job 376 366 -10
hush_main 937 927 -10
Denis Vlasenko [Fri, 17 Apr 2009 23:53:15 +0000 (23:53 -0000)]
builtin_return's parameter is not unused
Denis Vlasenko [Fri, 17 Apr 2009 23:44:18 +0000 (23:44 -0000)]
hush: return builtin by Bayram Kurumahmut (kbayram AT ubicom.com)
~+200 bytes
Denis Vlasenko [Fri, 17 Apr 2009 22:20:44 +0000 (22:20 -0000)]
fix move_to_unaligned32
Denis Vlasenko [Fri, 17 Apr 2009 21:56:02 +0000 (21:56 -0000)]
build system: remove some unnecessary rebuilds
Denis Vlasenko [Fri, 17 Apr 2009 18:54:50 +0000 (18:54 -0000)]
hush: set $n properly for "source" builtin
function old new delta
restore_G_args - 78 +78
save_and_replace_G_args - 64 +64
builtin_source 72 107 +35
run_list 2549 2367 -182
------------------------------------------------------------------------------
(add/remove: 2/0 grow/shrink: 1/1 up/down: 177/-182) Total: -5 bytes
Denis Vlasenko [Fri, 17 Apr 2009 14:35:43 +0000 (14:35 -0000)]
hush: fix non-interactive response to pipe being stopped.
function old new delta
checkjobs 380 394 +14
Denis Vlasenko [Fri, 17 Apr 2009 13:52:51 +0000 (13:52 -0000)]
hush: unblock TERM, INT, HUP in child shells too.
Denis Vlasenko [Fri, 17 Apr 2009 11:55:42 +0000 (11:55 -0000)]
hush: disallow "{echo hi; }" (require whitespace)
and "{ echo hi }" (require semicolon or &)
function old new delta
parse_stream 2098 2176 +78
done_command 98 84 -14
------------------------------------------------------------------------------
(add/remove: 0/0 grow/shrink: 1/1 up/down: 78/-14) Total: 64 bytes