Stefan Monnier [Mon, 27 Apr 2015 23:07:51 +0000 (19:07 -0400)]
* lisp/midnight.el: Make it a minor mode. Allow predicates.
* lisp/midnight.el: Use lexical-binding.
(midnight-mode): Make it a proper minor mode.
(midnight-buffer-display-time): Make arg non-optional.
(midnight-find): Remove.
(clean-buffer-list-kill-never-regexps)
(clean-buffer-list-kill-regexps): Tweak type for new function choice.
(clean-buffer-list-delay): Allow clean-buffer-list-kill-regexps to
contain functions.
(clean-buffer-list): Use cl-find.
Allow clean-buffer-list-kill-never-regexps to contain functions.
* lisp/textmodes/reftex-toc.el (reftex-toc-revert): Avoid displaying
the buffer in yet another frame.
(reftex-toc-visit-location): Make sure toc-window has focus at the end
when `final' is nil.
(reftex--rebuilding-toc): Defvar to avoid `boundp' and
silence warnings. Use `--' to clarify that it's internal.
(reftex-toc-next, reftex-toc-previous, reftex-toc-demote)
(reftex-toc-promote): Clarify unused argument.
(reftex--pro-or-de, reftex--start-line, reftex--mark-line):
Add `reftex--' prefix. Fix all users.
(reftex-toc-promote-prepare): Use _ for dummy variable.
(reftex-toc-restore-region): Rename `m
Eli Zaretskii [Mon, 27 Apr 2015 15:15:52 +0000 (18:15 +0300)]
Fix redisplay of frame after loading new fonts
* src/xdisp.c (redisplay_internal): When retrying redisplay of a
frame because new fonts were loaded, disable all redisplay
optimizations on that frame by calling SET_FRAME_GARBAGED.
(Bug#20410)
* lisp/progmodes/xref.el (xref-prompt-for-identifier): New option.
(xref--read-identifier): Use it
(http://lists.gnu.org/archive/html/emacs-devel/2015-04/msg01205.html).
João Távora [Sun, 26 Apr 2015 10:44:41 +0000 (11:44 +0100)]
`tex-insert-quote' after single `'' opens quotes instead of closing
Without this, it's very hard to precede double quotes with the
apostrophe character, i.e. insert the sequence '``
(quote-backquote-backquote), commonly useful in portuguese, for
instance.
* tex-mode.el (tex-insert-quote): Add ?' to the list of preceding
chars making `tex-insert-quote' be in the "opening" context.
Pass `id' to `completing-read' as def instead of initial input
* xref.el (xref--read-identifier): Pass `id' to `completing-read'
as the default value instead of initial input
(http://lists.gnu.org/archive/html/emacs-devel/2015-04/msg01182.html).
Paul Eggert [Sat, 25 Apr 2015 23:16:58 +0000 (16:16 -0700)]
Don't freeze with unreadable processes
Don't freeze if an exiting process can't be read from. (Bug#19860).
This fixes a bug I introduced in
2014-07-08T07:24:07Z@eggert@cs.ucla.edu
"* process.c: Add sanity checks for file descriptors."
Dmitry Gutov did most of the legwork in finding the problem.
* src/process.c (wait_reading_process_output):
Treat non-running processes that can't be read from
the same as other non-running processes.
* etc/themes/tsdh-light-theme.el (tsdh-light): New face
definitions for Info-quoted, ace-jump-face-foreground,
hl-paren-face, show-paren-match, and show-paren-mismatch.
Stefan Monnier [Fri, 24 Apr 2015 20:11:35 +0000 (16:11 -0400)]
* lisp/emacs-lisp/seq.el (seq-doseq): Tighten the code
(seq-doseq): Fix out-of-scope binding.
Don't call `seq-length at every iteration.
Reduce `if's from 3 to 2 per iteration.
(emacs-lisp-mode-hook): Don't tweak in Emacs≥25.
Paul Eggert [Wed, 22 Apr 2015 17:58:13 +0000 (10:58 -0700)]
Omit needless "\ " after multibyte then newline
* src/print.c: Include <c-ctype.h>, for c_isxdigit.
(print_object): When print-escape-multibyte is non-nil and a
multibyte character is followed by a newline or formfeed, followed
by a hex digit, don't output a needless "\ " before the hex digit.
* test/automated/print-tests.el (print-hex-backslash): New test.
Oleh Krehel [Wed, 22 Apr 2015 12:45:09 +0000 (14:45 +0200)]
Add a new `inhibit-message' variable
* src/xdisp.c (syms_of_xdisp): Define a boolean `inhibit_message'.
(message3): Don't call `message3_nolog' (i.e. use the Echo Area) when
`inhibit_message' is non-zero.
* etc/NEWS: Add an entry.
* doc/lispref/display.texi: Add an entry for `inhibit-message',
mention it in `message'.
In case `(and (null custom-file) init-file-had-error)' do the same
thing we'd do if `(null user-init-file)', which is to either error out
or return nil. This is in line with `custom-save-all' which would
throw an error in that situation. (bug#20355)
Artur Malabarba [Wed, 22 Apr 2015 08:31:16 +0000 (09:31 +0100)]
* lisp/emacs-lisp/package.el: Hide lower-priority packages in menu
(package-menu-hide-low-priority): New variable, see its doc.
(package-archive-priorities): Update doc.
(package-desc-priority): New function.
(package-desc-priority-version): Use it.
(package--remove-hidden): New function.
(package-menu--refresh): Use it.
(package-menu--hide-obsolete): New variable.
(package--remove-hidden): Use it.
(package-menu-hide-obsolete): New interactive function to toggle
the variable.
(package--quick-help-keys): Document it.
(package-menu-async): Add :version tag.
(package-menu-mode-map): Bind package-menu-hide-obsolete.
(package-desc-status): Indicate non-installed obsolete packages as
avail-obso.
(package-menu-mark-install): Allow installation of avail-obso.
(package-menu--status-predicate): Sort avail-obso with available.
* reftex-cite.el (reftex-extract-bib-entries): Fix
`wrong-type-argument stringp nil' error that occurs when AUCTeX
integration is enabled and there are no citations in the document
so far.
* lisp/vc/vc-git.el (vc-git-find-file-hook): Add
`vc-git-resolve-when-done' to `after-save-hook' in either case.
(vc-git-conflicted-files): Add a TODO.
(vc-git-resolve-when-done): Depending on the presence of
MERGE_HEAD, either update the resolved file in the index, or
remove it from there. (Bug#20292)
* lisp/files.el (save-buffer): Pass interactive flag to `basic-save-buffer`
(basic-save-buffer): Accept called-interactively as an argument instead of
directly invoking called-interactively-p, which will always yield nil
in that context.
Alan Mackenzie [Tue, 21 Apr 2015 14:02:10 +0000 (14:02 +0000)]
CC Mode: Do nothing in before/after-change-functions for text property changes
Fixes bug#20266.
lisp/progmodes/cc-mode.el (c-basic-common-init): Make
yank-handled-properties buffer local, and remove 'category from it.
(c-called-from-text-property-change-p): New function.
(c-before-change): Don't do anything if a call of the new function
returns non-nil.
(c-after-change): Don't do much if a call of the new function returns
non-nil.
(c-extend-after-change-region): Put changes to text property 'fontified
inside c-save-buffer-state.
* lisp/eshell/esh-mode.el (eshell/clear-scrollback): New function.
(eshell/clear): Add an optional SCROLLBACK argument. If non-nil,
scrollback contents are cleared.
Steve Purcell [Sun, 19 Apr 2015 16:47:02 +0000 (17:47 +0100)]
Assume package archive-contents are UTF8-encoded
* lisp/emacs-lisp/package.el (package--read-archive-file):
Set `coding-system-for-read' explicitly to 'utf-8 when reading the
downloaded and cached archive-contents files, so that non-ASCII
characters in package descriptions are displayed correctly in the
`list-packages' menu. (Bug#20231)
Co-authored-by: Steve Purcell <steve@sanityinc.com>
Paul Eggert [Sun, 19 Apr 2015 15:53:35 +0000 (08:53 -0700)]
Refactor low-level printing for simplicity
* src/print.c (PRINTDECLARE): Remove. Move its contents into
PRINTPREPARE; doable now that we assume C99. All callers changed.
(PRINTCHAR): Remove, as it adds more mystery than clarity.
All callers changed.
(strout): Assume that caller computes length. All callers changed.
(print_c_string): New function.
(write_string, write_string_1): Compute length instead of asking
the caller to compute it. All callers changed.
(write_string): Simplify by using write_string_1.
(write_string_1): Simplify by using print_c_string.
(Fterpri): Compute default val more clearly.
(Fprin1_to_string, print_object):
Assume C99 to avoid unnecessary nesting.
(print_object): Prefer print_c_string to multiple printchar, or
to calling strout with -1 length. Coalesce into sprintf when
this is easy.