Michael Albinus [Mon, 22 Jan 2018 14:07:56 +0000 (15:07 +0100)]
Fix byte-compiler warning in tramp-sh.el
* lisp/net/tramp-sh.el (tramp-open-connection-setup-interactive-shell):
Use `set-process-coding-system' rather than interactive
`set-buffer-process-coding-system'.
Alan Mackenzie [Sun, 21 Jan 2018 18:29:26 +0000 (18:29 +0000)]
Handle C99 Compound Literals in return statements and argument lists.
* lisp/progmodes/cc-engine.el (c-looking-at-or-maybe-in-bracelist): Recognize
a brace list when preceded by "return" or inside parentheses, either
immediately after the "(" or following a comma.
(c-looking-at-inexpr-block): Test c-has-compound-literals rather than hard
coded C++ Mode.
(c-guess-basic-syntax, CASE 7B): Test additionally for not being just inside a
parenthesis or being at a Java "new" keyword. CASE 9: Remove the simple
minded test on the contents of a block to determine a brace list.
* lisp/progmodes/cc-langs.el (c-has-compound-literals): New lang const and lang var.
Paul Eggert [Sun, 21 Jan 2018 03:12:05 +0000 (19:12 -0800)]
Fix tempfile creation when byte compiling
This improves on the recent fix for master failing to build
on FreeBSD. Suggested by Stefan Monnier in:
https://lists.gnu.org/r/emacs-devel/2018-01/msg00600.html
* lisp/emacs-lisp/bytecomp.el (byte-compile-file):
Put tempfile next to the target file, as was the original intent.
Michael Albinus [Sat, 20 Jan 2018 23:14:33 +0000 (00:14 +0100)]
Extend tramp-test02-file-name-dissect* tests
* test/lisp/net/tramp-tests.el (tramp-test02-file-name-dissect)
(tramp-test02-file-name-dissect-simplified)
(tramp-test02-file-name-dissect-separate): Test also
`tramp-default-method-alist', `tramp-default-user-alist' and
`tramp-default-host-alist'.
Glenn Morris [Sat, 20 Jan 2018 16:23:30 +0000 (08:23 -0800)]
Merge from origin/emacs-26
cfc94fd (origin/emacs-26) Don't mention 'vc-stay-local' in the user m... 8ce430b Fix a typo in calendar.texi bb748b3 Minor improvement in wording of the Emacs manual b603aff Revert "Fix tempfile creation when byte compiling" 4fd446e Fix tempfile creation when byte compiling 7f48a11 Improve the Emacs manual as suggested in emacs-manual-bugs 728ded0 * lisp/emacs-lisp/bytecomp.el: Tweak last change c6c05e2 Unbreak building Emacs on FreeBSD a41ad3d Don't unnecessarily use non-ASCII characters in C sources c28d4b6 Portability fixes in emacs-module-tests 1d50c18 Add tests for term.el
Michael Albinus [Sat, 20 Jan 2018 15:26:02 +0000 (16:26 +0100)]
Use file notification in autorevert also for recreated files
* lisp/autorevert.el (auto-revert-mode)
(global-auto-revert-mode, auto-revert-notify-add-watch)
(auto-revert-notify-handler, auto-revert-handler): Do not use
buffer local `auto-revert-use-notify' anymore.
* test/lisp/autorevert-tests.el
(auto-revert-test02-auto-revert-deleted-file): Adapt test in
order to check, that file notification is reenabled when possible.
* lisp/emacs-lisp/map-ynp.el (map-y-or-n-p): Do not follow a
definite article with an action verb in C-h help text. Use
'with-help-window' instead of 'with-output-to-temp-buffer'.
Simplify string concatenation. (Bug#30064)
Eli Zaretskii [Sat, 20 Jan 2018 08:56:15 +0000 (10:56 +0200)]
Fix a typo in calendar.texi
* doc/emacs/calendar.texi (Writing Calendar Files): Capitalize
"Filofax". Reported by Will Korteland <emacs-devel@korte.land>
in emacs-manual-bugs@gnu.org.
Eli Zaretskii [Sat, 20 Jan 2018 07:48:22 +0000 (09:48 +0200)]
Revert "Fix tempfile creation when byte compiling"
This reverts commit 4fd446e9f65e5531b18d4a0c5e08a6eeabc292d8:
* lisp/emacs-lisp/bytecomp.el (byte-compile-file):
Put tempfile next to the target file, as was the original intent.
Paul Eggert [Fri, 19 Jan 2018 22:37:31 +0000 (14:37 -0800)]
Fix tempfile creation when byte compiling
This improves on the recent fix for master failing to build
on FreeBSD. Suggested by Stefan Monnier in:
https://lists.gnu.org/r/emacs-devel/2018-01/msg00600.html
* lisp/emacs-lisp/bytecomp.el (byte-compile-file):
Put tempfile next to the target file, as was the original intent.
Eli Zaretskii [Fri, 19 Jan 2018 19:18:03 +0000 (21:18 +0200)]
Improve the Emacs manual as suggested in emacs-manual-bugs
* doc/emacs/killing.texi (Deletion and Killing): Add
cross-reference to "Kill Ring".
* doc/emacs/help.texi (Help Mode, Package Keywords): Improve
wording. Suggested by Will Korteland <emacs-devel@korte.land> in
emacs-manual-bugs@gnu.org.
Eli Zaretskii [Fri, 19 Jan 2018 15:31:54 +0000 (17:31 +0200)]
Unbreak building Emacs on FreeBSD
* lisp/emacs-lisp/bytecomp.el (byte-compile-file): Don't create
the temporary file under temporary-file-directory if the file
being compiled is specified by an absolute file name. This avoids
problems with ACL copying from temporary-file-directory on
FreeBSD. For the details, see
http://lists.gnu.org/archive/html/emacs-devel/2018-01/msg00513.html.
* src/xdisp.c (move_it_in_display_line_to): Don't exit the loop
under truncate-lines if the glyph at TO_CHARPOS was not yet
produced. This avoids bailing out too early when we are at
TO_CHARPOS, but didn't yet produce glyphs for that buffer
position, because the last call to PRODUCE_GLYPHS at this position
was for an object other than the buffer. For further details, see
http://lists.gnu.org/archive/html/emacs-devel/2018-01/msg00537.html.
Eli Zaretskii [Fri, 19 Jan 2018 09:20:12 +0000 (11:20 +0200)]
Portability fixes in emacs-module-tests
* test/Makefile.in (abs_top_srcdir): Add variable, needed by
CPPFLAGS.
* test/data/emacs-module/mod-test.c: Include <limits.h>.
(pT, pZ, T_TYPE, Z_TYPE): Compatibility macros, for systems that
don't support %td and %zu format specs.
(emacs_module_init): Use compatibility macros to make the error
messages print meaningful values (and avoid compiler warnings).
Stefan Monnier [Fri, 19 Jan 2018 04:01:35 +0000 (23:01 -0500)]
* lisp/calendar/calendar.el: Use lexical-binding
(calendar-generate-window): Remove unused variable `day'.
(calendar-generate-month): Use calendar-dlet* to provide the dynbind
vars promised by the respective docstrings.
(calendar-update-mode-line): Use calendar-dlet* to provide `date' to
calendar-mode-line-format. Don't call `eval' here since it's called in
calendar-string-spread anyway!
(calendar-date-string): Use calendar-dlet* to provide the dynbind
vars promised by the docstring of calendar-date-display-form.
* lisp/calendar/diary-lib.el (diary--date-string): Rename from date-string.
Noam Postavsky [Thu, 18 Jan 2018 13:22:47 +0000 (08:22 -0500)]
Switch term.el to lexical binding, and clean up code a bit
* lisp/term.el (term-terminal-state): Remove.
(term-do-line-wrapping): New variable, equivalent to state 1.
(term-terminal-previous-parameter, term-terminal-parameter)
(term-terminal-more-parameters)
(term-terminal-previous-parameter-2)
(term-terminal-previous-parameter-3)
(term-terminal-previous-parameter-4): Remove.
(term-move-to-column): New function, for absolute column movement.
(term-control-seq-regexp, term-control-seq-prefix-regexp): New
constants.
(term-emulate-terminal, term-pager-discard): Use them via string-match
instead of implementing a state machine in elisp. Handle all
unprocessed input via term-terminal-undecoded-bytes (this solves
Bug#17231).
(term-handle-ansi-escape): Take a list of escape sequence parameters
as an argument, rather than via dynamic variables.
(term-erase-in-display): Consult the argument, not the dynamically
bound term-terminal-parameter (which happened to be the same as the
argument up until now).
Noam Postavsky [Sun, 7 Jan 2018 00:28:09 +0000 (19:28 -0500)]
Add tests for term.el
* lisp/term.el (term-mode): Add `name' attribute to
window-adjust-process-window-size-function value, so that it can be
removed easily by tests.
* test/lisp/term-tests.el: New tests.
Handle split AnSiT messages for term.el (Bug#17231)
Check to see if there is an incomplete command at the end of
term-emulate-terminal's input string, and, if so, save it so the whole
command can be processed when the next string arrives.
* lisp/term.el (term-partial-ansi-terminal-message): New variable.
(term-mode): Make it buffer local.
(term-handle-ansi-terminal-messages): Prepend it to the received
message, and set it if a partial message was received.
Copyright-paperwork-exempt: yes
Do not merge to master, it will be solved differently there, see
"Switch term.el to lexical binding, and clean up code a bit".
Noam Postavsky [Tue, 16 Jan 2018 21:26:56 +0000 (16:26 -0500)]
Handle case-insensitive filenames for load-path shadows (Bug#5845)
* lisp/emacs-lisp/shadow.el (load-path-shadows-find): Check for
shadowing with case-insensitive matching for files of case-insensitive
directories (as determined by `file-name-case-insensitive-p').
* test/lisp/emacs-lisp/shadow-tests.el: New test.
* test/lisp/emacs-lisp/shadow-resources/p1/foo.el:
* test/lisp/emacs-lisp/shadow-resources/p2/FOO.el: New test files.
Alan Mackenzie [Thu, 18 Jan 2018 17:54:02 +0000 (17:54 +0000)]
CC Mode: stop distinguishing brace blocks from defun blocks by content.
Don't merge to master; this is a quick fix for the emacs-26 branch. This is
essentially a reversion of the patch from 2017-11-10 which attempted to handle
C99's compound literals.
The bug here was triggered when a defun block contained a declaration ending
in a comma, yet without a semicolon.
* lisp/progmodes/cc-engine.el (c-guess-basic-syntax): At the CASE 9 test,
remove from the `or' form the test of a block's contents.
Martin Rudalics [Thu, 18 Jan 2018 09:36:47 +0000 (10:36 +0100)]
Fix some tooltip related problems
Replace 'tooltip' frame parameter with a 'tooltip' member in
the frame structure. For GTK+ builds use 'tip_last_frame' to
find the frame for which the currently visible tooltip was
made. For modeline help-echoing have tooltips show applicable
actions only.
* lisp/bindings.el (mode-line-default-help-echo): New function
as default value of homonymous option.
* src/dispextern.h (tip_frame, tip_window): Remove
declarations.
* src/frame.c (make_frame): Initialize new frame structure
member 'tooltip'.
(Fframe_list, other_frames): Rewrite with new macro
FRAME_TOOLTIP_P.
* src/frame.h (struct frame): New member 'tooltip'.
(FRAME_TOOLTIP_P): New macro.
* src/gtkutil.c (xg_prepare_tooltip, xg_hide_tooltip): Rewrite
using boolean return values.
* src/nsfns.m (tip_frame): Remove declaration.
* src/w32fns.c (w32_display_monitor_attributes_list)
(w32_display_monitor_attributes_list_fallback): Rewrite with
new macro FRAME_TOOLTIP_P.
(tip_last_string, tip_last_frame, tip_last_parms): New Lisp
scalars replacing Lisp vector last_show_tip_args.
(x_create_tip_frame): Set new frame's 'tooltip' structure
member to true.
(x_hide_tip): Additionally test tip_frame for liveness.
(Fx_show_tip): Handle last_show_tip_args to tip_last_frame,
tip_last_string and tip_last_parms conversion.
(syms_of_w32fns): staticpro tip_last_frame, tip_last_string
and tip_last_parms instead of last_show_tip_args.
* src/w32term.c (w32_read_socket, x_new_font): Rewrite with
new macro FRAME_TOOLTIP_P.
* src/w32term.h (tip_window): Add external declaration.
* src/xdisp.c (x_consider_frame_title, prepare_menu_bars)
(should_produce_line_number): Rewrite with new macro
FRAME_TOOLTIP_P.
(note_mode_line_or_margin_highlight): If
`mode-line-default-help-echo' specifies a function, call it to
produce help echo string.
* src/xfns.c (x_make_monitor_attribute_list)
(Fx_display_monitor_attributes_list): Rewrite with
new macro FRAME_TOOLTIP_P.
(tip_last_string, tip_last_frame, tip_last_parms): New Lisp
scalars replacing Lisp vector last_show_tip_args.
(x_create_tip_frame): Set new frame's 'tooltip' structure
member to true.
(x_hide_tip): Rewrite with additional tests of frames for
liveness and taking into account that for GTK+ tips the
reference frame is now stored in tip_last_frame instead of
tip_frame.
(Fx_show_tip): Handle last_show_tip_args to tip_last_frame,
tip_last_string and tip_last_parms conversion. For GTK+ store
FRAME argument in tip_last-frame.
(syms_of_xfns): staticpro tip_last_frame, tip_last_string
and tip_last_parms instead of last_show_tip_args.
* src/xterm.c (x_update_begin, handle_one_xevent, x_new_font)
(x_set_window_size): Rewrite with new macro FRAME_TOOLTIP_P.
* src/xterm.h (tip_window): Add external declaration.
* etc/NEWS: Mention new modeline tooltips behavior.
Glenn Morris [Wed, 17 Jan 2018 20:13:40 +0000 (15:13 -0500)]
An overdue update of GNUstep emacs.tiff
* nextstep/GNUstep/Emacs.base/Resources/emacs.tiff:
Update to the Emacs 25 icon.
Converted from hicolor/scalable/apps/emacs.svg using Gimp.
* nextstep/GNUstep/Emacs.base/Resources/README: Update.
Glenn Morris [Wed, 17 Jan 2018 18:41:07 +0000 (13:41 -0500)]
Add some test skip conditions
* test/lisp/vc/vc-bzr-tests.el (vc-bzr-test-bug9726)
(vc-bzr-test-bug9781): Skip if bzr is faulty.
* test/src/thread-tests.el: Skip if not compiled with threads.
Alan Mackenzie [Tue, 16 Jan 2018 21:59:03 +0000 (21:59 +0000)]
C++ Mode: Fontify correctly uniform initialisation with inner parentheses.
E.g.: someStruct x ( (nullptr != y) ? 3 : 4 )
Also fontify declarations of function pointers correctly.
* lisp/progmodes/cc-engine.el (c-forward-decl-or-cast-1): While testing for a
typeless declaration, additionally test the variable `got-prefix' to
recognize a function pointer in parentheses. Allow c-fdoc-shift-type-backward
to be invoked when we have nested parens.
Paul Eggert [Tue, 16 Jan 2018 01:18:42 +0000 (17:18 -0800)]
Fix macOS breakage in make_lispy_event
Problem reported by John Wiegley in:
https://lists.gnu.org/r/emacs-devel/2018-01/msg00499.html
* src/keyboard.c (kbd_buffer_get_event) [HAVE_NS]:
Act on used_mouse_menu here...
(make_lispy_event) [HAVE_NS]: ... instead of here.
Glenn Morris [Mon, 15 Jan 2018 21:53:40 +0000 (13:53 -0800)]
Merge from origin/emacs-26
98e5fb9bf3 (origin/emacs-26) Remove incorrect documentation in comint.el 8ba5b85161 An overdue update of src/emacs-icon.h 155b211133 Minor copyedit in ELisp manual
Glenn Morris [Mon, 15 Jan 2018 21:53:40 +0000 (13:53 -0800)]
Merge from origin/emacs-26
2c0cfa6455 * ChangeLog.3: Update 4387bb44ae Update authors bce51bd6f7 * lisp/gnus/message.el (message-do-auto-fill): Prevent do-... bd2a2a1e84 Improve documentation of etags 7ba75b9637 Teach etags new interpreters for some languages 1f7f03742d * lisp/emacs-lisp/generator.el (iter-defun): Add 'doc-stri... dbb4aac212 * lisp/emacs-lisp/syntax.el (syntax-propertize): Fix bug#2... 80463a43da Improve documentation of fill-separate-heterogeneous-words... 4bd2416d55 Fix documentation of some x-* functions 9c2b11484f Inherit query-on-exit flag to stderr process (Bug#30031) 3efb1e7def Fix Bug#30057 a9b884c60f Tag some unstable tests, and skip by default (bug#24503)
Stefan Monnier [Mon, 15 Jan 2018 18:15:12 +0000 (13:15 -0500)]
* lisp/mail/smtpmail.el (smtpmail-send-data-1): No string-as-multibyte
This is not needed any more since unibyte strings will be sent as-is
anyway by process-send-string.
(smtpmail-via-smtp): Avoid set-buffer-process-coding-system.
Michael Albinus [Sat, 13 Jan 2018 16:48:10 +0000 (17:48 +0100)]
Fix Bug#29149 in shell.el
* lisp/shell.el (shell): Change order of `file-local-name' and
`expand-file-name' calls. Otherwise, the local file name
would be extended by a drive letter, even when it is a remote
file, seen from w32. (Bug#29149)
Ken Brown [Fri, 12 Jan 2018 13:51:16 +0000 (08:51 -0500)]
Add battery support to all Cygwin builds
It already exists in the Cygwin-w32 build.
* src/w32fns.c (Fw32_battery_status): Move to...
* src/w32cygwinx: New file, to be used for functions common to
the MS Windows and Cygwin builds.
(syms_of_w32cygwinx): New function.
* src/lisp.h: Add prototype of syms_of_w32cygwinx.
* src/emacs.c (main) [HAVE_NTGUI or CYGWIN]: Call syms_of_w32cygwinx.
* src/Makefile.in (SOME_MACHINE_OBJECTS):
* configure.ac (W32_OBJ) [HAVE_W32]: Add w32cygwinx.o.
(W32_LIBS) [CYGWIN]: Set equal to "-lkernel32" in non-w32 build.
(W32_OBJ) [CYGWIN]: Set equal to "w32cygwinx.o" in non-w32 build.
* etc/NEWS: Document the new battery support.
Michael Albinus [Sat, 13 Jan 2018 16:48:10 +0000 (17:48 +0100)]
Fix Bug#29149 in shell.el
* lisp/shell.el (shell): Change order of `file-local-name' and
`expand-file-name' calls. Otherwise, the local file name
would be extended by a drive letter, even when it is a remote
file, seen from w32. (Bug#29149)
Michael Albinus [Sat, 13 Jan 2018 11:07:28 +0000 (12:07 +0100)]
Improve Tramp robustness
* lisp/net/tramp.el (tramp-message, tramp-process-actions)
(tramp-read-passwd, tramp-interrupt-process):
* lisp/net/tramp-adb.el (tramp-adb-maybe-open-connection):
* lisp/net/tramp-gvfs.el (tramp-gvfs-handle-file-notify-add-watch)
(tramp-gvfs-maybe-open-connection):
* lisp/net/tramp-sh.el (tramp-do-copy-or-rename-file-out-of-band)
(tramp-process-sentinel)
(tramp-sh-handle-file-notify-add-watch)
(tramp-barf-if-no-shell-prompt, tramp-maybe-open-connection)
* lisp/net/tramp-smb.el (tramp-smb-handle-copy-directory)
(tramp-smb-handle-file-acl, tramp-smb-handle-set-file-acl)
(tramp-smb-maybe-open-connection): Use process property rather
than connection property "vector".
* lisp/net/tramp-gvfs.el (tramp-gvfs-handle-file-notify-add-watch):
Fix scoping error. Let error traces use process buffer.
* lisp/net/tramp-sh.el (tramp-sh-handle-file-notify-add-watch):
Move "inotifywait" up. GVFS based monitoring is not stable.
Let error traces use process buffer.
(tramp-sh-gvfs-monitor-dir-process-filter): Check more error
messages.
(tramp-get-remote-gvfs-monitor-dir): Search also for "gio".
* lisp/net/tramp.el (tramp-get-debug-buffer):
Use `special-mode-map' as parent map in debug buffer.
(tramp-message): Ensure, that proper process buffer is dumped
in error case.
Eli Zaretskii [Sat, 13 Jan 2018 10:48:07 +0000 (12:48 +0200)]
Improve documentation of safe values of variables
* doc/lispref/variables.texi (File Local Variables): Mention the
autoload cookie as a means of defining safe values for variables.
See http://lists.gnu.org/archive/html/emacs-devel/2018-01/msg00261.html
for the details.
* doc/lispref/compile.texi (Compiler Errors): Document
'byte-compile-error-on-warn'.