fixing an use of strcpy() where both strings overlap pointed out by

* uri.c: fixing an use of strcpy() where both strings overlap
  pointed out by valgrind.
Daniel
diff --git a/uri.c b/uri.c
index 6b0aa27..13c875b 100644
--- a/uri.c
+++ b/uri.c
@@ -691,7 +691,7 @@
      * "current position" pointer.
      */
     while (1) {
-        char *segp;
+        char *segp, *tmp;
 
         /* At the beginning of each iteration of this loop, "cur" points to
          * the first character of the segment we want to examine.
@@ -731,7 +731,11 @@
           cur[0] = '\0';
           break;
         }
-        strcpy(cur, segp + 3);
+        /* Valgrind complained, strcpy(cur, segp + 3); */
+	/* string will overlap, do not use strcpy */
+	tmp = cur;
+	segp += 3;
+	while ((*tmp++ = *segp++) != 0);
 
         /* If there are no previous segments, then keep going from here.  */
         segp = cur;