Commit 66f49f07 by Mike Frysinger Committed by Mike Frysinger

libiberty: {count,dup,write}argv: constify argv input slightly

Would be more useful if we could use "const char * const *", but there's
a long standing bug where gcc warns about incompatible pointers when you
try to pass in "char **".  We can at least constify the array itself as
gcc will not warn in that case.

From-SVN: r232089
parent acf93f1e
2016-01-05 Mike Frysinger <vapier@gentoo.org>
* libiberty.h (dupargv): Change arg to char * const *.
(writeargv, countargv): Likewise.
2015-11-25 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE> 2015-11-25 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
* vtv-change-permission.h (VTV_PAGE_SIZE) [__sun__ && __svr4__ && * vtv-change-permission.h (VTV_PAGE_SIZE) [__sun__ && __svr4__ &&
......
...@@ -80,7 +80,7 @@ extern void freeargv (char **); ...@@ -80,7 +80,7 @@ extern void freeargv (char **);
/* Duplicate an argument vector. Allocates memory using malloc. Use /* Duplicate an argument vector. Allocates memory using malloc. Use
freeargv to free the vector. */ freeargv to free the vector. */
extern char **dupargv (char **) ATTRIBUTE_MALLOC; extern char **dupargv (char * const *) ATTRIBUTE_MALLOC;
/* Expand "@file" arguments in argv. */ /* Expand "@file" arguments in argv. */
...@@ -88,11 +88,11 @@ extern void expandargv (int *, char ***); ...@@ -88,11 +88,11 @@ extern void expandargv (int *, char ***);
/* Write argv to an @-file, inserting necessary quoting. */ /* Write argv to an @-file, inserting necessary quoting. */
extern int writeargv (char **, FILE *); extern int writeargv (char * const *, FILE *);
/* Return the number of elements in argv. */ /* Return the number of elements in argv. */
extern int countargv (char**); extern int countargv (char * const *);
/* Return the last component of a path name. Note that we can't use a /* Return the last component of a path name. Note that we can't use a
prototype here because the parameter is declared inconsistently prototype here because the parameter is declared inconsistently
......
2016-01-05 Mike Frysinger <vapier@gentoo.org> 2016-01-05 Mike Frysinger <vapier@gentoo.org>
* argv.c (dupargv): Change arg to char * const *. Update comment.
(writeargv, countargv): Likewise.
* functions.texi (dupargv, writeargv, countargv): Likewise.
2016-01-05 Mike Frysinger <vapier@gentoo.org>
* argv.c (dupargv): Replace strlen/xmalloc/strcpy with xstrdup. * argv.c (dupargv): Replace strlen/xmalloc/strcpy with xstrdup.
2015-12-28 Patrick Palka <ppalka@gcc.gnu.org> 2015-12-28 Patrick Palka <ppalka@gcc.gnu.org>
......
...@@ -49,7 +49,7 @@ Boston, MA 02110-1301, USA. */ ...@@ -49,7 +49,7 @@ Boston, MA 02110-1301, USA. */
/* /*
@deftypefn Extension char** dupargv (char **@var{vector}) @deftypefn Extension char** dupargv (char * const *@var{vector})
Duplicate an argument vector. Simply scans through @var{vector}, Duplicate an argument vector. Simply scans through @var{vector},
duplicating each argument until the terminating @code{NULL} is found. duplicating each argument until the terminating @code{NULL} is found.
...@@ -62,7 +62,7 @@ argument vector. ...@@ -62,7 +62,7 @@ argument vector.
*/ */
char ** char **
dupargv (char **argv) dupargv (char * const *argv)
{ {
int argc; int argc;
char **copy; char **copy;
...@@ -279,7 +279,7 @@ char **buildargv (const char *input) ...@@ -279,7 +279,7 @@ char **buildargv (const char *input)
/* /*
@deftypefn Extension int writeargv (const char **@var{argv}, FILE *@var{file}) @deftypefn Extension int writeargv (char * const *@var{argv}, FILE *@var{file})
Write each member of ARGV, handling all necessary quoting, to the file Write each member of ARGV, handling all necessary quoting, to the file
named by FILE, separated by whitespace. Return 0 on success, non-zero named by FILE, separated by whitespace. Return 0 on success, non-zero
...@@ -290,7 +290,7 @@ if an error occurred while writing to FILE. ...@@ -290,7 +290,7 @@ if an error occurred while writing to FILE.
*/ */
int int
writeargv (char **argv, FILE *f) writeargv (char * const *argv, FILE *f)
{ {
int status = 0; int status = 0;
...@@ -463,7 +463,7 @@ expandargv (int *argcp, char ***argvp) ...@@ -463,7 +463,7 @@ expandargv (int *argcp, char ***argvp)
/* /*
@deftypefn Extension int countargv (char **@var{argv}) @deftypefn Extension int countargv (char * const *@var{argv})
Return the number of elements in @var{argv}. Return the number of elements in @var{argv}.
Returns zero if @var{argv} is NULL. Returns zero if @var{argv} is NULL.
...@@ -473,7 +473,7 @@ Returns zero if @var{argv} is NULL. ...@@ -473,7 +473,7 @@ Returns zero if @var{argv} is NULL.
*/ */
int int
countargv (char **argv) countargv (char * const *argv)
{ {
int argc; int argc;
......
...@@ -176,7 +176,7 @@ Concatenate zero or more of strings and return the result in freshly ...@@ -176,7 +176,7 @@ Concatenate zero or more of strings and return the result in freshly
@end deftypefn @end deftypefn
@c argv.c:470 @c argv.c:470
@deftypefn Extension int countargv (char **@var{argv}) @deftypefn Extension int countargv (char * const *@var{argv})
Return the number of elements in @var{argv}. Return the number of elements in @var{argv}.
Returns zero if @var{argv} is NULL. Returns zero if @var{argv} is NULL.
...@@ -213,7 +213,7 @@ make it easy to compose the values of multiple blocks. ...@@ -213,7 +213,7 @@ make it easy to compose the values of multiple blocks.
@end deftypefn @end deftypefn
@c argv.c:52 @c argv.c:52
@deftypefn Extension char** dupargv (char **@var{vector}) @deftypefn Extension char** dupargv (char * const *@var{vector})
Duplicate an argument vector. Simply scans through @var{vector}, Duplicate an argument vector. Simply scans through @var{vector},
duplicating each argument until the terminating @code{NULL} is found. duplicating each argument until the terminating @code{NULL} is found.
...@@ -1915,7 +1915,7 @@ does the return value. The third argument is unused in @libib{}. ...@@ -1915,7 +1915,7 @@ does the return value. The third argument is unused in @libib{}.
@end deftypefn @end deftypefn
@c argv.c:286 @c argv.c:286
@deftypefn Extension int writeargv (const char **@var{argv}, FILE *@var{file}) @deftypefn Extension int writeargv (char * const *@var{argv}, FILE *@var{file})
Write each member of ARGV, handling all necessary quoting, to the file Write each member of ARGV, handling all necessary quoting, to the file
named by FILE, separated by whitespace. Return 0 on success, non-zero named by FILE, separated by whitespace. Return 0 on success, non-zero
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment