]> git.eshelyaron.com Git - emacs.git/commitdiff
Fix for the buffer-local rcirc-encode-coding-system case
authorLeo Liu <sdl.web@gmail.com>
Wed, 15 Aug 2012 12:26:48 +0000 (20:26 +0800)
committerLeo Liu <sdl.web@gmail.com>
Wed, 15 Aug 2012 12:26:48 +0000 (20:26 +0800)
in rcirc-split-message.

lisp/ChangeLog
lisp/net/rcirc.el

index 5b2c16edaf7b3c97774838b5d85278b4e414fdc8..143c255136f5a9eba5dfee1f84c2066ec08b9345 100644 (file)
@@ -1,3 +1,8 @@
+2012-08-15  Leo Liu  <sdl.web@gmail.com>
+
+       * net/rcirc.el (rcirc-split-message): Fix for buffer-local
+       rcirc-encode-coding-system.
+
 2012-08-13  Leo Liu  <sdl.web@gmail.com>
 
        * net/rcirc.el (rcirc-split-message): New function.
index 0eb6c7ea51b389b12100677d185b01ff207cfd3c..0491e23ee24c32000012b1bd3146f7c738040be7 100644 (file)
@@ -796,22 +796,23 @@ With no argument or nil as argument, use the current buffer."
 
 (defun rcirc-split-message (message)
   "Split MESSAGE into chunks within `rcirc-max-message-length'."
-  (with-temp-buffer
-    (insert message)
-    (goto-char (point-min))
-    (let (result)
-      (while (not (eobp))
-       (goto-char (or (byte-to-position rcirc-max-message-length)
-                      (point-max)))
-       ;; max message length is 512 including CRLF
-       (while (and (not (bobp))
-                   (> (length
-                       (encode-coding-region (point-min) (point)
-                                             rcirc-encode-coding-system t))
-                      rcirc-max-message-length))
-         (forward-char -1))
-       (push (delete-and-extract-region (point-min) (point)) result))
-      (nreverse result))))
+  ;; `rcirc-encode-coding-system' can have buffer-local value.
+  (let ((encoding rcirc-encode-coding-system))
+    (with-temp-buffer
+      (insert message)
+      (goto-char (point-min))
+      (let (result)
+       (while (not (eobp))
+         (goto-char (or (byte-to-position rcirc-max-message-length)
+                        (point-max)))
+         ;; max message length is 512 including CRLF
+         (while (and (not (bobp))
+                     (> (length (encode-coding-region
+                                 (point-min) (point) encoding t))
+                        rcirc-max-message-length))
+           (forward-char -1))
+         (push (delete-and-extract-region (point-min) (point)) result))
+       (nreverse result)))))
 
 (defun rcirc-send-message (process target message &optional noticep silent)
   "Send TARGET associated with PROCESS a privmsg with text MESSAGE.