Mercurial > hg > CbC > CbC_gcc
diff libiberty/concat.c @ 111:04ced10e8804
gcc 7
author | kono |
---|---|
date | Fri, 27 Oct 2017 22:46:09 +0900 |
parents | f6334be47118 |
children | 84e7813d76e9 |
line wrap: on
line diff
--- a/libiberty/concat.c Sun Aug 21 07:07:55 2011 +0900 +++ b/libiberty/concat.c Fri Oct 27 22:46:09 2017 +0900 @@ -1,5 +1,5 @@ /* Concatenate variable number of strings. - Copyright (C) 1991, 1994, 2001, 2011 Free Software Foundation, Inc. + Copyright (C) 1991-2017 Free Software Foundation, Inc. Written by Fred Fish @ Cygnus Support This file is part of the libiberty library. @@ -25,23 +25,11 @@ @dots{}, @code{NULL}) Concatenate zero or more of strings and return the result in freshly -@code{xmalloc}ed memory. Returns @code{NULL} if insufficient memory is -available. The argument list is terminated by the first @code{NULL} -pointer encountered. Pointers to empty strings are ignored. +@code{xmalloc}ed memory. The argument list is terminated by the first +@code{NULL} pointer encountered. Pointers to empty strings are ignored. @end deftypefn -NOTES - - This function uses xmalloc() which is expected to be a front end - function to malloc() that deals with low memory situations. In - typical use, if malloc() returns NULL then xmalloc() diverts to an - error handler routine which never returns, and thus xmalloc will - never return a NULL pointer. If the client application wishes to - deal with low memory situations itself, it should supply an xmalloc - that just directly invokes malloc and blindly returns whatever - malloc returns. - */ @@ -102,11 +90,11 @@ concat_length (const char *first, ...) { unsigned long length; + va_list args; - VA_OPEN (args, first); - VA_FIXEDARG (args, const char *, first); + va_start (args, first); length = vconcat_length (first, args); - VA_CLOSE (args); + va_end (args); return length; } @@ -117,13 +105,12 @@ concat_copy (char *dst, const char *first, ...) { char *save_dst; + va_list args; - VA_OPEN (args, first); - VA_FIXEDARG (args, char *, dst); - VA_FIXEDARG (args, const char *, first); + va_start (args, first); vconcat_copy (dst, first, args); save_dst = dst; /* With K&R C, dst goes out of scope here. */ - VA_CLOSE (args); + va_end (args); return save_dst; } @@ -141,10 +128,10 @@ char * concat_copy2 (const char *first, ...) { - VA_OPEN (args, first); - VA_FIXEDARG (args, const char *, first); + va_list args; + va_start (args, first); vconcat_copy (libiberty_concat_ptr, first, args); - VA_CLOSE (args); + va_end (args); return libiberty_concat_ptr; } @@ -153,18 +140,17 @@ concat (const char *first, ...) { char *newstr; + va_list args; /* First compute the size of the result and get sufficient memory. */ - VA_OPEN (args, first); - VA_FIXEDARG (args, const char *, first); + va_start (args, first); newstr = XNEWVEC (char, vconcat_length (first, args) + 1); - VA_CLOSE (args); + va_end (args); /* Now copy the individual pieces to the result string. */ - VA_OPEN (args, first); - VA_FIXEDARG (args, const char *, first); + va_start (args, first); vconcat_copy (newstr, first, args); - VA_CLOSE (args); + va_end (args); return newstr; } @@ -191,22 +177,19 @@ reconcat (char *optr, const char *first, ...) { char *newstr; + va_list args; /* First compute the size of the result and get sufficient memory. */ - VA_OPEN (args, first); - VA_FIXEDARG (args, char *, optr); - VA_FIXEDARG (args, const char *, first); + va_start (args, first); newstr = XNEWVEC (char, vconcat_length (first, args) + 1); - VA_CLOSE (args); + va_end (args); /* Now copy the individual pieces to the result string. */ - VA_OPEN (args, first); - VA_FIXEDARG (args, char *, optr); - VA_FIXEDARG (args, const char *, first); + va_start (args, first); vconcat_copy (newstr, first, args); if (optr) /* Done before VA_CLOSE so optr stays in scope for K&R C. */ free (optr); - VA_CLOSE (args); + va_end (args); return newstr; }