Noam Postavsky [Sat, 21 Nov 2015 21:03:06 +0000 (16:03 -0500)]
Add function to trigger debugger on variable write
* lisp/emacs-lisp/debug.el (debug-on-variable-change):
(debug--variable-list):
(cancel-debug-on-variable-change): New functions.
(debugger-setup-buffer): Add watchpoint clause.
Noam Postavsky [Sat, 19 Nov 2016 21:50:34 +0000 (16:50 -0500)]
Show watchpoints when describing variables
* src/data.c (Fget_variable_watchers): New function.
* lisp/help-fns.el (describe-variable): Use it to detect watching
functions.
Noam Postavsky [Fri, 20 Nov 2015 00:50:06 +0000 (19:50 -0500)]
Add lisp watchpoints
This allows calling a function whenever a symbol-value is changed.
* src/lisp.h (lisp_h_SYMBOL_TRAPPED_WRITE_P):
(SYMBOL_TRAPPED_WRITE_P): New function/macro.
(lisp_h_SYMBOL_CONSTANT_P): Check for SYMBOL_NOWRITE specifically.
(enum symbol_trapped_write): New enumeration.
(struct Lisp_Symbol): Rename field constant to trapped_write.
(make_symbol_constant): New function.
* src/data.c (Fadd_variable_watcher, Fremove_variable_watcher):
(set_symbol_trapped_write, restore_symbol_trapped_write):
(harmonize_variable_watchers, notify_variable_watchers): New functions.
* src/data.c (Fset_default): Call `notify_variable_watchers' for trapped
symbols.
(set_internal): Change bool argument BIND to 3-value enum and call
`notify_variable_watchers' for trapped symbols.
* src/data.c (syms_of_data):
* src/data.c (syms_of_data):
* src/font.c (syms_of_font):
* src/lread.c (intern_sym, init_obarray):
* src/buffer.c (syms_of_buffer): Use make_symbol_constant.
* src/alloc.c (init_symbol):
* src/bytecode.c (exec_byte_code): Use SYMBOL_TRAPPED_WRITE_P.
* src/data.c (Fmake_variable_buffer_local, Fmake_local_variable):
(Fmake_variable_frame_local):
* src/eval.c (Fdefvaralias, specbind): Refer to Lisp_Symbol's
trapped_write instead of constant.
(Ffuncall): Move subr calling code into separate function.
(funcall_subr): New function.
Eli Zaretskii [Fri, 2 Dec 2016 18:37:44 +0000 (20:37 +0200)]
; * lisp/dired-x.el (dired-omit-case-fold): Fix last change.
Glenn Morris [Fri, 2 Dec 2016 18:11:53 +0000 (13:11 -0500)]
Starting doc of user options with "*" is long obsolete
* lisp/battery.el (battery-upower-device): Doc fix.
Reuben Thomas [Fri, 2 Dec 2016 16:36:43 +0000 (16:36 +0000)]
Fix docstrings to have a complete sentence in first line
* lisp/dired-x.el (dired-omit-case-fold, dired-omit-case-fold-p): Fix
docstrings.
Reuben Thomas [Tue, 8 Nov 2016 22:04:52 +0000 (22:04 +0000)]
Remove obsolete comments and commented code from dired-x.el
* lisp/dired-x.el (dired-mark-sexp): Remove a query from 1993 and its
1997 answer about whether dired-mark-sexp is used.
* lisp/dired-x.el (dired-buffers-for-dir-exact): Remove this function
commented out since before dired-x.el was added to RCS in 1994.
Reuben Thomas [Tue, 8 Nov 2016 22:01:59 +0000 (22:01 +0000)]
Remove pre-customize dired-x.el documentation
* lisp/dired-x.el (Commentary): Remove USAGE section explaining how to
use dired-x from .emacs. It is now fully customizable.
* lisp/dired-x.el (dired-guess-shell-alist-user): Remove explanation of
how to set this custom variable in .emacs. It should be customized.
Reuben Thomas [Tue, 8 Nov 2016 17:42:24 +0000 (17:42 +0000)]
Allow files to be matched case-sensitively in dired-x
* lisp/dired-x.el (dired-mark-unmarked-files): Add an argument which
controls case folding for matching the regex (Bug#18716).
(dired-omit-case-fold): New variable. Defaults to `t' on case-sensitive
systems, `nil' otherwise.
(dired-mark-omitted, dired-omit-expunge): Use dired-omit-case-fold.
* doc/misc/dired-x.texi, etc/NEWS: Document dired-omit-case-fold.
Reuben Thomas [Tue, 8 Nov 2016 11:53:20 +0000 (11:53 +0000)]
Add support for curly quotation marks to electric-pair-mode
* lisp/elec-pair.el (electric-pair-pairs, electric-pair-text-pairs): Add
entries for left/right single/double quotation marks, from
electric-quote-chars. Note that this is safe for single quotation marks,
unlike with the ASCII apostrophe, since, although the right quotation
mark can be used as an apostrophe, it is the left quotation mark that is
typed to get a pair (Bug#24901).
Nicolas Petton [Fri, 2 Dec 2016 13:07:41 +0000 (14:07 +0100)]
Fix bug#25087
* etc/themes/manoj-dark-theme.el: Fix two typos.
Michael Albinus [Fri, 2 Dec 2016 10:38:19 +0000 (11:38 +0100)]
Handle quoted file names in Tramp
* lisp/net/tramp.el (tramp-file-name-handler): Handle also the
case the file name is quoted. This is not trapped by the
reassigned `tramp-file-name-regexp' anymore.
Evgeny Zajcev [Fri, 2 Dec 2016 10:17:38 +0000 (12:17 +0200)]
* lisp/battery.el: Add 'battery-upower' -- very fast battery status.
Evgeny Zajcev [Fri, 2 Dec 2016 10:09:31 +0000 (12:09 +0200)]
Support for rawrgb images using imagemagick
* src/image.c (imagemagick_load_image): Set wand size before loading
blob when ':width' and ':height' are provided.
* lisp/image.el (image-format-suffixes): Add 'image/x-rgb'.
Nikolay Kudryavtsev [Fri, 2 Dec 2016 09:53:33 +0000 (11:53 +0200)]
Fix 'sql-connect' on first invocation
* lisp/progmodes/sql.el (sql-connect): Reorder code which sets
param-var. (Bug#19452)
Paul Eggert [Fri, 2 Dec 2016 06:45:07 +0000 (22:45 -0800)]
Fix type typo on Solaris
* src/sysdep.c (system_process_attributes) [SOLARIS2 && HAVE_PROCFS]:
Fix type mismatch, caught by --enable-check-lisp-object-type.
Paul Eggert [Fri, 2 Dec 2016 05:56:49 +0000 (21:56 -0800)]
Merge from gnulib
This incorporates:
2016-11-27 md4,md5,sha*: tune for recent glibc _STRING_INLINE_unaligned
2016-11-21 snippet/c++defs: Simplify _GL_CXXALIAS_* macros.
* build-aux/snippet/c++defs.h:
* lib/md5.c, lib/sha1.c, lib/sha256.c, lib/sha512.c:
Copy from gnulib.
Paul Eggert [Fri, 2 Dec 2016 05:47:12 +0000 (21:47 -0800)]
Make struct font_drivers read-only
This simplifies the code a bit, and makes the structs more
shareable and less likely to become corrupt.
* src/alloc.c (cleanup_vector):
* src/font.c (valid_font_driver, font_prepare_cache)
(font_finish_cache, font_get_cache, font_clear_cache)
(register_font_driver, font_update_drivers):
* src/font.h (struct font, struct font_driver_list)
(valid_font_driver):
struct font_drivers are now const.
* src/font.c, src/ftcrfont.c, src/ftfont.c, src/nsfont.m, src/xfont.c:
Omit no-longer-necessary decls.
* src/ftcrfont.c (syms_of_ftcrfont):
* src/ftxfont.c (syms_of_ftxfont):
* src/xftfont.c (syms_of_xftfont):
Omit no-longer-necessary initialization code.
* src/ftcrfont.c (ftcrfont_driver):
* src/ftfont.c (ftfont_driver):
* src/ftxfont.c (ftxfont_driver):
* src/macfont.m (macfont_driver):
* src/nsfont.m (nsfont_driver):
* src/xfont.c (xfont_driver):
* src/xftfont.c (xftfont_driver):
Use C99-style initializer for ease of maintenance, and make it const.
* src/ftcrfont.c, src/ftxfont.c, src/xftfont.c:
Refer to functions like ftfont_text_extents directly.
* src/ftfont.c (ftfont_get_cache, ftfont_list, ftfont_list_family)
(ftfont_has_char, ftfont_encode_char, ftfont_text_extents)
(ftfont_get_bitmap, ftfont_anchor_point, ftfont_otf_capability)
(ftfont_variation_glyphs, ftfont_filter_properties)
(ftfont_combining_capability):
* src/xfont.c (xfont_get_cache):
Now extern, so that other modules’ struct font_drivers can use
them directly.
* src/macfont.m (macfont_descriptor_entity):
* src/nsfont.m (nsfont_open):
Use constant directly; this is clearer.
Eli Zaretskii [Thu, 1 Dec 2016 18:26:54 +0000 (20:26 +0200)]
; * test/lisp/progmodes/compile-tests.el: Fix a typo in a comment.
Helmut Eller [Thu, 1 Dec 2016 16:58:08 +0000 (18:58 +0200)]
Forth related improvements for etags
Generate correct tags names for things like "(foo)".
Previously "(foo" created.
Fix a bug where a tag for "-bar" was created when encountering things
like "create-bar".
Recognize more words from the Forth-2012 Standard.
* lib-src/etags.c (Forth_words): Check for whitespace after defining
words. Create tag with make_tag instead of get_tag to avoid notiname
which isn't appropriate for Forth.
* test/manual/etags/forth-src/test-forth.fth: Add some test cases.
* test/manual/etags/ETAGS.good_1:
* test/manual/etags/ETAGS.good_2:
* test/manual/etags/ETAGS.good_3:
* test/manual/etags/ETAGS.good_4:
* test/manual/etags/ETAGS.good_5:
* test/manual/etags/ETAGS.good_6:
* test/manual/etags/CTAGS.good: Adapt to the changes in etags.c and
new test cases.
Eli Zaretskii [Thu, 1 Dec 2016 16:49:51 +0000 (18:49 +0200)]
Fix bugs with buffer-local tags tables
* lisp/progmodes/etags.el (visit-tags-table): After
'visit-tags-table-buffer' returns, retrieve the value of
'tags-file-name' from the buffer we started in. Force
recomputation of 'tags-completion-table' next time it is used,
since the list of tags table has changed.
(visit-tags-table-buffer): Accept an additional optional argument
CBUF, the buffer in which to start processing, and switch to that
buffer if CBUF is non-nil. All callers changed to supply a
non-nil CBUF when they call 'visit-tags-table-buffer' in a loop.
Doc fix.
(tags-completion-table): Accept an optional argument, the buffer
for which to build 'tags-completion-table', and build that
buffer's completion table.
(tags-lazy-completion-table): Pass the current buffer to
'tags-completion-table'.
(tags-file-name): Don't say in the doc string that setting this
variable directly is enough; say that 'visit-tags-table' should be
used for that. (Bug#158) (Bug#17326) (Bug#23164)
* doc/emacs/maintaining.texi (Select Tags Table): Delete the
advice to set 'tags-file-name' directly.
* test/lisp/progmodes/etags-tests.el: New tests.
Glenn Morris [Thu, 1 Dec 2016 11:20:43 +0000 (06:20 -0500)]
; Auto-commit of loaddefs files.
Paul Eggert [Thu, 1 Dec 2016 08:32:54 +0000 (00:32 -0800)]
* src/lisp.h (LISP_INITIALLY_ZERO): Remove.
All uses replaced by LISPSYM_INITIALLY.
Paul Eggert [Thu, 1 Dec 2016 08:17:20 +0000 (00:17 -0800)]
Make Cairo safer for --enable-gcc-warnings
* src/image.c (xcolor_to_argb32, pbm_load, jpeg_load_body, gif_load):
Avoid overflow warnings about ‘0xff << 24’.
(xpm_load, gif_load): Avoid unnecessary casts.
(gif_load): Fewer ifdefs.
Thierry Volpiatto [Wed, 30 Nov 2016 20:22:04 +0000 (21:22 +0100)]
Fix Condition in kbd_buffer_store_buffered_event (bug#19547).
* src/keyboard.c (kbd_buffer_store_buffered_event): Should be NILP and not
!NILP.
Noam Postavsky [Tue, 29 Nov 2016 23:56:08 +0000 (18:56 -0500)]
Fix previous commit
* lisp/vc/diff-mode.el (diff-refine-hunk): Make sure to go to beginning
of hunk before calling `diff-hunk-style'.
Noam Postavsky [Tue, 29 Nov 2016 23:52:41 +0000 (18:52 -0500)]
* lisp/vc/diff-mode.el (diff-refine-hunk): Remove redundant variable.
Glenn Morris [Tue, 29 Nov 2016 21:57:05 +0000 (16:57 -0500)]
Use archive-mode for .cbr files
* lisp/files.el (auto-mode-alist): Add cbr. (Bug#24994)
Paul Eggert [Tue, 29 Nov 2016 21:12:24 +0000 (13:12 -0800)]
Pacify Sun C 5.14
* src/lisp.h (enum Lisp_Save_Type): Put SAVE_UNUSED,
SAVED_INTEGER, SAVE_FUNCPOINTER, SAVE_POINTER, and SAVE_OBJECT
into this enum rather than into an anonymous enum. This avoids
diagnostics from Sun C 5.14 and is a bit clearer anyway.
Paul Eggert [Tue, 29 Nov 2016 17:19:42 +0000 (09:19 -0800)]
Adjust lwlib to recent config.h change
* lwlib/lwlib-Xaw.c: Include <stdlib.h> for 'abort' (Bug#24506).
Paul Eggert [Tue, 29 Nov 2016 16:38:17 +0000 (08:38 -0800)]
* src/eval.c (clobbered_eassert): Check E's syntax.
Michael Albinus [Tue, 29 Nov 2016 14:51:38 +0000 (15:51 +0100)]
Improve user retrieval from auth-source in Tramp
* lisp/net/tramp.el (tramp-read-passwd, tramp-clear-passwd):
Use user for auth-source request only in case it exists.
Katsumi Yamaoka [Tue, 29 Nov 2016 10:20:51 +0000 (10:20 +0000)]
shr.el: Don't render a normal table twice
* lisp/net/shr.el (shr-collect-extra-strings-in-table):
Don't render a table if it is called for the first time,
IOW, recognize it to never be invalid (bug#25051).
Dima Kogan [Wed, 14 Sep 2016 22:25:06 +0000 (15:25 -0700)]
Improve diff-mode navigation/manipulation
This is Bug #17544.
Navigation and use of diff buffers had several annoying corner cases
that this patch fixes. These corner cases were largely due to
inconsistent treatment of file headers. Say you have a diff such as
this:
--- aaa
+++ bbb
@@ -52,7 +52,7 @@
hunk1
@@ -74,7 +74,7 @@
hunk2
--- ccc
+++ ddd
@@ -608,6 +608,6 @@
hunk3
@@ -654,7 +654,7 @@
hunk4
The file headers here are the '---' and '+++' lines. With the point on
such a line, hunk operations would sometimes refer to the next hunk and
sometimes to the previous hunk. Most of the time it would be the
previous hunk, which is not what the user would expect. This patch
consistently treats such headers as the next hunk. So with this patch,
if the point is on the '--- ccc' line, the point is seen as referring to
hunk3.
Specific behaviors this fixes are:
1. It should be possible to place the point in the middle of a diff
buffer, and press M-k repeatedly to kill hunks in the order they appear
in the buffer. With the point on hunk1, M-k M-k would kill hunk1 then
hunk2. With the point on hunk3, it would kill hunk3 then hunk4; this is
fine. However, with the point on hunk2, it'd kill hunk2 then hunk1.
This is fixed by this patch.
2. Similarly, it should be possible to apply hunks in order. Previously
with the point at the start, C-c C-a would apply the hunk1, then move
the point to the first @@ header, and thus C-c C-a would try to apply
the same hunk again.
* lisp/vc/diff-mode.el (diff--wrap-navigation): New function to add better
navigation logic to diff-{hunk,file}-{next,prev}.
(diff-hunk-next, diff-hunk-prev):
(diff-file-next, diff-file-prev): Better navigation logic if
skip-hunk-start is true, which happens when called interactively.
(diff-bounds-of-hunk, diff-find-source-location):
(diff-apply-hunk, diff-current-defun, diff-refine-hunk): Small tweaks to
improve hunk navigation.
Noam Postavsky [Fri, 18 Nov 2016 21:26:53 +0000 (16:26 -0500)]
Upcase Path and ComSpec in process-environment
Since 2016-07-18 "Keep w32 environment settings internal only", the
upcasing of environment variables "Path" and "ComSpec" occured after
initializing process-environment. This meant that Lisp code trying to
override "PATH" environment had no effect (Bug #24956).
* src/w32.c (init_environment): Upcase the "Path" and "ComSpec" entries
in Vprocess_environment.
Philipp Stephani [Tue, 22 Nov 2016 20:32:11 +0000 (21:32 +0100)]
Guard terminal parameter in XTerm mouse mode
It has been observed (in the HTerm terminal emulator) that the
event stored in the 'xterm-mouse-last-down' terminal parameter gets
overwritten during a mouse drag operation, causing Emacs to attempt to
synthesize the non-existing <drag-mouse-0> event. Copy the event into
the terminal parameter to protect against such modifications.
* lisp/xt-mouse.el (xterm-mouse-translate-1): Guard against modification
of input event list.
Paul Eggert [Mon, 28 Nov 2016 15:48:50 +0000 (07:48 -0800)]
Fix template for module functions
Reported by Syohei YOSHIDA (Bug#24932).
* modules/modhelp.py (TEMPLATES):
c_func’s 2nd arg is ptrdiff_t, not int.
Paul Eggert [Mon, 28 Nov 2016 07:15:12 +0000 (23:15 -0800)]
Pacify gcc -Wswitch.
* src/keyboard.c (kbd_buffer_store_buffered_event):
Move initialization into default case.
Thierry Volpiatto [Mon, 28 Nov 2016 05:55:14 +0000 (06:55 +0100)]
Reuse already existing lisp symbols for ignore_event (bug#19547).
* lisp/subr.el (while-no-input-ignore-events): Use them instead.
* src/keyboard.c (kbd_buffer_store_buffered_event):
Use help-echo for HELP_EVENT, iconify-frame for ICONIFY_EVENT,
and make-frame-visible for DEICONIFY_EVENT.
(syms_of_keyboard): Remove unneeded symbols.
Thierry Volpiatto [Sun, 27 Nov 2016 08:31:58 +0000 (09:31 +0100)]
Allow configuring which event throw-on-input should ignore (bug#19547).
* src/keyboard.c (kbd_buffer_store_buffered_event):
Translate event to corresponding symbol from `while-no-input-ignore-events`
and check them with Fmemq.
(syms_of_keyboard): Declare new lisp variable `while-no-input-ignore-events`
and its symbols.
* lisp/subr.el (while-no-input-ignore-events): Add default values.
* doc/lispref/commands.texi (Event Input Misc):
Document while-no-input-ignore-events.
* etc/NEWS: Same.
Tino Calancha [Sun, 27 Nov 2016 03:22:25 +0000 (12:22 +0900)]
ash, lsh avoid code duplication
See discussion in:
https://lists.gnu.org/archive/html/emacs-devel/2016-11/msg00469.html
* src/data.c (ash_lsh_impl): New function.
(ash, lsh): Use it.
Simen Heggestøyl [Tue, 15 Nov 2016 19:54:55 +0000 (20:54 +0100)]
Add will change module to CSS property list
* lisp/textmodes/css-mode.el (css-property-alist)
(css-value-class-alist): Add new property and value class from CSS
Will Change Module.
Paul Eggert [Sat, 26 Nov 2016 08:19:08 +0000 (00:19 -0800)]
Don't access pointers to freed storage in regex.c
Remove __BOUNDED_POINTERS__ code, which does not work with
-fcheck-pointer-bound and which has undefined behavior anyway.
Problem found when trying to port to gcc -fcheck-pointer-bounds.
(This code was removed from glibc and gnulib regex.c many years ago.)
* src/regex.c (ELSE_EXTEND_BUFFER_HIGH_BOUND): Remove.
(EXTEND_BUFFER): Use a more-portable approach that avoids
undefined behavior due to inspecting pointers to freed storage.
Eli Zaretskii [Sat, 26 Nov 2016 07:30:59 +0000 (09:30 +0200)]
; Fix last change in cpp.el
* lisp/progmodes/cpp.el (cpp-message-min-time-interval): Fix the
':type' attribute.
Paul Eggert [Sat, 26 Nov 2016 05:24:28 +0000 (21:24 -0800)]
Port build to gcc -fcheck-pointer-bounds
This does not let Emacs run, just build.
* lib-src/etags.c (main):
* lib-src/profile.c (main):
Use return, not exit.
* src/bytecode.c (BYTE_CODE_THREADED) [__CHKP__]:
Do not define, as -fcheck-pointer-bounds is incompatible with taking
addresses of labels.
* src/menu.c (Fx_popup_dialog): Use eassume, not eassert,
to pacify gcc -fcheck-pointer-bounds -Wnull-dereference.
Tino Calancha [Sat, 26 Nov 2016 03:03:25 +0000 (12:03 +0900)]
* lisp/emacs-lisp/subr-x.el (hash-table-keys, hash-table-values): Use cl-loop.
Simen Heggestøyl [Fri, 25 Nov 2016 20:08:32 +0000 (21:08 +0100)]
* lisp/rot13.el: Use lexical-binding
Mark Oteiza [Fri, 25 Nov 2016 19:14:41 +0000 (14:14 -0500)]
Add "using" to cl-loop debug spec (Bug#24750)
* lisp/emacs-lisp/cl-macs.el (cl-loop): Add element to account for
"using" hash table clause.
Hong Xu [Fri, 25 Nov 2016 10:51:22 +0000 (12:51 +0200)]
Allow user control of progress messages in cpp.el
* progmodes/cpp.el (cpp-message-min-time-interval): New defcustom.
(cpp-progress-time): Use 'cpp-message-min-time-interval'. Improve
the doc string.
(cpp-highlight-buffer): Use 'cpp-progress-message' instead of
'message' to print messages. (Bug#24861)
Copyright-paperwork-exempt: yes
Wojciech Gac [Fri, 25 Nov 2016 10:41:20 +0000 (12:41 +0200)]
New input method 'polish-prefix'
* lisp/leim/quail/latin-pre.el ("polish-prefix"): New input
method. (Bug#24967)
* etc/NEWS: Mention the new input method.
Copyright-paperwork-exempt: yes
Damien Cassou [Fri, 25 Nov 2016 10:29:44 +0000 (12:29 +0200)]
* lisp/isearch.el: Add 'provide'. (Bug#25026)
Philippe Vaucher [Fri, 25 Nov 2016 10:24:22 +0000 (12:24 +0200)]
Add missing 'provide's in preloaded packages
* lisp/composite.el:
* lisp/replace.el:
* lisp/textmodes/text-mode.el: Add provide statement. (Bug#24985)
Alan Mackenzie [Thu, 24 Nov 2016 20:34:42 +0000 (20:34 +0000)]
Handle correctly an (undocumented) bare mode in hack-local-variables.
lisp/files.el (hack-local-variables-prop-line): When a file's first line
contains only a mode specification without the string "mode:", return the mode
symbol only when `handle-mode' is t.
Dima Kogan [Thu, 24 Nov 2016 02:04:21 +0000 (18:04 -0800)]
Clarify ediff-directories prompt
* lisp/vc/ediff-mult.el (ediff-filegroup-action):
* lisp/vc/ediff.el (ediff-directories,ediff-directory-revisions,
ediff-directories3, ediff-merge-directories,
ediff-merge-directories-with-ancestor, ediff-merge-directory-revisions,
ediff-merge-directory-revisions-with-ancestor): Clarify prompt message for
filename filter in interactive ediff. The new message makes it clear what is
being filtered
Tino Calancha [Thu, 24 Nov 2016 01:39:33 +0000 (10:39 +0900)]
* test/lisp/ibuffer-tests.el (ibuffer-test-Bug24997): Add test for Bug#24997.
Ulf Jasper [Wed, 23 Nov 2016 17:09:34 +0000 (18:09 +0100)]
Fix Bug#24199.
* lisp/calendar/icalendar.el (icalendar--do-create-ical-alarm): Quote
bracket in doc string (make checkdoc happy).
(icalendar-import-buffer),
(icalendar-import-buffer),
(icalendar--convert-ical-to-diary),
(icalendar--add-diary-entry): Rename argument diary-file to
diary-filename (make checkdoc happy).
(icalendar--convert-recurring-to-diary): Take care of byday-clause
in monthly recurring events. Actually fix Bug#24199.
* test/lisp/calendar/icalendar-tests.el (icalendar-import-bug-24199): New.
Tino Calancha [Wed, 23 Nov 2016 12:19:16 +0000 (21:19 +0900)]
* test/lisp/ibuffer-tests.el (ibuffer-test-Bug25000): Add test for Bug25000.
Mark Oteiza [Tue, 22 Nov 2016 16:09:15 +0000 (11:09 -0500)]
; Fix previous change
strlen is already computed, just use the symbol.
* lisp/ibuffer.el (ibuffer-compile-make-eliding-form): Use strlen.
Philipp Stephani [Wed, 26 Oct 2016 22:28:34 +0000 (00:28 +0200)]
Comint: new user option for C-c M-r and C-c M-s
This option allows the user to specify where to place point after these
commands.
* comint.el (comint-move-point-for-matching-input): New user option.
(comint-previous-matching-input-from-input): Use user option.
Michael Albinus [Tue, 22 Nov 2016 09:16:54 +0000 (10:16 +0100)]
Add tramp-eshell-directory-change to eshell-first-time-mode-hook
* lisp/net/tramp.el (tramp-eshell-directory-change): Add it also to
`eshell-first-time-mode-hook'.
Michael Albinus [Tue, 22 Nov 2016 08:21:03 +0000 (09:21 +0100)]
Merge branch 'master' of git.sv.gnu.org:/srv/git/emacs
Michael Albinus [Tue, 22 Nov 2016 08:20:21 +0000 (09:20 +0100)]
Dump also connection local variables in Tramp bug reports
* lisp/net/tramp-cmds.el (tramp-bug, tramp-append-tramp-buffers):
Dump also connection local variables.
Mark Oteiza [Tue, 22 Nov 2016 07:42:47 +0000 (02:42 -0500)]
Make sure elided long buffer names have ellipses added (Bug#24972)
* lisp/ibuffer.el (ibuffer-compile-make-eliding-form): Restore the
string concat, and chop "strvar" less the width of the ellipsis.
(ibuffer-compile-make-substring-form): Add space as padding, to fix
off-by-one in alignment.
Tino Calancha [Tue, 22 Nov 2016 06:51:57 +0000 (15:51 +0900)]
Buffer-menu-no-header: Detect a fake header
* lisp/buff-menu.el (Buffer-menu-no-header): Use
'tabulated-list-header-overlay-p' (Bug#24855).
Tino Calancha [Tue, 22 Nov 2016 06:23:50 +0000 (15:23 +0900)]
buff-menu: Add command to unmark all buffers
Bind 'U' in buff-menu, bs and electric-buff-menu to commands
to unmark all buffers (Bug#24880).
* lisp/emacs-lisp/tabulated-list.el (tabulated-list-header-overlay-p):
New predicate; return non-nil if tabulated-list has a fake header.
* lisp/buff-menu.el (Buffer-menu-unmark-all-buffers):
New command; remove all flags that use a particular mark from all the lines.
Bind it to 'M-DEL'.
(Buffer-menu-unmark-all):
New command; remove all flags from all the lines. Bind it to 'U'.
(Buffer-menu-marker-char, Buffer-menu-del-char): New variables.
(Buffer-menu-delete, Buffer-menu-mark): Use them.
(Buffer-menu-mode-map): Update menus.
(Buffer-menu-mode): Update mode doc.
* lisp/bs.el (bs-unmark-all, bs-unmark-previous): New commands.
(bs-mode-map): Bind them to 'U' and '<backspace>' respectively.
(bs-mode): Update mode doc.
* lisp/ebuff-menu.el (electric-buffer-menu-mode-map):
Bind Buffer-menu-unmark-all to 'U' and Buffer-menu-unmark-all-buffers
to 'M-DEL'.
(bs--down, bs-down, bs--up, bs-up, bs-unmark-current, bs-mark-current):
Use point instead of cursor in doc string.
(electric-buffer-list): Update mode doc.
* doc/emacs/buffers.texi (Several Buffers): Mention Buffer-menu-unmark-all
and Buffer-menu-unmark-all-buffers.
; * etc/NEWS: Add an entry per each new feature.
Mark Oteiza [Tue, 22 Nov 2016 04:05:47 +0000 (23:05 -0500)]
Revert "* lisp/htmlfontify.el (hfy-force-fontification): Use font-lock-ensure."
This reverts commit
10efaf718c5258af0ba62077cf4e2aaf9fb90227.
Mark Oteiza [Mon, 21 Nov 2016 19:50:15 +0000 (14:50 -0500)]
Port htmlfontify to cl-lib
* lisp/htmlfontify.el: (hfy-box-to-border-assoc, hfy-box-to-style):
(hfy-decor, hfy-face-to-style-i, hfy-face-at, hfy-merge-adjacent-spans):
(hfy-fontify-buffer, htmlfontify-string, hfy-mark-tag-names): Replace
instances of cl aliases with their cl-lib counterparts.
Mark Oteiza [Mon, 21 Nov 2016 17:56:15 +0000 (12:56 -0500)]
* lisp/htmlfontify.el (hfy-force-fontification): Use font-lock-ensure.
Paul Eggert [Mon, 21 Nov 2016 16:42:12 +0000 (08:42 -0800)]
Fix another CANNOT_DUMP problem
Reported by Robert Pluim in:
http://lists.gnu.org/archive/html/emacs-devel/2016-11/msg00468.html
* src/emacs.c (might_dump) [CANNOT_DUMP]: Move enum decl from here ...
* src/lisp.h: ... to here.
Mark Oteiza [Mon, 21 Nov 2016 09:19:51 +0000 (04:19 -0500)]
Add further consideration to string-width (Bug#24972)
* lisp/ibuffer.el (ibuffer-compile-make-eliding-form):
(ibuffer-compile-make-substring-form): Use truncate-string-to-width.
Katsumi Yamaoka [Mon, 21 Nov 2016 08:21:27 +0000 (08:21 +0000)]
Don't collect strings existing out of <tr>...</tr>
* lisp/net/shr.el (shr-collect-extra-strings-in-table):
Don't collect strings existing out of <tr>...</tr> to avoid
duplication with what `shr-tag-table' renders.
Katsumi Yamaoka [Mon, 21 Nov 2016 06:40:01 +0000 (06:40 +0000)]
* lisp/gnus/gnus-mh.el (gnus-summary-save-in-folder): Slightly change
the last commit.
Mike Kupfer [Mon, 21 Nov 2016 06:10:13 +0000 (06:10 +0000)]
Add a variable to pass additional options to rcvstore
* lisp/gnus/gnus-mh.el (gnus-rcvstore-options): New variable.
(gnus-summary-save-in-folder): Include gnus-rcvstore-options in
the arguments that are passed to rcvstore.
cf. <nntp://news.gmane.org/gmane.emacs.gnus.general/87263>
and followups, i.e., ding mailing list.
Paul Eggert [Mon, 21 Nov 2016 04:55:35 +0000 (20:55 -0800)]
Fix undefined refs on some GNU/Linux hosts
Problem reported by Ken Raeburn in:
http://lists.gnu.org/archive/html/emacs-devel/2016-11/msg00463.html
* src/emacs.c (heap_bss_diff) [CANNOT_DUMP]: Remove, as this is
not needed in the CANNOT_UNDUMP case. All uses removed. This
removes unwanted references to my_endbss and my_endbss_static,
which are not optimized away on some platforms.
Paul Eggert [Mon, 21 Nov 2016 00:57:17 +0000 (16:57 -0800)]
Make CANNOT_DUMP work better on GNU/Linux
Clean up some of the bitrot affecting the CANNOT_DUMP code. This
lets the build succeed again, and fixes the testing framework so
that most test cases now pass. About twenty test cases still
fail, though, and we still have Bug#24974.
* configure.ac (CANNOT_DUMP): Now empty if CANNOT_DUMP.
(SYSTEM_MALLOC): Now true if CANNOT_DUMP. There should no longer
be any point to messing with a private memory allocator unless
Emacs is dumping.
* src/alloc.c (alloc_unexec_pre, alloc_unexec_post, check_pure_size):
* src/image.c (reset_image_types):
* src/lastfile.c (my_endbss, _my_endbss, my_endbss_static):
Do not define if CANNOT_DUMP.
* src/emacs.c (might_dump) [CANNOT_DUMP]: Now always false and local.
(daemon_pipe) [!WINDOWSNT]: Now static.
* test/Makefile.in (mostlyclean): Remove *.tmp files.
(make-test-deps.mk): Elide CANNOT_DUMP chatter.
Paul Eggert [Mon, 21 Nov 2016 00:33:40 +0000 (16:33 -0800)]
* src/xdisp.c (block_buffer_flips, unblock_buffer_flips): Now static.
Paul Eggert [Sun, 20 Nov 2016 21:24:53 +0000 (13:24 -0800)]
Pacify --enable-gcc-warnings CANNOT_DUMP=yes
* src/editfns.c (dump_tz_string) [CANNOT_DUMP || !HAVE_TZSET]:
Do not define. If defining, do it in a smaller scope.
Mark Oteiza [Sun, 20 Nov 2016 18:55:28 +0000 (13:55 -0500)]
* lisp/ibuffer.el (ibuffer-compile-format): Use string-width instead of length
Eli Zaretskii [Sun, 20 Nov 2016 17:28:37 +0000 (19:28 +0200)]
Fix redrawing non-selected frame after resize on MS-Windows
* src/xdisp.c (redisplay_internal): If all the frames were
successfully updated, reset the "garbaged" flag of each frame, to
make sure it doesn't stay set.
* src/w32term.c (w32_read_socket): Don't clear the frame if it's
"garbaged", since expose_frame won't redraw the foreground then.
(Bug#24642)
Michael Albinus [Sun, 20 Nov 2016 15:29:47 +0000 (16:29 +0100)]
Add file-local-name
* doc/lispref/files.texi (Magic File Names): Add `file-local-name'.
(Unique File Names): Use it.
* etc/NEWS: Mention `file-local-name'.
* lisp/files.el (file-local-name): New defun.
(file-expand-wildcards):
* lisp/eshell/em-tramp.el (eshell/su, eshell/sudo):
* lisp/eshell/esh-ext.el (eshell-remote-command):
* lisp/eshell/esh-proc.el (eshell-gather-process-output):
* lisp/org/ob-core.el (org-babel-local-file-name):
* lisp/progmodes/gud.el (gud-common-init, gud-format-command):
* lisp/progmodes/python.el (python-shell-send-file):
* lisp/shell.el (shell):
* lisp/vc/ediff-diff.el (ediff-same-file-contents):
* lisp/vc/vc-git.el (vc-git-checkin): Use it.
Tino Calancha [Sun, 20 Nov 2016 14:03:36 +0000 (23:03 +0900)]
* lisp/ibuffer.el (ibuffer-formats): Mention locked column in doc string.
Tino Calancha [Sun, 20 Nov 2016 06:38:11 +0000 (15:38 +0900)]
* src/editfns.c (format-time-string): Mention %q in doc string.
Paul Eggert [Sun, 20 Nov 2016 00:15:29 +0000 (16:15 -0800)]
Document format-time-string %q
* doc/lispref/os.texi (Time Parsing):
* etc/NEWS: Document new %q functionality taken from gnulib.
Paul Eggert [Sun, 20 Nov 2016 00:00:57 +0000 (16:00 -0800)]
Merge from gnulib
This incorporates:
2016-11-15 sys_time: add gnulib::timeval for C++
2016-11-14 snippet/c++defs: fix real-floating arg functions in C++ mode
2016-11-13 strftime: don't use __THROW
2016-11-12 strftime: tune %q
2016-11-12 Merge strftime.c changes from glibc
2016-11-09 manywarnings: fix -Wno-missing-field-initializers detection
2016-11-05 strftime,strptime: support %q to represent the quarter
The glibc changes in turn incorporate the following strftime.c changes:
2015-10-20 Convert misc function definitions to prototype style
2015-09-26 [BZ #18985] out of range data to strftime() causes segfault
2010-01-09 Add support for XPG7 testing
2009-10-30 Implement Burmese language locale for Myanmar
2008-06-13 [BZ #6612] pass reference to tzset_called around
2007-10-16 [BZ #5184] Add tzset_called argument
* build-aux/snippet/c++defs.h, lib/strftime.c, lib/sys_time.in.h:
* m4/manywarnings.m4: Copy from gnulib.
Paul Eggert [Sat, 19 Nov 2016 22:57:40 +0000 (14:57 -0800)]
; Spelling fixes
Paul Eggert [Sat, 19 Nov 2016 22:43:25 +0000 (14:43 -0800)]
Merge from origin/emacs-25
07f45d7 ; Spelling fix
1a210f0 * admin/release-process: Update versions and blocking bug num...
36bafc9 Improve documentation of functions that accept time values
# Conflicts:
# admin/release-process
# src/editfns.c
Paul Eggert [Sat, 19 Nov 2016 22:31:06 +0000 (14:31 -0800)]
; Merge from origin/emacs-25
The following commit was skipped:
a37c08d Speed up initialization by preferring /dev/urandom to GnuTLS
Paul Eggert [Sat, 19 Nov 2016 22:31:05 +0000 (14:31 -0800)]
Merge from origin/emacs-25
4af5981 Add a comment in generated refcards about the source
ef880a5 ; * etc/refcards/calccard.tex: Remove obsolete comment.
4887e7c js-mode: Fix indent problem after a regexp
e992ac0 Fix sluggish display of symbols in UTF-8 language environment
1fc101b Don't confuse how Texinfo outputs @var with the input
91aa5d1 * doc/lispref/display.texi (Scroll Bars): * doc/lispref/frame...
f758fcd * doc/emacs/cmdargs.texi (Initial Options): Copyedit for --da...
5b0cddd More fixes in copyright notices in etc/refcards/
f994c20 Update copyright text in refcards
9ad2ae7 Fix Outline command names
26c3554 Send text received by bracketed paste to process
db0b58d Correct the statement about programming modes always running ...
78aece4 Improve documentation of 'occur'
eb364fd Do call debugger on failed cl-assert
3ef4ee8 Avoid infloop in python
8da810f Don't refer to obsolete FEATURE-unload-hook
4f478ca Improve documentation of dabbrevs
7272e5d * lisp/chistory.el (list-command-history): Doc fix. (Bug#24890)
89b7482 * lisp/simple.el (set-mark-command): Doc fix. (Bug#24890)
3b199f7 Improve documentation of some Help commands
93d3a0e Fix documentation of yes-or-no prompts
af04919 Fix documentation of partial completion style
ed80184 Fix documentation of the mode line on emacsclient frames
e6be855 Fix description of 'C-z' in User manual
16f7007 Improve and clarify documentation of Outline Mode
31d93aa Add Emacs version number to nt/README.W32
0b6b815 Fix python-mode hideshow regexp
dc152c5 Modernize usage of 'macOS' in doc and comments
84c5343 Prefer comments /* like this */ in C code
bb61e50 * doc/lispref/loading.texi (Autoload): Better link (Bug#24845).
3ef86fd Clarify documentation of face attribute functions
de51d59 ; * nt/README.W32: Minor copyedits.
db436e9 Don't call debug on failed cl-assert
# Conflicts:
# doc/emacs/cmdargs.texi
# etc/NEWS
# etc/PROBLEMS
# lisp/auth-source.el
# lisp/net/tramp-sh.el
Paul Eggert [Sat, 19 Nov 2016 22:11:08 +0000 (14:11 -0800)]
; Spelling fix
Mark Oteiza [Sat, 19 Nov 2016 18:34:24 +0000 (13:34 -0500)]
Port RefTeX to cl-lib
* lisp/textmodes/reftex-auc.el:
* lisp/textmodes/reftex-cite.el: Use cl-lib.
(reftex-do-citation, reftex-create-bibtex-file): Substitute cl-lib
macros.
* lisp/textmodes/reftex-dcr.el: Use cl-lib.
(reftex-view-regexp-match): Substitute cl-lib macro.
* lisp/textmodes/reftex-global.el: Use cl-lib.
(reftex-find-duplicate-labels, reftex-renumber-simple-labels):
(reftex-translate): Substitute cl-lib macros.
* lisp/textmodes/reftex-index.el: Use cl-lib.
(reftex-index, reftex-index-select-tag, reftex-index-mode-map):
(reftex-index-next-phrase, reftex-index-phrases-info):
(reftex-query-index-phrase): Substitute cl-lib macros.
* lisp/textmodes/reftex-parse.el: Use cl-lib.
(reftex-parse-from-file, reftex-where-am-I, reftex-what-macro):
(reftex-nth-arg, reftex-init-section-numbers, reftex-section-number):
Substitute cl-lib macros.
* lisp/textmodes/reftex-ref.el: Use cl-lib.
(reftex-uniquify-label, reftex-offer-label-menu): Substitute cl-lib
macros.
* lisp/textmodes/reftex-sel.el: Use cl-lib.
(reftex-select-shared-map): Set keymap parent to special-mode-map.
Flatten loop and remove digits and hyphen definitions from the map.
(reftex-select-label-mode-map):
(reftex-select-bib-mode-map): Use cl-lib macro, and flatten other loop.
(reftex-insert-docstruct, reftex-select-unmark): Use cl-lib macros.
* lisp/textmodes/reftex-vars.el (reftex-vref-is-default): Use
cl-pushnew.
* lisp/textmodes/reftex.el: Use cl-lib.
(reftex-docstruct-symbol): Use cl-incf.
(reftex-ref-style-toggle): Replace add-to-list with append.
(reftex-compile-variables): Use cl-lib macros, and functions with
compiler macros. cl-first is just an alias.
(reftex-parse-args, reftex-scanning-info-available-p):
(reftex-select-external-document, reftex-get-file-buffer-force): Use
cl-lib macros.
(reftex-isearch-minor-mode): Replace add-to-list with append.
Tino Calancha [Sat, 19 Nov 2016 11:48:17 +0000 (20:48 +0900)]
ibuffer-exchange-filters: Simplify code
* lisp/ibuf-ext.el (ibuffer-exchange-filters): Use cl-rotatef.
Eli Zaretskii [Sat, 19 Nov 2016 10:17:23 +0000 (12:17 +0200)]
Implement getrlimit and setrlimit for MS-Windows
* src/w32heap.c (getrlimit, setrlimit): New functions.
Include w32.h.
* src/emacs.c (main): Use 'rlim_t', not 'long', for values that
should be compatible with 'struct rlimit' members.
* nt/inc/sys/resource.h: New header file.
* nt/mingw-cfg.site (ac_cv_func_getrlimit, ac_cv_func_setrlimit):
Set to "yes".
Eli Zaretskii [Sat, 19 Nov 2016 07:23:33 +0000 (09:23 +0200)]
* admin/release-process: Update versions and blocking bug numbers.
Mark Oteiza [Sat, 19 Nov 2016 01:19:17 +0000 (20:19 -0500)]
Move key mappings into reftex-mode-map defvar
* lisp/textmodes/reftex.el (reftex-mode-map): Assimilate top-level
key mappings.
(reftex-reset-mode): Just use dolist.
Mark Oteiza [Sat, 19 Nov 2016 01:06:05 +0000 (20:06 -0500)]
Derive reftex-index-mode from special-mode
* lisp/textmodes/reftex-index.el (reftex-index-mode-map): Flatten
loop. Remove digit keys and hyphen, as reftex-index-mode is derived
from special-mode now.
(reftex-index-mode): Derive from special-mode.
(reftex-index-phrases-mode-map): Flatten loop. Fix erroneous docstring.
Mark Oteiza [Sat, 19 Nov 2016 00:36:18 +0000 (19:36 -0500)]
Clean up reftex-toc-mode-map
* lisp/textmodes/reftex-toc.el: Remove cl.
(reftex-toc-mode-map): Flatten loop. Remove mapping digit keys and
hyphen, as reftex-toc-mode is derived from special-mode nowadays.
Philipp Stephani [Wed, 9 Nov 2016 22:13:52 +0000 (23:13 +0100)]
Prevent dubious argument lists
See Bug#24912 and Bug#24913.
* src/eval.c (funcall_lambda): Detect more dubious argument lists.
* lisp/emacs-lisp/bytecomp.el (byte-compile-check-lambda-list): Detect
more dubious argument lists.
* test/src/eval-tests.el (eval-tests--bugs-24912-and-24913): Add unit
test.
Tino Calancha [Fri, 18 Nov 2016 15:17:50 +0000 (00:17 +0900)]
Add test suite for buff-menu.el
* test/lisp/buff-menu-tests.el: New file.
(buff-menu-24962): Add test for Bug#24962.
Eli Zaretskii [Fri, 18 Nov 2016 11:02:34 +0000 (13:02 +0200)]
Improve documentation of functions that accept time values
* doc/lispref/os.texi (Time Calculations): Mention the meaning of
'nil' or a scalar number as the time-value argument. Add a
cross-reference to 'float-time' for computing a time difference as
a scalar number of seconds.
* src/editfns.c (Fformat_time_string, Ftime_less_p)
(Ftime_subtract, Ftime_add, Fdecode_time, Fcurrent_time_string)
(Fcurrent_time_zone): Mention in the doc strings the meaning of
nil argument and the fact that a time value can be a scalar number
of seconds since the epoch.
(Ftime_subtract): Mention 'float-time'.
Wojciech Gac [Fri, 18 Nov 2016 09:58:36 +0000 (11:58 +0200)]
Add cyrillic-tuvan input method
* lisp/leim/quail/cyrillic.el ("cyrillic-tuvan"): New input
method. (Bug#24942)
* etc/NEWS: Mention addition of 'cyrillic-tuvan' input method.
Copyright-paperwork-exempt: yes