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

128149 commits

Author SHA1 Message Date
Paul Eggert
0dfd9a6918 Simplify make-list implementation
* src/alloc.c (Fmake_list): Don’t unroll loop, as the complexity
is not worth it these days.
2017-01-25 21:25:36 -08:00
Mark Oteiza
44765de200 Make use of cl-loop destructuring
* lisp/progmodes/js.el (js--get-tabs): Replace extraneous bits with
destructuring.
(with-js): Add declare forms.
2017-01-25 21:34:46 -05:00
Lars Ingebrigtsen
d32dfc2c7a Revert "Bind C-c keys in the article buffer"
This reverts commit 6b4195f2ac.

The commit somehow lead to problems in other parts of Emacs.
2017-01-25 22:53:07 +01:00
Eli Zaretskii
cd0e636524 ; * doc/lispref/lists.texi (List Elements): Fix last change. 2017-01-25 22:49:35 +02:00
Lars Ingebrigtsen
097b1686b6 Document how to quote MML tags
* doc/misc/emacs-mime.texi (MML Definition): Mention how to
quote MML tags (bug#18881).
2017-01-25 21:47:28 +01:00
Lars Ingebrigtsen
27accec970 Make address parsing more robust
* lisp/mail/ietf-drums.el (ietf-drums-parse-address): Don't
bug out on addresses like
(ietf-drums-parse-address "\"Foo \"bar\" <larsi@gnus.org>")
(bug#18572).
2017-01-25 21:21:40 +01:00
Lars Ingebrigtsen
e0e95199b9 Fix the %P (line number) thing in Gnus summary buffers
* lisp/gnus/gnus-salt.el (gnus-pick-line-number): Remove hack.

* lisp/gnus/gnus-sum.el (gnus-summary-read-group-1): Reset the
"pick" mode line number on entry instead of relying in a hack (bug#18311).
2017-01-25 20:57:52 +01:00
Lars Ingebrigtsen
36cbe217c8 Fix wrong documentation on nnmairix keystrokes
* doc/misc/gnus.texi (nnmairix keyboard shortcuts): The
nnmairix commands are on G G, not $ (bug#18260).
2017-01-25 20:43:27 +01:00
Lars Ingebrigtsen
6b4195f2ac Bind C-c keys in the article buffer
* lisp/gnus/gnus-art.el (gnus-article-mode-map): Also bind the
C-c keys so that they execute in the summary buffer
(bug#18257).  This makes commands like `C-c C-f' work from the
article buffer.
2017-01-25 20:40:27 +01:00
Lars Ingebrigtsen
c5442adaa6 Don't mark articles in Gnus as displayed when they aren't
* lisp/gnus/gnus-sum.el (gnus-summary-read-group-1): Don't
mark any articles as selected if we're not selecting any
articles (bug#18255).
2017-01-25 20:33:56 +01:00
Mark Oteiza
43eba49553 Move cXXXr and cXXXXr to subr.el
* etc/NEWS: Mention new core Elisp.
* doc/lispref/lists.texi (List Elements): Document and index the new
functions.
* doc/misc/cl.texi (List Functions): Change "defines" to "aliases".
* lisp/subr.el (caaar, caadr, cadar, caddr, cdaar, cdadr, cddar)
(cdddr, caaaar caaadr, caadar, caaddr, cadaar, cadadr, caddar):
(cadddr, cdaaar, cdaadr, cdadar, cdaddr, cddaar, cddadr, cdddar):
(cddddr): New functions.
* lisp/emacs-lisp/cl-lib.el (cl-caaar, cl-caadr, cl-cadar, cl-caddr):
(cl-cdaar, cl-cdadr, cl-cddar cl-cdddr, cl-caaaar cl-caaadr):
(cl-caadar, cl-caaddr, cl-cadaar, cl-cadadr, cl-caddar, cl-cadddr):
(cl-cdaaar, cl-cdaadr, cl-cdadar, cl-cdaddr, cl-cddaar, cl-cddadr):
(cl-cdddar, cl-cddddr): Alias to new subr functions.
* lisp/emacs-lisp/cl.el (cl-unload-function): Remove cXXXr and cXXXXr
elements.
2017-01-25 14:21:10 -05:00
Lars Ingebrigtsen
ff9ccf6883 Only save .newsrc file if the native method is NNTP
* lisp/gnus/gnus-start.el (gnus-save-newsrc-file): Only save
the .newsrc file if the native select method is NNTP
(bug#18198).  This avoids problems with invalid IMAP group
names and the like in the .newsrc file.
2017-01-25 19:30:33 +01:00
Lars Ingebrigtsen
544b996915 Only save .newsrc file if the native method is NNTP
* lisp/gnus/gnus-start.el (gnus-save-newsrc-file): Only save
the .newsrc file if the native select method is NNTP
(bug#18198).  This avoids problems with invalid IMAP group
names and the like in the .newsrc file.
2017-01-25 19:30:22 +01:00
Lars Ingebrigtsen
7a7c0b170b Gnus custom spec fix
* lisp/gnus/gnus-art.el (gnus-signature-limit): Fix customize
spec to match the doc string (bug#17679).
2017-01-25 18:31:42 +01:00
Lars Ingebrigtsen
87e2657baf Clarify confusing Gnus error message
* lisp/gnus/gnus-topic.el (gnus-topic-unindent): Clarify
confusing error message (bug#17677).
2017-01-25 18:27:33 +01:00
Lars Ingebrigtsen
00591a8ee7 Make C-u C-x m work with Message as documented
* lisp/gnus/message.el (message-mail): Respect the CONTINUE
parameter (bug#17175).
2017-01-25 18:14:00 +01:00
Lars Ingebrigtsen
82b6b3cf8f Fix problem with auto-mode and dir-locals-collect-variables
* lisp/files.el (dir-locals-collect-variables): When run from
auto-mode, the file in question may not be an absolute path
name (bug#24016).

Example backtrace:

Debugger entered--Lisp error: (args-out-of-range "compile-1st-in-loa
  dir-locals-collect-variables(((emacs-lisp-mode (indent-tabs-mode))
  hack-dir-local-variables()
  hack-local-variables(no-mode)
  run-mode-hooks(diff-mode-hook)
  diff-mode()
  mm-display-inline-fontify((#<buffer  *mm*-923037> ("text/x-diff" (
2017-01-25 17:43:44 +01:00
Lars Ingebrigtsen
97934ffb56 Attach text files correctly in Message
* lisp/gnus/mml.el (mml-generate-mime-1): Detect which coding
system has been used in attached text files, and don't try to
do any encoding of these files (bug#13808).
2017-01-25 17:28:17 +01:00
Lars Ingebrigtsen
6bfa9e9abc Build fix for older gnutls versions
* src/gnutls.c (emacs_gnutls_handle_error):
GNUTLS_E_PREMATURE_TERMINATION is apparently only present in
gnutls-3.
2017-01-25 14:21:22 +01:00
Tino Calancha
cf9ce4fcfc ediff-difference-vector-alist: Drop duplicated definition
* lisp/vc/ediff-init.el (ediff-difference-vector-alist):
Drop duplicated definition.
(ediff-difference-vector-A, ediff-difference-vector-B)
(ediff-difference-vector-C, ediff-difference-vector-Ancestor):
Move definition before 'ediff-difference-vector-alist'.
2017-01-25 15:15:16 +09:00
Lars Ingebrigtsen
f580ea195b Revert "nnimap.el: support additional expunge options"
This reverts commit 4e9baea6ab.

The patch broke fetching new mail:

Debugger entered--Lisp error: (error "Format specifier doesn’t match argument type")
  format("%d .*\n" (t ("OK" ("HIGHESTMODSEQ" "914696") "Expunge" "completed.") ("VANISHED" "1825937") ("0" "RECENT")))
  (looking-at (format "%d .*\n" sequence))
  (not (looking-at (format "%d .*\n" sequence)))
  (progn (while (and (not (bobp)) (progn (forward-line -1) (looking-at "\\*\\|[0-9]+ OK NOOP")))) (not (looking-at (format "%d .*\n" sequence))))
2017-01-25 01:18:43 +01:00
Nikolaus Rath
4e9baea6ab nnimap.el: support additional expunge options
* lisp/gnus/nnimap.el (nnimap-close-group)
(nnimap-request-expire-articles, nnimap-delete-article)
(nnimap-request-scan): add new 'never, 'immediate, and 'on-exit
settings for nnimap-expunge (bug#20670).
2017-01-25 00:46:13 +01:00
Lars Ingebrigtsen
b6fa580723 Don't tag Gnus bugs with "gnus"
* lisp/gnus/gnus-msg.el (gnus-bug): Remove the bug package tags.

* lisp/gnus/gnus.el (gnus-bug-package): Removed; Gnus doesn't
have its own package any more in the bug tracker.
2017-01-25 00:29:24 +01:00
Lars Ingebrigtsen
42e2367413 Tweak TLS error messaging on closed connections
* src/gnutls.c (emacs_gnutls_handle_error): Demote the normal
peer-closed-connection "The TLS connection was non-properly
terminated" message to a lower level so that it isn't shown to
the user by default.
2017-01-25 00:23:28 +01:00
Lars Ingebrigtsen
456696a838 Avoid having eww unexpectedly open external browsers
* lisp/net/eww.el (eww-render): Instead of opening unsupported
content types like audio/mpeg directly in an external browser
(which can be very confusing especially when something
redirects to a file like that), just display a simple
interstitial that people can choose to click on or not
(bug#22671).
2017-01-24 23:39:05 +01:00
Lars Ingebrigtsen
fd42a19260 When opening new eww buffers, use buffer names based on the host name
* lisp/net/eww.el (eww-browse-url): When opening in a new
window, use a buffer name based on the host name (bug#23738).
(eww--dwim-expand-url): Refactored out into its own function
for easier reuse.
2017-01-24 23:14:31 +01:00
David Engster
aea6701839 xml: Fix parsing of default namespace with quoted names
* lisp/xml.el (xml-parse-attlist): Properly extract namespace when
  parsing is done with quoted symbol names (bug#23440).
* test/lisp/xml-tests.el (xml-parse-test--default-namespace-qnames)
  (xml-parse-test-default-namespace-qnames): Test for the above.
2017-01-24 22:56:05 +01:00
Lars Ingebrigtsen
267c98ae48 Fix rendering of some complex SVG images
* lisp/net/shr.el (shr-parse-image-data): Don't transform
SVG->DOM->XML unless we're blocking images, as this is apt to
destroy the SVG (bug#24111).
2017-01-24 22:21:45 +01:00
Lars Ingebrigtsen
3180deacf5 Clarify the last clarification
* lisp/net/shr.el (shr-width): Clarify the interaction with
`shr-use-fonts' (bug#24928).
2017-01-24 21:33:51 +01:00
Lars Ingebrigtsen
253fdf799b shr-width doc clarification
* lisp/net/shr.el (shr-width): Clarify the interaction with
`shr-use-fonts' (bug#24928).
2017-01-24 21:31:17 +01:00
Lars Ingebrigtsen
37567393a0 Allow passing in max-width/height
* lisp/net/shr.el (shr-rescale-image): Allow passing in
max-width/height (bug#25287).
2017-01-24 21:17:45 +01:00
Stefan Monnier
52a87c894d * lisp/progmodes/vhdl-mode.el: Avoid add-to-list on local vars
Require `cl' for `pushnew'.
(vhdl-scan-project-contents, vhdl-compose-wire-components)
(vhdl-uniquify): Use `pushnew' instead of `add-to-list'.
2017-01-24 11:31:11 -05:00
Noam Postavsky
201dfe3118 Fix comment detection on open parens
Characters having both open paren syntax and comment start syntax were
being detected as open parens even when they should have been part a
comment starter (Bug#24870).

* src/syntax.c (in_2char_comment_start): New function, extracted from
`scan_sexps_forward'.
(scan_sexps_forward): Add check for a 2-char comment starter before the
loop.  Inside the loop, do that check after incrementing the 'from'
character index.  Move the single char comment syntax cases into the
switch instead of special casing them before.
* test/src/syntax-tests.el (parse-partial-sexp-paren-comments):
(parse-partial-sexp-continue-over-comment-marker): New tests.
2017-01-23 19:28:30 -05:00
Alan Mackenzie
0c31ff43b6 Give , and .@ doc strings. Fixes bug #24561.
Also make *Help* links to ``' possible.  Also make usable as such doc strings
on the function-documentation property of a symbol.

* lisp/emacs-lisp/backquote.el (top-level): Give , and '@ doc strings on the
function-documentation property.  Also give these symbols a reader-construct
property.

* lisp/help-fns.el (describe-function): Allow the function-documentation
property to work.  Use princ rather than prin1 to print the function's name
when it has a reader-construct property.
(help-fns-signature): Don't insert `high-usage' for a reader-construct.
(describe-function-1): Adapt to process documentation on the
function-documentation property.  Print "a reader construct" when appropriate.

* lisp/help-mode.el (help-xref-symbol-regexp): Amend this regexp also to match
``'.
2017-01-23 19:00:49 +00:00
Mark Oteiza
03de82fe7c ; Fix previous commit
* lisp/play/dunnet.el (dun-drop): Nix assignment of nonexistent binding.
2017-01-22 10:18:42 -05:00
Paul Eggert
0a49f158f1 Improve uses of CHECK_LIST etc.
* src/eval.c (FletX): Report an error for invalid constructs like
‘(let* (a . 0))’, so that ‘let*’ is more consistent with ‘let’.
(lambda_arity): Use plain CHECK_CONS.
* src/fns.c (CHECK_LIST_END): Move from here to lisp.h.
(Fcopy_alist): Remove unnecessary CHECK_LIST call, since
concat does that for us.
(Fnthcdr, Fmember, Fmemql, Fdelete, Fnreverse):
Use CHECK_LIST_END, not CHECK_LIST_CONS.  This hoists a
runtime check out of the loop.
(Fmemq): Simplify and use CHECK_LIST_END instead of CHECK_LIST.
(Fassq, Fassoc, Frassq, Frassoc):
Simplify and use CHECK_LIST_END instead of CAR.
(assq_no_quit, assoc_no_quit): Simplify and assume proper list.
(Fnconc): Use plain CHECK_CONS, and do-while instead of while loop.
* src/fontset.c (Fnew_fontset):
* src/frame.c (Fmodify_frame_parameters):
Use CHECK_LIST_END at end, rather than CHECK_LIST at start, for a
more-complete check.
* src/gfilenotify.c (Fgfile_add_watch):
Omit unnecessary CHECK_LIST, since Fmember does that for us.
* src/lisp.h (lisp_h_CHECK_LIST_CONS, CHECK_LIST_CONS):
Remove; no longer used.
(CHECK_LIST_END): New inline function.
2017-01-22 00:25:35 -08:00
Tino Calancha
ade0652cc2 Prevent to use tabulated-list--near-rows unbound
* lisp/emacs-lisp/tabulated-list.el (tabulated-list-print-entry):
Make sure 'tabulated-list--near-rows' is bound before use it (Bug#25506).
2017-01-22 14:23:45 +09:00
Juri Linkov
ad29e145b1 * lisp/simple.el (region-bounds): New function.
(region-noncontiguous-p): Use it.
http://lists.gnu.org/archive/html/emacs-devel/2017-01/msg00044.html
2017-01-22 01:18:53 +02:00
Eli Zaretskii
07d1516427 ; * etc/NEWS: Describe how to disable double-buffering. (Bug#25474) 2017-01-21 20:31:33 +02:00
Alan Mackenzie
de3336051e Fix low-level handling of (big) C macros.
In particular, ensure that a comment detected by its syntax is not a CPP
construct marked with generic comment delimiter syntax-table text
properties.

* lisp/progmodes/cc-engine.el (c-beginning-of-macro, c-end-of-macro): Set
c-macro-cache-syntactic to nil when the cached macro changes.
(c-syntactic-end-of-macro, c-no-comment-end-of-macro)
(c-state-semi-pp-to-literal, c-state-full-pp-to-literal)
(c-state-pp-to-literal, c-parse-ps-state-to-cache)
(c-state-cache-non-literal-place, c-literal-limits, c-literal-start)
(c-determine-limit): When checking a parse syntax for a comment, check that
we're not in a CPP construct marked by syntax-table generic comment delimiter
text property.
(c-state-pp-to-literal): Change from a defsubst to a defun.

* lisp/progmodes/cc-mode.el (c-neutralize-syntax-in-and-mark-CPP): Check a
parse syntax as described above under cc-engine.el.
2017-01-21 15:16:49 +00:00
Noam Postavsky
6a788d2fc1 Don't wait for frame to become visible
* src/xterm.c (x_make_frame_visible): Remove code that waits for the
frame to become visible.  We have to deal with invisible frames anyway,
the loop could sometimes before the frame turned visible, and for some
window managers (e.g., XMonad, i3wm) it caused Emacs to get stuck in a
busy loop (Bug#24091).
2017-01-20 23:36:26 -05:00
Tino Calancha
e5e42cefd7 diff-hunk-kill independent of point inside headers
Make diff-apply-hunk and diff-hunk-kill independent of the point
position in a diff header (Bug#17544).
This change allows to apply hunks in order.  It also makes possible to
press M-k repeatedly to kill hunks in the order they appear in the buffer.
See discussion on #Bug25105.
* lisp/vc/diff-mode.el (diff-file-junk-re):
Move definition before it's used.
(diff--at-diff-header-p): New predicate; return non-nil when point
is inside a hunk header, a file header, or within a line
matching diff-file-junk-re.
(diff-beginning-of-hunk): Use it.
Check if the point is inside a diff header, in the middle of a hunk,
or before the first hunk.
(diff-apply-hunk): Call diff-beginning-of-hunk with non-nil arg
before apply the hunk.
(diff-hunk-kill, diff-file-kill):
Call diff-beginning-of-hunk with non-nil arg after kill the hunks.
(diff-post-command-hook): Call diff-beginning-of-hunk with non-nil argument.
2017-01-21 11:54:55 +09:00
Tino Calancha
1508b538fd ; Revert "Improve diff-mode navigation/manipulation"
This reverts commit 2c8a7e50d2.
This change causes regressions:
https://lists.gnu.org/archive/html/emacs-devel/2016-11/msg00738.html
The following related commits are reverted as well:
61c6a10e31
a283d655db
6b6abe0dba
e5ef59b87d
73349822cb

Fixes: debbugs:25105, 25400.
2017-01-21 11:54:38 +09:00
Noam Postavsky
82a5e4dc88 Fix free var FOO-mode-{syntax,abbrev}-table warnings
* lisp/emacs-lisp/derived.el (define-derived-mode): Unconditionally
defvar the syntax and abbrev tables so that the compiler will know that
they are dynamically bound variables (Bug#25446).
2017-01-19 20:15:18 -05:00
Philipp Stephani
9c4e3097b5 Check that variable lists are actually lists
'let' and 'let*' document that their first argument has to be a list,
but don't check for that; instead, they allow (and silently ignore)
other types.  Introduce an explicit type check.

* src/eval.c (Flet, FletX): Check that the variable list is indeed a
list.
* test/src/eval-tests.el: Add unit tests.
2017-01-19 17:17:50 +01:00
Noam Postavsky
8c0fcaf667 Avoid inefficient regex in diff-refine-hunk (Bug#25410)
* lisp/vc/diff-mode.el (diff--forward-while-leading-char): New function.
(diff-refine-hunk): Use it instead of trying to match multiple lines
with a single lines.
2017-01-18 20:37:31 -05:00
Eli Zaretskii
5304cb9831 Remove lock file when auto-saving into the visited file
* src/fileio.c (write_region): When auto-saving into the visited
file, unlock the file whenever we mark the buffer unmodified.
(Bug#25470)
2017-01-18 20:36:14 +02:00
Eli Zaretskii
5fefaaa8c0 Fix a bug with signaling a thread that waits for condvar
* src/thread.c (lisp_mutex_lock_for_thread): New function,
with all the guts of lisp_mutex_lock.
(lisp_mutex_lock): Call lisp_mutex_lock_for_thread.
(condition_wait_callback): Don't call post_acquire_global_lock
before locking the mutex, as that could cause a signaled thread to
exit prematurely, because the condvar's mutex is recorded to be
not owned by any thread, and with-mutex wants to unlock it as part
of unwinding the stack in response to the signal.
2017-01-18 18:06:42 +02:00
Eli Zaretskii
571532605b Rudimentary error handling for non-main threads
* src/thread.c (last_thread_error): New static variable.
(syms_of_threads): Staticpro it.
(record_thread_error, Fthread_last_error): New functions.
(syms_of_threads): Defsubr Fthread_last_error.

* doc/lispref/threads.texi (Basic Thread Functions): Document
thread-last-error.

* test/src/thread-tests.el (thread-errors, thread-signal-early)
(threads-condvar-wait): Test the values returned by
thread-last-error.
2017-01-18 18:00:16 +02:00
Tom Tromey
dbb29d7eb4 Add info-lookup help for gdb-script-mode
Bug#25464:
* lisp/info-look.el (info-lookup-guess-gdb-script-symbol): New
function.
Add help for gdb-script-mode.
2017-01-17 15:40:16 -07:00