Skip to content
GitLab
Projects
Groups
Snippets
Help
Loading...
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
Open sidebar
emacs
emacs
Commits
5c0c0f77
Commit
5c0c0f77
authored
Nov 05, 2010
by
Lars Magne Ingebrigtsen
Browse files
Decode utf-8 strings in mixed environments by default.
Done via the new `erc-coding-system-precedence' variable.
parent
e06918d2
Changes
3
Hide whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
28 additions
and
1 deletion
+28
-1
etc/NEWS
etc/NEWS
+5
-0
lisp/erc/ChangeLog
lisp/erc/ChangeLog
+5
-0
lisp/erc/erc-backend.el
lisp/erc/erc-backend.el
+18
-1
No files found.
etc/NEWS
View file @
5c0c0f77
...
...
@@ -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.
...
...
lisp/erc/ChangeLog
View file @
5c0c0f77
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.
...
...
lisp/erc/erc-backend.el
View file @
5c0c0f77
...
...
@@ -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
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
.
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment