Package: emacs;
Reported by: Devon Sean McCullough <Emacs-Hacker2012 <at> jovi.net>
Date: Sat, 15 Dec 2012 03:44:01 UTC
Severity: minor
Tags: fixed
Found in version 24.2
Fixed in version 25.2
Done: Lars Ingebrigtsen <larsi <at> gnus.org>
Bug is archived. No further changes may be made.
View this message in rfc822 format
From: Devon Sean McCullough <Emacs-Hacker2012 <at> jovi.net> To: 13187 <at> debbugs.gnu.org Subject: bug#13187: 24.2; lisp/url/url-http.el Date: Fri, 14 Dec 2012 22:41:54 -0500
* url-http documentation string omits essential info. * url-https source cannot be found by Help nor etags. * url-https definition cannot be found by text search as it omits the defined and defining function names. Here's a fix: --- url-http.el.~1~ 2012-08-23 01:33:42.000000000 -0400 +++ url-http.el 2012-12-14 21:28:51.000000000 -0500 @@ -1177,10 +1177,12 @@ "Retrieve URL via HTTP asynchronously. URL must be a parsed URL. See `url-generic-parse-url' for details. When retrieval is completed, the function CALLBACK is executed with -CBARGS as the arguments. +CBARGS as the arguments and the retrieval buffer as current. Optional arg RETRY-BUFFER, if non-nil, specifies the buffer of a -previous `url-http' call, which is being re-attempted." +previous `url-http' call, which is being re-attempted. + +Return the retrieval buffer." (check-type url vector "Need a pre-parsed URL.") (declare (special url-current-object url-http-end-of-headers @@ -1213,45 +1215,27 @@ (mm-disable-multibyte) (setq url-current-object url mode-line-format "%b [%s]") - - (dolist (var '(url-http-end-of-headers - url-http-content-type - url-http-content-length - url-http-transfer-encoding - url-http-after-change-function - url-http-response-version - url-http-response-status - url-http-chunked-length - url-http-chunked-counter - url-http-chunked-start - url-callback-function - url-callback-arguments - url-show-status - url-http-process - url-http-method - url-http-extra-headers - url-http-data - url-http-target-url - url-http-no-retry - url-http-connection-opened - url-http-proxy)) - (set (make-local-variable var) nil)) - - (setq url-http-method (or url-request-method "GET") - url-http-extra-headers url-request-extra-headers - url-http-data url-request-data - url-http-process connection - url-http-chunked-length nil - url-http-chunked-start nil - url-http-chunked-counter 0 - url-callback-function callback - url-callback-arguments cbargs - url-http-after-change-function 'url-http-wait-for-headers-change-function - url-http-target-url url-current-object - url-http-no-retry retry-buffer - url-http-connection-opened nil - url-http-proxy url-using-proxy) - + (set (make-local-variable 'url-http-method) (or url-request-method "GET")) + (set (make-local-variable 'url-http-extra-headers) url-request-extra-headers) + (set (make-local-variable 'url-http-data) url-request-data) + (set (make-local-variable 'url-http-process) connection) + (set (make-local-variable 'url-http-chunked-length) nil) + (set (make-local-variable 'url-http-chunked-start) nil) + (set (make-local-variable 'url-http-chunked-counter) 0) + (set (make-local-variable 'url-callback-function) callback) + (set (make-local-variable 'url-callback-arguments) cbargs) + (set (make-local-variable 'url-http-after-change-function) 'url-http-wait-for-headers-change-function) + (set (make-local-variable 'url-http-target-url) url-current-object) + (set (make-local-variable 'url-http-no-retry) retry-buffer) + (set (make-local-variable 'url-http-connection-opened) nil) + (set (make-local-variable 'url-http-proxy) url-using-proxy) + (set (make-local-variable 'url-http-content-length) ()) + (set (make-local-variable 'url-http-content-type) ()) + (set (make-local-variable 'url-http-end-of-headers) ()) + (set (make-local-variable 'url-http-response-status) ()) + (set (make-local-variable 'url-http-response-version) ()) + (set (make-local-variable 'url-http-transfer-encoding) ()) + (set (make-local-variable 'url-show-status) ()) (set-process-buffer connection buffer) (set-process-filter connection 'url-http-generic-filter) (let ((status (process-status connection))) @@ -1465,21 +1449,25 @@ ;;;###autoload (defalias 'url-https-expand-file-name 'url-default-expander) -(defmacro url-https-create-secure-wrapper (method args) - `(defun ,(intern (format (if method "url-https-%s" "url-https") method)) ,args - ,(format "HTTPS wrapper around `%s' call." (or method "url-http")) +(defmacro define-url-https-secure-wrapper (name insecure-name) + (let* ((arglist (progn (require 'help-fns) + (help-function-arglist insecure-name 'preserve-names))) + (arguments (remove '&rest + (remove '&optional + arglist)))) + `(defun ,name ,arglist + ,(format "Https wrapper around `%s' call." insecure-name) (let ((url-gateway-method 'tls)) - (,(intern (format (if method "url-http-%s" "url-http") method)) - ,@(remove '&rest (remove '&optional args)))))) + (,insecure-name .,arguments))))) ;;;###autoload (autoload 'url-https "url-http") -(url-https-create-secure-wrapper nil (url callback cbargs)) +(define-url-https-secure-wrapper url-https url-http) ;;;###autoload (autoload 'url-https-file-exists-p "url-http") -(url-https-create-secure-wrapper file-exists-p (url)) +(define-url-https-secure-wrapper url-https-file-exists-p url-http-file-exists-p) ;;;###autoload (autoload 'url-https-file-readable-p "url-http") -(url-https-create-secure-wrapper file-readable-p (url)) +(define-url-https-secure-wrapper url-https-file-readable-p url-http-file-readable-p) ;;;###autoload (autoload 'url-https-file-attributes "url-http") -(url-https-create-secure-wrapper file-attributes (url &optional id-format)) +(define-url-https-secure-wrapper url-https-file-attributes url-http-file-attributes) (provide 'url-http)
GNU bug tracking system
Copyright (C) 1999 Darren O. Benham,
1997,2003 nCipher Corporation Ltd,
1994-97 Ian Jackson.