aboutsummaryrefslogtreecommitdiff
path: root/libiberty/concat.c
diff options
context:
space:
mode:
Diffstat (limited to 'libiberty/concat.c')
-rw-r--r--libiberty/concat.c45
1 files changed, 20 insertions, 25 deletions
diff --git a/libiberty/concat.c b/libiberty/concat.c
index 4144d83..7846a19 100644
--- a/libiberty/concat.c
+++ b/libiberty/concat.c
@@ -1,5 +1,5 @@
/* Concatenate variable number of strings.
- Copyright (C) 1991, 1994, 2001, 2011 Free Software Foundation, Inc.
+ Copyright (C) 1991, 1994, 2001, 2011, 2013 Free Software Foundation, Inc.
Written by Fred Fish @ Cygnus Support
This file is part of the libiberty library.
@@ -90,11 +90,11 @@ unsigned long
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;
}
@@ -105,13 +105,12 @@ char *
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;
}
@@ -129,10 +128,10 @@ char *libiberty_concat_ptr;
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;
}
@@ -141,18 +140,17 @@ char *
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;
}
@@ -179,22 +177,19 @@ char *
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;
}