diff options
author | Alan Coopersmith <alan.coopersmith@oracle.com> | 2010-11-27 22:36:44 -0800 |
---|---|---|
committer | Alan Coopersmith <alan.coopersmith@oracle.com> | 2010-12-07 11:10:35 -0800 |
commit | 2416255f7e3fd9190a9e01bda57c992932de4bd9 (patch) | |
tree | ab6b2a07898f737b7bfc6b5f4b5147bfb1ce6211 /hw/xfree86 | |
parent | 03e8bfa1d122f7dea905d48c93cfd54afd991dfd (diff) |
Convert hw/xfree86/parser code to use asprintf() calls
Requires linking xprintf.c into libxf86config for those who build it.
Signed-off-by: Alan Coopersmith <alan.coopersmith@oracle.com>
Reviewed-by: Mikhail Gusarov <dottedmag@dottedmag.net>
Diffstat (limited to 'hw/xfree86')
-rw-r--r-- | hw/xfree86/parser/Flags.c | 13 | ||||
-rw-r--r-- | hw/xfree86/parser/Makefile.am | 1 | ||||
-rw-r--r-- | hw/xfree86/parser/Pointer.c | 16 |
3 files changed, 11 insertions, 19 deletions
diff --git a/hw/xfree86/parser/Flags.c b/hw/xfree86/parser/Flags.c index a9149c243..7a0794bb0 100644 --- a/hw/xfree86/parser/Flags.c +++ b/hw/xfree86/parser/Flags.c @@ -61,8 +61,8 @@ #include "xf86Parser.h" #include "xf86tokens.h" #include "Configint.h" -#include <math.h> #include <X11/Xfuncproto.h> +#include "Xprintf.h" extern LexRec val; @@ -143,9 +143,8 @@ xf86parseFlagsSection (void) } else { if (tokentype != NUMBER) Error (NUMBER_MSG, tmp); - valstr = malloc(16); - if (valstr) - sprintf(valstr, "%d", val.num); + if (asprintf(&valstr, "%d", val.num) == -1) + valstr = NULL; } } ptr->flg_option_lst = xf86addNewOption @@ -426,13 +425,9 @@ char * xf86uLongToString(unsigned long i) { char *s; - int l; - l = ceil(log10((double)i) + 2.5); - s = malloc(l); - if (!s) + if (asprintf(&s, "%lu", i) == -1) return NULL; - sprintf(s, "%lu", i); return s; } diff --git a/hw/xfree86/parser/Makefile.am b/hw/xfree86/parser/Makefile.am index caf7079d4..a5adc01ee 100644 --- a/hw/xfree86/parser/Makefile.am +++ b/hw/xfree86/parser/Makefile.am @@ -31,6 +31,7 @@ libxf86config_internal_la_SOURCES = \ $(INTERNAL_SOURCES) libxf86config_a_SOURCES = \ + $(TOP_SRCDIR)/os/xprintf.c \ $(INTERNAL_SOURCES) libxf86config_a_CFLAGS = $(AM_CFLAGS) diff --git a/hw/xfree86/parser/Pointer.c b/hw/xfree86/parser/Pointer.c index 56a26ba74..65397cd81 100644 --- a/hw/xfree86/parser/Pointer.c +++ b/hw/xfree86/parser/Pointer.c @@ -62,6 +62,7 @@ #include "xf86Parser.h" #include "xf86tokens.h" #include "Configint.h" +#include "Xprintf.h" extern LexRec val; @@ -99,8 +100,8 @@ static xf86ConfigSymTabRec ZMapTab[] = XF86ConfInputPtr xf86parsePointerSection (void) { - char *s, *s1, *s2; - int l; + char *s; + unsigned long val1; int token; parsePrologue (XF86ConfInputPtr, XF86ConfInputRec) @@ -184,17 +185,12 @@ xf86parsePointerSection (void) case NUMBER: if (val.num < 0) Error (ZAXISMAPPING_MSG, NULL); - s1 = xf86uLongToString(val.num); + val1 = val.num; if (xf86getSubToken (&(ptr->inp_comment)) != NUMBER || val.num < 0) { - free(s1); Error (ZAXISMAPPING_MSG, NULL); } - s2 = xf86uLongToString(val.num); - l = strlen(s1) + 1 + strlen(s2) + 1; - s = malloc(l); - sprintf(s, "%s %s", s1, s2); - free(s1); - free(s2); + if (asprintf(&s, "%ul %ul", val1, val.num) == -1) + s = NULL; break; case XAXIS: s = strdup("x"); |