emacs-diffs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Emacs-diffs] /srv/bzr/emacs/trunk r103335: Fix bug #7840 with default t


From: Eli Zaretskii
Subject: [Emacs-diffs] /srv/bzr/emacs/trunk r103335: Fix bug #7840 with default terminal and keyboard encodings.
Date: Fri, 18 Feb 2011 16:48:28 +0200
User-agent: Bazaar (2.0.3)

------------------------------------------------------------
revno: 103335
committer: Eli Zaretskii <address@hidden>
branch nick: trunk
timestamp: Fri 2011-02-18 16:48:28 +0200
message:
  Fix bug #7840 with default terminal and keyboard encodings.
  
   terminal.c (create_terminal): Use default-keyboard-coding-system
   and default-terminal-coding-system to initialize coding systems of
   the new terminal.
modified:
  src/ChangeLog
  src/terminal.c
=== modified file 'src/ChangeLog'
--- a/src/ChangeLog     2011-02-18 02:07:36 +0000
+++ b/src/ChangeLog     2011-02-18 14:48:28 +0000
@@ -1,3 +1,9 @@
+2011-02-18  Eli Zaretskii  <address@hidden>
+
+       * terminal.c (create_terminal): Use default-keyboard-coding-system
+       and default-terminal-coding-system to initialize coding systems of
+       the new terminal.  (Bug#7840)
+
 2011-02-18  Stefan Monnier  <address@hidden>
 
        * lisp.h (BYTE_MARK_STACK): New macro.

=== modified file 'src/terminal.c'
--- a/src/terminal.c    2011-02-13 00:16:28 +0000
+++ b/src/terminal.c    2011-02-18 14:48:28 +0000
@@ -223,6 +223,7 @@
 create_terminal (void)
 {
   struct terminal *terminal = allocate_terminal ();
+  Lisp_Object terminal_coding, keyboard_coding;
 
   terminal->name = NULL;
   terminal->next_terminal = terminal_list;
@@ -235,8 +236,24 @@
   terminal->terminal_coding =
     (struct coding_system *) xmalloc (sizeof (struct coding_system));
 
-  setup_coding_system (Qno_conversion, terminal->keyboard_coding);
-  setup_coding_system (Qundecided, terminal->terminal_coding);
+  /* If default coding systems for the terminal and the keyboard are
+     already defined, use them in preference to the defaults.  This is
+     needed when Emacs runs in daemon mode.  */
+  keyboard_coding =
+    find_symbol_value (intern ("default-keyboard-coding-system"));
+  if (NILP (keyboard_coding)
+      || EQ (keyboard_coding, Qunbound)
+      || NILP (Fcoding_system_p (keyboard_coding)))
+    keyboard_coding = Qno_conversion;
+  terminal_coding =
+    find_symbol_value (intern ("default-terminal-coding-system"));
+  if (NILP (terminal_coding)
+      || EQ (terminal_coding, Qunbound)
+      || NILP (Fcoding_system_p (terminal_coding)))
+    terminal_coding = Qundecided;
+
+  setup_coding_system (keyboard_coding, terminal->keyboard_coding);
+  setup_coding_system (terminal_coding, terminal->terminal_coding);
 
   terminal->param_alist = Qnil;
   return terminal;


reply via email to

[Prev in Thread] Current Thread [Next in Thread]