diff options
author | Denis Vlasenko | 2007-06-04 10:16:52 +0000 |
---|---|---|
committer | Denis Vlasenko | 2007-06-04 10:16:52 +0000 |
commit | 74324c86663f57a19c1de303ee8c8e5449db9ef2 (patch) | |
tree | 11f5da9de4212875ce5811be2e1050e076378c9a /editors | |
parent | 4e5f82c76f08614d0b69f9ec4a8baac303af15f6 (diff) | |
download | busybox-74324c86663f57a19c1de303ee8c8e5449db9ef2.zip busybox-74324c86663f57a19c1de303ee8c8e5449db9ef2.tar.gz |
Audit bb_common_bufsiz usage, add script which looks for misuse.
tr: stop using globals needlessly.
code: -103 bytes
Diffstat (limited to 'editors')
-rw-r--r-- | editors/ed.c | 8 | ||||
-rw-r--r-- | editors/sed.c | 15 |
2 files changed, 12 insertions, 11 deletions
diff --git a/editors/ed.c b/editors/ed.c index 731aef1..e6576b4 100644 --- a/editors/ed.c +++ b/editors/ed.c @@ -9,9 +9,11 @@ #include "libbb.h" +#define searchString bb_common_bufsiz1 + enum { - USERSIZE = sizeof(bb_common_bufsiz1) > 1024 ? 1024 - : sizeof(bb_common_bufsiz1) - 1, /* max line length typed in by user */ + USERSIZE = sizeof(searchString) > 1024 ? 1024 + : sizeof(searchString) - 1, /* max line length typed in by user */ INITBUF_SIZE = 1024, /* initial buffer size */ }; @@ -22,8 +24,6 @@ typedef struct LINE { char data[1]; } LINE; -#define searchString bb_common_bufsiz1 - static LINE lines, *curLine; static int curNum, lastNum, marks[26], dirty; static char *bufBase, *bufPtr, *fileName; diff --git a/editors/sed.c b/editors/sed.c index d49627f..d0c2ca7 100644 --- a/editors/sed.c +++ b/editors/sed.c @@ -118,8 +118,14 @@ struct globals { int len; /* Space allocated */ } pipeline; }; - #define G (*(struct globals*)&bb_common_bufsiz1) +void BUG_sed_globals_too_big(void); +#define INIT_G() do { \ + if (sizeof(struct globals) > COMMON_BUFSIZE) \ + BUG_sed_globals_too_big(); \ + G.sed_cmd_tail = &G.sed_cmd_head; \ +} while (0) + #if ENABLE_FEATURE_CLEAN_UP static void sed_free_and_close_stuff(void) @@ -1210,8 +1216,6 @@ static void add_cmd_block(char *cmdstr) free(sv); } -void BUG_sed_globals_too_big(void); - int sed_main(int argc, char **argv); int sed_main(int argc, char **argv) { @@ -1222,10 +1226,7 @@ int sed_main(int argc, char **argv) llist_t *opt_e, *opt_f; int status = EXIT_SUCCESS; - if (sizeof(struct globals) > sizeof(bb_common_bufsiz1)) - BUG_sed_globals_too_big(); - - G.sed_cmd_tail = &G.sed_cmd_head; + INIT_G(); /* destroy command strings on exit */ if (ENABLE_FEATURE_CLEAN_UP) atexit(sed_free_and_close_stuff); |