]> code.delx.au - gnu-emacs/commitdiff
* lisp/url/url-handlers.el (url-http-parse-response): Remove unused autoload.
authorLeo Liu <sdl.web@gmail.com>
Thu, 26 Jun 2014 04:00:56 +0000 (12:00 +0800)
committerLeo Liu <sdl.web@gmail.com>
Thu, 26 Jun 2014 04:00:56 +0000 (12:00 +0800)
(url-insert-file-contents): Condition on url-http-response-status
for the HTTP/S specific part.

* lisp/url/url-http.el (url-http-end-of-headers): Remove duplicate defvar.

Fixes: debbugs:17549
lisp/url/ChangeLog
lisp/url/url-handlers.el
lisp/url/url-http.el

index 408f659681fd4b77e71122eeda71a9e08e5adff4..4880bfea30b808b1fe4c0872d20f7e8c43ba1100 100644 (file)
@@ -1,3 +1,11 @@
+2014-06-26  Leo Liu  <sdl.web@gmail.com>
+
+       * url-http.el (url-http-end-of-headers): Remove duplicate defvar.
+
+       * url-handlers.el (url-http-parse-response): Remove unused autoload.
+       (url-insert-file-contents): Condition on url-http-response-status
+       for the HTTP/S specific part.  (Bug#17549)
+
 2014-05-09  Michael Albinus  <michael.albinus@gmx.de>
 
        * url-handlers.el (url-file-handler-load-in-progress): New defvar.
index b0f01123bbbcea549ea10732125baad28e3495cf..5a274c12e31c4c0e59fd23aceba1882e0731e961 100644 (file)
@@ -33,7 +33,6 @@
 (autoload 'url-expand-file-name "url-expand" "Convert url to a fully specified url, and canonicalize it.")
 (autoload 'mm-dissect-buffer "mm-decode" "Dissect the current buffer and return a list of MIME handles.")
 (autoload 'url-scheme-get-property "url-methods" "Get property of a URL SCHEME.")
-(autoload 'url-http-parse-response "url-http" "Parse just the response code.")
 
 ;; Always used after mm-dissect-buffer and defined in the same file.
 (declare-function mm-save-part-to-file "mm-decode" (handle file))
@@ -298,17 +297,21 @@ They count bytes from the beginning of the body."
       (insert data))
     (list (length data) charset)))
 
+(defconst url-http-codes)
+
 ;;;###autoload
 (defun url-insert-file-contents (url &optional visit beg end replace)
   (let ((buffer (url-retrieve-synchronously url)))
     (unless buffer (signal 'file-error (list url "No Data")))
     (with-current-buffer buffer
-      (let ((response (url-http-parse-response)))
-        (if (and (>= response 200) (< response 300))
-            (goto-char (point-min))
-          (let ((desc (buffer-substring-no-properties (1+ (point))
-                                                      (line-end-position))))
+      ;; XXX: This is HTTP/S specific and should be moved to url-http
+      ;; instead.  See http://debbugs.gnu.org/17549.
+      (when (bound-and-true-p url-http-response-status)
+        (unless (and (>= url-http-response-status 200)
+                     (< url-http-response-status 300))
+          (let ((desc (nth 2 (assq url-http-response-status url-http-codes))))
             (kill-buffer buffer)
+            ;; Signal file-error per http://debbugs.gnu.org/16733.
             (signal 'file-error (list url desc))))))
     (if visit (setq buffer-file-name url))
     (save-excursion
@@ -323,6 +326,7 @@ They count bytes from the beginning of the body."
           ;; usual heuristic/rules that we apply to files.
           (decode-coding-inserted-region start (point) url visit beg end replace))
         (list url (car size-and-charset))))))
+
 (put 'insert-file-contents 'url-file-handlers 'url-insert-file-contents)
 
 (defun url-file-name-completion (url directory &optional predicate)
index ac2e1403d03fe59940618c2d030253044f323f5f..dcb86689ca9efdcde8aa6640520c4f2eef6797aa 100644 (file)
@@ -47,7 +47,6 @@
 (defvar url-http-response-version)
 (defvar url-http-target-url)
 (defvar url-http-transfer-encoding)
-(defvar url-http-end-of-headers)
 (defvar url-show-status)
 
 (require 'url-gw)