Herold Heiko <[EMAIL PROTECTED]> writes:

> With 1.8, build on windows, wget -d ftp:// ... I get consistently
> 
>--> PWD 
> 257 "/" is current directory.
> done.
> ==> TYPE   ... 
>--> TYPE  
> 500 'TYPE ': Invalid number of parameters

Thanks for the report.  This patch should fix the problem.

2001-11-20  Hrvoje Niksic  <[EMAIL PROTECTED]>

        * url.c (parseurl): Don't depend on the now-obsolete TYPE.

Index: src/url.c
===================================================================
RCS file: /pack/anoncvs/wget/src/url.c,v
retrieving revision 1.51
diff -u -r1.51 url.c
--- src/url.c   2001/11/19 16:15:42     1.51
+++ src/url.c   2001/11/20 15:59:59
@@ -423,7 +423,7 @@
                                  the scheme was explicitly named,
                                  i.e. it wasn't deduced from the URL
                                  format.  */
-  uerr_t type;
+  uerr_t type = URLUNKNOWN;
 
   DEBUGP (("parseurl (\"%s\") -> ", url));
   recognizable = url_has_scheme (url);
@@ -442,7 +442,17 @@
   else if (i == ARRAY_SIZE (supported_schemes))
     type = URLUNKNOWN;
   else
-    u->scheme = type = supported_schemes[i].scheme;
+    {
+      u->scheme = supported_schemes[i].scheme;
+      if (u->scheme == SCHEME_HTTP)
+       type = URLHTTP;
+#ifdef HAVE_SSL
+      if (u->scheme == SCHEME_HTTPS)
+       type = URLHTTPS;
+#endif
+      if (u->scheme == SCHEME_FTP)
+       type = URLFTP;
+    }
 
   if (type == URLUNKNOWN)
     l = 0;
@@ -505,12 +515,12 @@
   /* Some delimiter troubles...  */
   if (url[i] == '/' && url[i - 1] != ':')
     ++i;
-  if (type == URLHTTP)
+  if (u->scheme == SCHEME_HTTP)
     while (url[i] && url[i] == '/')
       ++i;
   u->path = (char *)xmalloc (strlen (url + i) + 8);
   strcpy (u->path, url + i);
-  if (type == URLFTP)
+  if (u->scheme == SCHEME_FTP)
     {
       u->ftp_type = process_ftp_type (u->path);
       /* #### We don't handle type `d' correctly yet.  */
@@ -534,7 +544,7 @@
   /* Simplify the directory.  */
   path_simplify (u->dir);
   /* Remove the leading `/' in HTTP.  */
-  if (type == URLHTTP && *u->dir == '/')
+  if (u->scheme == SCHEME_HTTP && *u->dir == '/')
     strcpy (u->dir, u->dir + 1);
   DEBUGP (("ndir %s\n", u->dir));
   /* Strip trailing `/'.  */

Reply via email to