size_t i, total, ctsize, len;
char *p;
const char *q;
-
+
for (i = 0, total = 0, ctsize = 1, q = contents; *q; total++, q += len)
{
len = strlen (q) + 1;
struct dumpdir_iter
{
struct dumpdir *dump; /* Dumpdir being iterated */
- int all; /* Iterate over all entries, not only D/N/Y */
+ int all; /* Iterate over all entries, not only D/N/Y */
size_t next; /* Index of the next element */
};
{
size_t cur = itr->next;
char *ret = NULL;
-
+
if (itr->all)
{
ret = itr->dump->contents + cur;
directory->dump = directory->idump = NULL;
directory->orig = NULL;
directory->flags = false;
- if (namelen && ISSLASH (name[namelen - 1]))
+ if (namelen > 1 && ISSLASH (name[namelen - 1]))
namelen--;
directory->name = xmalloc (namelen + 1);
memcpy (directory->name, name, namelen);
dirtail = dir;
return dir;
}
-
+
\f
-void
+static void
dirlist_replace_prefix (const char *pref, const char *repl)
{
struct directory *dp;
struct stat st;
if (deref_stat (dereference_option, p, &st) != 0)
{
- if (errno != ENOENT)
+ if (errno != ENOENT)
stat_diag (directory->name);
/* else: should have been already reported */
}
*entry = 'N';
return directory;
}
-
+
/* With NFS, the same file can have two different devices
if an NFS directory is mounted in multiple locations,
which is relatively common when automounting.
To avoid spurious incremental redumping of
directories, consider all NFS devices as equal,
relying on the i-node to establish differences. */
-
+
if (! ((!check_device_option
|| (DIR_IS_NFS (directory) && nfs)
|| directory->device_number == stat_data->st_dev)
}
else
directory->children = CHANGED_CHILDREN;
-
+
DIR_SET_FLAG (directory, DIRF_FOUND);
}
else
{
struct directory *d = find_directory_meta (stat_data->st_dev,
stat_data->st_ino);
-
+
directory = note_directory (name_buffer,
get_stat_mtime(stat_data),
stat_data->st_dev,
if (one_file_system_option && device != stat_data->st_dev
/* ... except if it was explicitely given in the command line */
&& !is_individual_file (name_buffer))
- /* FIXME:
+ /* FIXME:
WARNOPT (WARN_XDEV,
(0, 0,
_("%s: directory is on a different filesystem; not dumped"),
if (directory->children == NO_CHILDREN)
*entry = 'N';
}
-
+
DIR_SET_FLAG (directory, DIRF_INIT);
if (directory->children != NO_CHILDREN)
_("contents not dumped"));
directory->children = NO_CHILDREN;
break;
-
+
case exclusion_tag_under:
exclusion_tag_warning (name_buffer, tag_file_name,
_("contents not dumped"));
directory->tagfile = tag_file_name;
break;
-
+
case exclusion_tag_none:
break;
}
DIRECTORY->dump is replaced with the created template. Each entry is
prefixed with ' ' if it was present in DUMP and with 'Y' otherwise. */
-void
+static void
makedumpdir (struct directory *directory, const char *dir)
{
size_t i,
struct stat stat_data;
struct directory *directory;
char ch;
-
+
if (! dirp)
savedir_error (dir);
tmp = xstrdup (dir);
zap_slashes (tmp);
-
+
if (deref_stat (dereference_option, tmp, &stat_data))
{
dir_removed_diag (tmp, cmdline, stat_diag);
directory = procdir (tmp, &stat_data, device,
(cmdline ? PD_FORCE_INIT : 0),
&ch);
-
+
free (tmp);
nbuf = namebuf_create (dir);
\f
static void
-obstack_code_rename (struct obstack *stk, char *from, char *to)
+obstack_code_rename (struct obstack *stk, char const *from, char const *to)
{
- char *s;
+ char const *s;
s = from[0] == 0 ? from :
safer_name_suffix (from, false, absolute_names_option);
size_t size;
struct directory *dp;
const char *dump;
-
+
if (dirhead == NULL)
return;
uintmax_t u;
time_t sec;
long int nsec;
- char *buf = 0;
- size_t bufsize;
+ char *buf = NULL;
+ size_t bufsize = 0;
char *ebuf;
long lineno = 1;
/* Read incremental snapshot format 2 */
static void
-read_incr_db_2 ()
+read_incr_db_2 (void)
{
uintmax_t u;
struct obstack stk;
read_directory_file (void)
{
int fd;
- char *buf = 0;
- size_t bufsize;
+ char *buf = NULL;
+ size_t bufsize = 0;
int flags = O_RDWR | O_CREAT;
if (incremental_level == 0)
which is necessary to recreate absolute file names. */
name_from_list ();
blank_name_list ();
-
+
if (0 < getline (&buf, &bufsize, listed_incremental_stream))
{
char *ebuf;
if (DIR_IS_FOUND (directory))
{
char buf[UINTMAX_STRSIZE_BOUND];
- char *s;
+ char const *s;
s = DIR_IS_NFS (directory) ? "1" : "0";
fwrite (s, 2, 1, fp);
if (! fp)
return;
- if (fseek (fp, 0L, SEEK_SET) != 0)
+ if (fseeko (fp, 0L, SEEK_SET) != 0)
seek_error (listed_incremental_option);
if (sys_truncate (fileno (fp)) != 0)
truncate_error (listed_incremental_option);
to = archive_dir;
set_next_block_after (current_header);
- mv_begin (stat_info);
+ mv_begin_read (stat_info);
for (; size > 0; size -= copied)
{
}
free (p);
dumpdir_free (dump);
-
+
free (current_dir);
return true;
}