]> mj.ucw.cz Git - libucw.git/blobdiff - lib/url.c
sign mismatch fixed
[libucw.git] / lib / url.c
index 73e3b50134b1d3e6a75c7a0385a19be8c99944b6..a6dcf7aa06fe4f1335edbe921359136b17bed1dc 100644 (file)
--- a/lib/url.c
+++ b/lib/url.c
@@ -500,7 +500,7 @@ url_error(uns err)
   return errmsg[err];
 }
 
-/* A "macro" for canonical split */
+/* Standard cookbook recipes */
 
 int
 url_canon_split(byte *u, byte *buf1, byte *buf2, struct url *url)
@@ -516,6 +516,19 @@ url_canon_split(byte *u, byte *buf1, byte *buf2, struct url *url)
   return url_canonicalize(url);
 }
 
+int
+url_auto_canonicalize(byte *src, byte *dst)
+{
+  byte buf1[MAX_URL_SIZE], buf2[MAX_URL_SIZE], buf3[MAX_URL_SIZE];
+  int err;
+  struct url ur;
+
+  (void)((err = url_canon_split(src, buf1, buf2, &ur)) ||
+   (err = url_pack(&ur, buf3)) ||
+   (err = url_enescape(buf3, dst)));
+  return err;
+}
+
 /* Testing */
 
 #ifdef TEST