Mercurial > hg > octave-shane > gnulib-hg
changeset 17629:4941d0da6e24
savedir: simplify by using stpcpy
* lib/savedir.c (direntry_t): Remove size member. All uses removed.
(streamsavedir): Use stpcpy instead.
* modules/savedir (Depends-on): Add stpcpy.
author | Paul Eggert <eggert@cs.ucla.edu> |
---|---|
date | Sun, 23 Feb 2014 14:20:18 -0800 |
parents | 098e9f7b62e9 |
children | d09167851e07 |
files | ChangeLog lib/savedir.c modules/savedir |
diffstat | 3 files changed, 24 insertions(+), 18 deletions(-) [+] |
line wrap: on
line diff
--- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,10 @@ +2014-02-23 Paul Eggert <eggert@cs.ucla.edu> + + savedir: simplify by using stpcpy + * lib/savedir.c (direntry_t): Remove size member. All uses removed. + (streamsavedir): Use stpcpy instead. + * modules/savedir (Depends-on): Add stpcpy. + 2014-02-21 Pádraig Brady <P@draigBrady.com> spawn: fix link error on uclibc
--- a/lib/savedir.c +++ b/lib/savedir.c @@ -40,7 +40,6 @@ typedef struct { char *name; - size_t size; #if D_INO_IN_DIRENT ino_t ino; #endif @@ -128,25 +127,24 @@ entries_allocated = n; } entries[entries_used].name = xstrdup (entry); - entries[entries_used].size = entry_size; #if D_INO_IN_DIRENT entries[entries_used].ino = dp->d_ino; #endif entries_used++; } - else - { - if (allocated - used <= entry_size) - { - size_t n = used + entry_size; - if (n < used) - xalloc_die (); - name_space = x2nrealloc (name_space, &n, 1); - allocated = n; - } - memcpy (name_space + used, entry, entry_size); - } - used += entry_size; + else + { + if (allocated - used <= entry_size) + { + size_t n = used + entry_size; + if (n < used) + xalloc_die (); + name_space = x2nrealloc (name_space, &n, 1); + allocated = n; + } + memcpy (name_space + used, entry, entry_size); + } + used += entry_size; } } @@ -168,9 +166,9 @@ used = 0; for (i = 0; i < entries_used; i++) { - memcpy (name_space + used, entries[i].name, entries[i].size); - used += entries[i].size; - free (entries[i].name); + char *dest = name_space + used; + used += stpcpy (dest, entries[i].name) - dest + 1; + free (entries[i].name); } free (entries); }