1
Fork 0
mirror of git://git.sv.gnu.org/emacs.git synced 2026-01-17 08:31:09 -08:00
Commit graph

130436 commits

Author SHA1 Message Date
Alan Mackenzie
dde7f2d48b Fix some bugs in c-defun-name. This fixes bug #25623.
* lisp/progmodes/cc-cmds.el (c-defun-name): Fix some bugs to do with structs,
etc.
2017-07-12 20:15:56 +00:00
Vasilij Schneidermann
7dd72d76ef Make prog-mode-map the parent of c-mode-base-map. Fixes bug #26658.
* lisp/progmodes/cc-mode.el (top level): Make prog-mode-map the parent of
c-mode-base-map if possible.
2017-07-12 17:42:12 +00:00
Alan Mackenzie
125a8a62db CC Mode: create and use c-set-keymap-parent.
* lisp/progmodes/cc-defs.el (c-set-keymap-parent): New macro.

* lisp/progmodes/cc-mode.el (top-level): Remove cc-bytecomp-defun for
set-keymap-parents.
(c-make-inherited-keymap): Use c-set-keymap-parent in place of inline code.
2017-07-12 17:03:35 +00:00
Martin Rudalics
01a98e918d Minor tweaks of new line number display variables
* src/xdisp.c (Vdisplay_line_numbers): Tweak doc-string.
(Vdisplay_line_number_width): Rename to
Vdisplay_line_numbers_width.
(maybe_produce_line_number): Comply with above rename.
* lisp/cus-start.el (standard):
* lisp/frame.el (top-level):
* etc/NEWS: Comply with renaming of
`display-line-number-width' to `display-line-numbers-width'.
2017-07-12 17:35:31 +02:00
Eli Zaretskii
4ddff36f6a Avoid assertion violations in close_infile_unwind
* src/lread.c (close_infile_unwind): A temporary band-aid solution
for bug#27642: allow 'infile' be NULL.
2017-07-12 17:49:21 +03:00
Michael Albinus
46a681e4e1 ; Enable traces for tramp-tests.el on hydra 2017-07-12 14:53:53 +02:00
Eli Zaretskii
d014a5e15c Use fixed-pitch font for display-line-numbers
* lisp/faces.el (line-number): Use a fixed-pitch font by default,
even if the default face uses a variable-pitch font.  Reported by
James Cloos <cloos@jhcloos.com>.
2017-07-11 18:16:36 +03:00
Eli Zaretskii
10b876b25b ; * src/xdisp.c (syms_of_xdisp) <display-line-numbers>: Copyedits. 2017-07-11 18:11:33 +03:00
Eli Zaretskii
373cef5fe1 Improve documentation of display-line-numbers
* src/xdisp.c (syms_of_xdisp) <display-line-numbers>: Improve the
doc string.  Suggested by Alex <agrambot@gmail.com>.
2017-07-11 18:08:46 +03:00
Nicolas Petton
0bece6c681 Add an optional testfn parameter to assoc
* src/fns.c (assoc): New optional testfn parameter used for comparison
when provided.
* test/src/fns-tests.el (test-assoc-testfn): Add tests for the new
'testfn' parameter.
* src/buffer.c:
* src/coding.c:
* src/dbusbind.c:
* src/font.c:
* src/fontset.c:
* src/gfilenotify.c:
* src/image.c:
* src/keymap.c:
* src/process.c:
* src/w32fns.c:
* src/w32font.c:
* src/w32notify.c:
* src/w32term.c:
* src/xdisp.c:
* src/xfont.c: Add a third argument to Fassoc calls.
* etc/NEWS:
* doc/lispref/lists.texi: Document the new 'testfn' parameter.
2017-07-11 10:07:16 +02:00
Michael Albinus
689c5c20d1 Use `with-demoted-errors' in Tramp
* lisp/net/tramp.el (tramp-with-demoted-errors): New defmacro.

* lisp/net/tramp-sh.el (tramp-sh-handle-vc-registered): Use it.
2017-07-10 17:49:01 +02:00
Michael Albinus
0440c748aa Add Quick Start Guide to Tramp manual
* doc/misc/tramp.texi: Use consequently "@value{tramp}" and
"MS Windows".
(Quick Start Guide): New node.

* doc/misc/trampver.texi:
* lisp/net/trampver.el: Change version to "2.3.3-pre".
2017-07-10 15:36:23 +02:00
Glenn Morris
273f4bde39 Fix failing module tests on GNU/Linux
* test/src/emacs-module-tests.el
(module--test-assertions--load-non-live-object)
(module--test-assertions--call-emacs-from-gc):
Avoid test failures due to backtraces.
2017-07-09 16:43:09 -07:00
Paul Eggert
083940a93d Fix core dump in substitute-object-in-subtree
Without this fix, (substitute-object-in-subtree #0=(#0# 'a) 'a)
would dump core, since the C code would recurse indefinitely through
the infinite structure.  This patch adds an argument to the function,
and renames it to lread--substitute-object-in-subtree as the function
is not general-purpose and should not be relied on by outside code.
See Bug#23660.
* src/intervals.c (traverse_intervals_noorder): ARG is now void *,
not Lisp_Object, so that callers need not cons unnecessarily.
All callers changed.  Also, remove related #if-0 code that was
“temporary” in the early 1990s and has not been compilable for
some time.
* src/lread.c (struct subst): New type, for substitution closure data.
(seen_list): Remove this static var, as this info is now part of
struct subst.  All uses removed.
(Flread__substitute_object_in_subtree): Rename from
Fsubstitute_object_in_subtree, and give it a 3rd arg so that it
doesn’t dump core when called from the top level with an
already-cyclic structure.  All callers changed.
(SUBSTITUTE): Remove.  All callers expanded and then simplified.
(substitute_object_recurse): Take a single argument SUBST rather
than a pair OBJECT and PLACEHOLDER, so that its address can be
passed around as part of a closure; this avoids the need for an
AUTO_CONS call.  All callers changed.  If the COMPLETED component
is t, treat every subobject as potentially circular.
(substitute_in_interval): Take a struct subst * rather than a
Lisp_Object, for the closure data.  All callers changed.
* test/src/lread-tests.el (lread-lread--substitute-object-in-subtree):
New test, to check that the core dump does not reoccur.
2017-07-09 16:05:13 -07:00
Philipp Stephani
ce6773aad5 Minor simplification of module_free_global_ref
* src/emacs-module.c (module_free_global_ref): Remove unused variable
'hashcode'.  Inline variable 'value' that's only used once.
2017-07-10 00:33:30 +02:00
Philipp Stephani
81131ff26f Re-add a useful assertion
* src/emacs-module.c (module_free_global_ref): Re-add assertion that
the reference count is zero.  This assertion was removed in commit
8afaa1321f, but it's not included in the
test performed by XFASTINT before, because the previous reference
count could have been zero already in the case of a buggy
implementation.  This assertion might have detected Bug#27587.
2017-07-10 00:28:50 +02:00
Valentin Gatien-Baron
22af69906c Fix bug in module_free_global_ref (Bug#27587)
* src/emacs-module.c (module_free_global_ref): Actually remove entry
from hash table.

Copyright-paperwork-exempt: yes
2017-07-10 00:15:29 +02:00
Philipp Stephani
bb2ea81bc5 Further improve electric quote support for Markdown (Bug#24709)
Markdown sets both 'comment-start' and 'comment-use-syntax' to non-nil
values.  Therefore 'electric-quote-mode' recognized it as a
programming mode.  Fix this by first checking whether the current
major mode is derived from 'text-mode'.

* lisp/electric.el (electric-quote-post-self-insert-function): Treat
'text-mode' as stronger signal than comment syntax.

* test/lisp/electric-tests.el (electric-quote-markdown-in-text)
(electric-quote-markdown-in-code): Adapt unit tests.
2017-07-09 21:55:31 +02:00
Philipp Stephani
633db417fc Remove pointless code in 'electric-quote-mode'
* lisp/electric.el (electric-quote-post-self-insert-function): Remove
pointless form.
2017-07-09 21:55:30 +02:00
Philipp Stephani
28e6584861 Refactor 'electric-quote-mode'
* lisp/electric.el (electric-quote-post-self-insert-function): Remove
local variable 'start', which was misnamed and only used once.
2017-07-09 21:55:30 +02:00
Saulius Menkevičius
51b29de159 Avoid crashes on MS-Windows starting 64-bit .NET executables
* src/w32proc.c (w32_executable_type): Don't assume that the
import directory in a DLL will always be non-NULL.  (Bug#27527)

Copyright-paperwork-exempt: yes
2017-07-09 21:16:17 +03:00
Eli Zaretskii
0cff089ec8 Avoid compilation warning in files.el
* lisp/files.el (auto-save-visited-file-name): Avoid obsoletion
warning due to its use in auto-save-visited-mode.
2017-07-09 20:35:57 +03:00
Eli Zaretskii
c6e94f894b Improve indexing of VC-related stuff in the Emacs manual
* doc/emacs/maintaining.texi (Version Control): Add a "VC" index
entry.  (Bug#27627)
2017-07-09 17:46:59 +03:00
Eli Zaretskii
b56727e727 ; * etc/NEWS: Fix a typo. 2017-07-09 17:42:16 +03:00
Eli Zaretskii
83218cf4c3 Speed up display of line numbers for very large buffers
* src/xdisp.c (maybe_produce_line_number): Speed up line counting
using values cached by mode-line display of line numbers.
(Bug#27622)
2017-07-09 17:37:23 +03:00
Philipp Stephani
b2aef8122a ; * src/emacs-module.c (module_assert_thread): Simplify. 2017-07-09 13:43:45 +02:00
Alexander Kuleshov
e15784fbbb Define internal_border_parts for window systems only (Bug#27615)
* src/keyboard.c: (internal_border_parts): Define only
when HAVE_WINDOW_SYSTEM is enabled.  (Bug#27615)
2017-07-09 09:11:57 +02:00
R. Bernstein
9b8b73f616 Add realgud faces faces to whiteboard...
Adjust wheatgrass to use underline for enabled/disabled breakpoints
2017-07-08 21:58:44 -04:00
Noam Postavsky
05c5e4d818 ; Merge: Update and optimize UCS normalization tests 2017-07-08 14:32:07 -04:00
Noam Postavsky
06ff34cd2a Optimize UCS normalization tests
Brings the the time for `ucs-normalize-part1' from 200s down to 130s.
* test/lisp/international/ucs-normalize-tests.el
(ucs-normalize-tests--parse-column): Use character instead of string
of length 1 for terminator.  Convert return value into string since
all callers need that form anyway.
(ucs-normalize-tests--normalization-equal-p): Rename from
ucs-normalize-tests--normalize.  Use dedicated buffer instead of
messing with narrowing.  Take string to compare against and insert it
into buffer so that compare-buffer-substrings can be used instead of
allocating a new string from buffer contents.
(ucs-normalize-tests--normalization-chareq-p): New macro, specialized
for comparing single character.
(ucs-normalize-tests--rule1-holds-p)
(ucs-normalize-tests--rule2-holds-p): Turn into defsubst.
(ucs-normalize-tests--rule1-failing-for-partX): Use `eq' instead of
`='.
2017-07-08 14:31:27 -04:00
Noam Postavsky
a163391845 Update failing lines for UCS normalize tests
* test/lisp/international/ucs-normalize-tests.el
(ucs-normalize-tests--failing-lines-part2): Update for new
admin/unidata/NormalizationTest.txt version.
2017-07-08 14:31:27 -04:00
Noam Postavsky
4e3b9c5444 Semi-automate the procedure for updating UCS normalize test bad lines
* test/lisp/international/ucs-normalize-tests.el: Remove incorrect
commentary describing a manual procedure for producing the updated
failing lines, it did not actually work.  Replace it with pointer to
new function which prints the updated values.
(ucs-normalize-tests--rule1-holds-p): Renamed from
ucs-normalize-tests--invariants-hold-p.
(ucs-normalize-tests--rule2-holds-p): Renamed from
ucs-normalize-tests--invariants-rule2-hold-p.
(ucs-normalize-tests--rule1-failing-for-partX): Renamed from
ucs-normalize-tests--invariants-failing-for-part.
(ucs-normalize-tests--rule1-failing-for-lines): Renamed from
ucs-normalize-tests--invariants-failing-for-lines.
(ucs-normalize-tests--part2-rule1-failed-lines): New variable.
(ucs-normalize-part2): Set it.
(ucs-normalize-part1): Always run through to end of test before
checking for failures.
(ucs-normalize-tests--insert-failing-lines)
(ucs-normalize-check-failing-lines): New functions, used to update
the *--failing-lines-part* variables.
2017-07-08 14:28:17 -04:00
Paul Eggert
efaf14859a * lisp/cus-start.el (standard): Spelling fix. 2017-07-08 08:42:28 -07:00
Philipp Stephani
b7dab24b79 Module assertions: check for garbage collections
It's technically possible to write a user pointer finalizer that calls
into Emacs module functions.  This would be disastrous because it
would allow arbitrary Lisp code to run during garbage collection.
Therefore extend the module assertions to check for this case.

* src/emacs-module.c (module_assert_thread): Also check whether a
garbage collection is in progress.

* test/data/emacs-module/mod-test.c (invalid_finalizer)
(Fmod_test_invalid_finalizer): New test module functions.
(emacs_module_init): Register new test function.

* test/src/emacs-module-tests.el (module--test-assertion)
(module--with-temp-directory): New helper macros.
(module--test-assertions--load-non-live-object): Rename existing
unit test, use helper macros.
(module--test-assertions--call-emacs-from-gc): New unit test.
2017-07-08 15:25:01 +02:00
Eli Zaretskii
a87d767c7a Capitalize the menu entry for display-line-numbers
* lisp/menu-bar.el (menu-bar-showhide-menu): Capitalize menu item
for display-line-numbers.  Suggested by Martin Rudalics
<rudalics@gmx.at>.
2017-07-08 13:22:53 +03:00
Eli Zaretskii
fd3bcfa36e Update Unicode data and files to Unicode 10.0
* admin/notes/unicode:
* admin/unidata/README:
* admin/unidata/BidiBrackets.txt:
* admin/unidata/BidiMirroring.txt:
* admin/unidata/Blocks.txt:
* admin/unidata/IVD_Sequences.txt:
* admin/unidata/NormalizationTest.txt:
* admin/unidata/SpecialCasing.txt:
* admin/unidata/UnicodeData.txt:
* lisp/international/characters.el:
* lisp/international/fontset.el (script-representative-chars):
* lisp/international/mule-cmds.el (ucs-names): Update per Unicode 10.0.
2017-07-08 13:02:47 +03:00
Alexander Gramiak
42cdb68649 Support '=' in Scheme and Lisp tags in 'etags'
* lib-src/etags.c (get_lispy_tag): New function.
(L_getit, Scheme_functions): Use get_lispy_tag (Bug#5624).
* test/manual/etags/CTAGS.good:
* 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/Makefile:
* test/manual/etags/el-src/TAGTEST.EL: Update tests.
* test/manual/etags/scm-src/test.scm: New tests for Scheme.
2017-07-08 11:25:53 +03:00
Alexander Kuleshov
92307cb05d Avoid compiler warnings in xdisp.c debugging code
* src/xdisp.c (dump_glyph, dump_glyph_row, Fdump_glyph_matrix):
Use pD directives for ptrdiff_t values instead of pI, to avoid
compilation warnings on 64-bit hosts.  (Bug#27597)
2017-07-08 11:15:52 +03:00
Eli Zaretskii
6e2a2b334d Commentary enhancement in frame.el
* lisp/frame.el: Explain how to test whether a variable needs to
be added to the list of those which are watched for buffer
redisplay.
2017-07-08 11:08:55 +03:00
Eli Zaretskii
5df239fc6f Support display of line numbers natively
This merges branch 'line-numbers'.
* src/buffer.c (disable_line_numbers_overlay_at_eob): New
function.
* src/lisp.h (disable_line_numbers_overlay_at_eob): Add prototype.
* src/dispextern.h (struct it): New members pt_lnum, lnum,
lnum_bytepos, lnum_width, and lnum_pixel_width.
* src/indent.c (line_number_display_width): New function,
refactored from line-number width calculations in vertical-motion.
(Fvertical_motion): Call line_number_display_width when the width
of line-number display is needed.
(Fline_number_display_width): New defun.
(syms_of_indent): Defsubr it.
* src/indent.c (Fvertical_motion): Help C-n/C-p estimate correctly
the width used up by line numbers by looking near the window-start
point.  If window-start is outside of the accessible portion,
temporarily widen the buffer.
* src/term.c (produce_glyphs): Adjust tab stops for the horizontal
space taken by the line-number display.
* src/xdisp.c (display_count_lines_logically)
(display_count_lines_visually, maybe_produce_line_number)
(should_produce_line_number, row_text_area_empty): New functions.
(try_window_reusing_current_matrix): Don't use this method when
display-line-numbers is in effect.
(try_window_id, try_cursor_movement): Disable these optimizations
when the line-number-current-line face is different from
line-number face and for relative line numbers.
(try_window_id, redisplay_window, try_cursor_movement): For
visual line-number display, disable the same redisplay
optimizations as for relative.
(x_produce_glyphs): Adjust tab stops for the horizontal
space taken by the line-number display.
(hscroll_window_tree): Adjust hscroll calculations to line-number
display.
(DISP_INFINITY): Renamed from INFINITY to avoid clashes with
math.h; all users changed.
(set_cursor_from_row): Fix calculation of cursor X coordinate in
R2L rows with display-produced glyphs at the beginning.
(display_line): Use should_produce_line_number to determine
whether a line number should be produced for each glyph row, and
maybe_produce_line_number to produce line numbers.
Don't display line numbers in the minibuffer and in tooltip
frames.
Call row_text_area_empty to verify that a glyph
row's text area is devoid of any glyphs that came from a buffer or
a string.  This fixes a bug with empty-lines indication
disappearing when line numbers or line-prefix are displayed.
(syms_of_xdisp) <display-line-numbers, display-line-numbers-widen>
<display-line-number-width>: New buffer-local variables.
<display-line-numbers-current-absolute>: New variable.

* lisp/cus-start.el (standard): Provide customization forms for
display-line-numbers and its sub-features.
* lisp/faces.el (line-number, line-number-current-line): New faces.
* lisp/frame.el: Add display-line-numbers, display-line-numbers-widen,
display-line-numbers-current-absolute, and
display-line-number-width to the list of variables that should
trigger redisplay of the current buffer.
* lisp/menu-bar.el (menu-bar-showhide-menu): Add menu-bar item to
turn display-line-numbers on and off.
(toggle-display-line-numbers): New function.
* lisp/simple.el (last--line-number-width): New internal variable.
(line-move-visual): Use it to adjust temporary-goal-column when
line-number display changes its width.

* doc/emacs/basic.texi (Position Info): Add cross-reference to
"Display Custom", for line-number display.
* doc/emacs/custom.texi (Init Rebinding):
* doc/emacs/modes.texi (Minor Modes): Remove references to
linum-mode.
* doc/emacs/display.texi (Display Custom): Describe the
line-number display.
* doc/lispref/display.texi (Size of Displayed Text): Document
line-number-display-width.

* etc/NEWS: Document display-line-numbers and its customizations.
2017-07-08 10:49:36 +03:00
Paul Eggert
b8ead34f5d Fix more ungetc bugs with encoding errors
* src/lread.c (infile): New variable, replacing ...
(instream): ... this.  All uses changed.
(readbyte_from_stdio): New function, which deals with lookahead.
(readbyte_from_file, Fget_file_char): Use it.
(Fget_file_char): When misused, signal an error instead of
relying on undefined behavior.
(close_infile_unwind): New function.
(Fload): Use it.
(readevalloop): 2nd arg is now struct infile *, not FILE *.
All callers changed.
(read1): Handle lookahead when copying doc strings with
encoding errors.
2017-07-07 18:54:42 -07:00
Paul Eggert
1628305811 Avoid ungetc when loading charset maps from files
* src/charset.c (read_hex): New args LOOKAHEAD and TERMINATOR,
replacing the old EOF.  All callers changed.  This avoids the
need to call ungetc.
2017-07-07 18:54:42 -07:00
Paul Eggert
d2832063c3 Fix ungetc bug when reading an encoding error
* src/lread.c (readchar, read_emacs_mule_char): Fix off-by-one
error when reading an encoding error from a file, e.g., a symbol
in an .elc file whose name is "\360\220\200\360".
2017-07-07 18:09:33 -07:00
Noam Postavsky
c819c053ad ; Fix extra "," in previous commit 2017-07-07 18:13:15 -04:00
Stefan Monnier
2fcdb95363 * lisp/wid-edit.el (widget-color--choose-action): Use a closure 2017-07-07 17:02:27 -04:00
Stefan Monnier
21ecda1045 * lisp/window.el (display-buffer--special-action): Use a closure. 2017-07-07 16:58:30 -04:00
Michael R. Mauger
eb27fc4d49 Merge branch 'master' of git.sv.gnu.org:/srv/git/emacs 2017-07-07 16:26:35 -04:00
Stephen Berman
c24748ada0 Add new todo-mode.el tests
* test/lisp/calendar/todo-mode-tests.el (with-todo-test):
Declare an Edebug spec.  Restore pre-test-run state of test files.
(todo-test--show, todo-test--move-item)
(todo-test--insert-item): New functions.
(todo-test-get-archive): Remove, as subsumed by
todo-test--show.  Adjust all callers.
(todo-test--is-current-buffer): Rename from
todo-test-is-current-buffer and adjust uses.
(todo-test-item-highlighting): Use todo-test--show.
(todo-test-revert-buffer01, todo-test-revert-buffer02)
(todo-test-raise-lower-priority)
(todo-test-todo-mark-unmark-category, todo-test-move-item01)
(todo-test-move-item02, todo-test-move-item03)
(todo-test-move-item04, todo-test-move-item05)
(todo-test-toggle-item-header01)
(todo-test-toggle-item-header02)
(todo-test-toggle-item-header03)
(todo-test-toggle-item-header04)
(todo-test-toggle-item-header05)
(todo-test-toggle-item-header06)
(todo-test-toggle-item-header07): New tests.

* test/lisp/calendar/todo-mode-resources/todo-test-1.toda:
* test/lisp/calendar/todo-mode-resources/todo-test-1.todo:
Modify to accommodate new tests.
2017-07-07 22:03:21 +02:00
Stephen Berman
264dd81d7b todo-mode.el: Fix handling of hidden item headers (bug#27609)
* lisp/calendar/todo-mode.el (todo--item-headers-hidden): New variable.
(todo-toggle-item-header): Use it.  Make this command a noop
if the file has no items.
(todo-move-item, todo-item-done): Instead of concatenating the
items to move into one string, make a list of them to
facilitate handling hidden headers.  Adjust insertion accordingly.
(todo-archive-done-item): Handle hidden headers in archive file.
(todo-unarchive-items): Handle hidden headers in todo file.
(todo-backward-item): Use todo--item-headers-hidden and handle
moving backward work when item date-time headers are hidden.
(todo-remove-item): Delete date-time header overlay.
(todo-get-overlay, todo-insert-with-overlays): Make them work
with hidden date-time headers.
(todo-modes-set-2): Make todo--item-headers-hidden buffer local.
2017-07-07 17:48:14 +02:00
Stephen Berman
1cf6b15799 Fix several todo-mode bugs found while debugging bug#27609
* lisp/calendar/todo-mode.el (todo-toggle-mark-item): Calculate
current category only once.
(todo-mark-category): Update number of marked items to avoid
spurious duplication in todo-categories-with-marks alist and
corruption of the todo-categories alist.  Handle empty line
when there are no todo items and done items are shown.
(todo-set-item-priority): Make noop if called from
todo-raise-item-priority or todo-lower-item-priority when
point is on a done todo item or an empty line.
(todo-move-item): Use markers instead of integer positions to
correctly handle deleting the now moved items from the source
category (without markers an infinite loop arises when moving
marked item to a preceding category).
(todo-unarchive-items): Put point on the (first) restored done
item, instead of leaving it at the end of the done items
separator string.
(todo-revert-buffer): Ensure buffer remains read-only after
reverting.
2017-07-07 17:37:46 +02:00