1
Fork 0
mirror of git://git.sv.gnu.org/emacs.git synced 2026-01-19 01:10:57 -08:00
Commit graph

130436 commits

Author SHA1 Message Date
Tino Calancha
bc3dcd524d dired-do-shell-command: Fix check for wildcards
* lisp/dired-aux.el (dired-do-shell-command): Replace just '?', '*'
and '`?' i.e., keep the whitespaces.
* test/lisp/dired-aux-tests.el (dired-test-bug27496): Add test.
2017-07-03 12:55:06 +09:00
Noam Postavsky
1b4f0a92ff Split shr-copy-url dwim behavior into separate functions (Bug#26826)
* lisp/net/shr.el (shr-url-at-point, shr-probe-url)
(shr-probe-and-copy-url, shr-maybe-probe-and-copy-url): New functions,
split out from `shr-copy-url'.
(shr-copy-url): Only copy the url, don't fetch it.
(shr-map): Bind 'w' and 'u' to `shr-maybe-probe-and-copy-url', which
has the same behavior as the old `shr-copy-url'.
* etc/NEWS: Announce changes.
2017-07-02 16:19:58 -04:00
Alex Branham
1fd6ca40fd Make eww-search-words prompt for query if nothing selected
* lisp/net/eww.el (eww-search-words): Make eww-search-words prompt the
user for a search query if the region is inactive or if the region is
just whitespace.

Copyright-paperwork-exempt: yes
2017-07-02 16:19:57 -04:00
Noam Postavsky
9a65b57796 * lisp/emacs-lisp/cl-print.el (cl-print-compiled-button): t by default.
* lisp/emacs-lisp/debug.el (debugger-insert-backtrace):
* lisp/help-fns.el (describe-variable): No need to let-bind
`cl-print-compiled-button' to t anymore.
2017-07-02 11:57:34 -04:00
Philipp Stephani
34d4720f83 Electric quotes: Improve support for Markdown mode (Bug#24709)
Introduce a new user option 'electric-quote-context-sensitive'.  If
non-nil, have ' insert an opening quote if sensible.

Also introduce a new variable 'electric-quote-code-faces'.  Major
modes such as 'markdown-mode' can add faces to this list to treat text
as inline code and disable electric quoting.

* lisp/electric.el (electric-quote-context-sensitive): New user
option.
(electric-quote-code-faces): New variable.
(electric-quote-post-self-insert-function): Treat ' as ` if
desired and applicable; disable electric quoting for given faces.

* test/lisp/electric-tests.el (electric-quote-opening-single)
(electric-quote-closing-single, electric-quote-opening-double)
(electric-quote-closing-double)
(electric-quote-context-sensitive-backtick)
(electric-quote-context-sensitive-bob-single)
(electric-quote-context-sensitive-bob-double)
(electric-quote-context-sensitive-bol-single)
(electric-quote-context-sensitive-bol-double)
(electric-quote-context-sensitive-after-space-single)
(electric-quote-context-sensitive-after-space-double)
(electric-quote-context-sensitive-after-letter-single)
(electric-quote-context-sensitive-after-letter-double)
(electric-quote-context-sensitive-after-paren-single)
(electric-quote-context-sensitive-after-paren-double)
(electric-quote-markdown-in-text)
(electric-quote-markdown-in-code): New unit tests.
2017-07-02 17:48:23 +02:00
Michael Albinus
d90b98a2a5 * doc/misc/tramp.texi: Replace ftp:// and http:// URLs by https://. 2017-07-02 17:11:12 +02:00
Eli Zaretskii
4c9353a584 Avoid off-by-one errors in column C-n/C-p calculations
* 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.
2017-07-02 18:01:39 +03:00
Tino Calancha
6e39940adb Ask confirmation for all suspicious wildcards
* lisp/dired-aux.el (dired-do-shell-command): Check that all
the wildcards are right.  Otherwise, ask for confirmation (Bug#27496).
2017-07-02 22:09:21 +09:00
Tino Calancha
a8b71b3dc5 Extend dired-do-shell-command substitutions
Substitute "`?`" inside command with the current file name.
See details in:
https://lists.gnu.org/archive/html/emacs-devel/2017-06/msg00618.html
* lisp/dired-aux.el (dired-quark-subst-regexp, dired-star-subst-regexp):
Mark as obsolete.
(dired-isolated-string-re): New defun.
(dired--star-or-qmark-p): New predicate.
(dired-do-shell-command): Use dired--star-or-qmark-p.  Substitute "`?`"
with the current file name.
* doc/emacs/dired.texi (Shell Commands in Dired): Update manual.
; * etc/NEWS: Mention it.
2017-07-02 22:09:02 +09:00
Alan Mackenzie
80e200c0a0 Fix bug in yesterday's CC Mode commit.
* lisp/progmodes/cc-mode.el (c-quoted-number-head-before-point): Check a
search has succeded before using the match data.
(c-quoted-number-head-before-point, c-quoted-number-head-after-point):
Specify that the position of the extremity of the head or tail is in the
match data.
2017-07-02 12:58:27 +00:00
Philipp Stephani
3bab927884 Remove FIXME comments about sentinel values
These FIXMEs can't be addressed because they would require breaking
changes to the module API.  Furthermore, other module functions don't
return sentinel values as well, so users generally have to call
non_local_exit_check anyway.

* src/emacs-module.c (module_set_user_ptr)
(module_set_user_finalizer, module_vec_set, module_vec_size): Remove
FIXME comments.
2017-07-02 13:15:52 +02:00
Philipp Stephani
95343daa79 Adapt Lisp reference to reader changes
The reader now warns about some unescaped character literals, but
still allows them for compatibility reasons.  Slightly adapt the
manual to forbid them officially.

* doc/lispref/objects.texi (Basic Char Syntax): Document that
backslashes are now required before some characters.
2017-07-02 12:32:23 +02:00
Michael Albinus
4383ff87a1 ; Instrument tramp-tests.el 2017-07-02 12:16:33 +02:00
Michael Albinus
c7e7eb323c Fix Bug#27502
* lisp/autorevert.el (auto-revert-find-file-function): New defun.
(find-file-hook): Use it.  (Bug#27502)
(auto-revert-remove-current-buffer): New defun.
(auto-revert-mode, auto-revert-buffers): Use it.
2017-07-02 11:41:58 +02:00
Michael Albinus
3269a585c4 ; Instrument tramp-tests.el 2017-07-02 10:06:09 +02:00
Noam Postavsky
9a2a7bb6e6 Let test summary go through even if some logs were not generated
* lisp/emacs-lisp/ert.el (ert-summarize-tests-batch-and-exit): Check
for existence of log files before reading.
2017-07-01 23:42:30 -04:00
Philipp Stephani
11cbedc687 * src/module-env-25.h (copy_string_contents): Fix comment. 2017-07-01 20:02:24 +02:00
Philipp Stephani
c2f518cd73 Also mark module init function as noexcept if possible
* src/emacs-module.h.in (emacs_module_init): Mark as noexcept if
possible.
2017-07-01 20:02:24 +02:00
Philipp Stephani
0489f2ca5a Improve C++98 compatibility
* src/emacs-module.h.in (emacs_funcall_exit): Lose trailing comma.
C++98 doesn't allow trailing commas in enumerations.
2017-07-01 20:02:24 +02:00
Eli Zaretskii
8a9ebf352e Minor copyedits of manuals regarding bidi conformance
* doc/emacs/mule.texi (Bidirectional Editing):
* doc/lispref/display.texi (Bidirectional Display): Update the
bidi conformance text.
2017-07-01 13:01:39 -04:00
Alan Mackenzie
59d07875df Make C++ digit separators work. Amend the handling of single quotes generally
Single quotes, even in strings and comments, are now marked with the
"punctuation" syntax-table property, except where they are validly bounding a
character literal.  They are font locked with font-lock-warning-face except
where they are valid.  This is done in C, C++, ObjC, and Java Modes.

* lisp/progmodes/cc-defs.el (c-clear-char-property-with-value-on-char-function)
(c-clear-char-property-with-value-on-char, c-put-char-properties-on-char): New
functions/macros.

* lisp/progmodes/cc-fonts.el (c-font-lock-invalid-single-quotes): New function.
(c-basic-matchers-before): invoke c-font-lock-invalid-single-quotes.

* lisp/progmodes/cc-langs.el (c-get-state-before-change-functions): Remove
c-before-after-change-digit-quote from wherever it occurs.  Insert
c-parse-quotes-before-change into the entries for the languages where it is
needed.
(c-before-font-lock-functions): Remove c-before-after-change-digit-quote from
wherever it occurs.  Insert c-parse-quotes-after-change into the entries for
the languages which need it.
(c-has-quoted-numbers): New lang-defconst/-defvar.

* lisp/progmodes/cc-mode.el (c-before-after-change-digit-quote): Remove.
(c-maybe-quoted-number-head, c-maybe-quoted-number-tail)
(c-maybe-quoted-number): New defconsts.
(c-quoted-number-head-before-point, c-quoted-number-tail-after-point)
(c-quoted-number-straddling-point, c-parse-quotes-before-change)
(c-parse-quotes-after-change): New functions.
2017-07-01 15:43:07 +00:00
Noam Postavsky
e620bbe38e Ignore mouse-movement for describe-key-briefly (Bug#12204)
* lisp/help.el (help-read-key-sequence): Add optional argument ot
ignore `mouse-movement' events.
(describe-key-briefly): Use it.
* doc/emacs/help.texi (Key Help):
* etc/NEWS: Mention that mouse movement is ignored.
2017-07-01 09:40:29 -04:00
Noam Postavsky
2bd32ede1c Refactor key describing commands
* lisp/help.el (help-read-key-sequence, help--analyze-key): New
functions, extracted from `describe-key' and `describe-key-briefly'.
(describe-key, describe-key-briefly): Use them.
2017-07-01 09:40:29 -04:00
Eli Zaretskii
b5ce3100a8 Improve display of tabs with line numbers
* src/xdisp.c (x_produce_glyphs): Improve calculation of next tab
stop in hscrolled lines.  Prevent aborts in compute_line_metrics.
2017-07-01 16:00:18 +03:00
Alan Third
0ad5fd4b6c Fix threads on NS (bug#25265)
src/nsterm.h (ns_select): Compiler doesn't like sigmask being const.
(ns_run_loop_break) [HAVE_PTHREAD]: New function.
src/nsterm.m (ns_select): Call thread_select from within ns_select.
(ns_run_loop_break) [HAVE_PTHREAD]: New function.
(ns_send_appdefined): Don't wait for main thread when sending app
defined event.
src/process.c (wait_reading_process_output): Call thread_select from
within ns_select.
src/systhread.c (sys_cond_broadcast) [HAVE_NS]: Break ns_select out of
its event loop using ns_run_loop_break.
2017-07-01 12:58:49 +01:00
Glenn Morris
ff6d090ff7 ; Auto-commit of loaddefs files. 2017-07-01 06:26:53 -04:00
Michael Albinus
98cbba868c ; Fix last commit 2017-07-01 10:32:27 +02:00
Michael Albinus
a75380f21d ; Instrument test/Makefile.in for tramp-tests output on hydra 2017-07-01 10:30:34 +02:00
Eli Zaretskii
fb62728b7a Avoid slow redisplay under 'visual' mode of line numbers
* src/xdisp.c (display_count_lines_visually): Avoid very slow
redisplay when this function is invoked very far from point.
Reported by Alex <agrambot@gmail.com>.
2017-07-01 10:22:45 +03:00
Noam Postavsky
23ff664fd2 * lisp/help-fns.el (describe-variable): Let-bind cl-print-compiled-button. 2017-06-30 23:30:07 -04:00
Stefan Monnier
6fb45b7b36 * lisp/emacs-lisp/cl-extra.el (cl--random-state): New defstruct
(cl--random-state, cl--random-time): Move from cl-lib.el.
(cl-random): Use struct accessors.
(cl-random-state-p): Remove, provided by the defstruct.
(cl-make-random-state): Rewrite to struct constructor.
2017-06-30 22:01:38 -04:00
Stefan Monnier
7618d29db3 * lisp/emacs-lisp/debug.el (debugger-list-functions): Remove obsolete msg 2017-06-30 18:01:01 -04:00
Eli Zaretskii
1174e53ebb Improve documentation of faces related to display-line-numbers
* lisp/faces.el (line-number, line-number-current-line): Warn
against using non-monospaced fonts.
2017-06-30 23:19:53 +03:00
Eli Zaretskii
a9be5a768b Fix relative-number display with non-nil display-line-number-width
* src/xdisp.c (maybe_produce_line_number): Don't treat a zero
value of display-line-number-width as acceptable.
Handle the case of 'relative' with display-line-number-width
non-nil and smaller than the absolute line number requires.
Reported by Alex <agrambot@gmail.com>.
2017-06-30 22:48:36 +03:00
Michael Albinus
ceedd86ed4 Release Tramp 2.3.2
* doc/misc/tramp.texi (Android shell setup): Show default file name.
Structure section.

* doc/misc/trampver.texi:
* lisp/net/trampver.el: Change version to "2.3.2".

* test/lisp/net/tramp-tests.el (tramp-test-temporary-file-directory):
Offer home directory for mock method if it doesn't exist.
2017-06-30 18:38:32 +02:00
Eli Zaretskii
e83b128a81 Add documentation for display-line-numbers
* 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.
(Optional Mode Line): Fix the index entry to not conflict with
that in "Display Custom".
* doc/emacs/basic.texi (Position Info): Add cross-reference to
"Display Custom", for line-number display.

* src/xdisp.c (syms_of_xdisp): <display-line-numbers>: Mention
display-line-numbers-disable in the doc string.

* lisp/cus-start.el (standard): Fix lst change.
2017-06-30 17:33:06 +03:00
Eli Zaretskii
7a762fbbfc Support displaying zero as the number of the current line
* src/xdisp.c (syms_of_xdisp)
<display-line-numbers-current-absolute>: New variable.
<display-line-numbers>: Doc fix.
(maybe_produce_line_number): Support nil value of
display-line-numbers-current-absolute.

* lisp/cus-start.el (standard): Add customization form for
display-line-numbers-current-absolute.

* etc/NEWS: Document recently introduced features.
2017-06-30 16:37:57 +03:00
Eli Zaretskii
0e4f2e01af Speed up the visual-mode relative line numbers
* src/xdisp.c (display_count_lines_visually): Introduce a
shortcut: if a relative line number was already calculated for
this iterator object, just increase it instead of the
expensive call to move_it_to.  Argument list changed to pass a
pointer to the iterator object.
(maybe_produce_line_number): Adjust for change in signature of
display_count_lines_visually.  Record the relative line number and
the corresponding byte position in the iterator object also in the
'visual' mode.
2017-06-30 15:55:51 +03:00
Eli Zaretskii
a06dd3b918 Fix hscrolling with line numbers on TTY frames
* src/xdisp.c (hscroll_window_tree): Correct the X offset
calculations on TTY frames.
* src/term.c (produce_glyphs): Use it->lnum_pixel_width instead of
a kludge using it->lnum_width.
2017-06-30 12:24:13 +03:00
Eli Zaretskii
dfe1c820d3 Fix TAB display when the line-number face uses a smaller/larger font
* src/dispextern.h (struct it): New member lnum_pixel_width.
* src/xdisp.c (maybe_produce_line_number): Compute the width of
the line-number display in pixels.
(x_produce_glyphs): Use it->lnum_pixel_width instead of a kludge
that used it->lnum_width and made assumptions about pixel width.
2017-06-30 11:43:49 +03:00
Noam Postavsky
169532b0eb ; Merge: Backtrace printing improvements (Bug#6991) 2017-06-29 19:42:32 -04:00
Noam Postavsky
c87c87fcc3 Escape NUL bytes in X selections (Bug#6991)
* lisp/term/w32-win.el (w32--set-selection):
* lisp/select.el (xselect--encode-string): Replace NUL bytes with
"\0".
* doc/emacs/killing.texi: Document new behavior.
* etc/NEWS (times): Announce it.
2017-06-29 19:40:23 -04:00
Noam Postavsky
0ae28c71c7 Hide byte code in backtraces (Bug#6991)
* lisp/emacs-lisp/debug.el (debugger-print-function): New defcustom,
defaulting to `cl-print'.
(debugger-insert-backtrace, debugger-setup-buffer): Use it instead of
`prin1'.
* etc/NEWS: Announce it.
2017-06-29 19:40:23 -04:00
Noam Postavsky
b567c48869 Don't redundantly cl-print arglist in function docstring again
* lisp/emacs-lisp/cl-print.el (cl-print-object): Don't print arglist
part of docstring.
* test/lisp/emacs-lisp/cl-print-tests.el (cl-print-tests-1): Update
test accordingly.
2017-06-29 19:40:23 -04:00
Noam Postavsky
eb9d3eca80 Escape control characters in backtraces (Bug#6991)
* src/print.c (syms_of_print): Add new variable,
print-escape-control-characters.
(print_object): Print control characters with octal escape codes when
print-escape-control-characters is true.
* lisp/subr.el (backtrace):
* lisp/emacs-lisp/debug.el (debugger-setup-buffer): Bind
`print-escape-control-characters' to t.
2017-06-29 19:40:22 -04:00
Noam Postavsky
ead545824e Improve ert backtrace recording
Change ert to use the new `backtrace-frames' function instead of
collecting frames one by one with `backtrace-frame'.  Additionally,
collect frames starting from `signal' instead the somewhat arbitrary
"6 from the bottom".  Skipping 6 frames would skip the expression that
actually caused the signal that triggered the debugger.  Possibly 6
was chosen because in the case of a failed test, the triggering frame
is an `ert-fail' call, which is not so interesting.  But in case of a
test throwing an error, this drops the `error' call which is too much.

* lisp/emacs-lisp/debug.el (debugger-make-xrefs): Remove.
* lisp/emacs-lisp/ert.el (ert--make-xrefs-region): Bring in relevant
code from `debugger-make-xrefs'.
(ert--print-backtrace): Add DO-XREFS parameter, delegate to
`debugger-insert-backtrace'.
(ert--run-test-debugger): Record the backtrace frames starting from
the instigating `signal' call.
(ert-run-tests-batch): Pass nil for `ert--print-backtrace's new
DO-XREFS parameter.
(ert-results-pop-to-backtrace-for-test-at-point): Pass t as DO-XREFS
to `ert--print-backtrace' and remove call to `debugger-make-xrefs'.
* test/lisp/emacs-lisp/ert-tests.el (ert-test-record-backtrace): Check
the backtrace list instead of comparing its string representation.
Expect `signal' to be the first frame.
2017-06-29 19:37:25 -04:00
Noam Postavsky
522e3c1585 Operate on frame list instead of printed backtrace
* lisp/emacs-lisp/debug.el (debugger-insert-backtrace): New function,
prints the given backtrace frames.
(debugger-setup-buffer): Use it instead of editing the backtrace
buffer text.
2017-06-29 19:29:10 -04:00
Eli Zaretskii
5b9b49492b Minor fixes
* src/xdisp.c (maybe_produce_line_number): Fix bug that caused
line numbers to be displayed in empty lines beyond ZV.
(x_produce_glyphs): Start fixing TAB display in truncated lines.
2017-06-29 21:09:55 +03:00
Michael Albinus
138447c3ab Improve timer handling when Tramp accepts output
* lisp/net/tramp-compat.el: Avoid compiler warning.

* lisp/net/tramp-sh.el (tramp-sh-file-name-handler):
Remove lock machinery.

* lisp/net/tramp.el (tramp-locked, tramp-locker): Move up.
(tramp-file-name-handler): Add lock machinery from
`tramp-sh-file-name-handler'.  Allow timers to run.
(tramp-accept-process-output): Remove nasty workaround.
Suppress timers.

* test/lisp/net/tramp-tests.el (shell-command-sentinel):
Suppress run in tests.
(tramp--instrument-test-case-p): New defvar.
(tramp--instrument-test-case): Use it in order to allow nested calls.
(tramp--test-message, tramp--test-backtrace): New defsubst,
will be used for occasional test instrumentation.
(tramp-test00-availability, tramp-test31-vc-registered): Use them.
(tramp-test28-shell-command)
(tramp--test-shell-command-to-string-asynchronously): Suppress
nasty messages.  Don't overwrite sentinel.
(tramp-test36-asynchronous-requests): Rewrite major parts.
Expect :passed.
2017-06-29 18:22:38 +02:00
Stefan Monnier
3b19663b44 * lisp/url/url-history.el: Use lexical-binding
(url-completion-function): Mark as obsolete.
Mark unused args accordingly.
2017-06-28 10:44:18 -04:00