Fix for the buffer-local rcirc-encode-coding-system case

in rcirc-split-message.
This commit is contained in:
Leo Liu 2012-08-15 20:26:48 +08:00
parent 6f97980a9a
commit 27d6c5a891
2 changed files with 22 additions and 16 deletions

View 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.

View 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.