patch: add support for -R. ~ +110 byte. By Pascal Bellard <pascal.bellard AT ads-lu.com>
fbsplash: new applet by Michele Sanges <michele.sanges AT otomelara.it
function old new delta
fbsplash_main - 1525 +1525
fb_drawfullrectangle - 118 +118
static.param_value - 100 +100
packed_usage 23776 23872 +96
applet_names 1843 1852 +9
applet_main 1120 1124 +4
read_line_input 3156 3158 +2
applet_nameofs 560 562 +2
applet_install_loc 140 141 +1
------------------------------------------------------------------------------
(add/remove: 3/0 grow/shrink: 6/0 up/down: 1857/0) Total: 1857 bytes
text data bss dec hex filename
799233 641 7380 807254 c5156 busybox_old
801202 641 7380 809223 c5907 busybox_unstripped
diff --git a/libbb/lineedit.c b/libbb/lineedit.c
index b25386b..5d65665 100644
--- a/libbb/lineedit.c
+++ b/libbb/lineedit.c
@@ -958,14 +958,16 @@
FILE *fp;
int hi;
- /* cleanup old */
- for (hi = state->cnt_history; hi > 0;) {
- hi--;
- free(state->history[hi]);
- }
+ /* NB: do not trash old history if file can't be opened */
fp = fopen(fromfile, "r");
if (fp) {
+ /* clean up old history */
+ for (hi = state->cnt_history; hi > 0;) {
+ hi--;
+ free(state->history[hi]);
+ }
+
for (hi = 0; hi < MAX_HISTORY;) {
char *hl = xmalloc_getline(fp);
int l;
@@ -982,8 +984,8 @@
state->history[hi++] = hl;
}
fclose(fp);
+ state->cur_history = state->cnt_history = hi;
}
- state->cur_history = state->cnt_history = hi;
}
/* state->flags is already checked to be nonzero */