]> Dogcows Code - chaz/tar/blobdiff - lib/prepargs.c
Fix bug in sparse file listing
[chaz/tar] / lib / prepargs.c
index 25dd6014fcdca07fe74e91281fb23dfeb051ca0f..0c85bd445395a571d2d26b0b3758eb00671fb85c 100644 (file)
@@ -1,9 +1,9 @@
 /* Parse arguments from a string and prepend them to an argv.
 /* Parse arguments from a string and prepend them to an argv.
-   Copyright 1999, 2000 Free Software Foundation, Inc.
+   Copyright 1999-2001, 2007, 2013-2014 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
-   the Free Software Foundation; either version 2, or (at your option)
+   the Free Software Foundation; either version 3, or (at your option)
    any later version.
 
    This program is distributed in the hope that it will be useful,
    any later version.
 
    This program is distributed in the hope that it will be useful,
@@ -12,9 +12,7 @@
    GNU General Public License for more details.
 
    You should have received a copy of the GNU General Public License
    GNU General Public License for more details.
 
    You should have received a copy of the GNU General Public License
-   along with this program; if not, write to the Free Software
-   Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
-   02111-1307, USA.  */
+   along with this program.  If not, see <http://www.gnu.org/licenses/>.  */
 
 /* Written by Paul Eggert <eggert@twinsun.com>.  */
 
 
 /* Written by Paul Eggert <eggert@twinsun.com>.  */
 
 #include <sys/types.h>
 #include <xalloc.h>
 
 #include <sys/types.h>
 #include <xalloc.h>
 
-#include <ctype.h>
-
-/* IN_CTYPE_DOMAIN (C) is nonzero if the unsigned char C can safely be given
-   as an argument to <ctype.h> macros like "isspace".  */
-#ifdef STDC_HEADERS
-# define IN_CTYPE_DOMAIN(c) 1
-#else
-# define IN_CTYPE_DOMAIN(c) ((c) <= 0177)
+#if HAVE_STRING_H
+# include <string.h>
 #endif
 
 #endif
 
-#define ISSPACE(c) (IN_CTYPE_DOMAIN (c) && isspace (c))
+#include <ctype.h>
 
 /* Find the white-space-separated options specified by OPTIONS, and
    using BUF to store copies of these options, set ARGV[0], ARGV[1],
    etc. to the option copies.  Return the number N of options found.
 
 /* Find the white-space-separated options specified by OPTIONS, and
    using BUF to store copies of these options, set ARGV[0], ARGV[1],
    etc. to the option copies.  Return the number N of options found.
-   Do not set ARGV[N] to NULL.  If ARGV is NULL, do not store ARGV[0]
+   Do not set ARGV[N].  If ARGV is null, do not store ARGV[0]
    etc.  Backslash can be used to escape whitespace (and backslashes).  */
 static int
 prepend_args (char const *options, char *buf, char **argv)
    etc.  Backslash can be used to escape whitespace (and backslashes).  */
 static int
 prepend_args (char const *options, char *buf, char **argv)
@@ -51,7 +43,7 @@ prepend_args (char const *options, char *buf, char **argv)
 
   for (;;)
     {
 
   for (;;)
     {
-      while (ISSPACE ((unsigned char) *o))
+      while (isspace ((unsigned char) *o))
        o++;
       if (!*o)
        return n;
        o++;
       if (!*o)
        return n;
@@ -62,7 +54,7 @@ prepend_args (char const *options, char *buf, char **argv)
       do
        if ((*b++ = *o++) == '\\' && *o)
          b[-1] = *o++;
       do
        if ((*b++ = *o++) == '\\' && *o)
          b[-1] = *o++;
-      while (*o && ! ISSPACE ((unsigned char) *o));
+      while (*o && ! isspace ((unsigned char) *o));
 
       *b++ = '\0';
     }
 
       *b++ = '\0';
     }
@@ -77,7 +69,7 @@ prepend_default_options (char const *options, int *pargc, char ***pargv)
   if (options)
     {
       char *buf = xmalloc (strlen (options) + 1);
   if (options)
     {
       char *buf = xmalloc (strlen (options) + 1);
-      int prepended = prepend_args (options, buf, (char **) NULL);
+      int prepended = prepend_args (options, buf, (char **) 0);
       int argc = *pargc;
       char * const *argv = *pargv;
       char **pp = (char **) xmalloc ((prepended + argc + 1) * sizeof *pp);
       int argc = *pargc;
       char * const *argv = *pargv;
       char **pp = (char **) xmalloc ((prepended + argc + 1) * sizeof *pp);
This page took 0.025312 seconds and 4 git commands to generate.