Commit graph

40126 commits

Author SHA1 Message Date
Stefan Monnier
815d3827f9 * src/keyboard.c: Consolidate code into make_lispy_event
(clear_event): Change arg type.  Adjust callers.
(kbd_buffer_get_event): Move most special event handling to
make_lispy_event.
(make_lispy_event): Add missing cases, taken from kbd_buffer_get_event.
<SAVE_SESSION_EVENT>: Change return value to match what used to be built
in kbd_buffer_get_event.
2018-01-12 23:40:47 -05:00
Stefan Monnier
70e4bb394f * src/keyboard.c (kbd_buffer_get_event): Use 'switch' ...
...rather than a sequence of else-if.
2018-01-12 23:40:35 -05:00
Alan Mackenzie
0aec5b8a56 Make Fzlib_decompress_region always call the change hooks in a balanced way.
This means there will be exactly one call of each of before- and
after-change-functions, regardless of whether or not the decompression
succeeds, and these calls will refer to corresponding buffer regions.

src/decompress.c (struct decompress_unwind_data): add a new field, orig.
(unwind_decompress): Use del_range_2 and update_compositions in place of
del_range, to avoid unwanted change hook calls.  Call signal_after_change for
the failed case.
(Fzlib_decompress_region): Call modify_txt for a before-change-functions.  Set
the new field orig of unwind_data to the region's start.  Use del_range_2 and
update_compositions in place of del_range to avoid unwanted change hook
calls.  Call signal_after_change for the successful case.
2018-01-12 16:31:35 +00:00
Ken Brown
e6266cb95c Unbreak the Cygwin-w32 build
* src/keyboard.c (input_polling_used) [CYGWIN]: Restore.  This was
removed on Cygwin in the commit "On non-MS-Windows, omit unnecessary
polling functions".  But it is used in w32fns.c:x_make_frame_visible
in the Cygwin-w32 build.
2018-01-11 12:18:19 -05:00
Paul Eggert
ddb26f79b2 Merge from origin/emacs-26
7668717d6f Merge from Gnulib
9e4d523427 * lisp/epg.el (epg-start-sign): Replace obsolete functions.
26c58f31a8 Small fix for erc-logging-enabled
34b41e3bc6 Quieten semantic normal usage
e25f961e37 Avoid irrelevant hyperlink in doc string of 'epa-pinentry-...
ec2636513c * doc/misc/tramp.texi (Remote processes): Mention gdb rest...
918a052a42 Query background for gnome terminal version 3.22 (Bug#29716)
1dfc27576a Make pixel-wise scrolling less laggy
f92264fc2a Fix child frame placement issues (bug#29953)
a5f718c4c5 ; * doc/lispref/text.texi (Change Hooks): Fix last change.
e876f5f9fb Describe the precise interaction of complex primitives wit...
3a22097cf6 Fix valgrind report in call-interactively
d5f1c87bfe * src/editfns.c (Fsave_excursion): Doc fix.  (Bug#30001)
b8d74c4578 Fix mark-defun when there's no spaces between successive d...
a377c652b5 Fix Dired display and operations on file names with raw bytes
d9d6e8a04c ; Comments related to src/termcap.c
f8a07fa6b1 Improve documentation of 'gdb-many-windows'
f82400798e Fix failures in smerge-mode on MS-Windows
2018-01-09 15:29:25 -08:00
Paul Eggert
646c8e56f8 Merge from origin/emacs-26
d382d2bfc5 * etc/DEBUG (Getting control to the debugger): Fix grammar.
687af4c8e8 * lisp/vc/vc.el (vc-region-history): log-view-vc-fileset h...
43e2aafae3 Don't bind dframe events on load (Bug#29599)
ab31bf3c5f * lisp/textmodes/picture.el (picture-mode-exit): Doc fix. ...
ed44d92fa6 * lisp/textmodes/picture.el (picture-open-line): Doc fix. ...
b87a772612 Fix description of 'emacs-internal'
a5256da588 Update PROBLEMS with selection-related issues
c59ecb005e New customization variable for python-mode indentation (Bu...
4e20c8f220 Fix menu keyboard shortcuts on macOS (Bug#29595)

# Conflicts:
#	etc/NEWS
2018-01-09 15:29:25 -08:00
Alan Third
1daac66a6e Add macOS character-palette (bug#29837)
* lisp/ns-win.el (ns-do-show-character-palette): New function.
* src/nsfns.m (Sns_show_character_palette): New function.
* src/nsterm.m (EmacsView::insertText): Handle NSAttributedString.
2018-01-07 20:38:26 +00:00
Philipp Stephani
703ac3ea1c Allow inserting non-BMP characters
* src/coding.h (UTF_16_HIGH_SURROGATE_P, UTF_16_LOW_SURROGATE_P): Move
from coding.c and document.
(surrogates_to_codepoint): New function.

* src/nsterm.m (insertText:): Properly handle surrogate pairs.
2018-01-07 19:42:57 +01:00
Philipp Stephani
73526123f2 Remove incorrect use of AUTO_STRING
* src/lread.c (load_error_old_style_backquotes): Remove incorrect use
of AUTO_STRING.
2018-01-07 16:44:45 +01:00
Philipp Stephani
378be8df8d Improve error message for old-style backquotes
* src/lread.c (load_error_old_style_backquotes): Improve error message
if no file is being loaded.

* test/src/lread-tests.el (lread-tests--force-new-style-backquotes):
Adapt test.
2018-01-07 14:25:12 +01:00
Philipp Stephani
ddb74b2027 Add new variable to force new-style backquote interpretation.
* src/lread.c (syms_of_lread): Add new variable
'force-new-style-backquotes'.
(read_internal_start): Use it.

* test/src/lread-tests.el (lread-tests--force-new-style-backquotes):
New test.

* etc/NEWS: Document new variable.
2018-01-07 14:16:02 +01:00
Alan Mackenzie
f04a527a92 * fns.c (base64-decode-region): Add signal_after_change call for insertion. 2018-01-07 11:16:52 +00:00
Noam Postavsky
5f72004678 Revert "Fix command repetition with lexical-binding (Bug#29334)"
It does not work with more complicated interactive forms, because
byte-compile-lambda actually receives an intermediate form of code
rather than valid lisp source (Bug#29988).
* src/callint.c (Fcall_interactively):
* lisp/emacs-lisp/bytecomp.el (byte-compile-lambda): Revert previous
change, and update commentary.
2018-01-06 21:22:24 -05:00
Alan Third
f92264fc2a Fix child frame placement issues (bug#29953)
* src/nsterm.h (NS_PARENT_WINDOW_LEFT_POS):
(NS_PARENT_WINDOW_TOP_POS): Get the parent frame through the frame
struct as invisible child windows are detached from their parents in
NS.
* src/nsterm.m (x_set_offset): Offscreen frames have `nil' screen
value, so handle that gracefully.  Child frames with negative left and
top should be positioned relative to the bottom right of the parent
frame.
2018-01-06 23:10:21 +00:00
Alan Third
15cd18991c Allow setting tooltip colors in NS port
* src/nsfns.m (Fx_show_tip): Get face colors and apply them to the
tooltip.
* src/nsmenu.m (EmacsTooltip::setBackgroundColor):
(EmacsTooltip::setForegroundColor): New functions.
* src/nsterm.h (EmacsTooltip::setBackgroundColor):
(EmacsTooltip::setForegroundColor): New function prototypes.
2018-01-06 22:50:35 +00:00
Alan Mackenzie
5fd2297353 Make transpose-regions invoke before-change-functions only once.
In the case of two non-contiguous regions the same size, transpose-regions has
been calling before-change-functions twice, once for each region.  It now
calls it just once, for the minimal region spanning both single regions.

* src/editfns.c (Ftranspose_regions): Combine two calls of modify_text into
one.
2018-01-06 20:15:04 +00:00
Eli Zaretskii
3a22097cf6 Fix valgrind report in call-interactively
* src/callint.c (Fcall_interactively): Don't try to access more
bytes than are available in the interactive spec.  (Bug#30004)
2018-01-06 18:23:52 +02:00
Eli Zaretskii
d5f1c87bfe * src/editfns.c (Fsave_excursion): Doc fix. (Bug#30001) 2018-01-06 17:14:41 +02:00
Eli Zaretskii
a377c652b5 Fix Dired display and operations on file names with raw bytes
* src/coding.c (decode_coding): When flushing remaining raw bytes
from multibyte text, copy 2-byte forms of eight-bit-*
characters as single characters, not as 2 raw bytes.  (Bug#29189)
2018-01-06 10:56:21 +02:00
Glenn Morris
d9d6e8a04c ; Comments related to src/termcap.c 2018-01-05 18:50:31 -08:00
Noam Postavsky
ce48658191 Fix command repetition with lexical-binding (Bug#29334)
`call-interactively' relies on analyzing the source of `interactive'
forms in order to preserve arguments like (region-end) in the command
history, rather than just storing the resulting position.  However,
the byte-compiler does not preserve the source of the interactive form
when lexical-binding is in effect, because `call-interactively' would
evaluate the form with dynamic binding in that case.

To fix this, change `call-interactively' so that it checks compiled
functions for lexical-binding as well.  Then the byte-compiler can
preserve the source of interactive forms regardless of the value of
lexical-binding.

* src/callint.c (Fcall_interactively): Functions compiled with
lexical-binding have their arglist encoded as an integer, use this to
choose the right kind of binding for compiled functions too.
* lisp/emacs-lisp/bytecomp.el (byte-compile-lambda): Preserve the
uncompiled form of the interactive form when lexical-binding is
enabled too.
2018-01-03 20:51:28 -05:00
Paul Eggert
f8b4e87d5d Fix .gdbinit to work with Lisp_Word
Problem reported by Stefan Monnier (Bug#29957).
* src/.gdbinit (xgetptr, xgetint, xgettype):
Cast Lisp_Word value to EMACS_INT, since it might be a pointer now.
2018-01-02 22:38:48 -08:00
Alan Third
4e20c8f220 Fix menu keyboard shortcuts on macOS (Bug#29595)
* src/nsmenu.m (addItemWithWidgetValue)[NS_IMPL_COCOA]: It looks like
macOS 10.13 no longer ignores long modifier strings, so explicitly use
an empty string.
2018-01-01 13:32:49 +00:00
Paul Eggert
d263ce25cd Update copyright year to 2018
Run admin/update-copyright.
2018-01-01 01:25:56 -08:00
Paul Eggert
bb267f17f9 Merge from origin/emacs-26
63b04c11d5 Fix copyright years by hand
5c7dd8a783 Update copyright year to 2018
220a9ecba1 Merge from Gnulib
312c565566 Don't add empty keyboard macro to macro ring (Bug#24992)
39ca289a7a Allow customization of decoding of "man" command
f8240815ea * etc/NEWS: Add security consideration note on passphrase ...
0c78822c70 Fix subtle problem with scroll-down when scroll-margin is ...
acd289c5a4 Fix problems with indexing in User manual
b240c7846b * lisp/help.el (describe-key): Only (copy-sequence elt) wh...
e879a5444a * src/buffer.c (Frestore_buffer_modified_p): Fix bug#29846
81b1028b63 Improve documentation of 'inhibit-modification-hooks' and ...
7175496d7a Fix doc string of 'enable-recursive-minibuffers'
5b38406491 Fix documentation of delsel and of killing text

# Conflicts:
#	etc/NEWS
#	etc/refcards/ru-refcard.tex
2018-01-01 01:13:04 -08:00
Paul Eggert
5c7dd8a783 Update copyright year to 2018
Run admin/update-copyright.
2018-01-01 00:57:59 -08:00
Philipp Stephani
a5835dfee1 Improve error reporting when serializing non-Unicode strings to JSON
* src/coding.c (utf8_string_p): New helper function.
(syms_of_coding) <utf-8-unix>: Move from json.c.

* src/json.c (json_check_utf8): New helper function.
(lisp_to_json_toplevel_1, lisp_to_json): Use it.  To save a bit of
time, check for invalid UTF-8 strings only after encountering an
error, since Jansson already rejects them.

* test/src/json-tests.el (json-serialize/invalid-unicode): Adapt
expected error symbol.
2017-12-30 23:16:51 +01:00
Eli Zaretskii
0c78822c70 Fix subtle problem with scroll-down when scroll-margin is nonzero
* src/window.c (window_scroll_pixel_based): Account for
scroll-margin when scrolling down, i.e. moving window-start
towards the beginning of the buffer.  Reported by zhang cc
<ccsmile2008@outlook.com> in
http://lists.gnu.org/archive/html/emacs-devel/2017-12/msg00894.html.
2017-12-29 23:41:20 +02:00
Stefan Monnier
e879a5444a * src/buffer.c (Frestore_buffer_modified_p): Fix bug#29846
Don't mess with the lock file when inhibit_modification_hooks is set,
just like we do in prepare_to_modify_buffer_1.
2017-12-28 14:03:07 -05:00
Eli Zaretskii
81b1028b63 Improve documentation of 'inhibit-modification-hooks' and friends
* src/buffer.c (Fset_buffer_modified_p)
(Frestore_buffer_modified_p): Doc fixes.
* src/insdel.c (syms_of_insdel) <inhibit-modification-hooks>:
Document in the doc string that this variable also inhibits file
locks and active region handling.  (Bug#29846)
2017-12-28 19:23:34 +02:00
David Pathakjee
7175496d7a Fix doc string of 'enable-recursive-minibuffers'
* src/minibuf.c (syms_of_minibuf) <enable-recursive-minibuffers>:
Doc fix.  (Bug#29873)

Copyright-paperwork-exempt: yes
2017-12-28 18:59:42 +02:00
Glenn Morris
08e1438a3b Merge from origin/emacs-26
fd35804971 (origin/emacs-26) * doc/lispref/strings.texi (Case Convers...
89e257d71b * doc/misc/speedbar.texi (Top): Fix grammar.
a31ab5ffb5 * lisp/subr.el (with-silent-modifications): Doc fixes.
2ebc8dc3b6 Fix curved quotes in printed manual
e4a881b5cf Say that "gnus-cloud" is a parody name
13c59d0a83 More improvements for text.texi
7850b7620e Adjudicate review comments for the "Text" chapter of user ...
d7d3b14a99 * lisp/url/url-http.el (url-http-wait-for-headers-change-f...
f3819ad13e In C-h k <mouse-n>, alert user to existence of any matchin...
99054fbef9 * net/eww.el (eww): Handle URLs without host part.
de89c0b641 Make C-h c/k S-mouse-1 display message for mouse-appearanc...
720ed0b533 Avoid crashes when ':eval' deletes our frame
9105c9aa34 Fix scrolling up in pixel-scroll.el
b882d4ef11 Fix problems with ligatures in PDF version of ELisp manual
289dd53bb3 (elisp-flymake-byte-compile): Handle killed buffer in sent...
cf36c82127 Avoid some overfull lines in PDF lispref
b07b56a351 Avoid some overfull lines in PDF manual
6b3118f025 * doc/emacs/arevert-xtra.texi (Auto Reverting the Buffer M...
7ffb7b1e01 ; lispref nil/t markup fixes

# Conflicts:
#	doc/emacs/text.texi
2017-12-27 10:00:16 -08:00
Chris Zheng
cf13450db8 Fix MS-Windows build broken by recent changes in json.c
* src/json.c [WINDOWSNT] (fn_json_object_get): Define.
(init_json_functions) [WINDOWSNT]: Load json_object_get from DLL.
(Bug#29848)

Copyright-paperwork-exempt: yes
2017-12-25 19:21:58 +02:00
Paul Eggert
d87bdd2f8a Make main_thread_id private
* src/sysdep.c (main_thread_id) [FORWARD_SIGNAL_TO_MAIN_THREAD]:
Now static.
2017-12-24 11:30:20 -08:00
Paul Eggert
9982be8f01 On non-MS-Windows, omit unnecessary polling functions
* src/keyboard.c (poll_for_input_1) [!CYGWIN && !DOS_NT]: Remove.
(input_polling_used) [!DOS_NT]: Remove.
2017-12-24 11:30:20 -08:00
Philipp Stephani
f552a957ad Accept alists when serializing JSON
* src/json.c (lisp_to_json_toplevel_1): Also accept alists
representing objects.

* src/json.c (Fjson_serialize): Update docstring.

* test/src/json-tests.el (json-serialize/object): Add unit tests for
serializing alists.

* doc/lispref/text.texi (Parsing JSON): Document that serialization
functions accept alists.
2017-12-24 13:59:25 +01:00
Philipp Stephani
3455192777 JSON serialization: reject duplicate keys in hashtables
* src/json.c (lisp_to_json_toplevel_1): Reject duplicate keys in
hashtables.

* test/src/json-tests.el (json-serialize/object-with-duplicate-keys):
Add unit tests.
2017-12-24 13:52:30 +01:00
Eli Zaretskii
720ed0b533 Avoid crashes when ':eval' deletes our frame
* src/xdisp.c (display_mode_element): Signal an error if
':eval' somehow deletes the frame whose window we are
redisplaying. (Bug#29726)
2017-12-23 13:59:07 +02:00
Glenn Morris
3404a87f29 Merge from origin/emacs-26
34fcfc5 (origin/emacs-26, emacs-26) * lisp/emacs-lisp/inline.el (defi...
f7a62c2 Fix doc string of 'footnote-style-alist'
c3b6742 Improve documentation of selecting windows
861d110 Improve documentation of records
22b3075 * etc/NEWS: Mention the removal of pinentry.el.  (Bug#27445)
689526b Fix interactive spec of 'semantic-ia-show-variants'
90ca37f Fix documentation of 'mouse-drag-and-drop-region' and friends
d60faf3 Improve detection of speller version in ispell.el
a0e3b06 Document 'mouse-drag-and-drop-region' options and mention the...
164e84c Fix uses of 'nil' and 'non-nil' in manuals and a few more min...
798f07f Document that mode commands should be idempotent.
ad2a47c ; * src/xdisp.c (extend_face_to_end_of_line): Fix last change.
88ddf53 Fontify a CPP construct correctly when a comment follows with...
de7de9c Prevent infloop in redisplay on TTY frames
293720e Fix loss of documentation face in certain CC Mode doc comment...

# Conflicts:
#	etc/NEWS
#	lisp/mail/footnote.el
2017-12-22 13:23:16 -05:00
Philipp Stephani
c99f031212 JSON: improve some comments
* src/json.c (json_make_string, json_build_string): Document why
these functions are OK as-is.
2017-12-22 02:02:24 +01:00
Eli Zaretskii
ad2a47ce83 ; * src/xdisp.c (extend_face_to_end_of_line): Fix last change. 2017-12-21 20:28:55 +02:00
Eli Zaretskii
de7de9cc0c Prevent infloop in redisplay on TTY frames
* src/xdisp.c (extend_face_to_end_of_line): Avoid infloop when
filling up display margins with the default face's background.
(Bug#29789)
2017-12-21 19:43:07 +02:00
Glenn Morris
b1cf262a79 Merge from origin/emacs-26
b3f4a3a (origin/emacs-26) Special-case %DUMBFW for GnuTLS between 3.2...
c2ae057 Work around GnuTLS version issues with %DUMBFW (tiny change)
2f9d9ef ; Remove the mention of "plain C code" in the docstring as well
aca827b Merge branch 'widen-less' into emacs-26
87548f5 ; Rephrase NEWS entry a bit
da0d773 (emacs-26) ; * lisp/erc/erc.el: Update URL.
3a60515 * lisp/erc/erc.el (erc-shorten-server-name): Silence compiler...
471b6c1 ; Replace non-ascii quote characters in doc strings etc
7af7f5e Fix some more aliases to user options
79fb4b5 Fix some flymake aliases
b9fbc03 (origin/widen-less) Widen in indent-for-tab-command in the no...
446faf3 Replace the mention of c-indent-defun with js-indent-line
7e9eef0 Consolidate 'widen' calls

# Conflicts:
#	etc/NEWS
#	lisp/progmodes/flymake-proc.el
2017-12-20 21:15:43 -05:00
Glenn Morris
b5f140166a Merge from origin/emacs-26
4122d54 Fix updating scrollbar sizes when scaling is in effect
21a212f Collect GnuTLS extensions and use them to set %DUMBFW if supp...
936136e * test/lisp/emacs-lisp/derived-tests.el: Fix copy&paste lefto...
07b7fb9 * lisp/subr.el (delayed-after-hook-functions): Rename from .....
a5b0a4e * lisp/net/shr.el (shr-string-pixel-width): Return pixel-widt...
c51e797 python.el doc fixes
c62ced5 Make 'mouse-drag-and-drop-region' more robust and customizable
2017-12-20 21:14:19 -05:00
Ted Zlatanov
b3f4a3a5ae
Special-case %DUMBFW for GnuTLS between 3.2.5 and 3.5.1
* src/gnutls.c: Introduce HAVE_GNUTLS_EXT__DUMBFW for GnuTLS >= 3.2.5.
(Fgnutls_available_p): Use it.
2017-12-20 20:12:42 -05:00
Andy Moreton
c2ae057d0e
Work around GnuTLS version issues with %DUMBFW (tiny change)
* src/gnutls.c: Introduce HAVE_GNUTLS_EXT_GET_NAME and use it.
(init_gnutls_functions): Use it.
(Fgnutls_available_p): Use it (Bug#25061). Fix Vlibrary_cache bug.
2017-12-20 20:07:54 -05:00
Philipp Stephani
615c5cf0a6 Define helper functions only if needed
* src/json.c (JSON_HAS_ERROR_CODE): New define.
(json_parse_error): Use it.
(json_has_prefix, json_has_suffix): Define only if needed.
2017-12-20 18:36:35 +01:00
Philipp Stephani
4bb8e2879d * src/json.c (json_parse_error): Fix embarrassing bug. 2017-12-20 18:30:23 +01:00
Robert Pluim
4122d54067 Fix updating scrollbar sizes when scaling is in effect
* src/gtkutil.c (xg_update_scrollbar_pos): Update width of
scrollbar when scaling is in effect.
(xg_update_horizontal_scrollbar_pos): Update scrollbar size
when scaling is in effect.
2017-12-20 09:24:17 +01:00
Philipp Stephani
24efda1d28 Use Jansson's error code support if available
* src/json.c (json_parse_error): Use Jansson's error code support if
available.
2017-12-19 22:48:03 +01:00