- 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);