Eli Zaretskii [Sun, 20 Sep 2015 06:34:24 +0000 (09:34 +0300)]
Improve documentation of 'run-at-time'
* lisp/emacs-lisp/timer.el (run-at-time): Improve the doc string.
In particular, don't refer to 'diary-entry-time', because it is
unavailable until diary-lib is loaded. Also, refer to
'timer-duration-words', not 'timer-duration', as the latter's doc
string says nothing about the accepted strings.
(font-lock-fontify-block): Don't let-bind it.
(font-lock-compile-keywords): Don't use it.
(font-lock-set-defaults): Don't set it. Allow the variable alist to
start one slot earlier, instead.
* lisp/emacs-lisp/syntax.el (font-lock-beginning-of-syntax-function):
Don't declare.
(syntax-ppss): Don't use it either.
* lisp/font-core.el (font-lock-defaults): Remove SYNTAX-BEGIN
from docstring.
Paul Eggert [Thu, 17 Sep 2015 23:08:20 +0000 (16:08 -0700)]
Backslash cleanup in Elisp source files
This patch should not change behavior. It typically omits backslashes
where they are redundant (e.g., in the string literal "^\$").
In a few places, insert backslashes where they make regular
expressions clearer: e.g., replace "^\*" (equivalent to "^*") with
"^\\*", which has the same effect as a regular expression.
Also, use ‘\ %’ instead of ‘\%’ when avoiding confusion with SCCS IDs,
and similarly use ‘\ $’ instead of ‘\$’ when avoiding confusion with
RCS IDs, as that makes it clearer that the backslash is intended.
Paul Eggert [Thu, 17 Sep 2015 19:02:55 +0000 (12:02 -0700)]
Fix minor quoting problems in diagnostics
* lisp/tutorial.el (tutorial--describe-nonstandard-key):
* lisp/vc/ediff-ptch.el (ediff-fixup-patch-map):
Follow text-quoting-style in diagnostic, and quote a file name.
Paul Eggert [Wed, 16 Sep 2015 23:23:55 +0000 (16:23 -0700)]
Omit unnecessary \ before paren in C docstrings
Although \( is needed in docstrings in Elisp code, it is not needed in
docstrings in C code, since C function definitiions do not start with
a parenthesis. The backslashes made the docstrings a bit harder to
read and to format in columns. Also, some C docstrings had ( in
column 1 and this did not appear to be causing any problems. So,
simplify C docstrings by replacing \( with ( and \) with ).
Paul Eggert [Wed, 16 Sep 2015 23:06:29 +0000 (16:06 -0700)]
Minor quoting fixes in scripts and doc
Prefer straight quotes in random script files, as they are not converted.
Prefer grave quotes in a couple of places in the manual that were missed
earlier, as these quotes are converted.
Paul Eggert [Wed, 16 Sep 2015 21:40:53 +0000 (14:40 -0700)]
Add -Wswitch to --enable-gcc-warnings
Make --enable-gcc-warnings a bit pickier, by also using -Wswitch.
* configure.ac (WERROR_CFLAGS): Don’t add -Wno-switch.
* lib-src/etags.c (main, consider_token, C_entries):
* src/coding.c (encode_invocation_designation):
* src/data.c (Ftype_of):
* src/eval.c (Fdefvaralias, default_toplevel_binding)
(Fbacktrace__locals, mark_specpdl):
* src/lisp.h (record_xmalloc):
* src/syntax.c (scan_lists, scan_sexps_forward):
* src/window.c (window_relative_x_coord):
* src/xdisp.c (push_it, pop_it):
* src/xterm.c (xg_scroll_callback, x_check_fullscreen):
Error out or do nothing (as appropriate) if a switch statement
with an enum value does not cover all of the enum.
* src/dispextern.h (struct iterator_stack_entry.u.comp):
Remove unused member discovered by using -Wswitch.
* src/lisp.h (record_xmalloc): Add a ‘+ 0’ to pacify -Wswitch.
* src/vm-limit.c (check_memory_limits):
Simplify warning-diagnostic computation by using a table.
Paul Eggert [Wed, 16 Sep 2015 21:39:29 +0000 (14:39 -0700)]
etags ‘fatal’ function is now printf-like
* lib-src/etags.c (fatal): Now printf-like. All callers changed.
Also, now static; not clear why it needed to be extern.
(verror): New function, with most of the old contents of ‘error’.
(fatal, error): Use it.
* lisp/winner.el (winner-change-fun): Cull dead frames.
This prevents a potentially massive memory leak. See:
http://lists.gnu.org/archive/html/emacs-devel/2015-09/msg00619.html
* lisp/textmodes/reftex-vars.el (reftex-extra-bindings): Document that
the variable only has an effect at load-time.
* doc/misc/reftex.texi (Key Bindings): Ditto.
Michael Albinus [Tue, 15 Sep 2015 18:12:34 +0000 (20:12 +0200)]
Adapt tests in auto-revert-tests.el
* test/automated/auto-revert-tests.el (auto-revert--timeout):
Make it a defconst.
(auto-revert--wait-for-revert): New defun.
(auto-revert-test00-auto-revert-mode)
(auto-revert-test01-auto-revert-tail-mode)
(auto-revert-test02-auto-revert-mode-dired): Use it.
Stefan Monnier [Tue, 15 Sep 2015 16:44:35 +0000 (12:44 -0400)]
* lisp/emacs-lisp/lisp-mode.el (lisp-mode-symbol-regexp): New const
Use it everywhere "\\(\\sw\\|\\s_\\|\\\\.\\)+" was used.
(cl-lib-fdefs): Add defgeneric.
(cl-kw): Add all elements of eieio-kw and cl-lib-kw.
(eieio-kw, cl-lib-kw, el-kw): Remove.
Paul Eggert [Tue, 15 Sep 2015 15:46:48 +0000 (08:46 -0700)]
Quote less in manuals
The manuals often used quotes ``...'' when it is better to use @dfn or
@code or capitalized words or no quoting at all. For example, there is
no need for the `` and '' in “if a variable has one effect for
@code{nil} values and another effect for ``non-@code{nil}'' values”.
Reword the Emacs, Lisp intro, and Lisp reference manuals to eliminate
unnecessary quoting like this, and to use @dfn etc. instead when called
for (Bug#21472).
Michael Albinus [Tue, 15 Sep 2015 12:57:22 +0000 (14:57 +0200)]
Improve error reports in inotify.c
* src/inotify.c (report_inotify_error): New function. Clone of
report_w32notify_error.
(inotify_callback, symbol_to_inotifymask, Finotify_add_watch)
(Finotify_rm_watch): Use it.
Eli Zaretskii [Tue, 15 Sep 2015 12:46:26 +0000 (15:46 +0300)]
Fix the file-notify tests for watch validation on w32
* test/automated/file-notify-tests.el
(file-notify-test04-file-validity): Move the directory deletion
out of the file-notify--test-with-events macro.
(file-notify-test04-file-validity)
(file-notify-test05-dir-validity): Enlarge the timeout of
read-event to 0.5, as 0.1 is borderline on w32. (Bug#21432)
Eli Zaretskii [Tue, 15 Sep 2015 10:27:50 +0000 (13:27 +0300)]
Add missing *.pbm images
* etc/images/connect.pbm: New file.
* etc/images/custom/down-pushed.pbm: New file.
* etc/images/custom/down.pbm: New file.
* etc/images/custom/right-pushed.pbm: New file.
* etc/images/custom/right.pbm: New file.
* etc/images/describe.pbm: New file.
* etc/images/disconnect.pbm: New file.
* etc/images/ezimage/bits.pbm: New file.
* etc/images/ezimage/bitsbang.pbm: New file.
* etc/images/ezimage/box-minus.pbm: New file.
* etc/images/ezimage/box-plus.pbm: New file.
* etc/images/ezimage/box.pbm: New file.
* etc/images/ezimage/checkmark.pbm: New file.
* etc/images/ezimage/dir-minus.pbm: New file.
* etc/images/ezimage/dir-plus.pbm: New file.
* etc/images/ezimage/dir.pbm: New file.
* etc/images/ezimage/doc-minus.pbm: New file.
* etc/images/ezimage/doc-plus.pbm: New file.
* etc/images/ezimage/doc.pbm: New file.
* etc/images/ezimage/info.pbm: New file.
* etc/images/ezimage/key.pbm: New file.
* etc/images/ezimage/label.pbm: New file.
* etc/images/ezimage/lock.pbm: New file.
* etc/images/ezimage/mail.pbm: New file.
* etc/images/ezimage/page-minus.pbm: New file.
* etc/images/ezimage/page-plus.pbm: New file.
* etc/images/ezimage/page.pbm: New file.
* etc/images/ezimage/tag-gt.pbm: New file.
* etc/images/ezimage/tag-minus.pbm: New file.
* etc/images/ezimage/tag-plus.pbm: New file.
* etc/images/ezimage/tag-type.pbm: New file.
* etc/images/ezimage/tag-v.pbm: New file.
* etc/images/ezimage/tag.pbm: New file.
* etc/images/ezimage/unlock.pbm: New file.
* etc/images/gnus/important.pbm: New file.
* etc/images/gnus/mail-send.pbm: New file.
* etc/images/gnus/receipt.pbm: New file.
* etc/images/gnus/toggle-subscription.pbm: New file.
* etc/images/gnus/unimportant.pbm: New file.
* etc/images/gud/all.pbm: New file.
* etc/images/gud/rcont.pbm: New file.
* etc/images/gud/recstart.pbm: New file.
* etc/images/gud/recstop.pbm: New file.
* etc/images/gud/rfinish.pbm: New file.
* etc/images/gud/rnext.pbm: New file.
* etc/images/gud/rnexti.pbm: New file.
* etc/images/gud/rstep.pbm: New file.
* etc/images/gud/rstepi.pbm: New file.
* etc/images/gud/thread.pbm: New file.
* etc/images/lock-broken.pbm: New file.
* etc/images/lock-ok.pbm: New file.
* etc/images/lock.pbm: New file.
* etc/images/mail/copy.pbm: New file.
* etc/images/mail/forward.pbm: New file.
* etc/images/mail/not-spam.pbm: New file.
* etc/images/mail/outbox.pbm: New file.
* etc/images/mail/preview.pbm: New file.
* etc/images/mail/save-draft.pbm: New file.
* etc/images/mh-logo.pbm: New file.
* etc/images/mpc/add.pbm: New file.
* etc/images/mpc/ffwd.pbm: New file.
* etc/images/mpc/next.pbm: New file.
* etc/images/mpc/pause.pbm: New file.
* etc/images/mpc/play.pbm: New file.
* etc/images/mpc/prev.pbm: New file.
* etc/images/mpc/rewind.pbm: New file.
* etc/images/mpc/stop.pbm: New file.
* etc/images/redo.pbm: New file.
* etc/images/smilies/braindamaged.pbm: New file.
* etc/images/smilies/cry.pbm: New file.
* etc/images/smilies/dead.pbm: New file.
* etc/images/smilies/evil.pbm: New file.
* etc/images/smilies/forced.pbm: New file.
* etc/images/smilies/grin.pbm: New file.
* etc/images/smilies/indifferent.pbm: New file.
* etc/images/sort-ascending.pbm: New file.
* etc/images/sort-column-ascending.pbm: New file.
* etc/images/sort-criteria.pbm: New file.
* etc/images/sort-descending.pbm: New file.
* etc/images/sort-row-ascending.pbm: New file.
* etc/images/unchecked.pbm: New file.
* etc/images/zoom-in.pbm: New file.
*: New file.
: New file.
: New file.
* Please enter the commit message for your changes. Lines starting: New file.
* with '#' will be ignored, and an empty message aborts the commit.: New file.
* On branch master: New file.
* Your branch is up-to-date with 'origin/master'.: New file.
*: New file.
* Changes to be committed:: New file.
* modified: etc/images/README: New file.
* etc/images/connect.pbm: New file.
* etc/images/custom/down-pushed.pbm: New file.
* etc/images/custom/down.pbm: New file.
* etc/images/custom/right-pushed.pbm: New file.
* etc/images/custom/right.pbm: New file.
* etc/images/describe.pbm: New file.
* etc/images/disconnect.pbm: New file.
* etc/images/ezimage/bits.pbm: New file.
* etc/images/ezimage/bitsbang.pbm: New file.
* etc/images/ezimage/box-minus.pbm: New file.
* etc/images/ezimage/box-plus.pbm: New file.
* etc/images/ezimage/box.pbm: New file.
* etc/images/ezimage/checkmark.pbm: New file.
* etc/images/ezimage/dir-minus.pbm: New file.
* etc/images/ezimage/dir-plus.pbm: New file.
* etc/images/ezimage/dir.pbm: New file.
* etc/images/ezimage/doc-minus.pbm: New file.
* etc/images/ezimage/doc-plus.pbm: New file.
* etc/images/ezimage/doc.pbm: New file.
* etc/images/ezimage/info.pbm: New file.
* etc/images/ezimage/key.pbm: New file.
* etc/images/ezimage/label.pbm: New file.
* etc/images/ezimage/lock.pbm: New file.
* etc/images/ezimage/mail.pbm: New file.
* etc/images/ezimage/page-minus.pbm: New file.
* etc/images/ezimage/page-plus.pbm: New file.
* etc/images/ezimage/page.pbm: New file.
* etc/images/ezimage/tag-gt.pbm: New file.
* etc/images/ezimage/tag-minus.pbm: New file.
* etc/images/ezimage/tag-plus.pbm: New file.
* etc/images/ezimage/tag-type.pbm: New file.
* etc/images/ezimage/tag-v.pbm: New file.
* etc/images/ezimage/tag.pbm: New file.
* etc/images/ezimage/unlock.pbm: New file.
* etc/images/gnus/important.pbm: New file.
* etc/images/gnus/mail-send.pbm: New file.
* etc/images/gnus/receipt.pbm: New file.
* etc/images/gnus/toggle-subscription.pbm: New file.
* etc/images/gnus/unimportant.pbm: New file.
* etc/images/gud/all.pbm: New file.
* etc/images/gud/rcont.pbm: New file.
* etc/images/gud/recstart.pbm: New file.
* etc/images/gud/recstop.pbm: New file.
* etc/images/gud/rfinish.pbm: New file.
* etc/images/gud/rnext.pbm: New file.
* etc/images/gud/rnexti.pbm: New file.
* etc/images/gud/rstep.pbm: New file.
* etc/images/gud/rstepi.pbm: New file.
* etc/images/gud/thread.pbm: New file.
* etc/images/lock-broken.pbm: New file.
* etc/images/lock-ok.pbm: New file.
* etc/images/lock.pbm: New file.
* etc/images/mail/copy.pbm: New file.
* etc/images/mail/forward.pbm: New file.
* etc/images/mail/not-spam.pbm: New file.
* etc/images/mail/outbox.pbm: New file.
* etc/images/mail/preview.pbm: New file.
* etc/images/mail/save-draft.pbm: New file.
* etc/images/mh-logo.pbm: New file.
* etc/images/mpc/add.pbm: New file.
* etc/images/mpc/ffwd.pbm: New file.
* etc/images/mpc/next.pbm: New file.
* etc/images/mpc/pause.pbm: New file.
* etc/images/mpc/play.pbm: New file.
* etc/images/mpc/prev.pbm: New file.
* etc/images/mpc/rewind.pbm: New file.
* etc/images/mpc/stop.pbm: New file.
* etc/images/redo.pbm: New file.
* etc/images/smilies/braindamaged.pbm: New file.
* etc/images/smilies/cry.pbm: New file.
* etc/images/smilies/dead.pbm: New file.
* etc/images/smilies/evil.pbm: New file.
* etc/images/smilies/forced.pbm: New file.
* etc/images/smilies/grin.pbm: New file.
* etc/images/smilies/indifferent.pbm: New file.
* etc/images/sort-ascending.pbm: New file.
* etc/images/sort-column-ascending.pbm: New file.
* etc/images/sort-criteria.pbm: New file.
* etc/images/sort-descending.pbm: New file.
* etc/images/sort-row-ascending.pbm: New file.
* etc/images/unchecked.pbm: New file.
* etc/images/zoom-in.pbm: New file.
* etc/images/README: Update instructions for PBM files.
Eli Zaretskii [Tue, 15 Sep 2015 09:00:01 +0000 (12:00 +0300)]
Add separator.pbm tool-bar image
* etc/images/separator.pbm: New file. Having it avoids the side
effect of changing the tool-bar height when the default font's size
changes and XPM image support is not available, due to the SPC
characters that are left in the Lisp string used to display the tool
bar, because there are no images to display instead of those SPC
characters.
Paul Eggert [Mon, 14 Sep 2015 21:09:24 +0000 (14:09 -0700)]
Don’t double-encode non-ASCII mail clipboard
* lisp/mail/mailclient.el (mailclient-send-it):
Also fix the case when mailclient-place-body-on-clipboard-flag
is non-nil. Problem reported by Eli Zaretskii (Bug#21471#37).
* test/automated/file-notify-tests.el ()
(file-notify-test03-autorevert)
(file-notify-test04-file-validity)
(file-notify-test04-file-validity-remote)
(file-notify-test05-dir-validity)
(file-notify-test05-dir-validity-remote): Adapt docstring.
(file-notify-test04-file-validity): Let events arrive before
calling final `file-notify-valid-p'. Do not ignore errors.
(file-notify-test05-dir-validity): Do not manipulate
`temporary-file-directory', it isn't necessary. Let events arrive
before calling final `file-notify-valid-p'. Do not ignore errors.
Paul Eggert [Mon, 14 Sep 2015 16:31:23 +0000 (09:31 -0700)]
Don’t double-encode non-ASCII for mail client
* lisp/mail/mailclient.el (mailclient-encode-string-as-url):
Use RFC 6068’s list of unreserved characters.
(mailclient-send-it): When encoding the body as a URL,
first decode it as per Content-Type: and Content-Transfer-Encoding:,
as URLs must use percent-encoded UTF-8 (Bug#21471).
Alan Mackenzie [Sat, 12 Sep 2015 08:54:44 +0000 (08:54 +0000)]
Elisp mode: Make font-lock and imenu handle escaped characters in symbols
Fixes debbugs#21449.
lisp/emacs-lisp/lisp-mode.el (lisp-imenu-generic-expression)
(lisp--el-match-keyword, lisp-el-font-lock-keywords-1)
(lisp-cl-font-lock-keywords-1, lisp-el-font-lock-keywords-2)
(lisp-cl-font-lock-keywords-2, lisp-string-in-doc-position-p):
Insert "\\|\\\\." into regexps which match symbols.
Eli Zaretskii [Mon, 14 Sep 2015 07:31:17 +0000 (10:31 +0300)]
Report file-notify-error in w32notify.c
* src/w32notify.c (report_w32notify_error): New function.
(Fw32notify_add_watch, Fw32notify_rm_watch): Use it to report
errors, instead of calling report_file_error. (Bug#21432)
Paul Eggert [Sun, 13 Sep 2015 18:55:28 +0000 (11:55 -0700)]
Port Unicode char detection to FreeBSD+svgalib
Problem reported by Ashish SHUKLA in:
http://lists.gnu.org/archive/html/emacs-devel/2015-09/msg00531.html
* configure.ac: Check for struct unipair.unicode instead of for
<linux/kd.h>, since that’s more specific to what the code actually needs.
* src/terminal.c: Use HAVE_STRUCT_UNIPAIR_UNICODE, not HAVE_LINUX_KD_H.
Eli Zaretskii [Sun, 13 Sep 2015 10:15:55 +0000 (13:15 +0300)]
Fix vertical cursor motion across overlay strings with newlines
* src/indent.c (Fvertical_motion): Don't leave point in the middle
of an overlay string with newlines, as that will position the
cursor after the string at whatever column is there. (Bug#21468)
Stefan Monnier [Sat, 12 Sep 2015 00:00:05 +0000 (20:00 -0400)]
Merge syntax-propertize--done and parse-sexp-propertize-done
* lisp/emacs-lisp/syntax.el (syntax-propertize--done): Remove.
(syntax-propertize): Set syntax-propertize--done even if
syntax-propertize-function is nil. Avoid recursive invocations.
(syntax-propertize-chunks): New var.
(internal--syntax-propertize): Use it. Rename from syntax--jit-propertize.
Simplify.
(parse-sexp-propertize-function): Don't set any more.
* src/syntax.c (SETUP_SYNTAX_TABLE): Call parse_sexp_propertize as needed.
(parse_sexp_propertize): Don't assume charpos is not yet propertized.
Call Qinternal__syntax_propertize instead of
Vparse_sexp_propertize_function. Truncate e_property if needed.
(update_syntax_table_forward): Streamline.
(syms_of_syntax): Define Qinternal__syntax_propertize.
(syntax_propertize__done): Rename from parse_sexp_propertize_done.
Paul Eggert [Fri, 11 Sep 2015 18:04:24 +0000 (11:04 -0700)]
Prefer straight quoting in some text files
Mostly this just changes ` to ' in static text. Some exceptions:
* INSTALL.REPO: Use curved quotes, as the diagnostic in question
typically does that now.
* admin/quick-install-emacs (TRY, top level):
Use straight quoting in diagnostics.
* src/README: Fix working-directory confusion.
Michael Albinus [Fri, 11 Sep 2015 09:40:33 +0000 (11:40 +0200)]
Improve file notifications in Tramp
* lisp/net/tramp-sh.el (tramp-sh-handle-file-notify-add-watch):
Set proper events to watch for.
(tramp-sh-file-gvfs-monitor-dir-process-filter): Report only
watched events.
Nicolas Petton [Thu, 10 Sep 2015 21:49:56 +0000 (23:49 +0200)]
Add seq-find
This function is similar to `seq-some' but returns the found element.
In the cases where nil can be the found element, a sentinel optional
argument can be provided to avoid ambiguities.
* lisp/emacs-lisp/seq.el (seq-find): New function.
* test/automated/seq-tests.el (test-seq-find): Add tests for `seq-find'.
* doc/lispref/sequences.texi (Sequence Functions): Add documentation for
seq-find.
Paul Eggert [Thu, 10 Sep 2015 17:10:54 +0000 (10:10 -0700)]
Revert some stray curved quotes I missed earlier
Problem reported by David Kastrup in:
http://lists.gnu.org/archive/html/emacs-devel/2015-09/msg00440.html
* lisp/international/mule-cmds.el (leim-list-header):
Use format-message with an ASCII-only format.
* test/automated/file-notify-tests.el: Use lexical-binding
(file-notify--test-cleanup): New function.
(file-notify-test00-availability, file-notify-test01-add-watch)
(file-notify-test02-events, file-notify-test03-autorevert): Use it.
(file-notify--test-with-events): New macro.
(file-notify-test02-events): Use it.
Paul Eggert [Thu, 10 Sep 2015 09:43:59 +0000 (02:43 -0700)]
Add patch-sending instructions to git-workflow
From a suggestion by Mitchel Humpherys in:
http://lists.gnu.org/archive/html/emacs-devel/2015-09/msg00421.html
* admin/notes/git-workflow (Sending patches): New section.
Paul Eggert [Thu, 10 Sep 2015 09:39:13 +0000 (02:39 -0700)]
Port to GIFLIB 5.0.6 and later
Problem reported by Mitchel Humpherys in:
http://lists.gnu.org/archive/html/emacs-devel/2015-09/msg00420.html
* src/image.c (HAVE_GIFERRORSTRING) [HAVE_GIF]: New macro.
(GifErrorString, init_gif_functions) [HAVE_GIF && WINDOWSNT]:
(gif_load) [HAVE_GIF]: Use it.
Paul Eggert [Wed, 9 Sep 2015 22:40:49 +0000 (15:40 -0700)]
Refix movemail GCC pacification
Problem reported by Ken Brown in:
http://lists.gnu.org/archive/html/emacs-devel/2015-09/msg00406.html
* lib-src/movemail.c (main): Fix previous change.