diff options
author | jbj <jbj> | 2008-03-09 20:24:45 +0000 |
---|---|---|
committer | jbj <jbj> | 2008-03-09 20:24:45 +0000 |
commit | 3cb9493db033210c82bda3a3fdab5366fb7065ea (patch) | |
tree | 2c798350226528a029f10a4ab80a529ec97d0ae5 /poptparse.c | |
parent | 0608049e4ad26f83a2d140979a03ddebb6e7fda4 (diff) | |
download | libpopt-3cb9493db033210c82bda3a3fdab5366fb7065ea.tar.gz |
- jbj: study the mess with splint, remove annotations where possible.
- jbj: add -D_GNU_SOURCE for gcc to use __builtin_stpcpy when available.
- jbj: add static inline stpcpy for the deprived.
- jbj: use stpcpy to eliminate sprintf calls everywhere but popthelp.c
- jbj: remove (now unneeded afaik) va_copy() from POPT_fprintf().
- jbj: inline strdup_fprintf() => POPT_fprintf keeping (unneeded?) va_copy.
Diffstat (limited to 'poptparse.c')
-rw-r--r-- | poptparse.c | 4 |
1 files changed, 3 insertions, 1 deletions
diff --git a/poptparse.c b/poptparse.c index f203743..d196cc8 100644 --- a/poptparse.c +++ b/poptparse.c @@ -31,10 +31,12 @@ int poptDupArgv(int argc, const char **argv, return POPT_ERROR_MALLOC; argv2 = (void *) dst; dst += (argc + 1) * sizeof(*argv); + *dst = '\0'; for (i = 0; i < argc; i++) { argv2[i] = dst; - dst += strlen(strcpy(dst, argv[i])) + 1; + dst = stpcpy(dst, argv[i]); + dst++; /* trailing NUL */ } argv2[argc] = NULL; |