Dmitry Gutov [Fri, 5 May 2017 00:43:07 +0000 (03:43 +0300)]
cl-defmethod: Make the edebug spec more technically correct
* lisp/emacs-lisp/cl-generic.el (cl-defmethod): Denote the
edebug spec part for qualifiers as [&rest atom], per
http://lists.gnu.org/archive/html/emacs-devel/2017-05/msg00053.html.
Mike Kupfer [Thu, 4 May 2017 22:30:17 +0000 (14:30 -0800)]
Fix MH-E not to load cl at runtime (Bug#25552)
* lisp/mh-e/mh-acros.el (defun-mh): Check at runtime, not
compile time, whether the target is bound.
* lisp/mh-e/mh-compat.el: Enable compilation. Pull in
mh-acros at compile time. Authored-by: Glenn Morris <rgm@gnu.org>, Noam Postavsky
<npostavs@users.sourceforge.net>
Multiline support in NS "Open Selected File" service.
* lisp/term/ns-win.el (ns-open-file-service): new function. Wraps the
original call in a (split-string) to create as many calls as there
are lines.
(ns-spi-service-call): Call `ns-open-file-service' instead of
`dnd-open-file'.
Tino Calancha [Thu, 4 May 2017 10:47:45 +0000 (19:47 +0900)]
Inherit incompatible/obsolete package faces from error
Don't use the same face for installed packages as for incompatible
or obsolete ones.
* lisp/emacs-lisp/package.el (package-status-incompat): Inherit from error.
Paul Eggert [Thu, 4 May 2017 01:21:20 +0000 (18:21 -0700)]
Spelling fixes
* lisp/gnus/nndiary.el (nndiary-last-occurrence):
Rename from nndiary-last-occurence.
(nndiary-next-occurrence):
Rename from nndiary-next-occurence. All uses changed.
Tom Tromey [Wed, 25 Jan 2017 07:53:49 +0000 (00:53 -0700)]
Add color highlighting to css-mode
Bug#25525
* lisp/textmodes/css-mode.el (css--color-map): New constant.
(css-value-class-alist): Use css--color-map.
(css--number-regexp, css--percent-regexp)
(css--number-or-percent-regexp, css--angle-regexp): New constants.
(css--color-skip-blanks, css--rgb-color, css--hsl-color): New
functions.
(css--colors-regexp): New constant.
(css--hex-color, css--named-color, css--compute-color)
(css--contrasty-color, css--fontify-colors)
(css--fontify-region): New functions.
(css-mode): Set font-lock-fontify-region-function.
(css-mode-syntax-table): Set syntax on more characters.
(css-fontify-colors): New defcustom.
(scss-mode-syntax-table): Define syntax for ?$ and ?%.
* test/lisp/textmodes/css-mode-tests.el (css-test-property-values):
Update.
(css-test-rgb-parser, css-test-hsl-parser)
(css-test-named-color): New tests.
* etc/NEWS: Add entry.
Paul Eggert [Tue, 2 May 2017 21:52:21 +0000 (14:52 -0700)]
Check list object type if --enable-gcc-warnings
* configure.ac (--enable-check-lisp-object-type):
Default to "yes" if --enable-gcc-warnings is not "no".
* etc/NEWS: Mention this.
* src/eval.c (internal_lisp_condition_case): Fix some glitches
with 'volatile' uncovered by the above: in particular, 'clauses'
should be a pointer to volatile storage on the stack, and need not
be volatile itself. Use an int, not ptrdiff_t, to count clauses.
Don’t bother gathering binding count if VAR is nil. Use
more-specific local names to try to clarify what’s going on.
Gemini Lasswell [Tue, 2 May 2017 07:19:12 +0000 (10:19 +0300)]
Fix Edebug specs for 'cl-defmethod' and 'defmethod'
* lisp/emacs-lisp/cl-generic.el (cl-defmethod): Change Edebug spec
to make Edebug generate a new symbol for each method (Bug#24753) and
to support a string following :extra (Bug#23995).
* lisp/emacs-lisp/eieio-compat.el (defmethod): Change Edebug spec to
make Edebug generate a new symbol for each method (Bug#24753).
Eli Zaretskii [Tue, 2 May 2017 06:24:25 +0000 (09:24 +0300)]
Temporary fix for the MS_Windows build
* nt/inc/ms-w32.h (WIN32_LEAN_AND_MEAN): Define to an empty value,
to be consistent with Gnulib's utimens.c. This is because utimens.c
unconditionally defines WIN32_LEAN_AND_MEAN to an empty value, so the
previous definition here conflicted with that.
Paul Eggert [Mon, 1 May 2017 22:33:06 +0000 (15:33 -0700)]
Merge from gnulib
This incorporates:
2017-05-01 New module 'localtime-buffer'
2017-04-30 utimens: Add support for native Windows
* admin/merge-gnulib (AVOIDED_MODULES): Add tzset.
* configure.ac (tzset): No need for Emacs itself to check now.
* lib/gettimeofday.c, lib/time.in.h, lib/time_rz.c, lib/utimens.c:
* m4/gettimeofday.m4, m4/time_h.m4, m4/time_rz.m4: Copy from gnulib.
* lib/gnulib.mk.in, m4/gnulib-comp.m4: Regenerate.
* lib/localtime-buffer.c, lib/localtime-buffer.h:
* m4/localtime-buffer.m4: New files, copied from gnulib.
* src/editfns.c (init_editfns): Assume tzset is callable.
Dmitry Gutov [Mon, 1 May 2017 21:09:09 +0000 (00:09 +0300)]
Speed up project-find-regexp for simple regexps
* lisp/progmodes/xref.el (xref--regexp-syntax-dependent-p):
New function.
(xref--collect-matches): Use it. Don't try to enable the
appropriate major mode and file-local variables if the regexp
does not depend on the buffer's syntax (bug#26710).
(xref--collect-matches-1): Don't syntax-propertize in that
case either.
Philipp Stephani [Tue, 30 Jun 2015 20:38:35 +0000 (22:38 +0200)]
Warn about missing backslashes during load
* src/lread.c (load_warn_unescaped_character_literals, Fload, read1)
(syms_of_lread): Warn if unescaped character literals are
found (Bug#20152).
* lisp/emacs-lisp/bytecomp.el (byte-compile-from-buffer): Check for
unescaped character literals during byte compilation.
* test/src/lread-tests.el (lread-tests--unescaped-char-literals): New
unit test.
(lread-tests--with-temp-file, lread-tests--last-message): Helper
functions for unit test.
* test/lisp/emacs-lisp/bytecomp-tests.el
(bytecomp-tests--unescaped-char-literals): New unit test.
* test/lisp/emacs-lisp/bytecomp-tests.el (bytecomp-tests--with-temp-file):
Helper macro for unit test.
Paul Eggert [Mon, 1 May 2017 17:41:50 +0000 (10:41 -0700)]
Don’t stress-test time zones near the Epoch
* test/src/editfns-tests.el (format-time-string-with-zone)
(format-time-string-with-outlandish-zone): Don’t format
timestamps near the Epoch, as this runs into bugs on MS-Windows,
and we don’t want to worry about those bugs.
Dmitry Gutov [Mon, 1 May 2017 16:46:24 +0000 (19:46 +0300)]
vc-git-state: Return `ignored' as appropriate with newer Git
* lisp/vc/vc-git.el
(vc-git--program-version): New variable.
(vc-git--program-version): New function.
(vc-git-state): Use it to choose whether to add '--ignored' (bug#19343).
Martin Rudalics [Mon, 1 May 2017 10:24:56 +0000 (12:24 +0200)]
Rewrite w32fns.c's `x_set_menu_bar_lines'
* src/w32fns.c (x_set_menu_bar_lines): Redraw frame immediately
regardless of whether menu bar is added or removed. Clear
under internal border iff a W32 window exists. Store either 0
or 1 as new parameter value.
(x_change_tool_bar_height): Use FRAME_W32_WINDOW instead of
FRAME_X_WINDOW.
Jonathan Ganc [Mon, 1 May 2017 01:23:59 +0000 (04:23 +0300)]
Speed up vc-git-status and make it more precise
* lisp/vc/vc-git.el (vc-git-state)
(vc-git--git-status-to-vc-state): Update 'vc-git-state' to use
'git status', so that 'vc-git-state' can now return 'ignored',
'conflict', or 'unregistered' when appropriate. Discussed in
bug#26066. Fixes bug#19343.
Fix Git revision navigation in currently removed directories
* lisp/vc/vc-git.el (vc-git-next-revision): Use the repo root as
default-directory because FILE's parent directory might not exist
anymore (bug#26345).
Paul Eggert [Sun, 30 Apr 2017 21:52:10 +0000 (14:52 -0700)]
Merge from gnulib
This incorporates:
2017-04-30 strftime-fixes: New module
2017-04-30 mktime: Work around TZ problem on native Windows
2017-04-30 ctime, localtime: New modules
2017-04-30 gettimeofday: Provide higher resolution on native Windows
2017-04-29 utime-h: Modernize handling of 'struct utimbuf'
2017-04-29 Make use of module 'utime-h'
2017-04-30 Fix a few typos
* admin/merge-gnulib (AVOIDED_MODULES): Avoid utime-h, too.
* lib/gettimeofday.c, lib/mktime.c, lib/time.in.h, lib/utimens.c:
* m4/gettimeofday.m4, m4/include_next.m4, m4/mktime.m4:
* m4/strftime.m4, m4/time_h.m4, m4/timegm.m4, m4/utimens.m4:
Copy from gnulib.
* lib/gnulib.mk.in, m4/gnulib-comp.m4: Regenerate.
Eli Zaretskii [Sun, 30 Apr 2017 18:55:58 +0000 (21:55 +0300)]
Don't lose key bindings on mis-spelled text in flyspell-mode
* lisp/textmodes/flyspell.el (flyspell-mouse-map): Bind mouse-2
explicitly.
(make-flyspell-overlay): If the mis-spelled text already has a
'keymap' property, make that keymap the parent of
flyspell-mouse-map, so as not to lose the parent's bindings.
(Bug#26672)
Martin Rudalics [Sun, 30 Apr 2017 08:02:53 +0000 (10:02 +0200)]
Fix `delete-frame' behavior including Bug#26682
* src/frame.c (other_frames): Accept two arguments now. Don't
care about minibuffer window. Don't care about visibility when
called from delete_frame with FORCE true (Bug#26682).
(delete_frame, Fmake_frame_invisible): Adjust other_frames
calls.
* src/w32term.c (w32_read_socket): Don't add a move frame event
for an invisible frame.
* lisp/frame.el (handle-delete-frame): Don't kill Emacs when
attempting to delete a surrogate minibuffer frame.
Paul Eggert [Sun, 30 Apr 2017 07:38:28 +0000 (00:38 -0700)]
Merge from gnulib
This avoids incorporating the following, which I suspect are
more trouble for Emacs than they’re worth:
2017-04-29 stat, fstat: fix time_t etc. on native Windows platforms
* admin/merge-gnulib (AVOIDED_MODULES): Avoid stat, too.
* lib/gnulib.mk.in, m4/gnulib-comp.m4: Regenerate.
* lib/pathmax.h, lib/stat.c, m4/pathmax.m4, m4/stat.m4: Remove.
Paul Eggert [Sun, 30 Apr 2017 06:35:27 +0000 (23:35 -0700)]
Fix buffer overflow in make-docfile
* lib-src/make-docfile.c (scan_c_stream): Check for buffer
overflow when reading an identifier. Use a static buffer for NAME
rather than a small dynamically-allocated buffer.
Paul Eggert [Sun, 30 Apr 2017 06:11:16 +0000 (23:11 -0700)]
Merge from gnulib
This incorporates:
2017-04-29 getopt: port to Solaris 10 with circa-1997 glibc getopt.h
* lib/getopt-pfx-ext.h: Copy from gnulib.
* lib/gnulib.mk.in: Regenerate.
Philipp Stephani [Sat, 22 Apr 2017 18:58:38 +0000 (20:58 +0200)]
Reimplement auto-saving to visited files
This reacts to confusing behavior of 'auto-save-visited-file-name',
cf. Bug#25478.
* lisp/files.el (auto-save-visited-interval): New customization option.
(auto-save-visited-mode): New global minor mode.
(auto-save-visited-file-name): Make obsolete.
(auto-save--timer): New internal helper variable.
* doc/emacs/files.texi (Auto Save Files): Document
'auto-save-visited-mode' instead of obsolete
'auto-save-visited-file-name'.
(Auto Save Control): Document customization option
'auto-save-visited-interval'.
Philipp Stephani [Sat, 22 Apr 2017 13:41:39 +0000 (15:41 +0200)]
Integrate module test with normal test suite
* test/Makefile.in (ELFILES): Exclude module test if modules aren't
configured.
(EMACS_TEST_DIRECTORY): Expand test directory so that it's set
correctly even if Emacs changes the current directory.
($(srcdir)/src/emacs-module-tests.log)
($(test_module)): Proper dependency tracking for test module.
* test/data/emacs-module/Makefile (ROOT): Adapt to new location.
Remove 'check' target and EMACS variable, which are no longer
necessary.
(SO): Change to include period.
* test/src/emacs-module-tests.el (mod-test): Use EMACS_TEST_DIRECTORY
environment variable to reliably find test data.
auth-source-pass: Add documentation; fix tests and indentation.
* doc/misc/auth.texi: Document new integration with Pass. Use @itemize
instead of @enumerate.
* lisp/auth-source-pass.el: Fix indentation.
(auth-source-pass--remove-directory-name): Remove.
* test/lisp/auth-source-pass-tests.el: Adjust test macros.
Drop face from hi-lock--unused-faces only when used
* lisp/hi-lock.el (hi-lock-set-pattern): If REGEXP is already
highlighted, then push FACE into hi-lock--unused-faces (Bug#26666).
* test/lisp/hi-lock-tests.el (hi-lock-bug26666): Add test.
Alan Third [Tue, 25 Apr 2017 19:55:40 +0000 (20:55 +0100)]
Fix some NS frame handling issues
* src/nsterm.m (FRAME_DECORATED_FLAGS, FRAME_UNDECORATED_FLAGS): New
defines intended to make things tidier.
(x_set_undecorated): Use the new defines.
(windowWillResize): Don't use new macOS 12+ only feature.
(initFrameFromEmacs): Use the new defines, and disable automatic
window tabbing feature in macOS 12.
(x_set_undecorated, x_set_parent_frame, x_set_no_accept_focus,
x_set_z_group): Add NSTRACE notices.
This is better for parallel builds, eg it eliminates race
conditions from having one process write multiple files.
* admin/unidata/Makefile.in (lparen, unifiles): New variables.
Parse unidata-gen.el, not charprop.el, to get the list of uni- files.
(all): Explicitly list the output lisp files.
(PHONY_EXTRAS): Remove.
(${unidir}/charprop.el): Change rule to just be for this file.
(${unifiles}): New rule to write each unicode lisp file.
(extraclean): Simplify.
* admin/unidata/unidata-gen.el (unidata-gen-charprop):
Quieten in batch mode.
(unidata-gen-files): Remove, no longer used.
* lisp/loadup.el: Update command-line parser.