Avoid run-time dependency on libwinpthread DLL on MS-Windows
* nt/mingw-cfg.site (ac_cv_search_clock_gettime)
(ac_cv_func_clock_gettime, ac_cv_func_clock_settime): Force to not
present, so that MinGW64 builds don't depend on libwinpthread.
(Bug#22959)
Matthew Leach [Thu, 21 Apr 2016 16:16:41 +0000 (19:16 +0300)]
Add LIBSYSTEMD to the list of supported features
* configure.ac: Add LIBSYSTEMD to EMACS_CONFIG_FEATURES and print a
message at the end of configure stating whether Emacs will be build
with libsystemd support.
Paul Eggert [Wed, 20 Apr 2016 07:06:01 +0000 (00:06 -0700)]
Fix org-timestamp-change typo
Problem reported by Peter Münster (Bug#23299).
* lisp/org/org.el (org-timestamp-change): Fix typo that relied
on undocumented behavior in ‘encode-time’. In practice the
old code used local time, so use that.
Paul Eggert [Wed, 20 Apr 2016 00:22:22 +0000 (17:22 -0700)]
Avoid AC_PREPROC_IFELSE glitch in configure.ac
Problem reported by Angelo Graziosi in:
http://lists.gnu.org/archive/html/emacs-devel/2016-04/msg00545.html
* configure.ac (gl_gcc_warnings): Work around an Autoconf glitch:
AC_PREPROC_IFELSE doesn’t generate a simple shell command.
Michael Albinus [Tue, 19 Apr 2016 09:05:55 +0000 (11:05 +0200)]
autorevert: Resume with polling if file is deleted
* lisp/autorevert.el: Use consistent wording in comments and
docstrings.
(auto-revert-mode): Add local function to `kill-buffer-hook'.
(auto-revert-notify-handler): Improve handling of `stopped' event.
* test/lisp/autorevert-tests.el
(auto-revert-test02-auto-revert-deleted-file): New test.
(auto-revert-test03-auto-revert-tail-mode)
(auto-revert-test04-auto-revert-mode-dired): Rename them.
Paul Eggert [Mon, 18 Apr 2016 21:05:31 +0000 (14:05 -0700)]
Merge from origin/emacs-25
ac00a92 Make sh-electric-here-document-mode accessible in sh-mode-hoo... 3287f48 ; Add entry to MAINTAINERS b85981f * configure.ac (HAVE_MODULES): Exclude gnu-kfreebsd from prev... 0f33284 Make use of rectangle-preview custom variable. aa0d83a Make use of rectangle-preview face. 33bef6e Use 'grep-find-program' in check-declare.el a8560e5 Improve "C-h S" for cl-lib symbols 52e798b Fix minor issues with removing left or right fringes d6ffd64 Speed up redisplay in ansi-term mode 4ab671c Simplify 8-bit character handling by terminal for 'raw-text' f3653ec * configure.ac (HAVE_MODULES): Treat gnu like gnu-linux. (Bu... ab849b7 Fix w32 memory-management problem when extending buffer text
Stefan Monnier [Mon, 18 Apr 2016 16:27:58 +0000 (12:27 -0400)]
* lisp/textmodes/ispell.el: Compile with lexical-binding
(declare-function): Don't define any more.
(ispell-check-minver, ispell-looking-back): Tweak definition so that
the compiler can obviously know that it's always defined.
(ispell-debug-buffer): Declare var.
(ispell-hunspell-fill-dictionary-entry)
(ispell-parse-hunspell-affix-file, ispell-hunspell-add-multi-dic)
(ispell-find-hunspell-dictionaries, ispell-set-spellchecker-params)
(ispell-command-loop): Avoid add-to-list on local variables.
Paul Eggert [Mon, 18 Apr 2016 05:41:14 +0000 (22:41 -0700)]
Minor fixups for external socket launching
* configure.ac (HAVE_LIBSYSTEMD): Change earliest version to 222.
* doc/emacs/misc.texi (Emacs Server):
* etc/NEWS: Spelling and doc fixes.
* src/emacs.c (main) [HAVE_LIBSYSTEMD]:
Check for sd_is_socket returning positive, not zero.
* src/process.c (external_sock_fd): Instead of initializing here ...
(init_process_emacs): ... initialize it here, so that it does the
right thing after dump/restore.
(connect_network_socket): Simplify socket_to_use test.
* lisp/progmodes/vhdl-mode.el (vhdl-version, vhdl-time-stamp): Update.
(vhdl-mode): No longer set comment-padding.
(vhdl-begin-p): Handle missing space between keyword and parenthesis.
(vhdl-beginning-of-statement-1): Fix indentation for "else generate".
(vhdl-template-else, vhdl-template-elsif): Support generate statement.
(vhdl-re-search-forward, vhdl-re-search-backward): Save match data.
* lisp/gnus/gnus-art.el (gnus-use-idna): Default to t (since
Emacs comes with IDNA support built in).
(article-decode-idna-rhs): Use `puny-decode-domain' instead of
`idna-to-unicode'.
Paul Eggert [Sun, 17 Apr 2016 02:49:15 +0000 (19:49 -0700)]
Tweak configure.ac syntax in recent module patch
* configure.ac: Use proper Autoconf parenthesization in
recent HAVE_MODULES patch. Although this doesn’t fix any bugs,
the previous syntax was confusing.
Mark Oteiza [Sat, 16 Apr 2016 18:40:17 +0000 (14:40 -0400)]
Make sh-electric-here-document-mode accessible in sh-mode-hook. (Bug#3226)
* lisp/progmodes/sh-script.el (sh-mode-hook): Add
sh-electric-here-document-mode as an option and the default value.
(sh-mode): Mention sh-mode-hook in docstring.
(sh-mode): Remove sh-electric-here-document-mode invocation.
Eli Zaretskii [Sat, 16 Apr 2016 10:53:17 +0000 (13:53 +0300)]
Fix minor issues with removing left or right fringes
* lisp/window.el (window-max-chars-per-line): Account for
'left-fringe-width' and 'right-fringe-width' variables.
* doc/lispref/windows.texi (Window Sizes): Document the effect on
window text width when setting the width of one or both fringes to
zero.
* doc/emacs/display.texi (Fringes): Document the effect on window
text width when setting the width of one or both fringes to zero.
(Bug#22891)
Philipp Stephani [Sat, 16 Apr 2016 09:55:17 +0000 (12:55 +0300)]
Simplify 8-bit character handling by terminal for 'raw-text'
* lisp/international/mule.el (set-keyboard-coding-system): Treat
'raw-text' as another coding type that requires 8-bit characters.
* lisp/xt-mouse.el (xterm-mouse--read-coordinate): Use 'no-conversion'
instead of 'latin-1'.
Matthew Leach [Sat, 16 Apr 2016 09:43:01 +0000 (12:43 +0300)]
Add external socket launching support
* src/process.c (connect_network_socket): Allow a pre-allocated socket
descriptor to be used if passed to Emacs, avoiding the call to
'socket' and 'bind'.
(Fmake_network_process): Allow users to pass ':use-external-socket' in
the parameter plist to use any sockets that have been passed to Emacs.
(wait_reading_process_output): Call 'socket' and 'bind' every time.
(syms_of_process): New symbol ':use-external-socket'.
(set_external_socket_descriptor): New function.
(external_sock_fd): New variable.
* src/lisp.h: (set_external_socket_descriptor): New declaration.
* src/emacs.c (main): Call 'sd_listen_fds' to read the number of sockets
passed and call 'set_external_socket_descriptor' to set the external
socket.
* src/Makefile.in: Add libsystemd library and C flags to the Emacs
compilation options.
* configure.ac: Add new default-on option "systemd" and check for
libsystemd at configure time.
* lisp/server.el (server-start): Set ':use-external-socket' to 't' when
calling 'make-network-process'.
* etc/NEWS: Document new socket-passing functionality and the configure
option to disable systemd interaction.
* doc/emacs/misc.texi (Emacs Server): Document systemd socket passing
functionality and provide systemd unit examples.
* doc/lispref/processes.texi (Network Processes): Document new
'make-network-process' option ':use-external-socket'.
Eli Zaretskii [Fri, 15 Apr 2016 14:26:37 +0000 (17:26 +0300)]
Fix w32 memory-management problem when extending buffer text
* src/w32heap.c (mmap_realloc): Only attempt extending a region if
the following region has the same allocation base. Also, use the
original allocation base and enlarged size to commit reserved
memory, to ensure that the allocation base stays at its original
value. This fixes several hard-to-debug problems whereby part of
buffer text was overwritten with binary nulls, because
mmap_realloc copied only part of buffer text when extending it.
See
http://lists.gnu.org/archive/html/emacs-devel/2016-04/msg00325.html
and http://debbugs.gnu.org/cgi/bugreport.cgi?bug=23223#55 for two
examples of the related problems.
Paul Eggert [Thu, 14 Apr 2016 15:21:34 +0000 (08:21 -0700)]
substitute-command-keys keeps quotes’ text props
Problem reported by Clément Pit--Claudel (Bug#23254).
* src/doc.c: Include intervals.h.
(Fsubstitute_command_keys): If the only substitutions are for
quotes, copy the source string’s text properties too, since no
substring lengths have changed.
Paul Eggert [Thu, 14 Apr 2016 01:19:04 +0000 (18:19 -0700)]
Port ‘./autogen.sh git’ to non-clones
Problem reported by Angelo Graziosi in:
http://lists.gnu.org/archive/html/emacs-devel/2016-04/msg00341.html
* autogen.sh (do_git): Default to false when the arg is ‘all’ but
there is no ‘.git’.
(git_common_dir, hooks): New vars.
(git_config, tailored_hooks, sample_hooks): Use them.
Paul Eggert [Wed, 13 Apr 2016 18:12:15 +0000 (11:12 -0700)]
Do not require that .git be a directory
Problem reportyed by Phillip Lord.
* admin/update_autogen, autogen.sh, build-aux/gitlog-to-emacslog:
* configure.ac, make-dist:
Do not require that .git be a directory, as 'git worktree' makes
it a file and not a directory.
Perform xref searches without visiting unopened files
* lisp/progmodes/xref.el (xref-collect-references): Instead of
calling `semantic-symref-find-references-by-name', use
`semantic-symref-instantiate' and `semantic-symref-perform-search'
directly. Ask for `line-and-text' results (bug#23223).
(xref-collect-matches): Include the line text in the "hit"
structure.
(xref--convert-hits): New function, split off from
`xref-collect-references' and `xref-collect-matches', to convert
"hits" to xref instance list. Create a temporary buffer here, to
use it for post-processing all hit lines.
(xref--collect-matches): Use a different approach for non-visited
files. Insert the line text into the temp buffer, apply the
file's major mode the best we can without reading its whole
contents, syntax-propertize, and search in the result.
(xref--collect-matches-1): Extract, to handle the common logic
between two cases.
(xref--find-buffer-visiting): New function, a wrapper around
`find-buffer-visiting' to amortize its cost.
* lisp/cedet/semantic/symref/idutils.el
(semantic-symref-idutils--line-re): New constant.
(semantic-symref-parse-tool-output-one-line): Support result type
`line-and-text'.
Paul Eggert [Tue, 12 Apr 2016 16:19:11 +0000 (09:19 -0700)]
Support OFFSET and (OFFSET ABBR) time zone rules
This simplifies Gnus and VC time zone support, by letting them
feed the output of ‘current-time-zone’ and ‘decode time’ to
primitives that accept time zone arguments.
* doc/lispref/os.texi (Time Zone Rules, Time Conversion):
* etc/NEWS:
* lisp/gnus/message.el (message-insert-formatted-citation-line):
* lisp/org/org.el (org-timestamp-format):
* src/editfns.c (Fformat_time_string, Fdecode_time):
(Fcurrent_time_string, Fcurrent_time_zone, Fset_time_zone_rule):
Document new behavior.
* lisp/gnus/gmm-utils.el (gmm-format-time-string):
* lisp/vc/add-log.el (add-log-iso8601-time-zone):
Mark as obsolete, as it is now just an alias or narrow wrapper
around format-time-string.
* src/editfns.c (tzlookup): Also support integer OFFSET and
list (OFFSET ABBR) as time zone rules.
(Fencode_time): No longer need a special case for a cons ZONE.
(Fcurrent_time_zone): If the time zone string is missing, compute
it the same way the other new code does.
Paul Eggert [Tue, 12 Apr 2016 15:50:47 +0000 (08:50 -0700)]
Merge from origin/emacs-25
ca50981 Improve time zone documentation c23c965 Prevent bootstrap autoload backup files 9344612 Disable multicolor fonts on OS X since they are not supported... c41ce1c Capitalize “Universal Time” in documentation 10597c9 Don't use 'find-program'
Paul Eggert [Tue, 12 Apr 2016 15:47:15 +0000 (08:47 -0700)]
Improve time zone documentation
* doc/lispref/os.texi (Time Zone Rules):
New section, mostly with material moved here from other sections.
* doc/emacs/cmdargs.texi (General Variables):
* doc/lispref/os.texi (Time Conversion, Time Parsing):
Xref new section.
* etc/NEWS, etc/PROBLEMS:
* lisp/org/org.el (org-timestamp-format):
* src/editfns.c (Fformat_time_string, Fdecode_time)
(Fencode_time, Fcurrent_time_string, Fcurrent_time_zone)
(Fset_time_zone_rule):
When documenting time zone rule strings, mention the TZ
environment variable in preference to mentioning the
sort-of-internal function set-time-zone-rule.
Paul Eggert [Mon, 11 Apr 2016 16:07:16 +0000 (09:07 -0700)]
Merge from origin/emacs-25
b134c20 Sync with gnulib bb30fa9 Fix last change on 2016-01-02 488a72f ; Spelling fixes 9b1aab9 Port run-prolog EMACS to SWI-Prolog 7.2.3 0e7bcec Avoid crashes due to unreasonably large or small text scaling 85f257c Improve documentation of 'with-eval-after-load' 668c7bc Improve handling of non-ASCII characters in Git log messages b570769 Remove undefined behavior in OS X dumper. 97211f3 Fix clipping of xwidgets e87fbc0 Improve Lisp-level documentation of tooltips 9f1786e Faces names should not end in "-face". 3283271 * src/xsmfns.c (syms_of_xsmfns): Remove stray "s in doc strings. a1f221b Comint and compile no longer set EMACS 5c28890 * lisp/subr.el (read-key): Don't let the prompt linger (bug#2... a75b9a6 Merge branch 'emacs-25' of git.savannah.gnu.org:/srv/git/emac... c93ae7a Allow to customize names of executables used by grep.el f6497c6 Set locale encoding to UTF-8 when run from OS X GUI. 7ad1d07 Avoid signaling errors in 'M-n' at the 'C-x C-f' prompt a3f1ac2 Avoid infinite loop in 'studlify-word' f36df4b Don’t recommend obsolete EMACS env var fb0b531 * lisp/emacs-lisp/package.el: Change from a few days ago need...
Paul Eggert [Mon, 11 Apr 2016 16:02:00 +0000 (09:02 -0700)]
Sync with gnulib
This is for picky compilers whose stdint.h fails our C11 tests.
Problem reported for clang by Philipp Stephani (Bug#23261).
This incorporates:
2016-04-11 stdint: port to strict C11 left shift
* doc/misc/texinfo.tex, lib/stdint.in.h: Copy from gnulib.
Leo Liu [Mon, 11 Apr 2016 12:19:38 +0000 (20:19 +0800)]
Fix last change on 2016-01-02
* lisp/emacs-lisp/lisp-mode.el (lisp-el-font-lock-keywords-2): Move
`cl-errs-re' before `lisp--el-match-keyword'; don't use `prepend'
which highlights `cl-errs-re' even in comments or strings.
Paul Eggert [Mon, 11 Apr 2016 05:47:03 +0000 (22:47 -0700)]
Port run-prolog EMACS to SWI-Prolog 7.2.3
* lisp/progmodes/prolog.el (prolog-ensure-process):
Work around incompatibility of SWI-Prolog 7.2.3 and earlier
with the new way of dealing with the EMACS and INSIDE_EMACS
environment variables.
Eli Zaretskii [Sun, 10 Apr 2016 16:50:39 +0000 (19:50 +0300)]
Avoid crashes due to unreasonably large or small text scaling
* lisp/face-remap.el (text-scale-min-amount)
(text-scale-max-amount): New functions.
(text-scale-set, text-scale-increase): Use them to limit the text
scaling to a reasonable range of values. (Bug#23259)
* lisp/net/mailcap.el (mailcap--get-user-mime-data): New function.
(mailcap--set-user-mime-data): New function.
(mailcap-user-mime-data): New customization option.
(mailcap-select-preferred-viewer): New function.
(mailcap-mime-info): Use it.
Eli Zaretskii [Sun, 10 Apr 2016 16:04:33 +0000 (19:04 +0300)]
Improve handling of non-ASCII characters in Git log messages
* lisp/vc/vc-git.el (vc-git-commits-coding-system): Now a defcustom.
(vc-git-log-output-coding-system): New defcustom.
(vc-git-print-log, vc-git-command, vc-git--call): Use
'vc-git-log-output-coding-system' for reading stuff from Git.
Don't override values of 'coding-system-for-read/write' if they
are bound by caller -- this allows the user to force an encoding
via "C-x RET c".
(vc-git-checkin): On MS-Windows, pass the log message via a
temporary file, to work around the limitations on passing
non-ASCII characters via command-line arguments. Force using the
'locale-coding-system' for Git command-line arguments. This fixes
problems with non-ASCII commit log messages on MS-Windows.
(Bug#23076)
* etc/NEWS: Mention the new vc-git related defcustoms.
Michael Albinus [Sun, 10 Apr 2016 08:07:15 +0000 (10:07 +0200)]
Fix Bug#23207
* src/keyboard.c (read_char): Resume idle timers in case of
dbus-event, file-notify-event and config-changed-event.
Reported by Johan Claesson <johanclaesson@bredband.net>. (Bug#23207)
Michael Albinus [Sat, 9 Apr 2016 19:14:40 +0000 (21:14 +0200)]
Add vc-backend and vc-responsible-backend tests
* lisp/vc/vc-hooks.el (vc-file-setprop, vc-file-getprop)
(vc-file-clearprops): Use properties on absolute files.
* test/lisp/vc/vc-tests.el (vc-test--unregister-function):
Clear file properties.
(vc-test--register): Add tests for `vc-backend' and
`vc-responsible-backend'. Catch other errors but `vc-not-supported'.
(vc-test--state, vc-test--checkout-model): Catch other errors
but `vc-not-supported'.
(vc-test--working-revision): Fix test for RCS and SCCS. Catch
other errors but `vc-not-supported'.
(vc-test-src02-state): Mark as an expected failure.
* src/xwidget.c (x_draw_xwidget_glyph_string): Use window_box
instead of calculating the clipping borders manually. Suggested
by YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>.
Eli Zaretskii [Sat, 9 Apr 2016 09:30:59 +0000 (12:30 +0300)]
Improve Lisp-level documentation of tooltips
* doc/lispref/display.texi (Tooltips): New section. (Bug#23246)
(Display): Update the chapter menu.
* doc/lispref/text.texi (Special Properties): Make the "tooltip"
index entry more concrete. Change the cross-reference to point to
"Tooltips" in the ELisp manual.
* doc/lispref/elisp.texi (Top): Update the master menu.
* doc/emacs/frames.texi (Tooltips): Include more customization
variables. Add a cross-reference to the ELisp manual.
Paul Eggert [Fri, 8 Apr 2016 22:33:22 +0000 (15:33 -0700)]
Minor improvements for hash function primitives
* src/fns.c (hashfn_eql): Define in terms of hashfn_equal and
hashfn_eq rather than reaching inside them.
(hashtest_eq, hashtest_eql, hashtest_equal):
Now constants with initializers.
(syms_of_fns): Omit no-longer-needed initialization.
* src/lisp.h (LISPSYM_INITIALLY): New macro.
(DEFINE_LISP_SYMBOL): Use it.
Paul Eggert [Fri, 8 Apr 2016 20:39:17 +0000 (13:39 -0700)]
Comint and compile no longer set EMACS
This mostly restores the change that I reverted on March 23,
fixing most of Bug#20202. The only part of the change that is
still reverted is the change to M-x term, where compatibility with
current Bash constrains us from moving too quickly (Bug#20484).
Problem reported by Phillip Lord in: http://bugs.gnu.org/20484#108
* etc/NEWS: Document this.
* lisp/comint.el (comint-exec-1):
* lisp/net/tramp-sh.el (tramp-remote-process-environment):
* lisp/progmodes/compile.el (compilation-start):
Don’t set EMACS=t in the subsidiary process.
Eli Zaretskii [Fri, 8 Apr 2016 14:45:16 +0000 (17:45 +0300)]
Teach Dired support parallel execution of commands on MS-Windows
* lisp/dired-aux.el (dired-shell-stuff-it): Support
parallel-in-background execution of commands on MS-Windows.
Test 'w32-shell-dos-semantics' instead of the underlying OS
when determining whether addition of 'wait' is needed.
Eli Zaretskii [Fri, 8 Apr 2016 13:54:18 +0000 (16:54 +0300)]
Allow to customize names of executables used by grep.el
* lisp/progmodes/grep.el (grep-find-program): Renamed from
'find-program', which was a variable. All uses changed.
(grep-xargs-program): Renamed from 'xargs-program', which was a
variable. All uses changed.
(grep-program): Now a defcustom rather than a simple variable.
(Bug#23219)
* lisp/play/studly.el (studlify-region): Call
'forward-word-strictly' and 'backward-word-strictly' instead of
'forward-word' and 'backward-word'. (Bug#19940)
Paul Eggert [Thu, 7 Apr 2016 23:52:01 +0000 (16:52 -0700)]
Don’t recommend obsolete EMACS env var
* doc/misc/efaq.texi (Escape sequences in shell output):
Remove long-obsolete (and now-confusing) notes about
the EMACS environment variable in Emacs 21.1 and earlier.
* doc/misc/efaq.texi (^M in the shell buffer):
* etc/PROBLEMS:
Remove obsolescent recommendation to consult the EMACS environment
variable.
* lisp/progmodes/project.el (project-roots): Implement for the
`transient' project type (bug#23224).
(project-current): Instead of signaling an error, return a
transient project instance rooted in the chosen directory.