Package: w3-url-e21 Version: 2001.11.08-7 Severity: normal Tags: patch url-retrieve is called on a "directory" URL without the ending "/" (and a callback function). The Web server returns a redirection status (e.g. "301") and the full URL (with the ending "/"). url-http-parse-headers calls url-retrieve with the redirected URL as first argument, but this redirected URL is not passed on as a callback argument. The callback function is then called with the original URL (without the ending "/"). As a consequence, any relative URLs inside the retrieved document are misinterpreted by the calling package.
N.B. I have also reported this as a GNU Emacs bug, however as w3-url-e21 is not derived from the CVS GNU Emacs URL package, i submit it here as well. For Debian GNU/Linux, this bug notably affects the use of the w3-el-e21 package (as reported by Tim X on gnu.emacs.help in thread "Emacs 21 and w3 on Debian"), e.g.: /usr/bin/emacs -q M-x w3-fetch http://www.une.edu.au/itd then click on "About ITD" -> several images are not found and all relative links inside the page are unusable as they are expanded wrt http://www.une.edu.au/ instead of http://www.une.edu.au/itd/ -- System Information: Debian Release: 3.1 APT prefers unstable APT policy: (500, 'unstable') Architecture: i386 (i686) Shell: /bin/sh linked to /bin/bash Kernel: Linux 2.6.11.3-20050315121628 Locale: [EMAIL PROTECTED], [EMAIL PROTECTED] (charmap=ISO-8859-15) Versions of packages w3-url-e21 depends on: ii emacs21 21.4a-1 The GNU Emacs editor
--- url-http.el.debian 2003-02-06 01:31:50.000000000 +0100 +++ url-http.el 2005-05-23 17:45:15.000000000 +0200 @@ -461,7 +461,8 @@ (url-request-data url-http-data) (url-request-extra-headers url-http-extra-headers)) (url-retrieve redirect-uri url-callback-function - url-callback-arguments) + (list redirect-uri) ;;url-callback-arguments + ) (url-mark-buffer-as-dead (current-buffer)))))) ((= class 4) ; Client error ;; 400 Bad Request