Stefan Monnier [Wed, 13 Dec 2017 19:13:11 +0000 (14:13 -0500)]
Don't get fooled by open parens in column 0 within strings
* lisp/emacs-lisp/lisp.el (beginning-of-defun-raw):
Skip defun-prompt-regexp and open-paren-in-0 within strings and comments.
Glenn Morris [Wed, 13 Dec 2017 04:20:15 +0000 (23:20 -0500)]
* admin/gitmerge.el (gitmerge-missing):
Don't get confused by decorations.
Stefan Monnier [Wed, 13 Dec 2017 04:03:00 +0000 (23:03 -0500)]
* src/syntax.c (find_defun_start): Use syntax-ppss
(syms_of_syntax): New variable comment-use-syntax-ppss.
Glenn Morris [Wed, 13 Dec 2017 03:43:34 +0000 (19:43 -0800)]
; Merge from origin/emacs-26
The following commit was skipped:
45099bb90f (origin/emacs-26) Remove ObjC blocks (Bug#23753)
Glenn Morris [Wed, 13 Dec 2017 03:43:33 +0000 (19:43 -0800)]
Merge from origin/emacs-26
b0369d0536 Import the latest IVD_Sequences.txt
cd53b6399b Fix dired-do-compress when tar doesn't default to stdin (B...
51911dae14 Suppress warnings during elisp completion macroexpansion
a36a090a95 * lisp/progmodes/verilog-mode.el (verilog-mode): Fix typo ...
6a6e8e6e8d Make tramp-interrupt-process more robust
5bcd468a9e Make quail-input-method work when inhibit-read-only is non...
87baf1242e Fix 'fontset-name-p'
d23158777d Fix fontset documentation inconsistencies for bug#29630
a829cb8c8b Remove sentence from child frames section in Elisp manual
ad491c80e4 Avoid crashes in 'font-at' after 'set-fontset-font'
c73d2cdfd7 * lisp/files-x.el (connection-local-set-profile-variables)...
cefca2b8ac Add /etc/ssl/cert.pem to gnutls-trustfiles for macOS
122e7264b8 Fix tool-tip display when display margins are non-zero by ...
e1cc2037a9 Handle hash tables and vectors when reading/writing EIEIO ...
cda219c3df Improve interactive debugging commands in xdisp.c
1056b3cbcd Fix calculation of continuation_pixel_width in display engine
90e20804f5 Improve documentation of 'save-abbrevs'.
14f0230a48 Improve documentation of Dired
161b0e5493 * lisp/bookmark.el (bookmark-alist): Doc fix. (Bug#29551)
Stefan Monnier [Wed, 13 Dec 2017 03:40:27 +0000 (22:40 -0500)]
* lisp/subr.el (backtrace--print-frame): Use cl-prin1
* lisp/emacs-lisp/cl-print.el (cl-prin1): Catch errors, since callers
generally don't expect errors.
Glenn Morris [Wed, 13 Dec 2017 02:58:38 +0000 (21:58 -0500)]
Fix gitmerge handling of automatic conflict reslution
* admin/gitmerge.el (gitmerge-resolve): Reenable NEWS handling.
(gitmerge-resolve-unmerged): Commit after successful resolution.
(gitmerge-commit): New function, extracted from gitmerge-maybe-resume.
(gitmerge-maybe-resume): Use gitmerge-commit.
Paul Eggert [Tue, 12 Dec 2017 23:15:56 +0000 (15:15 -0800)]
Fix recently-introduced cast typo
* src/alloc.c (SDATA_OF_STRING): Put cast in right spot.
This matters only if GC_CHECK_STRING_BYTES, which is sort
of a coals-to-Newcastle situation if pointer bounds checking
is also enabled.
Paul Eggert [Tue, 12 Dec 2017 20:59:27 +0000 (12:59 -0800)]
Port --fcheck-pointer-bounds to --with-wide-int
* src/lisp (XSYMBOL) [__CHKP__ && !USE_LSB_TAG]:
Bypass pointer bounds checking here,
instead of failing the entire build.
(make_lisp_symbol): Improve comment.
Paul Eggert [Sat, 9 Dec 2017 21:57:38 +0000 (13:57 -0800)]
Narrow pointer bounds when appropriate
This typically occurs in a storage manager, where the caller
is expected to access only the newly-allocated object,
instead of using the returned value to access unrelated
parts of the heap.
* src/alloc.c (allocate_string, allocate_string_data)
(compact_small_strings, find_string_data_in_pure)
(sweep_strings, setup_on_free_list, allocate_vectorlike
(pure_alloc):
* src/bytecode.c (exec_byte_code):
* src/callint.c (Fcall_interactively):
* src/dispnew.c (scrolling):
* src/editfns.c (styled_format):
* src/frame.c (xrdb_get_resource, x_get_resource_string):
* src/fringe.c (Fdefine_fringe_bitmap):
* src/gmalloc.c (malloc, realloc, aligned_alloc):
Narrow pointer bounds when appropriate.
* src/alloc.c (SDATA_OF_STRING):
* src/lisp.h (make_lisp_symbol) [__CHKP__]:
Widen bounds here, though.
* src/bytecode.c, src/callint.c, src/dispnew.c, src/editfns.c:
* src/emacs.c, src/frame.c, src/fringe.c:
Include ptr-bounds.h.
* src/ptr-bounds.h (ptr_bounds_clip): New function.
Paul Eggert [Sat, 9 Dec 2017 21:57:38 +0000 (13:57 -0800)]
Port to gcc -fcheck-pointer-bounds
This is a minimal port, just to get Emacs running;
it does not attempt to make the pointer bounds at all tight.
* src/ptr-bounds.h: New file.
* src/alloc.c, src/gmalloc.c: Include it.
* src/alloc.c (live_string_holding, live_cons_holding)
(live_symbol_holding, live_misc_holding, garbage_collect_1)
(sweep_conses, sweep_floats):
* src/gmalloc.c (malloc_initialize_1, _free_internal_nolock)
(_realloc_internal_nolock):
Widen pointer bounds as necessary.
We're in a memory allocator so this is OK.
* src/lisp.h (lisp_h_XSYMBOL, make_lisp_symbol) [__CHKP__]:
Do not convert from pointer to integer and back again, so
that GCC does not lose track of pointer bounds.
(XSYMBOL) [__CHKP__ && !USE_LSB_TAG]: Now a compile-time error.
Although it's possible to support both -fcheck-pointer-bounds and
--with-wide-int, it's more work; keep things simple for now.
(DEFINE_LISP_SYMBOL) [__CHKP__]: Now a no-op, to avoid
trouble with unbounded pointers.
Paul Eggert [Tue, 12 Dec 2017 20:59:57 +0000 (12:59 -0800)]
Reimplement Lisp_Object as pointer-to-incomplete
This makes Lisp_Object values opaque pointers instead of integers,
which helps avoid the same sort of typos that
CHECK_LISP_OBJECT_TYPE helps to avoid, without having to wrap
pointers inside structures. This also looks forward to supporting
-fcheck-pointer-bounds.
* etc/DEBUG:
* src/.gdbinit (Lisp_Object_Printer.to_string):
Lisp_Object can be a pointer type now.
* src/alloc.c (macro_XPNTR, XPNTR):
* src/emacs-module.c (value_to_lisp_bits, lisp_to_value_bits):
* src/lisp.h (lisp_h_XLI, lisp_h_XIL):
(lisp_h_XUNTAG) [USE_LSB_TAG]:
(XUNTAG) [!USE_LSB_TAG]:
(Lisp_Object, TAG_PTR, make_lisp_symbol):
Support new Lisp_Object implementation as a pointer to an
incomplete type. Keep pointers pointers, as much as possible.
* src/alloc.c (macro_XPNTR_OR_SYMBOL_OFFSET, XPNTR_OR_SYMBOL_OFFSET):
Remove. All uses replaced by plain XPNTR.
* src/emacs-module.c: Work around GCC bug 83162.
* src/lisp.h (LISP_WORDS_ARE_POINTERS, lisp_h_XLP, lisp_h_XPL):
(XLP, XPL) [DEFINE_KEY_OPS_AS_MACROS]:
New macros.
(Lisp_Word, untagged_ptr, Lisp_Word_tag): New types.
(XLP, XPL): New inline functions.
(TAG_PTR): Now expands to an initializer, not an expression.
All uses changed.
(TAG_SYMOFFSET, XLI_BUILTIN_LISPSYM): Remove. All uses removed.
(LISPSYM_INITIALLY): Redo in terms of the new TAG_PTR.
(NIL_IS_ZERO): Redo without XLI_BUILTIN_LISPSYM.
* src/xwidget.c (webkit_javascript_finished_cb): Use XPL
instead of XIL with a non-EMACS_INT arg.
(Fxwidget_webkit_execute_script): Use XLP instead of XLI
followed by two conversions.
Alan Third [Sun, 10 Dec 2017 10:16:25 +0000 (10:16 +0000)]
Remove ObjC blocks (Bug#23753)
* src/macfont.m (macfont_get_glyph_for_character):
(mac_font_get_glyphs_for_variants): Inline Objective-C blocks.
(cherry picked from commit
4590f1d768adbb2120a2b02c614f7ed3b21a4a3e)
Ted Zlatanov [Tue, 12 Dec 2017 19:46:54 +0000 (14:46 -0500)]
Rename gnus-cloud method setter
* lisp/gnus/gnus-srvr.el (gnus-server-set-cloud-method-server)
(gnus-server-make-menu-bar, gnus-server-mode-map): Rename
`gnus-server-toggle-cloud-method-server' to
`gnus-server-set-cloud-method-server' (Bug#28845).
(gnus-server-toggle-cloud-server): Use "toggle" in docstring.
* lisp/gnus/gnus-cloud.el: Fix docstring.
Stefan Monnier [Tue, 12 Dec 2017 19:43:27 +0000 (14:43 -0500)]
* lisp/subr.el (run-mode-hooks): Fix last change
Eli Zaretskii [Tue, 12 Dec 2017 19:41:23 +0000 (21:41 +0200)]
Import the latest IVD_Sequences.txt
* admin/unidata/IVD_Sequences.txt: New version from
http://www.unicode.org/ivd/, the 2017-12-12 version of the Unicode
Ideographic Variation Database.
* src/macuvs.h: Regenerated.
Alan Third [Sun, 10 Dec 2017 10:16:25 +0000 (10:16 +0000)]
Remove ObjC blocks (Bug#23753)
* src/macfont.m (macfont_get_glyph_for_character):
(mac_font_get_glyphs_for_variants): Inline Objective-C blocks.
Michael Albinus [Tue, 12 Dec 2017 14:46:17 +0000 (15:46 +0100)]
Extend tramp-cache.el interface
* lisp/net/tramp.el (tramp-handle-add-name-to-file)
(tramp-handle-dired-uncache):
* lisp/net/tramp-adb.el (tramp-adb-handle-make-directory)
(tramp-adb-handle-delete-directory, tramp-adb-handle-delete-file)
(tramp-adb-handle-write-region, tramp-adb-handle-set-file-modes)
(tramp-adb-handle-set-file-times, tramp-adb-handle-copy-file)
(tramp-adb-handle-rename-file, tramp-adb-handle-process-file)
(tramp-adb-handle-start-file-process, tramp-adb-get-device)
(tramp-adb-maybe-open-connection):
* lisp/net/tramp-cache.el (tramp-flush-file-properties)
(tramp-flush-directory-properties, tramp-flush-file-function):
* lisp/net/tramp-cmds.el (tramp-cleanup-connection):
* lisp/net/tramp-gvfs.el (tramp-gvfs-do-copy-or-rename-file)
(tramp-gvfs-handle-delete-directory, tramp-gvfs-handle-delete-file)
(tramp-gvfs-handle-file-system-info, tramp-gvfs-handle-make-directory)
(tramp-gvfs-handle-write-region, tramp-gvfs-handler-mounted-unmounted)
(tramp-gvfs-send-command):
* lisp/net/tramp-sh.el (tramp-sh-handle-make-symbolic-link)
(tramp-sh-handle-set-file-modes, tramp-sh-handle-set-file-times)
(tramp-sh-handle-set-file-selinux-context, tramp-sh-handle-set-file-acl)
(tramp-sh-handle-add-name-to-file, tramp-sh-handle-copy-directory)
(tramp-do-copy-or-rename-file, tramp-do-copy-or-rename-file-out-of-band)
(tramp-sh-handle-make-directory, tramp-sh-handle-delete-directory)
(tramp-sh-handle-delete-file, tramp-sh-handle-dired-compress-file)
(tramp-process-sentinel, tramp-sh-handle-start-file-process)
(tramp-sh-handle-process-file, tramp-sh-handle-write-region):
* lisp/net/tramp-smb.el (tramp-smb-handle-add-name-to-file)
(tramp-smb-handle-copy-directory, tramp-smb-handle-copy-file)
(tramp-smb-handle-delete-directory, tramp-smb-handle-delete-file)
(tramp-smb-handle-file-acl, tramp-smb-handle-make-directory-internal)
(tramp-smb-handle-make-symbolic-link, tramp-smb-handle-process-file)
(tramp-smb-handle-rename-file, tramp-smb-handle-set-file-acl)
(tramp-smb-handle-set-file-modes, tramp-smb-handle-start-file-process)
(tramp-smb-handle-write-region, tramp-smb-maybe-open-connection):
Use them.
* lisp/net/tramp-cache.el (tramp-flush-file-properties)
(tramp-flush-directory-properties, tramp-flush-connection-properties):
Rename from `tramp-flush-file-property',`tramp-flush-directory-property'
and `tramp-flush-connection-property', respectively.
(tramp-flush-file-property, tramp-flush-connection-property):
New defuns.
Stefan Monnier [Tue, 12 Dec 2017 14:11:17 +0000 (09:11 -0500)]
* lisp/subr.el (run-mode-hooks): Set parse-sexp-lookup-properties
if syntax-propertize-function is set (bug#24749).
* lisp/progmodes/sh-script.el (sh-set-shell):
* lisp/textmodes/texinfo.el (texinfo-mode):
* lisp/textmodes/mhtml-mode.el (mhtml-mode):
* lisp/progmodes/js.el (js-mode): Don't set parse-sexp-lookup-properties.
Glenn Morris [Tue, 12 Dec 2017 08:00:33 +0000 (00:00 -0800)]
Make functions invocation-directory and invocation-name obsolete
* lisp/subr.el (invocation-directory, invocation-name):
Mark the function versions as obsolete. (Bug#10476)
* lisp/startup.el (tty-handle-args):
* lisp/term/common-win.el (x-handle-xrm-switch, x-handle-name-switch):
* lisp/term/ns-win.el (top-level):
* lisp/term/pc-win.el (top-level):
* lisp/term/w32-win.el (window-system-initialization):
* lisp/term/x-win.el (top-level, x-handle-parent-id)
(x-handle-smid, window-system-initialization):
* test/lisp/htmlfontify-tests.el (htmlfontify-bug25468):
Use invocation-directory and invocation-name as variables.
Glenn Morris [Tue, 12 Dec 2017 02:17:55 +0000 (21:17 -0500)]
* lisp/mail/emacsbug.el (report-emacs-bug): Try "sw_vers" on Darwin.
Max [Tue, 31 Oct 2017 23:33:59 +0000 (02:33 +0300)]
Fix dired-do-compress when tar doesn't default to stdin (Bug#29094)
* lisp/dired-aux.el (dired-compress-file-suffixes): Use argument '-f-'
to write to stdout rather than relying on the default (the choice of
default is decided when compiling tar, BSD systems usually set it to a
tape drive). Drop '-v', since the output is not used anywhere.
Copyright-paperwork-exempt: yes
Noam Postavsky [Tue, 5 Dec 2017 01:01:40 +0000 (20:01 -0500)]
Suppress warnings during elisp completion macroexpansion
Errors are already suppressed, therefore it is logical to suppress
warnings as well. Some macros (e.g., use-package) may produce
warnings when given the `elisp--witness--lisp' symbol.
* lisp/progmodes/elisp-mode.el (elisp--local-variables): Let-bind
warning-minimum-log-level to :emergency.
Chunyang Xu [Sun, 11 Sep 2016 11:39:30 +0000 (19:39 +0800)]
* lisp/progmodes/verilog-mode.el (verilog-mode): Fix typo (Bug#24410).
Rasmus [Wed, 6 Dec 2017 14:24:22 +0000 (15:24 +0100)]
; NEWS: Update Org version number
(cherry picked from commit
cb3d979b740d163088610067a5eec87c0d34fea9)
Glenn Morris [Mon, 11 Dec 2017 18:25:41 +0000 (13:25 -0500)]
* admin/gitmerge.el (gitmerge-resolve): Disable buggy NEWS handling.
Michael Albinus [Mon, 11 Dec 2017 08:36:23 +0000 (09:36 +0100)]
Make tramp-interrupt-process more robust
* lisp/net/tramp.el (tramp-interrupt-process): Fall back to
the default implementation if there's no success.
Katsumi Yamaoka [Mon, 11 Dec 2017 01:27:17 +0000 (01:27 +0000)]
Make quail-input-method work when inhibit-read-only is non-nil (bug#29504)
* lisp/international/quail.el (quail-input-method): Work not only
when buffer-read-only is nil but also when inhibit-read-only is non-nil
(bug#29504).
Eric Abrahamsen [Sun, 26 Nov 2017 02:42:55 +0000 (18:42 -0800)]
Obsolete gnus-remove-if and gnus-remove-if-not
Use seq-remove and seq-filter, respectively, instead.
* lisp/gnus/gnus-util.el: Remove functions and replace with
define-obsolete-function-alias calls.
* lisp/gnus/gnus.el: Require seq here.
* lisp/gnus/gnus-art.el (gnus-mime-view-part-as-type):
* lisp/gnus/gnus-icalendar.el (gnus-icalendar-event--get-attendee-names):
* lisp/gnus/gnus-score.el (gnus-summary-score-effect):
* lisp/gnus/gnus-sum.el (gnus-read-move-group-name):
* lisp/gnus/gnus-topic.el (gnus-group-prepare-topics):
* lisp/gnus/gnus-win.el (gnus-get-buffer-window):
* lisp/gnus/nnmail.el (nnmail-purge-split-history):
* lisp/gnus/nnmaildir.el (nnmaildir-request-scan):
* lisp/gnus/nnrss.el (nnrss-make-hash-index): Replace calls in all
these locations.
Eli Zaretskii [Sun, 10 Dec 2017 17:45:25 +0000 (19:45 +0200)]
Fix 'fontset-name-p'
* lisp/international/fontset.el (fontset-name-p): Make the
function work with full fontset names and fontset alias names.
Eli Zaretskii [Sun, 10 Dec 2017 17:19:40 +0000 (19:19 +0200)]
Fix fontset documentation inconsistencies for bug#29630
* doc/lispref/display.texi (Face Attributes): Don't document
:family as accepting a fontset. Document that :font accepts a
fontset.
* lisp/faces.el (set-face-attribute): Doc fix.
Philipp Stephani [Sun, 10 Dec 2017 17:03:04 +0000 (18:03 +0100)]
Skip tests for json.c unless compiled with native JSON support.
* test/src/json-tests.el (json-serialize/roundtrip)
(json-serialize/object, json-parse-string/object)
(json-parse-string/string, json-serialize/string)
(json-parse-string/incomplete, json-parse-string/trailing)
(json-parse-buffer/incomplete, json-parse-buffer/trailing): Skip if
JSON functions aren't available.
Eli Zaretskii [Sun, 10 Dec 2017 16:36:37 +0000 (18:36 +0200)]
Support dynamic loading of libjansson on MS-Windows
* src/json.c [WINDOWSNT]: Define fn_* function pointers to jansson
functions.
(json_delete) [WINDOWSNT]: A wrapper around fn_json_delete, needed
by json_decref.
(init_json_functions) [WINDOWSNT]: New function.
(Fjson_serialize, Fjson_insert, Fjson_parse_string)
(Fjson_parse_buffer) [WINDOWSNT]: Call init_json_functions if
needed, and record JSON in Vlibrary_cache.
* src/emacs.c (main): Don't call init_json on WINDOWSNT.
* src/w32fns.c (syms_of_w32fns): DEFSYM "json".
* lisp/term/w32-win.el (dynamic-library-alist): Add JSON DLL to
the list.
* configure.ac (HAVE_JSON): Empty JSON_LIBS for MinGW.
* nt/INSTALL.W64:
* nt/INSTALL: Add information about libjansson.
Philipp Stephani [Sun, 10 Dec 2017 15:55:31 +0000 (16:55 +0100)]
* configure.ac: Fix minimum Jansson version requirement.
Wilfred Hughes [Sun, 10 Dec 2017 13:34:06 +0000 (13:34 +0000)]
Ensure that we can find definitions when buffer is narrowed
find-function-search-for-symbol will reuse the existing buffer if
we've already opened the file that contains this symbol. However, if
the user has narrowed that buffer, we can't find definitions outside
the narrowed area.
Instead, search the whole file to find definitions, and teach the help
buttons to widen if necessary.
* lisp/emacs-lisp/find-func.el (find-function-search-for-symbol):
Search the whole buffer for the target symbol.
* lisp/help-mode.el: Help buttons now widen the target buffer, if
narrowing is in effect and the target position is not in that range.
Philipp Stephani [Mon, 18 Sep 2017 08:51:39 +0000 (10:51 +0200)]
Implement native JSON support using Jansson
* configure.ac: New option --with-json.
* src/json.c (Fjson_serialize, Fjson_insert, Fjson_parse_string)
(Fjson_parse_buffer): New defuns.
(json_malloc, json_free, json_has_prefix, json_has_suffix)
(json_make_string, json_build_string, json_encode)
(json_out_of_memory, json_parse_error)
(json_release_object, check_string_without_embedded_nulls, json_check)
(lisp_to_json, lisp_to_json_toplevel, lisp_to_json_toplevel_1)
(json_insert, json_insert_callback, json_to_lisp)
(json_read_buffer_callback, Fjson_parse_buffer, define_error): New
helper functions.
(init_json, syms_of_json): New file.
* src/lisp.h: Declaration for init_json and syms_of_json.
* src/emacs.c (main): Enable JSON functions.
* src/eval.c (internal_catch_all, internal_catch_all_1): New helper
functions to catch all signals.
(syms_of_eval): Add uninterned symbol to signify out of memory.
* src/Makefile.in (JSON_LIBS, JSON_CFLAGS, JSON_OBJ, EMACS_CFLAGS)
(base_obj, LIBES): Compile json.c if --with-json is enabled.
* test/src/json-tests.el (json-serialize/roundtrip)
(json-serialize/object, json-parse-string/object)
(json-parse-string/string, json-serialize/string)
(json-parse-string/incomplete, json-parse-string/trailing)
(json-parse-buffer/incomplete, json-parse-buffer/trailing): New unit
tests.
* doc/lispref/text.texi (Parsing JSON): New manual section.
Michael Albinus [Sun, 10 Dec 2017 09:48:34 +0000 (10:48 +0100)]
* doc/misc/tramp.texi (Archive file names): Precise example.
Martin Rudalics [Sun, 10 Dec 2017 09:38:08 +0000 (10:38 +0100)]
Remove sentence from child frames section in Elisp manual
* doc/lispref/frames.texi (Child Frames): Remove one sentence.
Suggested by Bob Weiner <rsw@gnu.org>.
Eli Zaretskii [Sun, 10 Dec 2017 08:42:34 +0000 (10:42 +0200)]
Avoid crashes in 'font-at' after 'set-fontset-font'
* src/fontset.c (free_realized_fontsets): Call
recompute_basic_faces, so that the basic faces are available to
any Lisp that calls this function, e.g. via set-fontset-font.
(Bug#29632)
Ted Zlatanov [Sun, 10 Dec 2017 03:52:50 +0000 (22:52 -0500)]
* lisp/files-x.el (connection-local-set-profile-variables): Fix docstring.
Glenn Morris [Sun, 10 Dec 2017 03:17:18 +0000 (19:17 -0800)]
* test/lisp/net/tramp-archive-tests.el
(tramp-archive-test06-directory-file-name): Add skip condition.
Ted Zlatanov [Sat, 9 Dec 2017 22:52:01 +0000 (17:52 -0500)]
Add /etc/ssl/cert.pem to gnutls-trustfiles for macOS
Problem reported by Mark Ferlatte (Bug#28603).
* lisp/net/gnutls.el (gnutls-trustfiles): Add /etc/ssl/cert.pem for macOS.
Philipp Stephani [Sat, 9 Dec 2017 21:03:31 +0000 (22:03 +0100)]
* lisp/emacs-lisp/advice.el: Stop using old-style backquotes
Philipp Stephani [Tue, 3 Oct 2017 14:14:54 +0000 (16:14 +0200)]
Raise an error when detecting old-style backquotes.
They have been deprecated for a decade now.
* src/lread.c (Fload): Don't use record_unwind_protect to warn about
old-style backquotes any more. They now generate a hard error.
(read1): Signal an error when detecting old-style backquotes. Remove
unused label.
(syms_of_lread): Remove unused internal variable
'lread--old-style-backquotes'.
(load_error_old_style_backquotes): Rename from
'load_warn_oldstyle_backquotes'. Signal an error.
* lisp/emacs-lisp/bytecomp.el (byte-compile-from-buffer): Remove check
from byte compiler. It isn't triggered any more.
* test/src/lread-tests.el (lread-tests--old-style-backquotes): Adapt
unit test.
* test/lisp/emacs-lisp/bytecomp-tests.el
(bytecomp-tests--old-style-backquotes)
(bytecomp-tests-function-put): Adapt unit tests.
* etc/NEWS: Document change.
Eli Zaretskii [Sat, 9 Dec 2017 20:06:19 +0000 (22:06 +0200)]
Fix tool-tip display when display margins are non-zero by default
* src/buffer.h (bset_left_margin_cols, bset_right_margin_cols):
New inline functions.
* src/xfns.c (Fx_show_tip):
* src/w32fns.c (Fx_show_tip): Force display margins of the tip
buffer to zero, as it will be displayed in a pseudo-window, which
doesn't support display margins. (Bug#29627)
Philipp Stephani [Sun, 15 Oct 2017 19:32:17 +0000 (21:32 +0200)]
Work around reader limitations for old-style backquotes.
See Bug#28759.
* admin/grammars/make.by: Escape ,@ to avoid old-style backquote
detection
Eric Abrahamsen [Tue, 5 Dec 2017 22:41:50 +0000 (14:41 -0800)]
Handle hash tables and vectors when reading/writing EIEIO objects
* lisp/emacs-lisp/eieio.el (eieio-override-prin1): EIEIO objects
printed with `prin1' can no longer be read with `read'. Make sure
they are printed with object-write instead, even when they're inside
hash tables and vectors.
* lisp/emacs-lisp/eieio-base.el (eieio-persistent-validate/fix-slot-value):
Check for written representations of objects inside hash tables and
vectors, and reconstruct them.
Eli Zaretskii [Sat, 9 Dec 2017 15:36:33 +0000 (17:36 +0200)]
; Improve NEWS entry of the last change.
Michael Albinus [Sat, 9 Dec 2017 13:34:30 +0000 (14:34 +0100)]
Support for archive file names
* doc/misc/tramp.texi (Top, Usage): Add entry "Archive file names".
(History): Mention archive file names.
(GVFS based methods): Mentio "http" and "https" methods.
(Archive file names): New node.
(Frequently Asked Questions): Add Emacs 27 as supported version.
* etc/NEWS: Mention tramp-archive.el.
* lisp/net/tramp.el (tramp-run-real-handler)
(tramp-register-file-name-handlers)
(tramp-register-file-name-handlers, tramp-unload-file-name-handlers):
Add `tramp-archive-file-name-handler'.
(tramp-handle-file-name-completion): Do not insist in Tramp
file names.
* lisp/net/tramp-archive.el: New package.
* lisp/net/tramp-cache.el (tramp-dump-connection-properties): Check for
"archive" method.
* lisp/net/tramp-cmds.el (tramp-cleanup-all-connections): Cleanup also
local copies of archives.
* lisp/net/tramp-compat.el (tramp-compat-use-url-tramp-p): New defconst.
* lisp/net/tramp-gvfs.el (tramp-gvfs-methods): Add "http" and "https".
(tramp-gvfs-gio-mapping): Add "gvfs-mount".
(tramp-gvfs-handler-mounted-unmounted)
(tramp-gvfs-connection-mounted-p, tramp-gvfs-mount-spec):
Handle "uri" and "http".
(tramp-gvfs-unmount): New defun.
* test/lisp/net/tramp-archive-tests.el: New package.
Michael Albinus [Sat, 9 Dec 2017 13:30:04 +0000 (14:30 +0100)]
* test/Makefile.in (url-tramp-test.log): Do not handle special.
Eli Zaretskii [Sat, 9 Dec 2017 13:21:21 +0000 (15:21 +0200)]
Improve interactive debugging commands in xdisp.c
* src/xdisp.c (Fdump_glyph_row, Fdump_tool_bar_row): Allow to
specify ROW via prefix argument. Fix the doc strings.
Eli Zaretskii [Sat, 9 Dec 2017 12:45:31 +0000 (14:45 +0200)]
Fix calculation of continuation_pixel_width in display engine
* src/xdisp.c (display_line): Remove incorrect increment of
it->continuation_pixel_width when word-wrap is used. (Bug#29594)
Michael Albinus [Sat, 9 Dec 2017 12:22:52 +0000 (13:22 +0100)]
Sync with Tramp 2.4.0-pre
* doc/misc/trampver.texi:
* lisp/net/trampver.el: Change version to "2.4.0-pre".
* lisp/net/tramp-adb.el (tramp-adb-file-name-handler-alist):
Use `tramp-handle-file-directory-p'.
(tramp-adb-parse-device-names)
(tramp-adb-handle-expand-file-name)
(tramp-adb-handle-file-truename, tramp-adb-handle-process-file):
Adapt `tramp-make-tramp-file-name' call.
(tramp-adb-handle-file-directory-p): Remove.
(tramp-adb-maybe-open-connection): Do not set
tramp-current-*.
* lisp/net/tramp-cache.el (tramp-get-hash-table):
Adapt `tramp-make-tramp-file-name' call.
* lisp/net/tramp-cmds.el (tramp-cleanup-connection): Do not set
tramp-current-*.
* lisp/net/tramp-gvfs.el (tramp-gvfs-file-name-handler-alist):
Use `tramp-handle-file-directory-p'.
(tramp-gvfs-dbus-event-error): Trace with verbosity 6.
(tramp-gvfs-do-copy-or-rename-file): Use `file-truename'.
(tramp-gvfs-handle-file-directory-p): Remove.
(tramp-gvfs-handler-askpassword): Do not set tramp-current-*.
* lisp/net/tramp-sh.el (tramp-do-copy-or-rename-file-out-of-band)
(tramp-sh-handle-start-file-process)
(tramp-maybe-open-connection, tramp-get-remote-path): Do not
set tramp-current-*.
(tramp-maybe-open-connection): Set "password-vector" property.
* lisp/net/tramp-smb.el (tramp-smb-file-name-handler-alist):
Use `tramp-handle-file-accessible-directory-p' and
`tramp-handle-file-directory-p'.
(tramp-smb-handle-copy-directory, tramp-smb-handle-file-acl)
(tramp-smb-handle-set-file-acl)
(tramp-smb-maybe-open-connection): Do not set tramp-current-*.
(tramp-smb-handle-file-directory-p): Remove.
(tramp-smb-handle-make-symbolic-link):
Use `tramp-get-connection-buffer' rather than `buffer-name'.
* lisp/net/tramp.el (tramp-current-method, tramp-current-user)
(tramp-current-domain, tramp-current-host)
(tramp-current-port): Remove.
(tramp-dissect-file-name): No special handling of localname anymore.
(tramp-make-tramp-file-name): Reimplemnt with new signature.
(tramp-completion-make-tramp-file-name): Fix docstring.
(tramp-get-buffer, tramp-handle-file-name-as-directory)
(tramp-handle-file-name-directory)
(tramp-check-cached-permissions, tramp-local-host-p)
(tramp-get-remote-tmpdir, tramp-clear-passwd):
Adapt `tramp-make-tramp-file-name' call.
(tramp-completion-handle-file-name-all-completions)
(tramp-action-login, tramp-read-passwd): Do not set
tramp-current-*.
(tramp-handle-file-directory-p): New defun.
(tramp-handle-verify-visited-file-modtime): Remove superfluous
`with-parsed-tramp-file-name'.
(tramp-process-actions, tramp-read-passwd):
Use "password-vector" property.
(tramp-call-process, tramp-call-process-region): No special
setting of vec.
(tramp-read-passwd): Handle "login-as" property.
* test/lisp/net/tramp-tests.el (tramp-test21-file-links):
Special code for "smb".
Eli Zaretskii [Sat, 9 Dec 2017 11:43:29 +0000 (13:43 +0200)]
Improve documentation of 'save-abbrevs'.
* doc/emacs/abbrevs.texi (Saving Abbrevs): Document the 'silently'
value of 'save-abbrevs'. Suggested by Alex Branham
<alex.branham@gmail.com> in emacs-manual-bugs@gnu.org.
Eli Zaretskii [Sat, 9 Dec 2017 11:29:11 +0000 (13:29 +0200)]
Improve documentation of Dired
* doc/emacs/dired.texi (Dired): Mention that the Dired buffer can
be made modifiable in Wdired. Suggested by Alex Branham
<alex.branham@gmail.com> in emacs-manual-bugs@gnu.org.
Michael Albinus [Fri, 8 Dec 2017 15:37:53 +0000 (16:37 +0100)]
Minor Tramp fixes
* lisp/net/tramp-gvfs.el (tramp-gvfs-do-copy-or-rename-file):
Fix a bug when renaming.
* test/lisp/net/tramp-tests.el (tramp-test21-file-links): Extend test.
(tramp-test42-delay-load, tramp-test42-remote-load-path):
Skip unless Emacs >= 26.
Glenn Morris [Fri, 8 Dec 2017 01:30:39 +0000 (20:30 -0500)]
* lisp/help-mode.el (help-function-def):
Allow help-make-xrefs to call with one argument. (Bug#29611)
Martin Rudalics [Thu, 7 Dec 2017 08:55:21 +0000 (09:55 +0100)]
Fix doc-string of 'display-buffer-in-side-window'
* lisp/window.el (display-buffer-in-side-window): In doc-string
clarify why the window returned gets dedicated to its buffer.
Michael Albinus [Wed, 6 Dec 2017 19:49:30 +0000 (20:49 +0100)]
Fix Bug#29579
* lisp/files.el (file-name-non-special):
Inhibit `file-name-handler-alist' only for some operations.
Add missing operations. (Bug#29579)
* lisp/net/tramp-compat.el (tramp-compat-file-name-quote):
Do not quote if it is quoted already.
* lisp/net/tramp-smb.el (tramp-smb-handle-insert-directory):
Use `copy-tree' but `copy-sequence'.
* lisp/net/tramp.el (tramp-handle-file-truename): Handle several
trailing slashes correctly.
* test/lisp/net/tramp-tests.el (tramp-test11-copy-file)
(tramp-test12-rename-file, tramp-test24-file-acl)
(tramp-test25-file-selinux, tramp--test-check-files):
Handle also quoted file names.
(tramp-test21-file-links): Fix file name quoting test.
(tramp-test24-file-acl): Be more robust for "smb" method.
(tramp-test35-make-auto-save-file-name): Enable hidden test cases.
Michael Albinus [Sat, 9 Dec 2017 10:23:03 +0000 (11:23 +0100)]
Merge from origin/emacs-26
7eea3144d4 Minor Tramp fixes
c0a670a8b5 * lisp/help-mode.el (help-function-def): Allow help-make-x...
05720162c1 Fix doc-string of 'display-buffer-in-side-window'
a1bbc49015 Fix Bug#29579
cb3d979b74 ; NEWS: Update Org version number
Eli Zaretskii [Sat, 9 Dec 2017 09:18:06 +0000 (11:18 +0200)]
* lisp/bookmark.el (bookmark-alist): Doc fix. (Bug#29551)
Michael Albinus [Sat, 9 Dec 2017 09:13:03 +0000 (10:13 +0100)]
; Merge from origin/emacs-26
The following commit was skipped:
445eefd238 Backport: Update Org to v9.1.4
Michael Albinus [Sat, 9 Dec 2017 09:13:02 +0000 (10:13 +0100)]
Merge from origin/emacs-26
5381c70b7a In windows.texi mention special splitting behavior of side...
46d62b9f36 * lisp/gnus/gnus-group.el (gnus-group-mode-map): Bind [fol...
1ef1dbdbc5 Avoid compilation warning in xterm.c
5cf3c26f2d * README: Document all the top-level directories. (Bug#29...
e9ea2065a8 Don't enable erc modules on simply loading erc.el
Michael Albinus [Sat, 9 Dec 2017 09:13:02 +0000 (10:13 +0100)]
; Merge from origin/emacs-26
The following commit was skipped:
4b06af0643 Allow shr to use data: URLs without encoding
Michael Albinus [Sat, 9 Dec 2017 09:13:02 +0000 (10:13 +0100)]
Merge from origin/emacs-26
1fdac2d65c Don't add newlines in minibuffer history
de68f337e3 modhelp.py: Support Python 3 (Bug#24954)
afb04f7f3c Use forward slashes for python w32 config example (Bug#21656)
Paul Eggert [Fri, 8 Dec 2017 21:30:06 +0000 (13:30 -0800)]
Fix core dump from (format "%#08x" n) patch
Problem reported by Glenn Morris (Bug#29609#13).
* src/editfns.c (styled_format): Null-terminate output,
as later code now expects this.
Paul Eggert [Fri, 8 Dec 2017 20:11:25 +0000 (12:11 -0800)]
Fix daylight-saving inference for Irish time
* lisp/calendar/cal-dst.el (calendar-dst-find-data): Do not assume
that daylight-saving time has a greater UT offset than standard
time. The reverse is true in Ireland, where standard time "IST"
is UTC +01 in summer and daylight-saving time "GMT" is UTC +00 in
winter. The current Irish rules are given by the POSIX setting
TZ='IST-1GMT0,M10.5.0,M3.5.0/1'.
Michael Albinus [Fri, 8 Dec 2017 15:37:53 +0000 (16:37 +0100)]
Minor Tramp fixes
* lisp/net/tramp-gvfs.el (tramp-gvfs-do-copy-or-rename-file):
Fix a bug when renaming.
* test/lisp/net/tramp-tests.el (tramp-test21-file-links): Extend test.
(tramp-test42-delay-load, tramp-test42-remote-load-path):
Skip unless Emacs >= 26.
Paul Eggert [Fri, 8 Dec 2017 02:07:54 +0000 (18:07 -0800)]
Fix zero-padding bug with (format "%#08x" n)
Problem reported by Gustaf Waldemarson (Bug#29609).
* src/editfns.c (styled_format):
Put zero padding after a leading "0x", not before.
* test/src/editfns-tests.el (format-sharp-0-x): New test.
Glenn Morris [Fri, 8 Dec 2017 01:30:39 +0000 (20:30 -0500)]
* lisp/help-mode.el (help-function-def):
Allow help-make-xrefs to call with one argument. (Bug#29611)
Martin Rudalics [Thu, 7 Dec 2017 08:55:21 +0000 (09:55 +0100)]
Fix doc-string of 'display-buffer-in-side-window'
* lisp/window.el (display-buffer-in-side-window): In doc-string
clarify why the window returned gets dedicated to its buffer.
Michael Albinus [Wed, 6 Dec 2017 19:49:30 +0000 (20:49 +0100)]
Fix Bug#29579
* lisp/files.el (file-name-non-special):
Inhibit `file-name-handler-alist' only for some operations.
Add missing operations. (Bug#29579)
* lisp/net/tramp-compat.el (tramp-compat-file-name-quote):
Do not quote if it is quoted already.
* lisp/net/tramp-smb.el (tramp-smb-handle-insert-directory):
Use `copy-tree' but `copy-sequence'.
* lisp/net/tramp.el (tramp-handle-file-truename): Handle several
trailing slashes correctly.
* test/lisp/net/tramp-tests.el (tramp-test11-copy-file)
(tramp-test12-rename-file, tramp-test24-file-acl)
(tramp-test25-file-selinux, tramp--test-check-files):
Handle also quoted file names.
(tramp-test21-file-links): Fix file name quoting test.
(tramp-test24-file-acl): Be more robust for "smb" method.
(tramp-test35-make-auto-save-file-name): Enable hidden test cases.
Rasmus [Wed, 6 Dec 2017 14:02:15 +0000 (15:02 +0100)]
Backport: Update Org to v9.1.4
Please note this is a bugfix release. See etc/ORG-NEWS for details.
(cherry picked from commit
567b5efe1f338c10c574758fb968915c5c34c909)
Rasmus [Wed, 6 Dec 2017 14:24:22 +0000 (15:24 +0100)]
; NEWS: Update Org version number
Rasmus [Wed, 6 Dec 2017 14:21:02 +0000 (15:21 +0100)]
Revert "; Add entry for new Org version in NEWS file"
This reverts commit
793ba92c50d69e1796ea2122520dea872007bca7.
Rasmus [Wed, 6 Dec 2017 14:05:50 +0000 (15:05 +0100)]
; Add entry for new Org version in NEWS file
Rasmus [Wed, 6 Dec 2017 14:02:15 +0000 (15:02 +0100)]
Update Org to v9.1.4
Please note this is a bugfix release. See etc/ORG-NEWS for details.
Martin Rudalics [Wed, 6 Dec 2017 08:53:30 +0000 (09:53 +0100)]
In windows.texi mention special splitting behavior of side and atomic windows
* doc/lispref/windows.texi (Splitting Windows): Add note about
and links to side and atomic windows.
Stefan Monnier [Wed, 6 Dec 2017 01:53:28 +0000 (20:53 -0500)]
* lisp/files.el (find-alternate-file): Use selected-window even if dedicated
Katsumi Yamaoka [Tue, 5 Dec 2017 08:22:20 +0000 (08:22 +0000)]
* lisp/gnus/gnus-group.el (gnus-group-mode-map):
Bind [follow-link] to mouse-face, not 'mouse-face (bug#29538).
Stefan Monnier [Mon, 4 Dec 2017 22:03:32 +0000 (17:03 -0500)]
* lisp/calendar/diary-lib.el: Use lexical-binding
(diary-pull-attrs): Avoid let...setq.
(diary-list-entries-2, diary-mark-entries-1)
(diary-font-lock-date-forms, diary-fancy-date-pattern):
Use calendar-dlet* around uses of diary-date-forms.
(list-only, number, date, entry): Don't declare globally.
(diary-including): Declare.
(diary-saved-point, date-string): Move before first use.
(diary-list-entries): Use calendar-dlet* around
diary-nongregorian-listing-hook and 'diary-list-entries-hook.
(displayed-year, displayed-month): Move before first use.
(diary-sexp-entry): Use calendar-let* around evaluation of the sexp.
(diary-remind): Use calendar-let* around evaluation of sexp.
Stefan Monnier [Mon, 4 Dec 2017 20:50:14 +0000 (15:50 -0500)]
* lisp/calendar/cal-dst.el: Use lexical-binding
(calendar-time-zone-daylight-rules, calendar-dst-starts)
(calendar-dst-ends, dst-in-effect): Bind `year' explicitly around `eval'.
Stefan Monnier [Mon, 4 Dec 2017 20:39:32 +0000 (15:39 -0500)]
* lisp/calendar/todo-mode.el: Use calendar-dlet*
(dayname, monthname, day, month, year): Don't declare globally.
(todo-date-pattern, todo-edit-item--header)
(todo-convert-legacy-date-time, todo-read-date):
Use calendar-dlet* around uses of calendar-date-display-form.
Stefan Monnier [Mon, 4 Dec 2017 20:36:22 +0000 (15:36 -0500)]
* lisp/calendar/solar.el: Use lexical-binding
(date): Don't declare globally.
(solar-time-string): Use calendar-dlet*.
* lisp/calendar/calendar.el (calendar-dlet*): New macro.
Eli Zaretskii [Mon, 4 Dec 2017 19:59:28 +0000 (21:59 +0200)]
Avoid compilation warning in xterm.c
* src/xterm.c (x_draw_underwave): Move the declaration of
'thickness' to the non-USE_CAIRO branch, to avoid compiler
warning. (Bug#29567)
Stefan Monnier [Mon, 4 Dec 2017 18:49:46 +0000 (13:49 -0500)]
* lisp/emacs-lisp/faceup.el: Don't require CL
(faceup-markup-start-char, faceup-markup-end-char): Use char immediates.
Stefan Monnier [Mon, 4 Dec 2017 18:43:23 +0000 (13:43 -0500)]
* lisp/emacs-lisp/elint.el (elint-init-form): Remove outdated CL hack
Eli Zaretskii [Mon, 4 Dec 2017 16:38:15 +0000 (18:38 +0200)]
* README: Document all the top-level directories. (Bug#29558)
Eli Zaretskii [Mon, 4 Dec 2017 15:43:35 +0000 (17:43 +0200)]
Fix an omission in lookup_basic_face
* src/xfaces.c (lookup_basic_face): Handle 'vertical-border' face
as well. (Bug#29557)
Glenn Morris [Mon, 4 Dec 2017 02:54:08 +0000 (18:54 -0800)]
Don't enable erc modules on simply loading erc.el
* lisp/erc/erc.el (erc-modules): Use default :initialize. (Bug#29417)
Paul Eggert [Mon, 4 Dec 2017 02:17:00 +0000 (18:17 -0800)]
allocate_vectorlike minor cleanup
* src/alloc.c (allocate_vectorlike): Move a bit of code out of the
critical section. Although this doesn’t really help performance,
it cleans up the code a bit and should make it easier to add
pointer bounds checking.
Paul Eggert [Mon, 4 Dec 2017 02:11:00 +0000 (18:11 -0800)]
Omit exprintf if modules but no X
* src/doprnt.c (exprintf): Do not define if HAVE_MODULES &&
!(have_X_WINDOWS || USE_X_TOOLKIT), as the modules code no longer
uses exprintf.
Paul Eggert [Mon, 4 Dec 2017 01:58:08 +0000 (17:58 -0800)]
Pacify GCC on Ubuntu 17.10 x86-64
* src/xfns.c (x_real_pos_and_offsets): Pull out parent frame
into a local, so that GCC doesn't warn about dereferencing
a possibly-null pointer.
Lars Ingebrigtsen [Sun, 3 Dec 2017 22:46:52 +0000 (23:46 +0100)]
Allow shr to use data: URLs without encoding
* lisp/net/shr.el (shr-image-from-data): Don't bug out on
image data: URLs that have no base64 encoding like
(shr-image-from-data
"text/html,%3Ch1%3EHello%2C%20World!%3C%2Fh1%3E").
Lars Ingebrigtsen [Sun, 3 Dec 2017 22:46:52 +0000 (23:46 +0100)]
Allow shr to use data: URLs without encoding
* lisp/net/shr.el (shr-image-from-data): Don't bug out on
image data: URLs that have no base64 encoding like
(shr-image-from-data
"text/html,%3Ch1%3EHello%2C%20World!%3C%2Fh1%3E").
Alan Third [Sun, 3 Dec 2017 17:39:03 +0000 (17:39 +0000)]
Add image resizing and rotation to NS port
* lisp/image.el (image--get-imagemagick-and-warn): Bypass imagemagick
check when using NS.
* src/nsimage.m (ns_load_image): Add rotation and resizing
functionality. Move the getMetaData call to before the resize/rotation
so it returns correct metadata.
(EmacsImage::setSizeFromSpec, EmacsImage::rotate): New functions.
* src/nsterm.h (EmacsImage): Add new function prototypes.
(NSCompositingOperationCopy): Add define to older equivalent for
GNUstep and pre-10.12 macOS.
* configure.ac: Don't use libjpeg on Cocoa.
Noam Postavsky [Thu, 23 Nov 2017 02:59:35 +0000 (21:59 -0500)]
Disable history expansion in eshell (Bug#29157)
History expansion is not so useful since interactive history commands
are already provided. It can produce surprising errors when the user
is not aware of the history designator syntax.
* lisp/eshell/em-hist.el (eshell-hist-initialize): Don't add
eshell-expand-history-references to eshell-expand-input-functions.
* etc/NEWS: Announce it.
Noam Postavsky [Fri, 1 Dec 2017 01:51:07 +0000 (20:51 -0500)]
; Tracing for eieio-test random failure (Bug#24503)
* test/Makefile.in [EMACS_HYDRA_CI]: Always show log for eieio-tests.
* test/lisp/emacs-lisp/eieio-tests/eieio-tests.el (top-level): Trace
cl-generic functions.
(eieio-test-dump-trace): New function.
(eieio-test-37-obsolete-name-in-constructor): Use it.
Noam Postavsky [Sun, 3 Dec 2017 00:38:36 +0000 (19:38 -0500)]
* lisp/emacs-lisp/package.el (package-read-from-string): Simplify.
Noam Postavsky [Fri, 1 Dec 2017 13:20:29 +0000 (08:20 -0500)]
Fix faceup tests when run from elc
String literals may be shared by the compiler, so the test string
needs to be copied before adding properties to it. For single
properties, just use a string literal with properties.
* test/lisp/emacs-lisp/faceup-tests/faceup-test-basics.el
(faceup-markup): Split into...
(faceup-markup-basics, faceup-markup-escaping, faceup-markup-plain)
(faceup-markup-plain-full-text, faceup-markup-anonymous-face)
(faceup-markup-anonymous-face-2keys, faceup-markup-anonymous-nested)
(faceup-markup-nested, faceup-markup-overlapping)
(faceup-markup-multi-face, faceup-markup-multi-property): New tests.