aboutsummaryrefslogtreecommitdiff
path: root/editors
AgeCommit message (Collapse)Author
2007-07-17vi: multiple fixes by Natanael Copa <natanael.copa@gmail.com>Denis Vlasenko
* the puzzling message on error is replaced with strerror(errno) so it should be even more detailed and smaller at the same time. * merged code in edit_file() and code for ':edit <file>' in colon() into new func init_text_buffer(). Was horribly duplicate. Moved most of error/sanity checking to file_insert(). Result is that you get a proper validation (prevent reading /dev/*) and error messages for ':r <file>' * renamed 'cfn' to 'current_filename' for improved readability * merged smallint vi_readonly and readonly into bitfields into readonly_mode to save space. * added text_size variable to keep track how big the text buffer is. This is used to fix a buffer overflow. To reproduce bug: ./busybox vi TODO :r Makefile vi segfaults due to no buffer checking is done at all. som redesign is needed here but i added a check in text_hole_make() to aviod the segfault at least. * removed isblnk() and use isblank(3) instead. * fixed compiler warning by displaying the return code for :!<command> This makes things bigger than needed but since the patch reduces the overall size... (see below) * new func next_tabstop(int) merges some duplicate code. There are more cuplicode here but i couldnt find a good way to merge them. * Fix *ANNOYING* placement of cursor on '\t' characters. To reproduce: echo -e "\thello" > file1 ./busybox vi file1 Try to insert some text at the beginning of line. Text will be inserted but cursor is blinking somewhere else. The patch should make busybox vi behave more like original vi(m). Costs a few bytes but its worth it imho. * new_text() is moved into init_text_buffer() * the previously added update_ro_status() was moved info file_insert due to duplication removal mentioned above. function old new delta init_text_buffer - 245 +245 file_insert 312 420 +108 next_tabstop - 82 +82 text_hole_make 154 171 +17 do_cmd 5093 5100 +7 static.cmd_mode_indicator - 5 +5 refresh 1248 1253 +5 current_filename - 4 +4 yank_delete 161 164 +3 what_reg 96 99 +3 end_cmd_q 78 81 +3 char_insert 440 442 +2 readonly_mode - 1 +1 vi_readonly 1 - -1 setops 154 153 -1 readonly 1 - -1 vi_setops 4 1 -3 string_insert 161 158 -3 cfn 4 - -4 show_status_line 532 514 -18 readit 519 500 -19 move_to_col 161 138 -23 vi_main 495 433 -62 isblnk 75 - -75 .rodata 4751 4655 -96 edit_file 892 787 -105 new_text 125 - -125 update_ro_status 131 - -131 colon 3848 3667 -181 ------------------------------------------------------------------------------ (add/remove: 5/6 grow/shrink: 8/10 up/down: 485/-848) Total: -363 bytes text data bss dec hex filename 34751 873 4260 39884 9bcc busybox_old 34439 877 4260 39576 9a98 busybox_unstripped
2007-07-17remove accumulated stray trailing whitespaceDenis Vlasenko
2007-07-14vi: make status line less confusing when we open non-readable files,Denis Vlasenko
require rood to use w! when saving non-writable files. Patch by Natanael Copa <natanael.copa@gmail.com> update_ro_status - 73 +73 edit_file 819 822 +3 colon 3440 3425 -15 .rodata 128090 128058 -32 file_insert 288 235 -53 ------------------------------------------------------------------------------ (add/remove: 1/0 grow/shrink: 1/3 up/down: 76/-100) Total: -24 bytes text data bss dec hex filename 673344 2740 13968 690052 a8784 busybox_old 673320 2740 13968 690028 a876c busybox_unstripped
2007-06-25Consolidate ARRAY_SIZE macro; remove one unneeded global var (walter harms ↵Denis Vlasenko
<wharms@bfs.de>)
2007-06-12diff: shrink code (-85 bytes):Denis Vlasenko
function old new delta fiddle_sum 8 - -8 diffreg 2717 2690 -27 prepare 334 284 -50 ------------------------------------------------------------------------------ (add/remove: 0/1 grow/shrink: 0/2 up/down: 0/-85) Total: -85 bytes s/ATTRIBUTE_ALWAYS_INLINE/ALWAYS_INLINE/g
2007-06-12move several applets to more correct ex-project. No code changes.Denis Vlasenko
2007-06-10moved biggest stack buffers to malloc space, or made their size configurableDenis Vlasenko
(8k of shell line edit buffer is an overkill) # make ARCH=i386 bloatcheck function old new delta read_line_input 3933 3967 +34 ifaddrlist 348 345 -3 do_loadfont 208 191 -17 edit_file 840 819 -21 .rodata 129112 129080 -32 uncompress 1305 1268 -37 loadfont_main 566 495 -71 ------------------------------------------------------------------------------ (add/remove: 0/0 grow/shrink: 1/6 up/down: 34/-181) Total: -147 bytes
2007-06-07awk: experimentally modify "global" trick to make code smallerDenis Vlasenko
by minimizing data offsets function old new delta parse_expr 752 782 +30 syntax_error 23 26 +3 nvfree 151 154 +3 nvalloc 172 175 +3 fsrealloc 111 114 +3 chain_node 99 102 +3 chain_loop 121 124 +3 chain_group 628 631 +3 awk_main 1002 1005 +3 awk_exit 99 102 +3 parse_program 308 310 +2 split_f0 172 170 -2 awk_split 510 507 -3 getvar_s 108 102 -6 awk_sub 643 637 -6 awk_getline 706 700 -6 next_token 943 927 -16 handle_special 470 446 -24 next_input_file 252 213 -39 evaluate 6703 6633 -70 ------------------------------------------------------------------------------ (add/remove: 0/0 grow/shrink: 11/9 up/down: 59/-172) Total: -113 bytes # size */*/awk.o text data bss dec hex filename 18247 0 0 18247 4747 busybox.t0/editors/awk.o 18134 0 0 18134 46d6 busybox.t1/editors/awk.o
2007-06-06awk: move all data to malloc spaceDenis Vlasenko
function old new delta evaluate 6448 6728 +280 awk_getline 676 705 +29 parse_expr 726 752 +26 next_token 917 943 +26 next_input_file 237 252 +15 awk_split 498 510 +12 awk_sub 632 643 +11 split_f0 160 170 +10 getvar_s 98 108 +10 ... chain_loop 128 121 -7 nvalloc 179 171 -8 chain_node 107 99 -8 mainseq 12 - -12 endseq 12 - -12 chain_group 640 628 -12 beginseq 12 - -12 awk_exit 112 100 -12 fsrealloc 127 110 -17 static.v 20 - -20 static.rsm 24 - -24 ttt 28 - -28 parse_program 339 311 -28 static.sreg 32 - -32 intvar 76 - -76 static.tspl 84 - -84 rsplitter 84 - -84 fsplitter 84 - -84 ------------------------------------------------------------------------------ (add/remove: 0/39 grow/shrink: 16/11 up/down: 439/-685) Total: -246 bytes
2007-06-04Audit bb_common_bufsiz usage, add script which looks for misuse.Denis Vlasenko
tr: stop using globals needlessly. code: -103 bytes
2007-05-30vi: move some data to malloc'ed space: ~500 less bss, codeDenis Vlasenko
size is smaller too (subject to arch differenced I guess)
2007-05-30whitespace fixesDenis Vlasenko
2007-05-26usage.c: remove reference to busybox.hDenis Vlasenko
*: s/include "busybox.h"/include "libbb.h"
2007-05-18awk: fix a trivial bug introduced by me.Denis Vlasenko
This is how it goes. I break stuff by doing useless 'cleanups', people fix the fallout. :(. Thanks rockeychu!
2007-05-17awk: make code a bit less obfuscatedDenis Vlasenko
2007-05-17several *.c files:Denis Vlasenko
move 'extern environ' up to the location of #includes
2007-05-17vi: remove two globalsDenis Vlasenko
awk: some 'lineno' vars were shorts, made them ints (code got smaller) awk: rename global t to global ttt. still an awful name, but at least you can grep for it now. function old new delta ttt - 28 +28 mysleep 104 120 +16 readit 408 418 +10 lineno 2 4 +2 parse_program 338 339 +1 evaluate 6446 6445 -1 syntax_error 25 23 -2 next_token 917 915 -2 new_node 26 24 -2 tv 16 8 -8 skip_spaces 68 53 -15 t 28 - -28 rfds 128 - -128 ------------------------------------------------------------------------------ (add/remove: 1/2 grow/shrink: 4/6 up/down: 57/-186) Total: -129 bytes
2007-05-09awk: don't segfault on printf(%*s). Close 1337.Denis Vlasenko
2007-05-03awk: guard against empty environmentDenis Vlasenko
2007-04-12sed: fix escaped newlines in -f; fix multiple -f and -eDenis Vlasenko
(broke when getopt32 was fixed to not reverse the list)
2007-04-12style fixes. No code changesDenis Vlasenko
2007-04-10audit small applets and mark some of them as NOFORK.Denis Vlasenko
Put big scary warnings in relevant places.
2007-04-08getopt32: fix llist_t options ordering. llist_rev is not unused.Denis Vlasenko
function old new delta tar_main 705 695 -10 sort_main 928 918 -10 decode_format_string 886 876 -10 run_parts_main 197 185 -12 ps_main 513 500 -13 wget_main 2764 2750 -14 awk_main 1014 1000 -14 od_main 2886 2866 -20 llist_rev 25 - -25 ------------------------------------------------------------------------------ (add/remove: 0/1 grow/shrink: 0/8 up/down: 0/-128) Total: -128 bytes
2007-04-05libbb: add xunlink()Denis Vlasenko
patch: do not try to delete same file twice
2007-04-01Copyright, help text, whitespace cleanupsDenis Vlasenko
2007-03-26sed: a communal variable managed to slip past 'size'Denis Vlasenko
('size' happily displays 0 bytes in data and bss, but in reality sed.o used 180 bytes of it). Oh well. function old new delta pipe_putc 67 76 +9 sed_main 627 633 +6 get_next_line 161 166 +5 bbg 180 - -180 (add/remove: 0/1 grow/shrink: 3/0 up/down: 20/-180) Total: -160 bytes sed: also make sed -i failure message less cryptic
2007-03-24inetd,ed,msh: data/bss reduction (in mss, more than 9k of it)Denis Vlasenko
2007-03-24random style fixes (extra spaces deleted)Denis Vlasenko
2007-03-22assorted fixes uncovered by randomconfig runsDenis Vlasenko
2007-03-21vi: fix signed char-induced potential bugsDenis Vlasenko
2007-03-21vi: remove Byte typedef and massive amount of casts.Denis Vlasenko
also optimize many strlen() calls. if (strlen(buf) <= 0) goto vc1 - ??!!
2007-03-21vi: support $EXINIT and -cDenis Vlasenko
2007-03-16sed: fix very obscure case of escaped newline in sed commandDenis Vlasenko
(needed for uclibc build, btw). Add testcase for it.
2007-03-11kill superfluous returns at the end of void functionsDenis Vlasenko
2007-03-10awk: support multiple -v optionsDenis Vlasenko
2007-03-07clean up accumulated whitespace damageDenis Vlasenko
2007-02-24awk: fix memory leak (can affect large file processing)Denis Vlasenko
2007-02-03suppress warnings about easch <applet>_main() havingDenis Vlasenko
no preceding prototype
2007-01-30silly space saving in sedDenis Vlasenko
2007-01-30micro optimizationDenis Vlasenko
2007-01-29preparatory patch for -Wwrite-strings #7: sedDenis Vlasenko
remaining: shell (rather scary mess in msh.c)
2007-01-29preparatory patch for -Wwrite-strings #2Denis Vlasenko
2007-01-29preparatory patch for -Wwrite-strings #1Denis Vlasenko
2007-01-29add to testsuite and fix yet another sed corner caseDenis Vlasenko
2007-01-29disable -Wold-style-definition for gcc 3.xDenis Vlasenko
2007-01-29sed: fix 2 bugs (one testsuite entry + one newly found)Denis Vlasenko
but more importantly make code more understandable
2007-01-28fix all known regressions with sed and also make it simplerDenis Vlasenko
2007-01-19strdup -> xstrdupDenis Vlasenko
sed: de-obfuscate piece of code
2007-01-17sed,get_line_from_file: improve commentsDenis Vlasenko
2007-01-13whitespace fixes (leading spaces to tab)Denis Vlasenko