diff options
author | Paul Eggert <eggert@cs.ucla.edu> | 2014-02-23 14:20:18 -0800 |
---|---|---|
committer | Paul Eggert <eggert@cs.ucla.edu> | 2014-02-23 14:20:57 -0800 |
commit | 26e2108a3b6bad235316f36d68365f5a9ee9f634 (patch) | |
tree | d4fe6719635cb1c53d87693f28bfeff1c67fc95e /lib/savedir.c | |
parent | d6eab2e70fc5ccc82a73e5c988b76a229e4cd3d5 (diff) | |
download | gnulib-26e2108a3b6bad235316f36d68365f5a9ee9f634.tar.gz |
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.
Diffstat (limited to 'lib/savedir.c')
-rw-r--r-- | lib/savedir.c | 34 |
1 files changed, 16 insertions, 18 deletions
diff --git a/lib/savedir.c b/lib/savedir.c index badf602162..111d84bebf 100644 --- 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 @@ streamsavedir (DIR *dirp, enum savedir_option option) 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 @@ streamsavedir (DIR *dirp, enum savedir_option option) 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); } |