# HG changeset patch # User Paul Eggert # Date 1393194018 28800 # Node ID 4941d0da6e2421e0e13dc37241d57a952e01c653 # Parent 098e9f7b62e9c87132d3eb5181c059fd6e75d477 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. diff -r 098e9f7b62e9 -r 4941d0da6e24 ChangeLog --- a/ChangeLog Tue Jan 14 16:59:07 2014 +0000 +++ b/ChangeLog Sun Feb 23 14:20:18 2014 -0800 @@ -1,3 +1,10 @@ +2014-02-23 Paul Eggert + + 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 spawn: fix link error on uclibc diff -r 098e9f7b62e9 -r 4941d0da6e24 lib/savedir.c --- a/lib/savedir.c Tue Jan 14 16:59:07 2014 +0000 +++ b/lib/savedir.c Sun Feb 23 14:20:18 2014 -0800 @@ -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); } diff -r 098e9f7b62e9 -r 4941d0da6e24 modules/savedir --- a/modules/savedir Tue Jan 14 16:59:07 2014 +0000 +++ b/modules/savedir Sun Feb 23 14:20:18 2014 -0800 @@ -12,6 +12,7 @@ fdopendir opendir readdir +stpcpy xalloc configure.ac: