OSDN Git Service

include/
authordevans <devans@138bc75d-0d04-0410-961f-82ee72b054a4>
Wed, 28 Sep 2011 19:04:30 +0000 (19:04 +0000)
committerdevans <devans@138bc75d-0d04-0410-961f-82ee72b054a4>
Wed, 28 Sep 2011 19:04:30 +0000 (19:04 +0000)
* libiberty.h (countargv): Declare.

libiberty/
* argv.c (countargv): New function.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@179318 138bc75d-0d04-0410-961f-82ee72b054a4

include/ChangeLog
include/libiberty.h
libiberty/ChangeLog
libiberty/argv.c

index 3cc8996..a09c287 100644 (file)
@@ -1,3 +1,7 @@
+2011-09-28  Doug Evans  <dje@google.com>
+
+       * libiberty.h (countargv): Declare.
+
 2011-09-26  Cary Coutant  <ccoutant@google.com>
 
        PR lto/47247
index 32eb83a..cacde80 100644 (file)
@@ -91,6 +91,10 @@ extern void expandargv PARAMS ((int *, char ***));
 
 extern int writeargv PARAMS ((char **, FILE *));
 
+/* Return the number of elements in argv.  */
+
+extern int countargv (char**);
+
 /* Return the last component of a path name.  Note that we can't use a
    prototype here because the parameter is declared inconsistently
    across different systems, sometimes as "char *" and sometimes as
index 0547f9b..ccee83f 100644 (file)
@@ -1,3 +1,7 @@
+2011-09-28  Doug Evans  <dje@google.com>
+
+       * argv.c (countargv): New function.
+
 2011-09-23  Cary Coutant  <ccoutant@google.com>
 
        PR 40831
index 8476c8f..ca53f91 100644 (file)
@@ -492,6 +492,29 @@ expandargv (int *argcp, char ***argvp)
     }
 }
 
+/*
+
+@deftypefn Extension int countargv (char **@var{argv})
+
+Return the number of elements in @var{argv}.
+Returns zero if @var{argv} is NULL.
+
+@end deftypefn
+
+*/
+
+int
+countargv (char **argv)
+{
+  int argc;
+
+  if (argv == NULL)
+    return 0;
+  for (argc = 0; argv[argc] != NULL; argc++)
+    continue;
+  return argc;
+}
+
 #ifdef MAIN
 
 /* Simple little test driver. */