* lisp/international/mule-cmds.el: Create
inactivate-current-input-method-function as an obsolete alias for
deactivate-current-input-method-function. See Katsumi Yamaoka in
<http://bugs.gnu.org/10150#46>.
lisp/international/mule-cmds.el (set-locale-environment): Revert last
change, since display-graphic-p returns nil when this function is
called during startup. Instead...
lisp/term/w32console.el (terminal-init-w32console): ...setup the
keyboard and terminal encoding for TTY sessions here.
* NEWS: Document these changes.
* leim/quail/uni-input.el (ucs-input-deactivate):
Rename from ucs-input-inactivate.
* leim/quail/hangul.el (hangul-input-method-deactivate):
Rename from hangul-input-method-inactivate.
* emulation/viper-init.el (viper-deactivate-input-method-action):
Rename from viper-inactivate-input-method-action.
(viper-deactivate-input-method):
Rename from viper-inactivate-input-method.
* lisp/follow.el (follow-inactive-menu): Rename from follow-deactive-menu.
* lisp/international/mule-cmds.el (deactivate-input-method):
Rename from inactivate-input-method.
Also run input-method-deactivate-hook.
(deactivate-current-input-method-function):
Rename from inactivate-current-input-method-function.
(input-method-deactivate-hook): New hook.
(input-method-inactivate-hook): Mark obsolete.
* lisp/international/quail.el (quail-activate):
Also run quail-deactivate-hook.
(quail-deactivate): Rename from quail-inactivate.
* lisp/international/robin.el (robin-activate):
Also run robin-deactivate-hook.
(robin-deactivate): Rename from robin-inactivate.
src/w32inevt.c: Include w32inevt.h.
(w32_read_console_input): New inline function, calls either
ReadConsoleInputA or ReadConsoleInputW, depending on the value of
w32_console_unicode_input.
(fill_queue): Call w32_read_console_input instead of ReadConsoleInput.
(w32_kbd_patch_key, key_event): Use the codepage returned by
GetConsoleCP, rather than the ANSI codepage returned by GetLocaleInfo.
(key_event): use uChar.UnicodeChar only if
w32_console_unicode_input is non-zero.
src/w32console.c: Include w32heap.h.
<w32_console_unicode_input>: New global variable.
(initialize_w32_display): Set w32_console_unicode_input to 1 on NT
family of Windows, zero otherwise.
src/w32inevt.h: Declare w32_console_unicode_input.
lisp/international/mule-cmds.el (set-locale-environment): In a
console session on MS-Windows, set up keyboard and terminal
encoding from the OEM codepage, not the ANSI codepage.
* lisp/international/mule-cmds.el (ucs-insert): Make it an obsolete
alias for insert-char.
* editfns.c (Finsert_char): Make it interactive, and make the second
arg optional. Copy interactive spec and docstring from ucs-insert.
* lisp/loadup.el (purify-flag): Pre-grow the hash-table to reduce the
memory use.
* lisp/bindings.el (bindings--define-key): New function.
* lisp/vc/vc-hooks.el, lisp/replace.el, lisp/menu-bar.el:
* lisp/international/mule-cmds.el, lisp/emacs-lisp/lisp-mode.el:
* lisp/buff-menu.el, lisp/bookmark.el:
* bindings.el: Use it to purecopy define-key bindings.
* src/fns.c (maybe_resize_hash_table): Output message when growing the
purify-hashtable.
* emacs-lisp/macroexp.el (macroexp-progn, macroexp-let*, macroexp-if)
(macroexp-let², macroexp--const-symbol-p, macroexp-const-p)
(macroexp-copyable-p): New functions and macros.
* emacs-lisp/edebug.el (edebug-unwrap):
* emacs-lisp/disass.el (disassemble-internal): Use macroexp-progn.
* emacs-lisp/pcase.el: Use macroexp-let*, macroexp-if, ...
(pcase--let*): Remove.
* emacs-lisp/bytecomp.el (byte-compile-const-symbol-p)
(byte-compile-constp): Remove. Use macroexp--const-symbol-p and
macroexp-const-p instead.
* emacs-lisp/byte-opt.el: Use macroexp-const-p and macroexp-progn.
* emacs-lisp/cl-macs.el: Clean up the name space by using "cl--"
instead of "cl-" for internal definitions. Use macroexp-const-p.
(cl-old-bc-file-form): Remove var.
(cl-const-exprs-p): Remove fun.
(cl-labels, cl-macrolet): Use backquote.
(cl-lexical-let): Use cl-symbol-macrolet. Don't use cl-defun-expander.
(cl-defun-expander, cl-byte-compile-compiler-macro): Remove fun.
(cl-define-setf-expander): Rename from cl-define-setf-method.
* emacs-lisp/cl.el: Adjust alias for define-setf-method.
* international/mule-cmds.el: Don't require CL.
(view-hello-file): Don't use `letf'.
* doc/emacs/mule.texi (International): Copyedits.
(International Chars): Update C-x = example output.
(Disabling Multibyte): Rename from "Enabling Multibyte".
Clarify what "unibyte: t" does, and mode-line description.
(Unibyte Mode): Update for "Disabling Multibyte" node name change.
Use Texinfo recommended convention for quotes+punctuation.
* doc/emacs/custom.texi (Specifying File Variables):
Fix "unibyte" description.
Update for "Disabling Multibyte" node name change.
* doc/emacs/emacs.texi: Update for "Disabling Multibyte" node name change.
* doc/lispref/loading.texi (Loading Non-ASCII):
"unibyte:" can also be at the end.
* lisp/international/mule.el (set-auto-coding-for-load): Doc fix.
admin/unidata/README:
admin/unidata/copyright.html:
admin/unidata/BidiMirroring.txt:
admin/unidata/UnicodeData.txt: Update for the latest version 6.1 of
the Unicode Standard.
lisp/international/uni-bidi.el:
lisp/international/uni-category.el:
lisp/international/uni-combining.el:
lisp/international/uni-decimal.el:
lisp/international/uni-decomposition.el:
lisp/international/uni-digit.el:
lisp/international/uni-lowercase.el:
lisp/international/uni-mirrored.el:
lisp/international/uni-name.el:
lisp/international/uni-numeric.el:
lisp/international/uni-titlecase.el:
lisp/international/uni-uppercase.el: Update for Unicode 6.1.
lisp/international/quail.el (quail-insert-kbd-layout): Insert
invisible LRM characters before each character in a keyboard
layout cell, to prevent their reordering by bidi display engine.
For details, see the discussion in
http://lists.gnu.org/archive/html/emacs-devel/2012-03/msg00085.html.