/* See concat.h. Note that we canonicalize the result, this avoids
multiple slashes being interpreted as UNCs. */
+#if 0
+static const char *cvsid =
+ "\n%%% $Id$\n";
+#endif
+
#include <stdarg.h>
#include <stdlib.h>
#include <string.h>
-
-char *
-concat (char *s, ...)
-{
- int len;
- char *rv, *arg;
- va_list v;
-
- if (!s)
- return 0;
-
- len = strlen (s);
-
- va_start (v, s);
- while (1)
- {
- arg = va_arg (v, char *);
- if (arg == 0)
- break;
- len += strlen (arg);
- }
- va_end (v);
-
- rv = (char *) malloc (len+1);
- strcpy (rv, s);
- va_start (v, s);
- while (1)
- {
- arg = va_arg (v, char *);
- if (arg == 0)
- break;
- strcat (rv, arg);
- }
- va_end (v);
-
- /* concat is only used for urls and files, so we can safely
- canonicalize the results */
- char *d;
- for (s=rv; *s; s++)
- if (*s == '\\')
- *s = '/';
- for (s=d=rv; *s; s++)
- {
- *d++ = *s;
- /* special case for URLs */
- if (*s == ':' && s[1] == '/' &&s[2] == '/')
- {
- *d++ = *++s;
- *d++ = *++s;
- }
- else if (*s == '/')
- while (s[1] == '/')
- s++;
- }
- *d = 0;
-
- return rv;
-}
+#include "concat.h"
char *
backslash (char *s)