From: Miles Bader Date: Thu, 6 Jul 2006 08:59:39 +0000 (+0000) Subject: Merge from emacs--devo--0 X-Git-Tag: emacs-pretest-23.0.90~8295^2~831 X-Git-Url: http://git.eshelyaron.com/gitweb/?a=commitdiff_plain;h=6a46b0188332c8007c23014bd0ba97441be6abe8;p=emacs.git Merge from emacs--devo--0 Patches applied: * emacs--devo--0 (patch 320-342) - Update from CVS - Merge from gnus--rel--5.10 - lisp/play/cookie1.el (cookie): Work properly when there's only one entry - Add note about "link" button-class to etc/TODO * gnus--rel--5.10 (patch 108-112) - Merge from emacs--devo--0 - Clean up merge mistakes - Update from CVS - Update from CVS: texi/gnus.texi (Summary Buffer Lines): Fix typo. Revision: emacs@sv.gnu.org/emacs--unicode--0--patch-86 --- 6a46b0188332c8007c23014bd0ba97441be6abe8 diff --cc lisp/international/mule-cmds.el index 77ef9f07d59,ae664121a5d..dc3d1171cb2 --- a/lisp/international/mule-cmds.el +++ b/lisp/international/mule-cmds.el @@@ -1905,22 -1898,99 +1917,96 @@@ Setting this variable directly does no ;; proper windows-1252 coding system. --fx] (aset standard-display-table 146 [39])))) -(defun set-language-environment-coding-systems (language-name) - "Do various coding system setups for language environment LANGUAGE-NAME." +(defun set-language-environment-coding-systems (language-name + &optional eol-type) + "Do various coding system setups for language environment LANGUAGE-NAME. + +The optional arg EOL-TYPE specifies the eol-type of the default value +of `buffer-file-coding-system' set by this function." (let* ((priority (get-language-info language-name 'coding-priority)) - (default-coding (car priority)) - (eol-type (coding-system-eol-type default-buffer-file-coding-system))) - (if priority - (let ((categories (mapcar 'coding-system-category priority))) - (set-default-coding-systems - (if (memq eol-type '(0 1 2 unix dos mac)) - (coding-system-change-eol-conversion default-coding eol-type) - default-coding)) - (setq default-sendmail-coding-system default-coding) - (set-coding-priority categories) - (while priority - (set (car categories) (car priority)) - (setq priority (cdr priority) categories (cdr categories))) - ;; Changing the binding of a coding category requires this call. - (update-coding-systems-internal))))) + (default-coding (car priority))) + (when priority + (set-default-coding-systems + (if (memq eol-type '(0 1 2 unix dos mac)) + (coding-system-change-eol-conversion default-coding eol-type) + default-coding)) + (setq default-sendmail-coding-system default-coding) + (apply 'set-coding-system-priority priority)))) + (defun set-language-environment-input-method (language-name) + "Do various input method setups for language environment LANGUAGE-NAME." + (let ((input-method (get-language-info language-name 'input-method))) + (when input-method + (setq default-input-method input-method) + (if input-method-history + (setq input-method-history + (cons input-method + (delete input-method input-method-history))))))) + + (defun set-language-environment-nonascii-translation (language-name) + "Do unibyte/multibyte translation setup for language environment LANGUAGE-NAME." + (let ((nonascii (get-language-info language-name 'nonascii-translation)) + (dos-table + (if (eq window-system 'pc) + (intern + (format "cp%d-nonascii-translation-table" dos-codepage))))) + (cond + ((char-table-p nonascii) + (setq nonascii-translation-table nonascii)) + ((and (eq window-system 'pc) (boundp dos-table)) + ;; DOS terminals' default is to use a special non-ASCII translation + ;; table as appropriate for the installed codepage. + (setq nonascii-translation-table (symbol-value dos-table))) + ((charsetp nonascii) + (setq nonascii-insert-offset (- (make-char nonascii) 128)))))) + + (defun set-language-environment-charset (language-name) + "Do various charset setups for language environment LANGUAGE-NAME." + (if (and utf-translate-cjk-mode + (not (eq utf-translate-cjk-lang-env language-name)) + (catch 'tag + (dolist (charset (get-language-info language-name 'charset)) + (if (memq charset utf-translate-cjk-charsets) + (throw 'tag t))) + nil)) + (utf-translate-cjk-load-tables))) + + (defun set-language-environment-fontset (language-name) + "Do various fontset setups for language environment LANGUAGE-NAME." + ;; Don't invoke fontset-related functions if fontsets aren't + ;; supported in this build of Emacs. + (if (fboundp 'fontset-list) + (set-overriding-fontspec-internal + (get-language-info language-name 'overriding-fontspec)))) + + (defun set-language-environment-unibyte (language-name) + "Do various unibyte-mode setups for language environment LANGUAGE-NAME." + ;; Syntax and case table. + (let ((syntax (get-language-info language-name 'unibyte-syntax))) + (if syntax + (let ((set-case-syntax-set-multibyte nil)) + (load syntax nil t)) + ;; No information for syntax and case. Reset to the defaults. + (let ((syntax-table (standard-syntax-table)) + (standard-table (standard-case-table)) + (case-table (make-char-table 'case-table)) + (ch (if (eq window-system 'pc) 128 160))) + (while (< ch 256) + (modify-syntax-entry ch " " syntax-table) + (setq ch (1+ ch))) + (dotimes (i 128) + (aset case-table i (aref standard-table i))) + (set-char-table-extra-slot case-table 0 nil) + (set-char-table-extra-slot case-table 1 nil) + (set-char-table-extra-slot case-table 2 nil) + (set-standard-case-table case-table)) + (let ((list (buffer-list))) + (while list + (with-current-buffer (car list) + (set-case-table (standard-case-table))) + (setq list (cdr list)))))) + (set-display-table-and-terminal-coding-system language-name)) + (defsubst princ-list (&rest args) "Print all arguments with `princ', then print \"\n\"." (while args (princ (car args)) (setq args (cdr args))) diff --cc src/xfns.c index 5924ba21f88,dd0510cf0fa..253f2829f85 --- a/src/xfns.c +++ b/src/xfns.c @@@ -4847,8 -4772,8 +4849,7 @@@ els if (! STRINGP (font)) font = build_string ("fixed"); -- x_default_parameter (f, parms, Qfont, font, -- "font", "Font", RES_TYPE_STRING); ++ x_set_frame_parameters (f, Fcons (Fcons (Qfont, font), Qnil)); } x_default_parameter (f, parms, Qborder_width, make_number (2),