]> cygwin.com Git - cygwin-apps/setup.git/blobdiff - concat.cc
2002-07-15 Robert Collins <rbtcollins@hotmail.com>
[cygwin-apps/setup.git] / concat.cc
index 217dc94f86b9543f463999a17eba775850444a78..e08df4eb19b7464854ffc9fd32ad0255ff3f039f 100644 (file)
--- a/concat.cc
+++ b/concat.cc
 /* 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)
This page took 0.024541 seconds and 5 git commands to generate.