summaryrefslogtreecommitdiff
path: root/editors
diff options
context:
space:
mode:
authorDenis Vlasenko2007-06-04 10:16:52 +0000
committerDenis Vlasenko2007-06-04 10:16:52 +0000
commit74324c86663f57a19c1de303ee8c8e5449db9ef2 (patch)
tree11f5da9de4212875ce5811be2e1050e076378c9a /editors
parent4e5f82c76f08614d0b69f9ec4a8baac303af15f6 (diff)
downloadbusybox-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.c8
-rw-r--r--editors/sed.c15
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);