* lisp/url/url-misc.el (url-data): Avoid match-data mix-up with base64 case.
authorGlenn Morris <rgm@gnu.org>
Mon, 16 Sep 2013 21:28:11 +0000 (17:28 -0400)
committerGlenn Morris <rgm@gnu.org>
Mon, 16 Sep 2013 21:28:11 +0000 (17:28 -0400)
Use Content-Transfer-Encoding rather than Content-Encoding.

Fixes: debbugs:15285

lisp/url/ChangeLog
lisp/url/url-misc.el

index 3f48b8f..817130c 100644 (file)
@@ -1,3 +1,8 @@
+2013-09-16  Glenn Morris  <rgm@gnu.org>
+
+       * url-misc.el (url-data): Avoid match-data mix-up with base64 case.
+       Use Content-Transfer-Encoding rather than Content-Encoding. (Bug#15285)
+
 2013-09-13  Glenn Morris  <rgm@gnu.org>
 
        * url-http.el (url-handle-content-transfer-encoding):
index c8e9b59..ecc6029 100644 (file)
@@ -1,7 +1,6 @@
 ;;; url-misc.el --- Misc Uniform Resource Locator retrieval code
 
-;; Copyright (C) 1996-1999, 2002, 2004-2013 Free Software Foundation,
-;; Inc.
+;; Copyright (C) 1996-1999, 2002, 2004-2013 Free Software Foundation, Inc.
 
 ;; Keywords: comm, data, processes
 
     (save-excursion
       (if (not (string-match "\\([^,]*\\)?," desc))
          (error "Malformed data URL: %s" desc)
-       (setq mediatype (match-string 1 desc))
+       (setq mediatype (match-string 1 desc)
+             data (url-unhex-string (substring desc (match-end 0))))
        (if (and mediatype (string-match ";base64\\'" mediatype))
            (setq mediatype (substring mediatype 0 (match-beginning 0))
                  encoding "base64"))
        (if (or (null mediatype)
                (eq ?\; (aref mediatype 0)))
-         (setq mediatype (concat "text/plain" mediatype)))
-       (setq data (url-unhex-string (substring desc (match-end 0)))))
+         (setq mediatype (concat "text/plain" mediatype))))
       (set-buffer (generate-new-buffer " *url-data*"))
       (mm-disable-multibyte)
       (insert (format "Content-Length: %d\n" (length data))
              "Content-Type: " mediatype "\n"
-             "Content-Encoding: " encoding "\n"
+             "Content-Transfer-Encoding: " encoding "\n"
              "\n")
       (if data (insert data))
       (current-buffer))))