b73f466 * lisp/cus-start.el (exec-path): Handle nil elements. (Bug#2...
55ebb70 Catch the imenu-unavailable error in sh-mode completion table
993acb5 ; Minor fix for last change in characters.el
30c4bb5 More char-width fixes
4eb4463 Fix char-width-table values for some Emoji
528997d Keep point when switching from and to *terminal* buffer
2130005 * INSTALL: Use correct Emacs release number 25.
10835b1 Avoid crashes due to objects read with the #n=object form
4de671d Improve doc string of 'completion-at-point-functions'
ceb46f0 Fix crash in evaluating functions
d8374c4 * src/filelock.c (current_lock_owner): Update comment.
* src/eval.c (syms_of_eval) <debugger-stack-frame-as-list>: New
variable.
* lisp/cus-start.el (standard): Add debugger-stack-frame-as-list.
* lisp/emacs-lisp/debug.el (debugger-setup-buffer): Adjust
backtrace processing for the value of debugger-stack-frame-as-list.
* lisp/emacs-lisp/edebug.el (edebug-backtrace): Adjust backtrace
processing for the value of debugger-stack-frame-as-list.
* doc/lispref/debugging.texi (Internals of Debugger): Document
debugger-stack-frame-as-list.
* etc/NEWS: Mention 'debugger-stack-frame-as-list'.
; I hope the next release from master is indeed 26.1, but for reasons
; that passeth my understanding we currently call it 25.2 everywhere else,
; so we should at least be consistent.
* lisp/cus-start.el (standard): Use the same custom types for
cursor-in-non-selected-windows as for cursor-type (bug#19214).
(cherry picked from commit b66bc0cced)
* src/frame.c (tooltip_reuse_hidden_frame): New option.
* src/w32fns.c (x_create_tip_frame): Remove argument TEXT. Fix
handling of dividers.
(x_hide_tip): New function.
(Fx_show_tip): Try to reuse old tooltip frame when
`tooltip-reuse-hidden-frame' is non-nil and frame parameters
have not changed. Insert STRING here instead of passing it to
x_create_tip_frame. Compute size of tooltip window with
Fwindow_text_pixel_size. Obey Vw32_tooltip_extra_pixels when
padding tooltip window.
(Fx_hide_tip): Call x_hide_tip.
(Vw32_tooltip_extra_pixels): New variable.
* src/xdisp.c (Fwindow_text_pixel_size): Don't return negative y
value. Fix doc-string.
* src/xfns.c (x_create_tip_frame): Remove argument TEXT. Call
make_frame with mini_p argument false.
(x_hide_tip): New function.
(Fx_show_tip): Try to reuse old tooltip frame when
`tooltip-reuse-hidden-frame' is non-nil and frame parameters
have not changed. Insert STRING here instead of passing it to
x_create_tip_frame. Compute size of tooltip window with
Fwindow_text_pixel_size.
(Fx_hide_tip): Call x_hide_tip.
* lisp/cus-start.el (tooltip-reuse-hidden-frame): Add
customization entry.
* lisp/cus-edit.el (custom-guess-type, custom-variable-documentation):
* lisp/wid-edit.el (widget-docstring):
Get raw docstring here since it’s cooked later and should not be
cooked twice.
* lisp/cus-edit.el (custom-group-value-create):
Cook the docstring before inserting it.
* lisp/cus-start.el (text-quoting-style): Quote the customization
docstrings according to the new rules. Give curved examples.
Rename help-quote-translation to text-quoting-style,
and use symbols rather than characters as values.
This follows suggestions along these lines by Alan Mackenzie in:
http://lists.gnu.org/archive/html/emacs-devel/2015-06/msg00343.html
and by Drew Adams in:
http://lists.gnu.org/archive/html/emacs-devel/2015-08/msg00048.html
* doc/lispref/help.texi (Keys in Documentation)
* etc/NEWS:
* lisp/cus-start.el (standard):
* src/doc.c (Fsubstitute_command_keys, syms_of_doc):
Document and/or implement the new behavior instead of the old.
(syms_of_doc): New symbols 'grave' and 'straight'.
* lisp/cus-start.el (standard): Don't assume curved quotes are
easily distinguishable when users are tinkering with a setting
that affects how curved quotes are generated.
Fix several problems with the recently-added custom variable
help-quote-translation where the code would quote inconsistently
in help buffers. Add support for quoting 'like this', which
is common in other GNU programs in ASCII environments. Change
help-quote-translation to use more mnemonic values: values are now the
initial quoting char, e.g., (setq help-quote-translation ?`) gets the
traditional Emacs help-buffer quoting style `like this'. Change the
default behavior of substitute-command-keys to match what's done in
set-locale-environment, i.e., quote ‘like this’ if displayable,
'like this' otherwise.
* doc/lispref/help.texi (Keys in Documentation): Document
new behavior of substitute-command-keys, and document
help-quote-translation.
* doc/lispref/tips.texi (Documentation Tips):
Mention the effect of help-quote-translation.
* etc/NEWS: Mention new behavior of substitute-command-keys,
and merge help-quote-translation news into it.
When talking about doc strings, mention new ways to type quotes.
* lisp/cedet/mode-local.el (overload-docstring-extension):
Revert my recent change to this function, which shouldn't be
needed as the result is a doc string.
* lisp/cedet/mode-local.el (mode-local-print-binding)
(mode-local-describe-bindings-2):
* lisp/cedet/srecode/srt-mode.el (srecode-macro-help):
* lisp/cus-theme.el (describe-theme-1):
* lisp/descr-text.el (describe-text-properties-1, describe-char):
* lisp/emacs-lisp/cl-generic.el (cl--generic-describe):
* lisp/emacs-lisp/eieio-opt.el (eieio-help-class)
(eieio-help-constructor):
* lisp/emacs-lisp/package.el (describe-package-1):
* lisp/faces.el (describe-face):
* lisp/help-fns.el (help-fns--key-bindings)
(help-fns--compiler-macro, help-fns--parent-mode)
(help-fns--obsolete, help-fns--interactive-only)
(describe-function-1, describe-variable):
* lisp/help.el (describe-mode):
Use substitute-command-keys to ensure a more-consistent quoting
style in help buffers.
* lisp/cus-start.el (standard):
Document new help-quote-translation behavior.
* lisp/emacs-lisp/lisp-mode.el (lisp-fdefs):
* lisp/help-mode.el (help-xref-symbol-regexp, help-xref-info-regexp)
(help-xref-url-regexp):
* lisp/international/mule-cmds.el (help-xref-mule-regexp-template):
* lisp/wid-edit.el (widget-documentation-link-regexp):
Also match 'foo', in case we're in a help buffer generated when
help-quote-translation is ?'.
* src/doc.c: Include disptab.h, for DISP_CHAR_VECTOR.
(LEFT_SINGLE_QUOTATION_MARK, uLSQM0, uLSQM1, uLSQM2, uRSQM0)
(uRSQM1, uRSQM2, LSQM, RSQM): New constants.
(Fsubstitute_command_keys): Document and implement new behavior.
(Vhelp_quote_translation): Document new behavior.
src/doc.c (traditional, prefer-unicode): new symbols.
(help-quote-translation): new variable.
(Fsubstitute_command_keys): make translation of quotes dependent on
`help-quote-translation'; also translate curly quotes back to ASCII
ones.
lisp/cus-start.el (top-level): Add a customization entry for
`help-quote-translation'.
* lisp/cus-start.el (custom-delayed-init-variables): Initialize the
vars early.
* lisp/loadup.el ("cus-start"): Move to the end to reduce customize-rogue.
Fixes: debbugs:20321
* lisp/cus-start.el (read-buffer-function): Don't advertize
iswitchb-read-buffer any more.
(iswitchb): Don't tweak this obsolete group any more.
* lisp/emacs-lisp/cursor-sensor.el: New file.
* lisp/simple.el (pre-redisplay-functions): New hook.
(redisplay--pre-redisplay-functions): New function.
(pre-redisplay-function): Use it.
(minibuffer-avoid-prompt): Mark obsolete.
(redisplay--update-region-highlight): Adapt it to work as a function on
pre-redisplay-functions.
* lisp/cus-start.el (minibuffer-prompt-properties--setter): New fun.
(minibuffer-prompt-properties): Use it. Use cursor-intangible rather
than point-entered to make the prompt intangible.
* lisp/forms.el: Move `provide' calls to the end.
(forms-mode): Don't use `run-hooks' on a local var.
(forms--make-format, forms--make-format-elt-using-text-properties):
Use cursor-intangible rather than `intangible'.
(forms-mode): Enable cursor-intangible-mode.
* lisp/isearch.el (isearch-mode): Use defvar-local.
(cursor-sensor-inhibit): Declare.
(isearch-mode): Set cursor-sensor-inhibit.
(isearch-done): Set it back.
(isearch-open-overlay-temporary, isearch-open-necessary-overlays)
(isearch-close-unnecessary-overlays): Don't bother with `intangible'
any more.
* lisp/ses.el (ses-localvars): Remove `mode-line-process'.
(ses-sym-rowcol, ses-cell-value, ses-col-width, ses-col-printer):
Add Edebug spec.
(ses-goto-print, ses-print-cell, ses-adjust-print-width)
(ses-goto-data, ses-setup, ses-copy-region): Don't let-bind
inhibit-point-motion-hooks any more.
(ses--cell-at-pos, ses--curcell): New functions, extracted from
ses-set-curcell.
(ses-set-curcell): Use them.
(ses-print-cell, ses-setup): Use cursor-intangible instead of
`intangible'. Make sure cursor-intangible isn't sticky at BOB.
(ses-print-cell-new-width, ses-reprint-all, ses-recalculate-all):
Use ses--cell-at-pos.
(ses--mode-line-process, ses--cursor-sensor-highlight): New functions,
extracted from ses-command-hook. Make them work with multiple windows
displaying the same buffer.
(ses-mode): Use them via mode-line-process and pre-redisplay-functions.
Enable cursor-intangible-mode.
(ses-command-hook): Remove cell highlight and mode-line update code.
(ses-forward-or-insert, ses-copy-region-helper, ses-sort-column):
Update for new name of text-property holding the cell name.
(ses-rename-cell): Don't mess with mode-line-process.
* lisp/erc/erc-stamp.el (erc-add-timestamp): Use the new
cursor-sensor-functions property instead of point-entered.
(erc-insert-timestamp-right, erc-format-timestamp):
Use cursor-intangible rather than `intangible'.
(erc-munge-invisibility-spec): Use add-to-invisibility-spec and
remove-from-invisibility-spec. Enable cursor-intangible-mode and
cursor-sensor-mode if needed.
(erc-echo-timestamp): Adapt to calling convention of
cursor-sensor-functions.
(erc-insert-timestamp-right): Remove unused vars `current-window' and
`indent'.
* lisp/gnus/gnus-group.el (gnus-tmp-*): Declare.
(gnus-update-group-mark-positions): Remove unused `topic' var.
(gnus-group-insert-group-line): Remove unused var `header'.
(gnus-group--setup-tool-bar-update): New function.
(gnus-group-insert-group-line): Use it.
(gnus-group-update-eval-form): Declare local
dynamically-bound variables.
(gnus-group-unsubscribe-group): Use \` and \' to match string bounds.
* lisp/gnus/gnus-topic.el (gnus-topic-jump-to-topic)
(gnus-group-prepare-topics, gnus-topic-update-topic)
(gnus-topic-change-level, gnus-topic-catchup-articles)
(gnus-topic-remove-group, gnus-topic-delete, gnus-topic-indent):
Use inhibit-read-only.
(gnus-topic-prepare-topic): Use gnus-group--setup-tool-bar-update.
(gnus-topic-mode): Use define-minor-mode and derived-mode-p.
* lisp/textmodes/reftex-index.el (reftex-display-index):
Use cursor-intangible-mode if available.
(reftex-index-post-command-hook): Check cursor-intangible.
* lisp/textmodes/reftex-toc.el (reftex-toc):
Use cursor-intangible-mode if available.
(reftex-toc-recenter, reftex-toc-post-command-hook):
Check cursor-intangible.
* lisp/textmodes/sgml-mode.el: Use lexical-binding.
(sgml-tag): Use cursor-sensor-functions instead of point-entered.
(sgml-tags-invisible): Use with-silent-modifications and
inhibit-read-only. Enable cursor-sensor-mode.
(sgml-cursor-sensor): Rename from sgml-point-entered and adjust to
calling convention of cursor-sensor-functions.
* lisp/textmodes/table.el (table-cell-map-hook, table-load-hook)
(table-point-entered-cell-hook, table-point-left-cell-hook):
Don't autoload.
(table-cell-entered-state): Remove var.
(table--put-cell-point-entered/left-property)
(table--remove-cell-properties):
Use cursor-sensor-functions rather than point-entered/left.
(table--point-entered/left-cell-function): Merge
table--point-entered-cell-function and table--point-left-cell-function
and adjust to calling convention of cursor-sensor-functions.
* cus-start.el (resize-mini-windows): Make it customizable.
* minibuf.texi (Minibuffer Windows): Add descriptions of
`resize-mini-windows' and `max-mini-window-height'.
src/xdisp.c: Remove "static" from declaration of
Qfontification_functions.
src/window.c (window_scroll): bind fontification-functions to nil when
scrolling by whole screens and fast-but-imprecise-scrolling is non-nil.
(syms_of_window): New DEFVAR_BOOL fast-but-imprecise-scrolling.
src/lisp.h (bool): Declare Qfontification_functions extern.
lisp/cus-start.el (all): Add fast-but-imprecise-scrolling.
doc/emacs/display.texi (Scrolling): fast-but-imprecise-scrolling.
Describe new variable.
etc/NEWS: Add entry for fast-but-imprecise-scrolling.
* configure.ac (AC_INIT): Add "GNU" in package, add bug address.
(PACKAGE_BUGREPORT): Use it.
* src/emacs.c (emacs_version): Use PACKAGE_VERSION rather than VERSION.
(emacs_bugreport): New variable.
(usage_message): Use PACKAGE_BUGREPORT.
(syms_of_emacs) <report-emacs-bug-address>: New variable.
* lisp/cus-start.el (report-emacs-bug-address): Set custom properties.
* lisp/mail/emacsbug.el (report-emacs-bug-address):
Variable is now defined in emacs.c.
* src/keyboard.c (read_char, read_char_x_menu_prompt)
(read_char_minibuf_menu_prompt):
Replace nmaps+maps with a single `map' arg.
(follow_key): Operate on a single map.
(active_maps): New function.
(test_undefined): Also return true for nil bindings.
(read_key_sequence): Use active_maps to replace the arrays of keymaps with
a single (composed) keymap. Remember `first_event' to choose the right
set of active keymaps. Recompute the set of keymaps after receiving
the first event. Remove GOBBLE_FIRST_EVENT.
(syms_of_keyboard): Remove inhibit_local_menu_bar_menus.
* src/keyboard.h (read_char): Update declaration.
* src/lread.c (read_filtered_event): Adjust call to read_char.
* lisp/cus-start.el (all): Remove inhibit-local-menu-bar-menus.
* src/nsmenu.m (update_frame_tool_bar): Check for negative tool bar
height.
* src/nsterm.h (HAVE_NATIVE_FS): Define if OSX => 10.7.
(EmacsView): Add fs_is_native, fsIsNative, isFullscreen and
updateCollectionBehaviour.
* src/nsterm.m (NEW_STYLE_FS): Remove.
(ns_last_use_native_fullscreen): New variable.
(x_make_frame_visible): Replace NEW_STYLE_FS with isFullscreen.
(x_set_window_size): Do not take title bar and tool bar into account
if isFullscreen returns YES.
(ns_fullscreen_hook): Replace NEW_STYLE_FS with isFullscreen.
(check_native_fs): New function.
(ns_select, ns_read_socket): Call check_native_fs if HAVE_NATIVE_FS.
(ns_term_init): Remove NEW_STYLE_FS.
(updateFrameSize:, windowWillResize:toSize:): Only adjust for title bar
and tool bar if isFullscreen returns NO.
(windowDidResize:): Replace NEW_STYLE_FS with fsIsNative.
(initFrameFromEmacs:): Initialize fs_is_native. Replace NEW_STYLE_FS
with HAVE_NATIVE_FS.
(window:willUseFullScreenPresentationOptions:): New method.
(windowDidEnterFullScreen:): Replace NEW_STYLE_FS with fsIsNative.
Hide toolbar if not enabled.
(windowDidExitFullScreen:): Call updateCollectionBehaviour.
Restore tool bar if enabled, hide it otherwise (Bug#13444).
(fsIsNative, isFullscreen, updateCollectionBehaviour): New methods.
(toggleFullScreen:): If fs_is_native, call toggleFullScreen on
window. Do no set FRAME_EXTERNAL_TOOL_BAR (f) to 0.
Check FRAME_EXTERNAL_TOOL_BAR (f) before restoring
FRAME_TOOLBAR_HEIGHT (f). Call updateFrameSize when going non-fs.
(syms_of_nsterm): Add ns-use-native-fullscreen.