aboutsummaryrefslogtreecommitdiff
path: root/editors/vi.c
AgeCommit message (Collapse)Author
2007-07-17fix typo in prev commit :(Denis Vlasenko
2007-07-17vi: s/argv[0]/applet_name/Denis Vlasenko
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-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-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-26usage.c: remove reference to busybox.hDenis Vlasenko
*: s/include "busybox.h"/include "libbb.h"
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-04-12style fixes. No code changesDenis Vlasenko
2007-04-01Copyright, help text, whitespace cleanupsDenis 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-11kill superfluous returns at the end of void functionsDenis Vlasenko
2007-03-07clean up accumulated whitespace damageDenis Vlasenko
2007-02-03suppress warnings about easch <applet>_main() havingDenis Vlasenko
no preceding prototype
2006-12-30next bunch of fixes for bugs found by randconfigDenis Vlasenko
2006-12-26style fixesDenis Vlasenko
last xcalloc replaced by xzalloc
2006-12-19remove casts from xmalloc()Denis Vlasenko
2006-12-19Add option to disable command execution from vi & awkDenis Vlasenko
2006-11-27style cleanup: return(a) -> return a, part 2Denis Vlasenko
2006-11-27style cleanup: return(a) -> return a, part 1Denis Vlasenko
2006-10-27get_terminal_width_height: do not pass insanely large valuesDenis Vlasenko
2006-10-20message string changes, mostly for consistency, also -32 bytes in .rodataDenis Vlasenko
2006-10-14add open_read_close() and similar stuffDenis Vlasenko
2006-10-03lots of silly indent fixesDenis Vlasenko
2006-09-17whitespace cleanupDenis Vlasenko
2006-08-20- merge -r15463:15564 from busybox_scratch branch through these changesets:Bernhard Reutner-Fischer
------------------------------------------------------------------------ r15465 | aldot | 2006-06-21 20:48:06 +0200 (Wed, 21 Jun 2006) | 3 lines - use CONFIG_BUSYBOX_EXEC_PATH as before it one was broken by a recent revert. - use xchdir() since all is invain if it fails there anyways, supposedly ------------------------------------------------------------------------ r15466 | aldot | 2006-06-21 20:55:16 +0200 (Wed, 21 Jun 2006) | 2 lines - adjust docs to take CONFIG_BUSYBOX_EXEC_PATH into account. ------------------------------------------------------------------------ r15467 | aldot | 2006-06-21 21:31:24 +0200 (Wed, 21 Jun 2006) | 18 lines - partial fallout of my TREE_USED touchup against gcc-4.2: rip unused vars, save s 144 bytes text data bss dec hex filename 862434 10156 645924 1518514 172bb2 busybox.old 862322 10156 645892 1518370 172b22 busybox function old new delta z_len 4 - -4 textend 4 - -4 part_nb 4 - -4 insize 4 - -4 ifile_size 4 - -4 do_link 4 - -4 new_text 70 60 -10 ipaddr_list_link 33 23 -10 gzip_main 898 822 -76 ------------------------------------------------------------------------------ (add/remove: 0/6 grow/shrink: 0/3 up/down: 0/-120) Total: -120 bytes ------------------------------------------------------------------------ r15468 | aldot | 2006-06-21 21:43:05 +0200 (Wed, 21 Jun 2006) | 19 lines - remove useless global exports function old new delta rpm_main 940 1601 +661 rpm_getstring 107 112 +5 rpm_getint 148 153 +5 loop_through_files 103 106 +3 fileaction_dobackup 115 113 -2 fileaction_list 5 - -5 rpm_getcount 42 - -42 extract_cpio_gz 161 - -161 rpm_gettags 504 - -504 ------------------------------------------------------------------------------ (add/remove: 0/4 grow/shrink: 4/1 up/down: 674/-714) Total: -40 bytes text data bss dec hex filename 862322 10156 645892 1518370 172b22 busybox.old 862290 10156 645892 1518338 172b02 busybox ------------------------------------------------------------------------ r15555 | aldot | 2006-06-30 14:10:11 +0200 (Fri, 30 Jun 2006) | 22 lines - shrink syslog a little bit, move a big buffer (for 'line') off the bss, fold s emaphore stuff into single caller manually. stats: function old new delta logMessage 395 427 +32 message 1245 1257 +12 opts - 4 +4 small 1 - -1 local_logging 4 - -4 doRemoteLog 4 - -4 circular_logging 4 - -4 syslogd_main 1299 1285 -14 static.res 36 16 -20 .rodata 186650 186586 -64 static.line 1025 - -1025 ------------------------------------------------------------------------------ (add/remove: 1/5 grow/shrink: 2/3 up/down: 48/-1136) Total: -1088 bytes cow@s37:~/src/busybox_scratch$ size sysklogd/syslogd.o{.orig,} text data bss dec hex filename 3723 348 5242 9313 2461 sysklogd/syslogd.o.orig 3697 348 4188 8233 2029 sysklogd/syslogd.o ============================================================================== Overall bloatcheck for the changeset mentioned above: function old new delta rpm_main 953 1608 +655 logMessage 395 427 +32 message 1245 1257 +12 opts - 4 +4 rpm_getstring 107 110 +3 rpm_getint 148 151 +3 loop_through_files 103 104 +1 small 1 - -1 fileaction_dobackup 115 113 -2 z_len 4 - -4 textend 4 - -4 part_nb 4 - -4 local_logging 4 - -4 insize 4 - -4 ifile_size 4 - -4 do_link 4 - -4 doRemoteLog 4 - -4 circular_logging 4 - -4 fileaction_list 5 - -5 new_text 70 60 -10 ipaddr_list_link 33 23 -10 clear_bufs 31 21 -10 syslogd_main 1287 1273 -14 builtin_help 190 176 -14 static.res 36 16 -20 builtin_source 229 199 -30 rpm_getcount 42 - -42 gzip_main 842 786 -56 .rodata 227176 227112 -64 lash_main 609 527 -82 busy_loop 3883 3739 -144 extract_cpio_gz 155 - -155 rpm_gettags 501 - -501 static.line 1025 - -1025 ------------------------------------------------------------------------------ (add/remove: 1/15 grow/shrink: 6/12 up/down: 710/-2221) Total: -1511 bytes
2006-08-03Remove bb_ prefixes from xfuncs.c (and a few other places), consolidateRob Landley
things like xasprintf() into xfuncs.c, remove xprint_file_by_name() (it only had one user), clean up lots of #includes... General cleanup pass. What I've been doing for the last couple days. And it conflicts! I've removed httpd.c from this checkin due to somebody else touching that file. It builds for me. I have to catch a bus. (Now you know why I'm looking forward to Mercurial.)
2006-07-02Standardize on the vi editing directives being on the first line."Robert P. J. Day"
2006-06-25A few patches from Erik Hovland, turning strncpy() into safe_strncpy() andRob Landley
removing some unnecessary code.
2006-06-21Remove pointless "inline" wrapper around get_terminal_width_height().Rob Landley
2006-06-21Zubicaray reported a bug in vi that causes it to eat 100% cpu when you closeRob Landley
an xterm it's running in. The vi signal behavior would catch and restarts lots of signals, like SIGHUP, that should just kill the thing. (Leftover behavior from when it would segfault all the time.) Filtered out the more obviously bad ones. If it segfaults, we should find and fix the problem.
2006-06-09- make sure that we see string_insert only if we need it.Bernhard Reutner-Fischer
2006-05-27Consolidate #include <sys/time.h> so libbb.h does it.Rob Landley
2006-05-19- remove SIGIOT as suggested by landley.Bernhard Reutner-Fischer
2006-05-19- Rich Felker writes:Bernhard Reutner-Fischer
SIGIOT is not defined in any standard i can find and it seems to be useless (alias for SIGABRT) on linux. i put it in #ifdef but it's probably best just to remove it and cut down the size a bit.
2006-05-19- include strings.hBernhard Reutner-Fischer
Thanks to Rich Felker for pointing this out.
2006-04-05adjust ifdefs for inclusion of string_insert() routinePaul Fox
2006-03-28fix behavior of ZZ, with respect to readonly mode(s). originalPaul Fox
patch and report from Alexander Griesser.
2006-03-27add support for :wn (initial patch from Alexander Griesser)Paul Fox
2006-03-27drop obsolete version string in favor of actual BB version (fromPaul Fox
Bernhard Fischer)
2006-03-10Patch from Denis Vlasenko turning static const int (which gets emitted intoRob Landley
the busybox binary) into enums (which don't).
2006-03-06Robert P. Day removed 8 gazillion occurrences of "extern" on functionRob Landley
definitions. (That should only be on prototypes.)
2006-01-30fix up yet more annoying signed/unsigned and mixed type errorsEric Andersen
2006-01-30removed warning "comparison between signed and unsigned". Added ↵"Vladimir N. Oleynik"
ATTRIBUTE_UNUSED. Whitespace