Decode utf-8 strings in mixed environments by default.
Done via the new `erc-coding-system-precedence' variable.
This commit is contained in:
parent
e06918d22b
commit
5c0c0f77b0
3 changed files with 28 additions and 1 deletions
5
etc/NEWS
5
etc/NEWS
|
@ -303,6 +303,11 @@ successful NickServ identification, or after `erc-autojoin-delay'
|
|||
seconds. The default value, 'ident, means to autojoin immediately
|
||||
after connecting.
|
||||
|
||||
*** New variable `erc-coding-system-precedence': If we use `undecided'
|
||||
as the server coding system, this variable will then be consulted.
|
||||
The default is to decode strings that can be decoded as utf-8 as
|
||||
utf-8, and do the normal `undecided' decoding for the rest.
|
||||
|
||||
** In ido-mode, C-v is no longer bound to ido-toggle-vc.
|
||||
The reason is that this interferes with cua-mode.
|
||||
|
||||
|
|
|
@ -1,3 +1,8 @@
|
|||
2010-11-05 Lars Magne Ingebrigtsen <larsi@gnus.org>
|
||||
|
||||
* erc-backend.el (erc-coding-system-precedence): New variable.
|
||||
(erc-decode-string-from-target): Use it.
|
||||
|
||||
2010-10-24 Julien Danjou <julien@danjou.info>
|
||||
|
||||
* erc-backend.el (erc-server-JOIN): Set the correct target list on join.
|
||||
|
|
|
@ -324,6 +324,13 @@ Good luck."
|
|||
:type 'integer
|
||||
:group 'erc-server)
|
||||
|
||||
(defcustom erc-coding-system-precedence '(utf-8 undecided)
|
||||
"List of coding systems to be preferred when receiving a string from the server.
|
||||
This will only be consulted if the coding system in
|
||||
`erc-server-coding-system' is `undecided'."
|
||||
:group 'erc-server
|
||||
:type '(repeat coding-system))
|
||||
|
||||
(defcustom erc-server-coding-system (if (and (fboundp 'coding-system-p)
|
||||
(coding-system-p 'undecided)
|
||||
(coding-system-p 'utf-8))
|
||||
|
@ -334,7 +341,9 @@ This is either a coding system, a cons, a function, or nil.
|
|||
|
||||
If a cons, the encoding system for outgoing text is in the car
|
||||
and the decoding system for incoming text is in the cdr. The most
|
||||
interesting use for this is to put `undecided' in the cdr.
|
||||
interesting use for this is to put `undecided' in the cdr. This
|
||||
means that `erc-coding-system-precedence' will be consulted, and the
|
||||
first match there will be used.
|
||||
|
||||
If a function, it is called with the argument `target' and should
|
||||
return a coding system or a cons as described above.
|
||||
|
@ -705,6 +714,14 @@ This is indicated by `erc-encoding-coding-alist', defaulting to the value of
|
|||
(let ((coding (erc-coding-system-for-target target)))
|
||||
(when (consp coding)
|
||||
(setq coding (cdr coding)))
|
||||
(when (eq coding 'undecided)
|
||||
(let ((codings (detect-coding-string str))
|
||||
(precedence erc-coding-system-precedence))
|
||||
(while (and precedence
|
||||
(not (memq (car precedence) codings)))
|
||||
(pop precedence))
|
||||
(when precedence
|
||||
(setq coding (car precedence)))))
|
||||
(erc-decode-coding-string str coding)))
|
||||
|
||||
;; proposed name, not used by anything yet
|
||||
|
|
Loading…
Add table
Reference in a new issue