summaryrefslogtreecommitdiff
path: root/lisp/url
diff options
context:
space:
mode:
authorChong Yidong <cyd@stupidchicken.com>2005-09-01 16:38:39 +0000
committerChong Yidong <cyd@stupidchicken.com>2005-09-01 16:38:39 +0000
commit6fd388f37c90d733cd11925c73acfb6af17907cd (patch)
treef394dd8c52dc78d9a0995b7103142944392d63d9 /lisp/url
parent02de72e92c954fc0c1e125276af9f024bca437a8 (diff)
downloademacs-6fd388f37c90d733cd11925c73acfb6af17907cd.tar.gz
*** empty log message ***
Diffstat (limited to 'lisp/url')
-rw-r--r--lisp/url/ChangeLog9
-rw-r--r--lisp/url/url-mailto.el17
-rw-r--r--lisp/url/url-util.el8
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))