[PATCH:xmodmap 1/3] Fix gcc -Wwrite-strings warnings

Jeremy Huddleston jeremyhu at apple.com
Sat Nov 12 16:18:26 PST 2011


Series: Reviewed-by: Jeremy Huddleston <jeremyhu at apple.com>

On Nov 11, 2011, at 21:27, Alan Coopersmith wrote:

> Signed-off-by: Alan Coopersmith <alan.coopersmith at oracle.com>
> ---
> 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);
> -- 
> 1.7.3.2
> 
> _______________________________________________
> xorg-devel at lists.x.org: X.Org development
> Archives: http://lists.x.org/archives/xorg-devel
> Info: http://lists.x.org/mailman/listinfo/xorg-devel
> 



More information about the xorg-devel mailing list