* term.el (term-handle-colors-array): Use a set of new faces to
color the terminal. Also uses :inverse-video property.
(term-default-fg-color): Set to nil by default, deprecate in favor
of `term-face'.
(term-default-bg-color): Set to nil by default, deprecate in favor
of `term-face'.
(term-current-face): Use `term-face' by default.
(term-bold-attribute): Variable deleted.
* lisp/help-fns.el (help-fns--autoloaded-p): New function.
(describe-function-1): Refer to a function as "autoloaded" if it
was autoloaded at any time in the past. Perform autoloading if
help-enable-auto-load is non-nil.
* lisp/help.el (help-enable-auto-load): New variable.
* src/doc.c (Fsubstitute_command_keys): Fix punctuation.
* subr.el (with-selected-window): Preserve the selected window's
terminal's top-frame.
* window.el (save-selected-window): Likewise.
* frame.c (delete_frame): When selecting a frame on a different
text terminal, do not alter the terminal's top-frame.
* term.c (Ftty_top_frame): New function.
* xdisp.c (format_mode_line_unwind_data): Record the target
frame's selected window and its terminal's top-frame.
(unwind_format_mode_line): Restore them.
(x_consider_frame_title, display_mode_line, Fformat_mode_line):
Callers changed.
(x_consider_frame_title): Do not condition on HAVE_WINDOW_SYSTEM,
since tty frames can be explicitly named.
(prepare_menu_bars): Likewise.
Fixes: debbugs:4702
* lisp/emacs-lisp/package.el (list-packages): Compute a list of
packages that are newly-available since the last list-packages
invocation.
(package-menu--new-package-list): New var.
(package-menu--generate, package-menu--print-info)
(package-menu--status-predicate, package-menu-mark-install):
Handle new status label "new".
* window.el (get-lru-window, get-mru-window, get-largest-window):
New argument NOT-SELECTED to avoid picking the selected window.
(window--display-buffer-1, window--display-buffer-2): Replace by
new function window--display-buffer
(display-buffer-same-window, display-buffer-reuse-window)
(display-buffer-pop-up-frame, display-buffer-pop-up-window): Use
window--display-buffer.
(display-buffer-use-some-window): Remove temporary dedication
hack by calling get-lru-window and get-largest-window with
NOT-SELECTED argument non-nil. Call window--display-buffer.
* lisp/emacs-lisp/cl.el: New compatibility file.
* emacs-lisp/cl-lib.el, lisp/emacs-lisp/cl-seq.el, lisp/emacs-lisp/cl-macs.el:
* lisp/emacs-lisp/cl-extra.el: Rename all top-level functions and variables
to obey the "cl-" prefix.
* lisp/emacs-lisp/macroexp.el (macroexpand-all-1): Adjust to new name.
* lisp/bindings.el (mode-line-coding-system-map): Allow using mouse-3
to invoke set-buffer-file-coding-system.
(mode-line-mule-info-help-echo): Update help text.
Fixes: debbugs:289
* src/xdisp.c (decode_mode_spec_coding): Display a space for a unibyte
buffer.
* lisp/bindings.el (mode-line-mule-info-help-echo)
(mode-line-read-only-help-echo, mode-line-modified-help-echo):
New functions.
(mode-line-mule-info, mode-line-modified): Use them.
(mode-line-eol-desc, propertized-buffer-identification):
Consistency fixes for help text.
Fixes: debbugs:11226
It is confusingly named and rarely useful. See, for example,
<http://lists.gnu.org/archive/html/emacs-devel/2011-12/msg00089.html>.
* INSTALL.BZR: Don't mention --disable-maintainer-mode.
* Makefile.in (MAINTAINER_MODE_FLAG): Remove; all uses removed.
* configure.in: Remove --disable-maintainer-mode.
(USE_MAINTAINER_MODE, MAINT): Remove.
* admin/make-tarball.txt: Don't worry about maintainer mode.
* etc/NEWS: Mention this.
* lisp/image.el: For clarity, call imagemagick-register-types at
top-level, rather than relying on a custom :initialize.
(imagemagick-types-enable): New option.
(imagemagick-register-types): Respect imagemagick-types-inhibit.
If disabling support, remove elements altogether rather
than using an impossible regexp.
(imagemagick-types-inhibit): Give it the default init function.
* src/image.c (Fimagemagick_types): Doc fix.
* etc/NEWS: Mention this.
Fixes: debbugs:11557
* lisp/emacs-lisp/easy-mmode.el (define-minor-mode)
(define-globalized-minor-mode): Don't autoload the var definitions.
* lisp/emacs-lisp/byte-run.el: Use lexical-binding.
(defun-declarations-alist, macro-declarations-alist): New vars.
(defmacro, defun): Use them.
(make-obsolete, define-obsolete-function-alias)
(make-obsolete-variable, define-obsolete-variable-alias):
Use `declare'.
(macro-declaration-function): Mark obsolete.
* lisp/emacs-lisp/autoload.el: Use lexical-binding.
(make-autoload): Add `expansion' arg. Rely more on macro expansion.
Bind `M-s c' to `isearch-toggle-case-fold'.
(search-map): Bind `M-s _' to `isearch-forward-symbol'.
(isearch-forward): Add `M-s _' to the docstring.
(isearch-forward-symbol, isearch-toggle-case-fold)
(isearch-symbol-regexp): New functions.
Fixes: debbugs:11381
src/xdisp.c (draw_row_with_mouse_face): Call
tty_draw_row_with_mouse_face for WINDOWSNT as well.
src/w32console.c: Include window.h.
(w32con_write_glyphs_with_face, tty_draw_row_with_mouse_face): New
functions.
(initialize_w32_display): Initialize mouse-highlight data.
src/w32inevt.c: Include termchar.h and window.h.
(do_mouse_event): Support mouse-autoselect-window. When the mouse
moves, call note_mouse_highlight. If help_echo changed, call
gen_help_event to produce help-echo message in the echo area.
Call clear_mouse_face if mouse_face_hidden is set in the mouse
highlight info.
etc/NEWS: Describe the changes.
* lisp/vc/diff-mode.el (diff-header, diff-file-header): Remove "green"
to avoid confusion with `diff-added' that now uses green colors.
(diff-removed): Use shades of red.
(diff-added): Use shades of green.
(diff-changed): Leave just the yellow color.
(diff-use-changed-face): New variable.
(diff-font-lock-keywords): Use `diff-use-changed-face' to decide
how to highlight context diff changes.
(diff-refine-change): Use shades of yellow.
(diff-refine-removed): New face that uses shades of red.
(diff-refine-added): New face that uses shades of green.
(diff-refine-hunk): Use `diff-refine-change', `diff-refine-added',
`diff-refine-removed' in the call to `smerge-refine-subst'
depending on the value of `diff-use-changed-face'.
* lisp/vc/ediff-init.el (ediff-current-diff-A, ediff-fine-diff-A):
Add face condition `min-colors 88' with shades of red.
(ediff-current-diff-B, ediff-fine-diff-B): Add face condition
`min-colors 88' with shades of green.
(ediff-current-diff-C, ediff-fine-diff-C): Add face condition
`min-colors 88' with shades of yellow.
* lisp/vc/smerge-mode.el (smerge-mine): Use shades of red.
(smerge-other): Use shades of green.
(smerge-base): Use shades of yellow.
(smerge-refined-change): Empty face.
(smerge-refined-removed): New face that uses shades of red.
(smerge-refined-added): New face that uses shades of green.
(smerge-refine-subst): Rename arg `props' to `props-c'. Add new
args `props-r' and `props-a', and use them. Doc fix.
(smerge-refine): Evaluate `smerge-use-changed-face' and depending
on its value use different faces `smerge-refined-change',
`smerge-refined-removed', `smerge-refined-added' in the call to
`smerge-refine-subst'.
Provide SMIE-based indentation (not enabled by default yet).
(sh-mode-map): Don't bind electric keys.
Use electric-pair-mode instead of skeleton-pair.
(sh-assignment-regexp): Fit within 80 columns.
(sh-indent-supported): Specify actual shell name instead of boolean.
(sh--maybe-here-document): New fun, from sh-maybe-here-document.
(sh-maybe-here-document): Use it. Make obsolete.
(sh-electric-here-document-mode) New minor mode.
(sh-mode): Use it. Don't set sh-indent-supported-here here.
(sh-smie-sh-grammar, sh-smie--sh-operators, sh-smie--sh-operators-re)
(sh-smie--sh-operators-back-re, sh-indent-after-continuation)
(sh-smie-rc-grammar, sh-use-smie): New vars.
(sh-smie--keyword-p, sh-smie--newline-semi-p, sh-smie--sh-keyword-p)
(sh-smie-sh-forward-token, sh-smie--looking-back-at-continuation-p)
(sh-smie-sh-backward-token, sh-smie--continuation-start-indent)
(sh-smie-sh-rules, sh-smie-rc-rules, sh-smie--sh-keyword-in-p)
(sh-smie--rc-after-special-arg-p, sh-smie-rc-backward-token)
(sh-smie-sh-rules, sh-smie--rc-newline-semi-p): New functions.
(sh-set-shell): Use smie-setup if requested.
* ffap.el (ffap-url-unwrap-local): Make it work right.
Use url-generic-parse-url, and handle host names and Windows
filenames properly.
(ffap-url-unwrap-remote): Use url-generic-parse-url.
(ffap-url-unwrap-remote): Accept list values, specifying a list of
URL schemes to work on.
(ffap--toggle-read-only): New function.
(ffap-read-only, ffap-read-only-other-window)
(ffap-read-only-other-frame): Use it.
(ffap-fixup-url): Don't check ffap-ftp-regexp, since it is not
necessary for ffap-url-unwrap-remote.
* url-parse.el (url-path-and-query, url-port-if-non-default): New
functions.
(url-generic-parse-url): Don't set the portspec slot if it is not
specified; that is what `url-port' is for.
(url-port): Only require the scheme to be specified to call
url-scheme-get-property.
* url-util.el (url-encode-url): Use url-path-and-query.
* url-vars.el (url-mime-charset-string): Load mm-util lazily.
Fixes: debbugs:9131