1 /* concatn.c: concatenate an arbitrary number of strings.
3 Copyright 1999, 2005 Olaf Weber.
4 Copyright 1993, 1995, 2008 Karl Berry.
6 This library is free software; you can redistribute it and/or
7 modify it under the terms of the GNU Lesser General Public
8 License as published by the Free Software Foundation; either
9 version 2.1 of the License, or (at your option) any later version.
11 This library is distributed in the hope that it will be useful,
12 but WITHOUT ANY WARRANTY; without even the implied warranty of
13 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
14 Lesser General Public License for more details.
16 You should have received a copy of the GNU Lesser General Public License
17 along with this library; if not, see <http://www.gnu.org/licenses/>. */
19 #include <kpathsea/config.h>
21 #include <kpathsea/concatn.h>
24 /* OK, it would be epsilon more efficient to compute the total length
25 and then do the copying ourselves, but I doubt it matters in reality. */
28 concatn PVAR1C(const_string, str1, ap)
38 while ((arg = va_arg (ap, string)) != NULL)
40 string temp = concat (ret, arg);
53 printf ("null = \"%s\"\n", concatn (NULL));
54 printf ("\"a\" = \"%s\"\n", concatn ("a", NULL));
55 printf ("\"ab\" = \"%s\"\n", concatn ("a", "b", NULL));
56 printf ("\"abc\" = \"%s\"\n", concatn ("a", "b", "c", NULL));
57 printf ("\"abcd\" = \"%s\"\n", concatn ("ab", "cd", NULL));
58 printf ("\"abcde\" = \"%s\"\n", concatn ("ab", "c", "de", NULL));
59 printf ("\"abcdef\" = \"%s\"\n", concatn ("", "a", "", "bcd", "ef", NULL));
68 standalone-compile-command: "gcc -posix -g -I. -I.. -DTEST concatn.c kpathsea.a"