]> git.eshelyaron.com Git - emacs.git/commitdiff
*** empty log message ***
authorChong Yidong <cyd@stupidchicken.com>
Thu, 1 Sep 2005 16:38:39 +0000 (16:38 +0000)
committerChong Yidong <cyd@stupidchicken.com>
Thu, 1 Sep 2005 16:38:39 +0000 (16:38 +0000)
lisp/ChangeLog
lisp/longlines.el
lisp/url/ChangeLog
lisp/url/url-mailto.el
lisp/url/url-util.el

index 9876442dc9e1e9a9126e5afbfe0b3fa9e71c7c24..343131513761a1375826e483f8b49ccf45187238 100644 (file)
@@ -1,3 +1,8 @@
+2005-09-01  Chong Yidong  <cyd@stupidchicken.com>
+
+       * longlines.el (longlines-mode): Inhibit read-only when encoding.
+       Kill local variables when longlines-mode is turned off.
+
 2005-09-01  Stefan Monnier  <monnier@iro.umontreal.ca>
 
        * obsolete/lazy-lock.el (lazy-lock) <defgroup>: Move from font-lock.el.
index d51effdb7e29b4561ae3edf565e1aa07fe74729e..6ce5dfaebc4c40607a9118907512692e64a5d9a6 100644 (file)
@@ -116,6 +116,7 @@ are indicated with a symbol."
           (add-hook 'window-configuration-change-hook
                     'longlines-window-change-function nil t))
         (let ((buffer-undo-list t)
+              (inhibit-read-only t)
               (mod (buffer-modified-p)))
           ;; Turning off undo is OK since (spaces + newlines) is
           ;; conserved, except for a corner case in
@@ -136,7 +137,8 @@ are indicated with a symbol."
     (setq buffer-file-format (delete 'longlines buffer-file-format))
     (if longlines-showing
         (longlines-unshow-hard-newlines))
-    (let ((buffer-undo-list t))
+    (let ((buffer-undo-list t)
+          (inhibit-read-only t))
       (longlines-encode-region (point-min) (point-max)))
     (remove-hook 'change-major-mode-hook 'longlines-mode-off t)
     (remove-hook 'before-kill-functions 'longlines-encode-region t)
@@ -144,7 +146,11 @@ are indicated with a symbol."
     (remove-hook 'post-command-hook 'longlines-post-command-function t)
     (remove-hook 'window-configuration-change-hook
                  'longlines-window-change-function t)
-    (kill-local-variable 'fill-column)))
+    (when longlines-wrap-follows-window-size
+      (kill-local-variable 'fill-column))
+    (kill-local-variable 'require-final-newline)
+    (kill-local-variable 'buffer-substring-filters)
+    (kill-local-variable 'use-hard-newlines)))
 
 (defun longlines-mode-off ()
   "Turn off longlines mode.
index e1d8406ae70f50d6db8d4905a7edf933ee945aeb..ad0ee15020795a6958318ee4302f74249d9b609c 100644 (file)
@@ -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):
index 86f5d4a88b6c5fbbf3e796275aa16fd453b1ee59..9b63a35f3bd4612642ba33ec4f68ff755e06d962 100644 (file)
@@ -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)))
     (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) ", ")))
index bec0c7a313312b4c7af6fc58e9cf9d47960edf63..538eb3eca45c8bf012e77102bfb3fd6cba10903b 100644 (file)
@@ -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))