mirror of
git://git.sv.gnu.org/emacs.git
synced 2025-12-15 10:30:25 -08:00
Compute erc line lengths correctly for utf-8 (etc.)
* lisp/erc/erc-backend.el (erc-split-line): Fold the lines according to octet length, not the number of characters (bug#23047).
This commit is contained in:
parent
b7ac2761fc
commit
cad2b8d109
1 changed files with 7 additions and 3 deletions
|
|
@ -466,14 +466,18 @@ If this is set to nil, never try to reconnect."
|
|||
The length is specified in `erc-split-line-length'.
|
||||
|
||||
Currently this is called by `erc-send-input'."
|
||||
(if (< (length longline)
|
||||
erc-split-line-length)
|
||||
(list longline)
|
||||
(let ((charset (car (erc-coding-system-for-target nil))))
|
||||
(with-temp-buffer
|
||||
(insert longline)
|
||||
;; The line lengths are in octets, not characters (because these
|
||||
;; are server protocol limits), so we have to first make the
|
||||
;; text into bytes, then fold the bytes on "word" boundaries,
|
||||
;; and then make the bytes into text again.
|
||||
(encode-coding-region (point-min) (point-max) charset)
|
||||
(let ((fill-column erc-split-line-length))
|
||||
(fill-region (point-min) (point-max)
|
||||
nil t))
|
||||
(decode-coding-region (point-min) (point-max) charset)
|
||||
(split-string (buffer-string) "\n"))))
|
||||
|
||||
(defun erc-forward-word ()
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue