From 66c09c83aa2f64b31dc657f90447c269621545b7 Mon Sep 17 00:00:00 2001 From: Alan Coopersmith Date: Fri, 11 Nov 2011 20:40:18 -0800 Subject: Fix gcc -Wwrite-strings warnings Signed-off-by: Alan Coopersmith Reviewed-by: Jeremy Huddleston --- exec.c | 2 +- handle.c | 6 +++--- pf.c | 18 ++++++++++-------- wq.h | 2 +- xmodmap.c | 2 +- xmodmap.h | 3 ++- 6 files changed, 18 insertions(+), 15 deletions(-) diff --git a/exec.c b/exec.c index 0508cd3..dbcb669 100644 --- a/exec.c +++ b/exec.c @@ -280,7 +280,7 @@ PrintKeyTable(Bool exprs, FILE *fp) max--; for (j = 0; j <= max; j++) { register KeySym ks = keymap[j]; - char *s; + const char *s; if (ks != NoSymbol) s = XKeysymToString (ks); else diff --git a/handle.c b/handle.c index af2f5df..3f05a46 100644 --- a/handle.c +++ b/handle.c @@ -144,7 +144,7 @@ static int skip_chars ( const char *s, int len ); static int skip_space ( const char *s, int len ); static struct dt { - char *command; /* name of input command */ + const char *command; /* name of input command */ int length; /* length of command */ void (*proc)(char *, int); /* handler */ } dispatch_table[] = { @@ -277,7 +277,7 @@ add_to_work_queue(union op *p) /* this can become a macro someday */ static Bool parse_number(const char *str, unsigned long *val) { - char *fmt = "%ld"; + const char *fmt = "%ld"; if (*str == '0') { str++; @@ -324,7 +324,7 @@ static void do_keycode(char *line, int len) { int dummy; - char *fmt = "%d"; + const char *fmt = "%d"; KeyCode keycode; if (len < 3 || !line || *line == '\0') { /* 5=a minimum */ diff --git a/pf.c b/pf.c index cfb41b7..0cc8101 100644 --- a/pf.c +++ b/pf.c @@ -78,17 +78,19 @@ void process_file (const char *filename) /* NULL means use stdin */ } -void process_line (char *buffer) +void process_line (const char *line) { int len; int i; - char *cp; - - /* copy buffer since it may point to unwritable date */ - len = strlen(buffer); - cp = chk_malloc(len + 1); - strcpy(cp, buffer); - buffer = cp; + char *cp, *buffer; + + /* copy line to buffer since it may point to unwritable data */ + len = strlen(line); + cp = buffer = strdup(line); + if (buffer == NULL) { + fprintf(stderr, "%s: Could not allocate %d bytes\n", ProgramName, len); + Exit(-1); + } for (i = 0; i < len; i++) { /* look for blank lines */ register char c = buffer[i]; diff --git a/wq.h b/wq.h index f541b7c..58c062e 100644 --- a/wq.h +++ b/wq.h @@ -135,7 +135,7 @@ extern struct wq { extern struct modtab { - char *name; + const char *name; int length; int value; } modifier_table[]; diff --git a/xmodmap.c b/xmodmap.c index 3d20e94..f49bc33 100644 --- a/xmodmap.c +++ b/xmodmap.c @@ -39,7 +39,7 @@ int min_keycode, max_keycode; Bool verbose = False; Bool dontExecute = False; -static void +void _X_NORETURN Exit(int status) { diff --git a/xmodmap.h b/xmodmap.h index 5addd7b..1540b2a 100644 --- a/xmodmap.h +++ b/xmodmap.h @@ -37,7 +37,7 @@ extern int parse_errors; extern void initialize_map(void); extern void process_file(const char *filename); -extern void process_line(char *buffer); +extern void process_line(const char *buffer); extern void handle_line(char *line, int len); extern void print_work_queue(void); extern int execute_work_queue(void); @@ -55,4 +55,5 @@ extern void PrintKeyTable(Bool exprs, FILE *fp); extern void PrintPointerMap(FILE *fp); extern int SetPointerMap(unsigned char *map, int n); +extern void _X_NORETURN Exit(int status); extern void *chk_malloc(size_t n_bytes); -- cgit v1.2.3