Paul Eggert [Wed, 15 Apr 2015 17:57:50 +0000 (10:57 -0700)]
Standardize names of ChangeLog history files
Suggested by Glenn Morris in:
http://lists.gnu.org/archive/html/emacs-devel/2015-04/msg00678.html
* Makefile.in (install-man): Don't treat ChangeLog.1 as a man page.
* doc/man/ChangeLog.1: Rename back from doc/man/ChangeLog.01.
* lisp/erc/ChangeLog.1: New file, containing the old contents of ...
* lisp/erc/ChangeLog.01, lisp/erc/ChangeLog.02, lisp/erc/ChangeLog.03:
* lisp/erc/ChangeLog.04, lisp/erc/ChangeLog.05, lisp/erc/ChangeLog.06:
* lisp/erc/ChangeLog.07, lisp/erc/ChangeLog.08, lisp/erc/ChangeLog.09:
Remove.
Paul Eggert [Wed, 15 Apr 2015 17:57:50 +0000 (10:57 -0700)]
Split top-level entries into pre- and post-April 7
This more clearly distingiushes pre-April-7 ChangeLog entries (which
are for top-level files only) from post-April-7 entries (which are
about files at all levels. Problem reported by Glenn Morris in:
http://lists.gnu.org/archive/html/emacs-devel/2015-04/msg00678.html
* ChangeLog.1: Move post-April-7 entries from here ...
* ChangeLog.2: ... to this new file.
* Makefile.in (CHANGELOG_HISTORY_INDEX_MAX): Bump to 2.
Stefan Monnier [Wed, 15 Apr 2015 17:02:15 +0000 (13:02 -0400)]
Fix recent cus-start changes that added customize-rogues
* 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.
Glenn Morris [Wed, 15 Apr 2015 16:43:37 +0000 (12:43 -0400)]
; * etc/NEWS: Add missing system-type entry.
Nicolas Petton [Wed, 15 Apr 2015 16:26:52 +0000 (18:26 +0200)]
Define cl-concatenate as an alias to seq-concatenate
* lisp/emacs-lisp/cl-extra.el (cl-concatenate): Removes duplicated
code by making cl-concatenate an alias to seq-concatenate.
Stefan Monnier [Wed, 15 Apr 2015 16:15:14 +0000 (12:15 -0400)]
* src/lread.c (intern_1): Make sure we'd find the symbol we add
Fixes: debbugs:20334
* src/xfaces.c (resolve_face_name): Don't use `intern' with Lisp_Strings.
Glenn Morris [Wed, 15 Apr 2015 16:11:15 +0000 (09:11 -0700)]
* doc/lispref/sequences.texi (Sequence Functions): Fix typo in previous.
Lars Magne Ingebrigtsen [Wed, 15 Apr 2015 13:28:20 +0000 (15:28 +0200)]
Clean up gnus-uu saving code slightly
* gnus-uu.el (gnus-uu-save-article): Make the
save-restriction/widen calls make more sense.
Paul Eggert [Wed, 15 Apr 2015 07:26:32 +0000 (00:26 -0700)]
Make [:graph:] act like [:print:] sans space
In POSIX [[:print:]] is equivalent to [ [:graph:]], so change
[:graph:] so that it matches everything that [:print:] does,
except for space.
* doc/lispref/searching.texi (Char Classes):
* etc/NEWS:
* lisp/emacs-lisp/rx.el (rx):
Document [:graph:] to be [:print:] sans ' '.
* src/character.c, src/character.h (graphicp): New function.
* src/regex.c (ISGRAPH) [emacs]: Use it.
(BIT_GRAPH): New macro.
(BIT_PRINT): Increase to 0x200, to make room for BIT_GRAPH.
(re_wctype_to_bit) [! WIDE_CHAR_SUPPORT]:
Return BIT_GRAPH for RECC_GRAPH.
(re_match_2_internal) [emacs]: Use ISGRAPH if BIT_GRAPH,
and ISPRINT if BIT_PRINT.
Stefan Monnier [Wed, 15 Apr 2015 03:06:44 +0000 (23:06 -0400)]
automated/eieio-test-methodinvoke.el (make-instance) <(subclass C)>:
Don't use call-next-method in a cl-defmethod.
Stefan Monnier [Wed, 15 Apr 2015 03:04:45 +0000 (23:04 -0400)]
* lisp/emacs-lisp/eieio-core.el (eieio--class): Derive from cl--class
(eieio--class-p): Remove, provided by cl-defstruct.
Nicolas Petton [Tue, 14 Apr 2015 22:33:27 +0000 (00:33 +0200)]
Add seq-intersection and seq-difference to the seq library
* lisp/emacs-lisp/seq.el (seq-intersection, seq-difference): New
functions.
* test/automated/seq-tests.el: Add tests for seq-intersection and
seq-difference.
* doc/lispref/sequences.texi: Add documentation for seq-intersection
and seq-difference.
Dmitry Gutov [Tue, 14 Apr 2015 23:21:55 +0000 (02:21 +0300)]
; CONTRIBUTE: Update the "make the ChangeLog entry in their name" bit
Fixes: debbugs:20328
Dmitry Gutov [Tue, 14 Apr 2015 23:15:07 +0000 (02:15 +0300)]
; CONTRIBUTE: Remove the "relax this rule for commit messages" bit
Fixes: debbugs:20328
Dmitry Gutov [Tue, 14 Apr 2015 22:40:52 +0000 (01:40 +0300)]
; Set indent-tabs-mode to nil in (most) Elisp sources
Fixes: bug#20323
Stefan Monnier [Tue, 14 Apr 2015 21:26:12 +0000 (17:26 -0400)]
* eieio-core.el (class-abstract-p): Don't inline, to avoid leaking internals
Sam Steingold [Tue, 14 Apr 2015 19:14:20 +0000 (15:14 -0400)]
package--ensure-init-file: widen requires save-restriction
Eli Zaretskii [Tue, 14 Apr 2015 18:57:23 +0000 (21:57 +0300)]
Improve the commit-msg Git hook for unibyte environments
* build-aux/git-hooks/commit-msg: Set LC_ALL=C, before running Awk
in unibyte environments. (Suggested by Paul Eggert
<eggert@cs.ucla.edu>.) Use a more accurate approximation to
[:print:], based on UTF-8 sequences of the unprintable characters.
Eli Zaretskii [Tue, 14 Apr 2015 16:34:05 +0000 (19:34 +0300)]
Describe problems with cursor caused by Windows Magnifier
* etc/PROBLEMS: Describe the problem with cursor shape on
MS-Windows due to Windows Magnifier.
Fixes: Bug#20271
Eli Zaretskii [Tue, 14 Apr 2015 15:47:04 +0000 (18:47 +0300)]
Make [:print:] support non-ASCII characters correctly
* src/regex.c (ISPRINT): Call 'printablep' for multibyte characters.
(BIT_PRINT): New bit mask.
(re_wctype_to_bit): Return BIT_PRINT for RECC_PRINT.
* src/character.c (printablep): New function.
* src/character.h (printablep): Add prototype.
* lisp/emacs-lisp/rx.el (rx): Doc fix: document the new behavior
of 'print', 'alnum', and 'alphabetic'.
* doc/lispref/searching.texi (Char Classes): Document the new
behavior of [:print:].
* etc/NEWS: Mention the new behavior of [:print:].
Eli Zaretskii [Tue, 14 Apr 2015 15:37:07 +0000 (18:37 +0300)]
Assign correct general-category and names to surrogates
* admin/unidata/unidata-gen.el (unidata-setup-list): Don't ignore
surrogates. This avoids assigning them the default
general-category of 'Cn', i.e. unassigned codepoints.
(unidata-get-name): Give surrogates synthetic names.
Paul Eggert [Tue, 14 Apr 2015 07:58:07 +0000 (00:58 -0700)]
Assume C89 offsetof in xterm.c, xlwmenu.c
* lwlib/xlwmenu.c (offset):
* src/xterm.c (cvt_string_to_pixel_args):
Use offsetof, not XtOffset.
Paul Eggert [Tue, 14 Apr 2015 07:37:48 +0000 (00:37 -0700)]
Assume C89 offsetof in widget.c
* src/widget.c (XtOffset): Remove; no longer needed.
(offset): Implement via offsetof instead of via pre-C89 XtOffset hack.
Paul Eggert [Tue, 14 Apr 2015 07:26:18 +0000 (00:26 -0700)]
Fix think-o in previous patch
* src/window.c (count_windows, get_leaf_windows):
Don't optimize count_windows incorrectly.
Paul Eggert [Tue, 14 Apr 2015 06:26:13 +0000 (23:26 -0700)]
Avoid some int overflows in window.c
* src/print.c (print_object):
* src/window.c (sequence_number):
* src/window.h (struct window.sequence_number):
Don't assume window sequence number fits in int.
* src/window.c (window_select_count):
* src/window.h (struct window.use_time, window_select_count):
Don't assume window use time fits in int.
* src/window.c (Fsplit_window_internal):
Don't assume user-supplied integer, or sum, fits in int.
(Fset_window_configuration, count_windows, get_leaf_windows)
(save_window_save, Fcurrent_window_configuration):
Use ptrdiff_t for object counts.
(Fset_window_configuration): Omit unused local 'n'.
(count_windows): Simplify by writing in terms of get_leaf_windows.
(get_leaf_windows): Don't store through FLAT if it's null.
(extract_dimension): New static function.
(set_window_margins, set_window_fringes, set_window_scroll_bars):
Use it to avoid undefined behavior when converting user-supplied
integer to 'int'.
Glenn Morris [Tue, 14 Apr 2015 06:20:48 +0000 (23:20 -0700)]
Minor doc copyedits
* doc/emacs/custom.texi (Init Examples): Tweak example, replace typo.
* doc/lispintro/emacs-lisp-intro.texi (condition-case): Typo fix.
Katsumi Yamaoka [Tue, 14 Apr 2015 03:35:02 +0000 (03:35 +0000)]
[Gnus] Catch the invalid-operation that idna.el will issue
* lisp/gnus/gnus-art.el (gnus-use-idna):
* lisp/gnus/gnus-sum.el (gnus-summary-idna-message):
* lisp/gnus/message.el (message-use-idna):
Catch the invalid-operation that idna.el will issue.
Paul Eggert [Tue, 14 Apr 2015 03:30:50 +0000 (20:30 -0700)]
* doc/lispref/processes.texi (Shell Arguments): Prefer diff -u.
Sam Steingold [Tue, 14 Apr 2015 03:27:02 +0000 (23:27 -0400)]
package--ensure-init-file: widen before looking for "(package-initialize)"
Dmitry Gutov [Tue, 14 Apr 2015 02:03:32 +0000 (05:03 +0300)]
Change diff-switches default to `-u'
Fixes: debbugs:20290
* doc/emacs/files.texi (Comparing Files): Document the new default
value of `diff-switches'.
* doc/emacs/trouble.texi (Sending Patches): Document the preference
for unified diff format. Escape the plus in the suggested `-F' regexp
value.
* lisp/vc/diff.el (diff-switches): Change the default to `-u'.
Stefan Monnier [Tue, 14 Apr 2015 01:30:27 +0000 (21:30 -0400)]
(gnus-group--setup-tool-bar-update): Fix last change
* lisp/gnus/gnus-group.el (gnus-group--setup-tool-bar-update):
cursor-sensor-functions should be a list of functions.
Katsumi Yamaoka [Mon, 13 Apr 2015 23:42:18 +0000 (23:42 +0000)]
Use gmm-called-interactively-p in Gnus
* lisp/gnus/gnus-topic.el (gnus-topic-mode): Use gmm-called-interactively-p.
Stefan Monnier [Mon, 13 Apr 2015 22:21:00 +0000 (18:21 -0400)]
* lisp/loadup.el ("cus-start"): Load it after loaddefs.el
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.
Artur Malabarba [Mon, 13 Apr 2015 19:50:33 +0000 (20:50 +0100)]
* lisp/emacs-lisp/package.el: Fix package--ensure-init-file
Artur Malabarba [Mon, 13 Apr 2015 12:13:36 +0000 (13:13 +0100)]
* lisp/emacs-lisp/cl-macs.el (cl-defstruct): Implement docstrings
Adding a string after a constructor's argument list will use
that string as the constructor function docstring. If this string
is absent but the struct itself was given a docstring, use that as
the constructor's docstring.
Fixes (bug#17284).
Stefan Monnier [Mon, 13 Apr 2015 19:51:15 +0000 (15:51 -0400)]
Deprecate `intangible' and `point-entered' properties
* 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.
Stefan Monnier [Mon, 13 Apr 2015 18:55:10 +0000 (14:55 -0400)]
Update ldef-boots.el
Stefan Monnier [Mon, 13 Apr 2015 18:46:58 +0000 (14:46 -0400)]
* lisp/emacs-lisp/pcase.el (pcase-dolist): Autoload as well.
Stefan Monnier [Mon, 13 Apr 2015 18:36:55 +0000 (14:36 -0400)]
* doc/misc/eieio.texi: Don't advertize now obsolete constructs
Stefan Monnier [Mon, 13 Apr 2015 18:05:09 +0000 (14:05 -0400)]
Collapse successive char deletions in the undo log
* src/cmds.c (remove_excessive_undo_boundaries): New function,
extracted from Fself_insert_command.
(Fdelete_char, Fself_insert_command): Use it.
* src/fileio.c (Fmake_symbolic_link): Rename arg to `target'.
* src/keyboard.c (syms_of_keyboard): `top-level' shouldn't be special.
Stefan Monnier [Mon, 13 Apr 2015 15:36:30 +0000 (11:36 -0400)]
xterm and OSC 52: Add NEWS entry, and tweak the code
* lisp/term/xterm.el (gui-set-selection) <nil>: Move method definition to
top-level.
(terminal-init-xterm-activate-set-selection): Set a terminal property.
(xterm--set-selection): Use it instead of checking the value of
`terminal-initted'. Don't use string-bytes.
Philipp Stephani [Mon, 13 Apr 2015 14:48:47 +0000 (10:48 -0400)]
xterm.el: Implement OSC-52 functionality for setting the X selection
* lisp/term/xterm.el (xterm-max-cut-length): New var.
(xterm--set-selection, terminal-init-xterm-activate-set-selection): New funs.
(terminal-init-xterm, xterm--version-handler): Use them.
Stefan Monnier [Mon, 13 Apr 2015 14:41:30 +0000 (10:41 -0400)]
Remove left over code from when we used an obsolete/loaddefs.el file
* lisp/subr.el (do-after-load-evaluation): Remove left over code from when
we used an obsolete/loaddefs.el file.
Stefan Monnier [Mon, 13 Apr 2015 14:39:25 +0000 (10:39 -0400)]
* cedet/semantic/fw.el: Use declare.
* cedet/semantic/fw.el (semantic-exit-on-input)
(semanticdb-without-unloaded-file-searches): Use declare.
(semantic-fw-add-edebug-spec): Remove.
Stefan Monnier [Mon, 13 Apr 2015 14:35:15 +0000 (10:35 -0400)]
(completion-lisp-mode-hook): Use completion-separator-chars
* lisp/completion.el (completion-lisp-mode-hook):
Use completion-separator-chars rather than local key binding.
Stefan Monnier [Mon, 13 Apr 2015 14:16:38 +0000 (10:16 -0400)]
* src/*.c: Set deactivate_mark buffer-locally
Fixes: debbugs:20260
* src/insdel.c (prepare_to_modify_buffer_1):
* src/fileio.c (Finsert_file_contents): Set deactivate_mark
buffer-locally.
Fabián Ezequiel Gallina [Mon, 13 Apr 2015 01:43:44 +0000 (22:43 -0300)]
python.el: Keep symmetry on sexp navigation with parens
Fixes: debbugs:19954
* lisp/progmodes/python.el
(python-nav--forward-sexp): Add argument skip-parens-p.
(python-nav-forward-sexp, python-nav-backward-sexp)
(python-nav-forward-sexp-safe)
(python-nav-backward-sexp-safe): Use it.
* test/automated/python-tests.el
(python-nav-forward-sexp-1): Fix test.
João Távora [Sun, 12 Apr 2015 22:23:44 +0000 (23:23 +0100)]
Don't use `setq-local' in Gnus code
This might break upstream builds with older Emacsen
* lisp/gnus/message.el (message-mode): Use `set' and
`make-local-variable' instead of `setq-local'.
Paul Eggert [Sun, 12 Apr 2015 22:21:08 +0000 (15:21 -0700)]
Update Makefile.in's .PHONY dependencies
* Makefile.in (change-history-commit, master-branch-is-current)
(no-ChangeLog): Now phony.
Paul Eggert [Sun, 12 Apr 2015 21:55:38 +0000 (14:55 -0700)]
Remove configure's --with-mmdf option
* configure.ac (MAIL_USE_MMDF): Remove.
* etc/NEWS: Document this.
* lib-src/movemail.c: Assume MAIL_USE_MMDF is not defined.
Fixes: bug#20308
Paul Eggert [Sun, 12 Apr 2015 18:26:50 +0000 (11:26 -0700)]
* doc/man/ChangeLog.01: Rename from doc/man/ChangeLog.1.
That way, 'make install' won't think it's a man page.
Reported by Ashish SHUKLA in:
http://lists.gnu.org/archive/html/emacs-devel/2015-04/msg00656.html
Paul Eggert [Sun, 12 Apr 2015 17:21:59 +0000 (10:21 -0700)]
Improve 'make change-history' prereq tests
* Makefile.in (gen_origin): Fix to match what's in the master branch.
(no-ChangeLog, master-branch-is-current): New rules.
(change-history): Depend on them, to avoid similar future problems.
Escape the local-variables string to pacify Emacs when editing
Makefile.in.
Artur Malabarba [Sun, 12 Apr 2015 15:10:22 +0000 (16:10 +0100)]
* test/automated/package-test.el (with-package-test): Kill Packages buffer
Artur Malabarba [Sun, 12 Apr 2015 14:11:08 +0000 (15:11 +0100)]
* lisp/emacs-lisp/package.el: Improve transaction y-or-n prompt
(package-menu--prompt-transaction-p): Prompt for "Delete" first,
"Upgrade" last, and use capitalized instead of all-caps.
Artur Malabarba [Sun, 12 Apr 2015 14:03:45 +0000 (15:03 +0100)]
* lisp/emacs-lisp/package.el: Completely silence async operations
(package--make-autoloads-and-stuff): Silence autoloads.
(package--save-selected-packages): New function, silences
`customize-save-variable'.
(package--user-selected-p, package-install-from-buffer)
(package-delete, package-install): Use it.
(package-install-from-archive)
(package-menu--perform-transaction): Silence.
(package-menu-execute): Feedback when operation starts.
Artur Malabarba [Sun, 12 Apr 2015 13:37:45 +0000 (14:37 +0100)]
Use delay-mode-hooks when visiting the init-file
* lisp/emacs-lisp/package.el (package--ensure-init-file):
delay-mode-hooks
* lisp/cus-edit.el (custom-save-all): delay-mode-hooks
Artur Malabarba [Sun, 12 Apr 2015 13:36:54 +0000 (14:36 +0100)]
* lisp/files.el: Only message when saving if save-silently is nil
(save-silently): New variable.
(files--message): New function.
(find-file-noselect, save-buffer, basic-save-buffer)
(basic-save-buffer-2, save-some-buffers, not-modified)
(append-to-file): Use them.
Johan Bockgård [Sun, 12 Apr 2015 14:26:52 +0000 (16:26 +0200)]
Support debug declarations in pcase macros
* lisp/emacs-lisp/pcase.el (pcase-MACRO): New edebug spec.
(pcase-UPAT): Use it. Remove "`".
(pcase--edebug-match-macro): New function.
(pcase-defmacro): Support debug declarations.
* lisp/emacs-lisp/cl-macs.el (cl-struct) <pcase-defmacro>:
* lisp/emacs-lisp/eieio.el (eieio) <pcase-defmacro>:
* lisp/emacs-lisp/pcase.el (\`): <pcase-defmacro>: Add debug declaration.
Johan Bockgård [Sun, 12 Apr 2015 14:26:51 +0000 (16:26 +0200)]
pcase.el: Edebug support for `app' and vector patterns
* lisp/emacs-lisp/pcase.el (pcase-FUN): New edebug spec.
(pcase-UPAT): Use it. Support `app' patterns.
(pcase-QPAT): Support vector patterns.
Johan Bockgård [Sun, 12 Apr 2015 14:26:51 +0000 (16:26 +0200)]
edebug.el: Disambiguate vector specifications
* lisp/emacs-lisp/edebug.el (edebug-match-list): Always treat
`(vector ...)' as a vector specification, not as a sublist.
Johan Bockgård [Sun, 12 Apr 2015 14:13:08 +0000 (16:13 +0200)]
(gnus-summary-refer-thread): Don't clobber unread articles
This fixes a bug where `A T' causes "random" articles to become marked
as read.
* lisp/gnus/gnus-sum.el (gnus-summary-refer-thread): Make sure
gnus-newsgroup-unreads remains sorted.
Johan Bockgård [Sun, 12 Apr 2015 13:55:32 +0000 (15:55 +0200)]
mouse-sel.el: Fix mouse-sel-get-selection-function
* lisp/obsolete/mouse-sel.el (mouse-sel-get-selection-function):
Use gui--last-selected-text-primary instead of no longer existing
gui-last-selected-text.
Johan Bockgård [Sun, 12 Apr 2015 13:50:02 +0000 (15:50 +0200)]
* lisp/rect.el (delete-whitespace-rectangle-line): Don't cross EOL.
Johan Bockgård [Sun, 12 Apr 2015 13:37:50 +0000 (15:37 +0200)]
* lisp/net/nsm.el (nsm-query-user): Use cursor-in-echo-area.
Artur Malabarba [Sun, 12 Apr 2015 12:47:58 +0000 (13:47 +0100)]
* lisp/emacs-lisp/package.el (list-packages): Avoid redundant generate
Artur Malabarba [Sun, 12 Apr 2015 12:44:43 +0000 (13:44 +0100)]
* lisp/emacs-lisp/package.el (list-packages): Call refresh in right buffer
Artur Malabarba [Sun, 12 Apr 2015 11:05:13 +0000 (12:05 +0100)]
* lisp/emacs-lisp/bytecomp.el: Silence noninteractive compilations
(byte-compile--interactive): New var.
(byte-compile--message): New function.
(byte-compile-log-1, byte-force-recompile)
(byte-recompile-directory, byte-recompile-file)
(byte-compile-file, compile-defun)
(byte-compile-file-form-defmumble, byte-compile)
(byte-compile-file-form-defalias, display-call-tree): Use it.
Artur Malabarba [Sun, 12 Apr 2015 11:01:24 +0000 (12:01 +0100)]
* lisp/files.el: Don't message when nothing happened
(save-some-buffers, basic-save-buffer): Before messaging to say
"nothing was saved" check if (called-interactively-p 'any).
João Távora [Sun, 12 Apr 2015 12:12:27 +0000 (13:12 +0100)]
Summary: Improve sexp-based movement in message-mode
Works by giving citations and smileys a different syntax. This helps
modes like `show-paren-mode', `electric-pair-mode', and C-M-*
sexp-based movement.
* lisp/gnus/message.el (message--syntax-propertize): New function.
(message-mode): Set syntax-related vars.
(message-smileys): New variable.
* test/automated/message-mode-tests.el: New file
Paul Eggert [Sun, 12 Apr 2015 03:45:08 +0000 (20:45 -0700)]
Use bool for boolean in window.c
* src/window.c: Omit unnecessary static function decls.
(adjust_window_count, select_window, Fselect_window)
(window_body_width, Fwindow_body_height, Fwindow_body_width)
(set_window_hscroll, check_window_containing, Fwindow_at)
(Fwindow_end, Fset_window_start, Fpos_visible_in_window_p)
(unshow_buffer, replace_window, recombine_windows)
(add_window_to_list, candidate_window_p, next_window)
(Fnext_window, Fprevious_window, window_loop, check_all_windows)
(Fget_buffer_window, Fdelete_other_windows_internal)
(replace_buffer_in_windows_safely, set_window_buffer)
(Fset_window_buffer, Fforce_window_update)
(temp_output_buffer_show, make_parent_window)
(window_resize_check, window_resize_apply, Fwindow_resize_apply)
(resize_frame_windows, Fsplit_window_internal)
(Fdelete_window_internal, grow_mini_window, shrink_mini_window)
(Fresize_mini_window_internal, mark_window_cursors_off)
(window_scroll, window_scroll_pixel_based)
(window_scroll_line_based, scroll_command, Fscroll_other_window)
(Fscroll_left, Fscroll_right, displayed_window_lines, Frecenter)
(Fmove_to_window_line, Fset_window_configuration)
(delete_all_child_windows, apply_window_adjustment)
(set_window_fringes, set_window_scroll_bars)
(Fset_window_vscroll, foreach_window, foreach_window_1)
(compare_window_configurations, Fcompare_window_configurations):
Prefer 'bool', 'true', and 'false' for booleans.
* src/window.h (WINDOW_MODE_LINE_LINES)
(WINDOW_HEADER_LINE_LINES): Omit unnecessary "!!" on bool value.
Artur Malabarba [Sun, 12 Apr 2015 02:23:35 +0000 (03:23 +0100)]
Speed up byte-compilation and autoload generation by avoiding mode-hooks
This prevents emacs-lisp-mode-hook from being run everytime an
autoload file is generated, which can account for a fraction of
package installation time depending on the hooks the user has
configured.
* lisp/emacs-lisp/bytecomp.el (byte-compile-file): Use delay-mode-hooks.
* lisp/emacs-lisp/autoload.el (autoload-find-file)
(autoload-find-generated-file): Use delay-mode-hooks.
Artur Malabarba [Sun, 12 Apr 2015 02:55:21 +0000 (03:55 +0100)]
* lisp/emacs-lisp/package.el: Improve `package-menu-refresh'
(package-menu-refresh): Respect async and do new package checking.
(list-packages): Use `package-menu-refresh' instead of repeating code.
Artur Malabarba [Sun, 12 Apr 2015 02:08:21 +0000 (03:08 +0100)]
* lisp/emacs-lisp/package.el: Improve package-menu-quick-help
(package--quick-help-keys): New variable.
(package--prettify-quick-help-key): New function.
(package-menu-quick-help): Use it.
Artur Malabarba [Sun, 12 Apr 2015 01:33:29 +0000 (02:33 +0100)]
* lisp/emacs-lisp/package.el: Fix initially wrong compat table
(package--build-compatibility-table): require finder
Artur Malabarba [Sun, 12 Apr 2015 01:14:03 +0000 (02:14 +0100)]
* test/automated/package-test.el: Fix new test
Artur Malabarba [Sun, 12 Apr 2015 00:52:43 +0000 (01:52 +0100)]
* lisp/emacs-lisp/package.el: Silence async operations
(package--silence): New variable.
(package--message): New function.
(package-import-keyring, package-refresh-contents)
(package-compute-transaction, package-install, package-delete)
(package-menu--perform-transaction, package-menu-execute): Use it.
Artur Malabarba [Sun, 12 Apr 2015 00:10:35 +0000 (01:10 +0100)]
* test/automated/package-test.el: Test async functionality
(package-test-update-archives-async): New test
Daiki Ueno [Sat, 11 Apr 2015 07:31:59 +0000 (16:31 +0900)]
Utilize `make-process' in epg.el
* lisp/epg.el (epg-error-output): Abolish.
(epg-context): New slot `error-buffer'.
(epg--start): Use `make-process' and `make-pipe-process'.
(epg--process-filter): Remove code separating stderr from stdout.
(epg-wait-for-completion): Simplify `error-output' handling.
(epg-reset): Dispose error buffer.
Paul Eggert [Sat, 11 Apr 2015 20:49:08 +0000 (13:49 -0700)]
* .gitignore: Ignore doc temps and outputs.
Paul Eggert [Sat, 11 Apr 2015 20:04:37 +0000 (13:04 -0700)]
Port commit-msg to MSYS Bash+Gawk
See Eli Zaretskii in:
http://lists.gnu.org/archive/html/emacs-devel/2015-04/msg00610.html
* build-aux/git-hooks/commit-msg (cent_sign_utf8_format)
(cent_sign, print_at_sign, at_sign): Revert previous change.
(print_at_sign): Prepend "BEGIN".
(at_sign): Redirect from /dev/null to be safer with pre-POSIX awk.
Paul Eggert [Sat, 11 Apr 2015 15:19:13 +0000 (08:19 -0700)]
Port commit-msg to broken MS-Windows shell
* build-aux/git-hooks/commit-msg (cent_sign):
Just use UTF-8 here rather than ASCII + printf, as the latter fails
on a broken MS-Windows shell. Reported by Eli Zaretskii in:
http://lists.gnu.org/archive/html/emacs-devel/2015-04/msg00592.html
Chris Zheng [Sat, 11 Apr 2015 15:06:52 +0000 (18:06 +0300)]
Support GnuTLS v3.4 and later on MS-Windows
* src/gnutls.c (syms_of_gnutls) <libgnutls-version>: New DEFSYM.
* lisp/term/w32-win.el (dynamic-library-alist): Determine which
GnuTLS DLL to load according to value of libgnutls-version.
Fixes: bug#20294
Copyright-paperwork-exempt: yes
Paul Eggert [Sat, 11 Apr 2015 14:47:25 +0000 (07:47 -0700)]
Minor quoting etc. fixes to misc manuals
Fix some minor quoting and spacing issues. Distinguish more
clearly among grave accent and apostrophe (which are ASCII) and
single quote (which is not). Prefer the standard terms
"apostrophe" and "grave accent" to alternative names that can be
confusing. Use apostrophes to single-quote ASCII text.
* doc/misc/remember.texi: Spell the mystic's pseudonym in UTF-8
rather than approximating it in ASCII with grave accent.
Daiki Ueno [Sat, 11 Apr 2015 07:01:18 +0000 (16:01 +0900)]
Respect more keyword args in `make-process'
* process.c (Fmake_process): Respect `:sentinel' and `:filter'
keywords as documented.
Dmitry Gutov [Sat, 11 Apr 2015 04:09:28 +0000 (07:09 +0300)]
Extract ChangeLog entries when committing a directory
* lisp/vc/vc-dispatcher.el (vc-log-edit): Update FIXME comment.
* lisp/vc/log-edit.el (log-edit-changelog-insert-entries):
Add a FIXME comment.
(log-edit-changelog-entries): Extract from
`log-edit-changelog-entries', handle FILE being a directory
(http://lists.gnu.org/archive/html/emacs-devel/2015-04/msg00555.html).
Paul Eggert [Sat, 11 Apr 2015 02:36:29 +0000 (19:36 -0700)]
Fix problems found by --enable-gcc-warnings
* src/process.c (create_process, Fmake_pipe_process)
(Fmake_network_process): Omit unused locals.
Paul Eggert [Sat, 11 Apr 2015 02:12:16 +0000 (19:12 -0700)]
Fix commit-msg to handle scissors lines
* build-aux/git-hooks/commit-msg:
Ignore every line after a scissors line, such as a line generated
by 'git commit -v'. Problem reported by Johan Bockgård in:
http://lists.gnu.org/archive/html/emacs-devel/2015-04/msg00580.html
Paul Eggert [Sat, 11 Apr 2015 02:12:16 +0000 (19:12 -0700)]
port commit-msg to Gawk 3.0.4 (1999)
* build-aux/git-hooks/commit-msg (cent_sign_utf8_format, cent_sign)
(print_at_sign, at_sign): New vars. Use them to avoid problems
Eli Zaretskii encountered with Gawk 3.0.4 (1999) on MSYS. See:
http://lists.gnu.org/archive/html/emacs-devel/2015-04/msg00566.html
Paul Eggert [Sat, 11 Apr 2015 02:12:16 +0000 (19:12 -0700)]
Have commit-msg report commit failure
* build-aux/git-hooks/commit-msg: If the commit is aborted,
say so. Simplify by doing this at the end. Problem reported
by Eli Zaretskii in:
http://lists.gnu.org/archive/html/emacs-devel/2015-04/msg00566.html
Thomas Fitzsimmons [Sat, 11 Apr 2015 01:55:40 +0000 (21:55 -0400)]
Clean up LDAP Configuration section of EUDC manual
* doc/misc/eudc.texi: Combine indices.
(LDAP Configuration): Use command markup. Add index entries.
Change formatting. Wrap long lines. Add noindent markup.
Daiki Ueno [Tue, 7 Apr 2015 08:42:09 +0000 (17:42 +0900)]
Add facility to collect stderr of async subprocess
* src/w32.h (register_aux_fd): New function declaration.
* src/w32.c (register_aux_fd): New function.
* src/process.h (struct Lisp_Process): New member stderrproc.
* src/process.c (PIPECONN_P): New macro.
(PIPECONN1_P): New macro.
(Fdelete_process, Fprocess_status, Fset_process_buffer)
(Fset_process_filter, Fset_process_sentinel, Fstop_process)
(Fcontinue_process): Handle pipe process specially.
(create_process): Respect p->stderrproc.
(Fmake_pipe_process): New function.
(Fmake_process): Add new keyword argument :stderr.
(wait_reading_process_output): Specially handle a pipe process when
it gets an EOF.
(syms_of_process): Register Qpipe and Smake_pipe_process.
* doc/lispref/processes.texi (Asynchronous Processes): Document
`make-pipe-process' and `:stderr' keyword of `make-process'.
* lisp/subr.el (start-process): Suggest to use `make-process' handle
standard error separately.
* test/automated/process-tests.el (process-test-stderr-buffer)
(process-test-stderr-filter): New tests.
* etc/NEWS: Mention new process type `pipe' and its usage with the
`:stderr' keyword of `make-process'.
Paul Eggert [Fri, 10 Apr 2015 18:27:21 +0000 (11:27 -0700)]
Minor quoting etc. fixes to lispref manual
* doc/lispref/tips.texi (Documentation Tips):
Distinguish more clearly among grave accent, apostrophe,
and single quote.
* doc/lispref/README, doc/lispref/buffers.texi:
* doc/lispref/commands.texi, doc/lispref/control.texi:
* doc/lispref/customize.texi, doc/lispref/display.texi:
* doc/lispref/elisp.texi, doc/lispref/files.texi:
* doc/lispref/frames.texi, doc/lispref/hash.texi:
* doc/lispref/help.texi, doc/lispref/internals.texi:
* doc/lispref/loading.texi, doc/lispref/makefile.w32-in:
* doc/lispref/markers.texi, doc/lispref/modes.texi:
* doc/lispref/nonascii.texi, doc/lispref/objects.texi:
* doc/lispref/os.texi, doc/lispref/positions.texi:
* doc/lispref/strings.texi, doc/lispref/syntax.texi:
* doc/lispref/text.texi, doc/lispref/tips.texi:
* doc/lispref/two-volume-cross-refs.txt, doc/lispref/windows.texi:
Use American-style double quoting in ordinary text,
and quote 'like this' when single-quoting in ASCII text.
Also, fix some minor spacing issues.
Michael Albinus [Fri, 10 Apr 2015 10:53:01 +0000 (12:53 +0200)]
Handle symlinked test directory in tramp-tests.el
* test/automated/tramp-tests.el (tramp-test18-file-attributes)
(tramp--test-check-files): Use `file-truename' for directories.
Eli Zaretskii [Fri, 10 Apr 2015 10:09:42 +0000 (13:09 +0300)]
Fix 'recenter' when visual-line-mode is turned on
* src/window.c (Frecenter): Use the same code for GUI and TTY
frames alike; use vmotion only for "initial" frames. This is
because vmotion doesn't support visual-line-mode. Rewrite the
'iarg >= 0' case to use move_it_* functions instead of using
vmotion, for the same reason. Fix the clipping of the argument
value to support scroll-margin in all cases and avoid unwarranted
recentering. Reported by Milan Stanojević <milanst@gmail.com> in
http://lists.gnu.org/archive/html/help-gnu-emacs/2015-04/msg00092.html,
which see.
Stefan Monnier [Fri, 10 Apr 2015 06:47:44 +0000 (02:47 -0400)]
* abbrev.el (define-abbrev-table): Refine last change.
Stefan Monnier [Fri, 10 Apr 2015 05:50:22 +0000 (01:50 -0400)]
cl-lib.el: Partial revert of "2015-04-05 Rationalize c[ad]+r"
* lisp/emacs-lisp/cl-lib.el: Partial revert of "2015-04-05 Rationalize
use of c[ad]+r", so as to keep the "cl-" prefix on all
cl-lib definitions.
Stefan Monnier [Fri, 10 Apr 2015 04:20:54 +0000 (00:20 -0400)]
* vhdl-mode.el (vhdl-prepare-search-2): Use inhibit-point-motion-hooks
Stefan Monnier [Fri, 10 Apr 2015 04:17:19 +0000 (00:17 -0400)]
* lisp/cedet/semantic: Remove some dead code
* lisp/cedet/semantic/util-modes.el
(semantic-stickyfunc-header-line-format): Emacs<22 is not supported
any more.
* lisp/cedet/semantic/fw.el (semantic-buffer-local-value): Emacs<21 is
not supported any more.
(semantic-safe): Use `declare'.
* lisp/cedet/semantic/decorate.el (semantic-set-tag-intangible)
(semantic-tag-intangible-p): Remove unused functions.
* lisp/cedet/semantic/complete.el (semantic-displayor-window-edges):
Remove unused function.
Stefan Monnier [Fri, 10 Apr 2015 04:11:04 +0000 (00:11 -0400)]
* lisp/gnus/gnus-art.el (gnus-hidden-properties): Simplify.
(gnus-article-hide-text, gnus-article-unhide-text)
(gnus-article-unhide-text-type): Remove special handling of
`intangible' since that property is not used any more.
(gnus-article-treat-body-boundary): Use gnus-hidden-properties.
Dmitry Gutov [Fri, 10 Apr 2015 01:10:56 +0000 (04:10 +0300)]
; Add asterisks and periods