rem: *new_dst = 1; new->is_new_dir = 1;
add: *new_dst = true; new->is_new_dir = true;
context: make_path_private (const char *const_dirpath, int src_offset, int mode,		   const char *verbose_fmt_string, struct dir_attr **attr_list,		   int *new_dst, int (*xstat)()){  struct stat stats;  char *dirpath;		/* A copy of CONST_DIRPATH we can change. */  char *src;			/* Source name in `dirpath'. */  char *dst_dirname;		/* Leading path of `dirpath'. */  size_t dirlen;		/* Length of leading path of `dirpath'. */  dirpath = (char *) alloca (strlen (const_dirpath) + 1);  strcpy (dirpath, const_dirpath);  src = dirpath + src_offset;  dirlen = dir_len (dirpath);  dst_dirname = (char *) alloca (dirlen + 1);  memcpy (dst_dirname, dirpath, dirlen);  dst_dirname[dirlen] = '\0';  *attr_list = NULL;  if ((*xstat) (dst_dirname, &stats))    {      /* Parent of CONST_DIRNAME does not exist.	 Make all missing intermediate directories. */      char *slash;      slash = src;      while (*slash == '/')	slash++;      while ((slash = strchr (slash, '/')))	{	  /* Add this directory to the list of directories whose modes need	     fixing later. */	  struct dir_attr *new =	    (struct dir_attr *) xmalloc (sizeof (struct dir_attr));	  new->slash_offset = slash - dirpath;	  new->next = *attr_list;	  *attr_list = new;	  *slash = '\0';	  if ((*xstat) (dirpath, &stats))	    {	      /* This element of the path does not exist.  We must set		 *new_dst and new->is_new_dir inside this loop because,		 for example, in the command `cp --parents ../a/../b/c e_dir',		 make_path_private creates only e_dir/../a if ./b already		 exists. */	      *new_dst = 1;	      new->is_new_dir = 1;	      if (mkdir (dirpath, mode))		{		  error (0, errno, _("cannot make directory %s"),			 quote (dirpath));		  return 1;		}	      else		{		  if (verbose_fmt_string != NULL)		    printf (verbose_fmt_string, src, dirpath);		}	    }	  else if (!S_ISDIR (stats.st_mode))	    {	      error (0, 0, _("%s exists but is not a directory"),		     quote (dirpath));	      return 1;	    }	  else	    {	      new->is_new_dir = 0;	      *new_dst = 0;	    }	  *slash++ = '/';	  /* Avoid unnecessary calls to `stat' when given	     pathnames containing multiple adjacent slashes.  */	  while (*slash == '/')	    slash++;	}    }  /* We get here if the parent of `dirpath' already exists. */  else if (!S_ISDIR (stats.st_mode))    {      error (0, 0, _("%s exists but is not a directory"), quote (dst_dirname));      return 1;    }  else    {      *new_dst = 0;    }  return 0;}