(completion-auto-help): Move from C code.
(minibuffer--maybe-completion-help): Remove.
(minibuffer--bitset): New function.
(minibuffer--do-completion): Rename from minibuffer-do-completion.
Renumber a bit. Really complete on string *before* point.
Add argument used for word-completion.
Join trailing / in completion with following text, as done in
minibuffer-complete-word.
Handle new value `lazy' for completion-auto-help.
(minibuffer-try-word-completion): New function extracted from
minibuffer-complete-word.
(minibuffer-complete-word): Use minibuffer--do-completion.
(minibuffer--insert-strings): Rename from
minibuffer-complete-insert-strings.
(exit-minibuffer): Fix typo.
* cus-edit.el (minibuffer): Move group to minibuffer.el.
* cus-start.el: Remove completion-auto-help.
* minibuf.c (Vcompletion_auto_help): Move to minibuffer.el.
(syms_of_minibuf): Remove its initialization.
Give up if glyph indices not supported. Use uniscribe obtained
ABC widths for individual metrics. Map glyph clusters back to
characters using fClusterStart flag. Return number of glyphs
produced, not chars processed.
* mouse.el (mouse-menu-non-singleton): Use it.
(mouse-major-mode-menu): Remove hack made unnecessary.
* keymap.c (Qkeymap_canonicalize): New var.
(Fmap_keymap_internal): New fun.
(describe_map): Use keymap-canonicalize.
(Fundo_boundary): Set them.
(syms_of_undo): Initialize them.
(record_point): Use them instead of last_point_position*.
(last_undo_buffer): Change type.
(CATEGORY_MASK_UTF_16): Likewise.
(detect_coding_utf_16): Add heuristics to reject utf-16 for a
binary file.
(detect_coding): Add null-byte detection for a binary file.
(detect_coding_system): Likewise.
(Finteractive): Document new ^ spec.
(Fcall_interactively): Call handle-shift-selection if the ^ spec
is present.
* keyboard.c (Vthis_command_keys_shift_translated): New var.
(command_loop_1): Avoid running the direct display versions of
forward-char and backward-char if shift-selection may occur.
Don't change the value of transient-mark-mode; this is now handled
by handle-shift-selection.
(read_key_sequence): Set Vthis_command_keys_shift_translated if
shift-translation takes place.
* buffer.c (Vtransient_mark_mode): Move docstring to simple.el to
avoid clobbering by define-minor-mode.
* cmds.c (Fforward_char, Fbackward_char, Fforward_line)
(Fbeginning_of_line, Fend_of_line): Add ^ interactive spec.
* syntax.c (Fforward_word): Add ^ interactive spec.
* window.c (Fscroll_up, Fscroll_down, Fscroll_left)
(Fscroll_right): Add ^ interactive spec.