diff options
author | Chong Yidong <cyd@stupidchicken.com> | 2005-09-01 16:38:39 +0000 |
---|---|---|
committer | Chong Yidong <cyd@stupidchicken.com> | 2005-09-01 16:38:39 +0000 |
commit | 6fd388f37c90d733cd11925c73acfb6af17907cd (patch) | |
tree | f394dd8c52dc78d9a0995b7103142944392d63d9 /lisp/url | |
parent | 02de72e92c954fc0c1e125276af9f024bca437a8 (diff) | |
download | emacs-6fd388f37c90d733cd11925c73acfb6af17907cd.tar.gz |
*** empty log message ***
Diffstat (limited to 'lisp/url')
-rw-r--r-- | lisp/url/ChangeLog | 9 | ||||
-rw-r--r-- | lisp/url/url-mailto.el | 17 | ||||
-rw-r--r-- | lisp/url/url-util.el | 8 |
3 files changed, 26 insertions, 8 deletions
diff --git a/lisp/url/ChangeLog b/lisp/url/ChangeLog index e1d8406ae70..ad0ee150207 100644 --- a/lisp/url/ChangeLog +++ b/lisp/url/ChangeLog @@ -1,3 +1,12 @@ +2005-09-01 Chong Yidong <cyd@stupidchicken.com> + + * url-util.el (url-parse-query-string): New optional argument + allow-newlines allows decoding of newlines. + + * url-mailto.el (url-mailto): Allow newlines in URL arguments. + Don't lose original "to" value when there is a "to" header. + Remove carriage return characters in message body. + 2005-08-24 Juanma Barranquero <lekktu@gmail.com> * url-news.el (nntp-open-tls-stream, nntp-open-ssl-stream): diff --git a/lisp/url/url-mailto.el b/lisp/url/url-mailto.el index 86f5d4a88b6..9b63a35f3bd 100644 --- a/lisp/url/url-mailto.el +++ b/lisp/url/url-mailto.el @@ -73,7 +73,7 @@ (setq headers-start (match-end 0) to (url-unhex-string (substring url 0 (match-beginning 0))) args (url-parse-query-string - (substring url headers-start nil) t)) + (substring url headers-start nil) t t)) (setq to (url-unhex-string url))) (setq source-url (url-view-url t)) (if (and url-request-data (not (assoc "subject" args))) @@ -84,16 +84,23 @@ (if (and source-url (not (assoc "x-url-from" args))) (setq args (cons (list "x-url-from" source-url) args))) - (if (assoc "to" args) - (push (cdr (assoc "to" args)) to) - (setq args (cons (list "to" to) args))) + (let ((tolist (assoc "to" args))) + (if tolist + (if (not (string= to "")) + (setcdr tolist + (list (concat to ", " (nth 1 tolist))))) + (setq args (cons (list "to" to) args)))) + (setq subject (cdr-safe (assoc "subject" args))) (if (fboundp url-mail-command) (funcall url-mail-command) (mail)) (while args (if (string= (caar args) "body") (progn (goto-char (point-max)) - (insert (mapconcat 'identity (cdar args) "\n"))) + (insert (mapconcat + #'(lambda (string) + (replace-regexp-in-string "\r\n" "\n" string)) + (cdar args) "\n"))) (url-mail-goto-field (caar args)) (setq func (intern-soft (concat "mail-" (caar args)))) (insert (mapconcat 'identity (cdar args) ", "))) diff --git a/lisp/url/url-util.el b/lisp/url/url-util.el index bec0c7a3133..538eb3eca45 100644 --- a/lisp/url/url-util.el +++ b/lisp/url/url-util.el @@ -270,7 +270,7 @@ Will not do anything if `url-show-status' is nil." (t (file-name-directory file)))) ;;;###autoload -(defun url-parse-query-string (query &optional downcase) +(defun url-parse-query-string (query &optional downcase allow-newlines) (let (retval pairs cur key val) (setq pairs (split-string query "&")) (while pairs @@ -278,8 +278,10 @@ Will not do anything if `url-show-status' is nil." pairs (cdr pairs)) (if (not (string-match "=" cur)) nil ; Grace - (setq key (url-unhex-string (substring cur 0 (match-beginning 0))) - val (url-unhex-string (substring cur (match-end 0) nil))) + (setq key (url-unhex-string (substring cur 0 (match-beginning 0)) + allow-newlines)) + (setq val (url-unhex-string (substring cur (match-end 0) nil) + allow-newlines)) (if downcase (setq key (downcase key))) (setq cur (assoc key retval)) |