Philipp Stephani [Sun, 16 Oct 2016 18:22:24 +0000 (20:22 +0200)]
Clarify the behavior of minor mode commands
See Bug#24706.
* doc/lispref/modes.texi (Minor Mode Conventions): Clarify behavior when
the argument to a minor mode command is not an integer.
* lisp/emacs-lisp/easy-mmode.el (define-minor-mode): Clarify behavior
when ARG is not an integer.
* test/lisp/emacs-lisp/easy-mmode-tests.el: New file with unit tests.
Ricardo Wurmus [Wed, 26 Oct 2016 06:00:35 +0000 (23:00 -0700)]
xwidget: Bind "beginning-of-buffer" and "end-of-buffer"
* lisp/xwidget.el: Rebind "beginning-of-buffer" and "end-of-buffer" to
"xwidget-webkit-scroll-top" and "xwidget-webkit-scroll-bottom",
respectively.
(xwidget-webkit-scroll-top,
xwidget-webkit-scroll-bottom): New procedures.
Ricardo Wurmus [Wed, 26 Oct 2016 06:00:35 +0000 (23:00 -0700)]
Implement zoom for WebKit widget.
* src/xwidget.c (xwidget-webkit-zoom): New procedure.
* lisp/xwidget.el: Bind "+" and "-" to zoom in and out, respectively.
(xwidget-webkit-zoom): Declare procedure.
(xwidget-webkit-zoom-in, xwidget-webkit-zoom-out): New procedures.
Ricardo Wurmus [Wed, 26 Oct 2016 06:00:35 +0000 (23:00 -0700)]
Dynamically resize WebKit widget.
* lisp/xwidget.el (xwidget-webkit-auto-adjust-size,
xwidget-webkit-adjust-size-in-frame): New procedures.
(xwidget-webkit-new-session): Remove hint to resize widget with `a'.
(xwidget-webkit-adjust-size-dispatch): Resize current webkit widget.
(xwidget-webkit-adjust-size-to-window): Make non-interactive,
add widget and window as arguments.
(xwidget-webkit-callback): Use xwidget-webkit-adjust-size-to-window.
Ricardo Wurmus [Wed, 26 Oct 2016 06:00:35 +0000 (23:00 -0700)]
xwidget: Get selection with asynchronous JavaScript
* lisp/xwidget.el (xwidget-webkit-get-selection): Add PROC argument to
process selection.
(xwidget-webkit-copy-selection-as-kill): Kill selection in callback.
Ricardo Wurmus [Wed, 26 Oct 2016 06:00:35 +0000 (23:00 -0700)]
xwidget: Use WebKit2 API
* configure.ac: Check for webkit2gtk-4.0.
* src/xwidget.c: Adjust to use WebKit2 API.
* lisp/xwidget.el (xwidget-webkit-callback): Adjust matches for
`xwidget-event-type'.
Paul Eggert [Tue, 25 Oct 2016 19:50:30 +0000 (12:50 -0700)]
Merge from origin/emacs-25
ee04aed Fix handling of buffer relocation in regex.c functions 71ca4f6 Avoid relocating buffers while libxml2 reads its text 1b3fc8a ; Remove redundant code in gmalloc.c 9afea93 Attempt to catch reads from a buffer that is relocated
Paul Eggert [Tue, 25 Oct 2016 19:13:20 +0000 (12:13 -0700)]
Default REL_ALLOC to 'no'
This should make ralloc-related bugs less likely on GNU/Linux
systems with bleeding-edge glibc. See the email thread containing:
http://lists.gnu.org/archive/html/emacs-devel/2016-10/msg00801.html
Do not merge to master.
* configure.ac (REL_ALLOC): Default to 'no' on all platforms, not
merely on platforms with Doug Lea malloc. Although bleeding-edge
glibc no longer exports __malloc_initialize_hook and so longer
passes the configure-time test for Doug Lea malloc, ralloc tickles
longstanding bugs like Bug#24358 and Bug#24764 and Emacs is likely
to be more reliable without it. This patch is not needed on
master, which uses hybrid malloc in this situation.
Eli Zaretskii [Mon, 24 Oct 2016 13:59:34 +0000 (16:59 +0300)]
Another fix for using pointer to buffer text
* src/search.c (Freplace_match): Move the call to BYTE_POS_ADDR
after the call to xpalloc, to avoid the danger of buffer text
relocation after its address was taken. (Bug#24358)
Michael Albinus [Mon, 24 Oct 2016 13:04:25 +0000 (15:04 +0200)]
Fix Bug#24478
* lisp/net/tramp-sh.el (tramp-histfile-override): Change default value
to "~/.tramp_history".
(tramp-open-shell): Check proper HISTFILE setting.
(tramp-maybe-open-connection): Cleanup also for errors. (Bug#24478)
Paul Eggert [Mon, 24 Oct 2016 04:54:13 +0000 (21:54 -0700)]
Port --enable-gcc-warnings to bleeding-edge glibc
Bleeding-edge glibc sets emacs_cv_var_doug_lea_malloc to 'no'.
Do not merge to master.
* configure.ac: Check for valloc decl when compiling gmalloc.c.
* src/gmalloc.c (emacs_abort) [emacs]: Adjust decl to match
what is in lisp.h. Remove duplicate decl.
(aligned_alloc): #undef before defining.
(aligned_alloc, memalign) [!MSDOS]: Declare.
(valloc) [HAVE_DECL_VALLOC]: Remove duplicate decl.
Paul Eggert [Sun, 23 Oct 2016 09:50:48 +0000 (02:50 -0700)]
Merge from origin/emacs-25
50fa7d6 ;* src/w32heap.c: Fix typo and wording of the comments. 6f1325e electric-quote mode no longer worries about coding c2a1792 * src/regex.c (re_search_2): Make new code safe for -Wjump-mi... f6134bb Port to GCC 6.2.1 + --enable-gcc-warnings b2ba630 Explain how to debug emacsclient lisp errors 9da53e2 Let describe-function work for lambda again 5c2da93 Fix kill-line's docstring ad66b3f Fix handling of allocation in regex matching 5a26c9b * lisp/electric.el (electric-quote-mode): Improve doc (Bug#24... 3877c91 vc-region-history: Search just on lines intersecting the region 8988327 Fix documentation of 'alist-get' b6998ea * src/regex.h (re_match_object): Improve commentary.
Paul Eggert [Sun, 23 Oct 2016 09:43:17 +0000 (02:43 -0700)]
Merge from origin/emacs-25
b73f466 * lisp/cus-start.el (exec-path): Handle nil elements. (Bug#2... 55ebb70 Catch the imenu-unavailable error in sh-mode completion table 993acb5 ; Minor fix for last change in characters.el 30c4bb5 More char-width fixes 4eb4463 Fix char-width-table values for some Emoji 528997d Keep point when switching from and to *terminal* buffer 2130005 * INSTALL: Use correct Emacs release number 25. 10835b1 Avoid crashes due to objects read with the #n=object form 4de671d Improve doc string of 'completion-at-point-functions' ceb46f0 Fix crash in evaluating functions d8374c4 * src/filelock.c (current_lock_owner): Update comment.
Paul Eggert [Sun, 23 Oct 2016 09:43:16 +0000 (02:43 -0700)]
Merge from origin/emacs-25
2deb20c Port last_marked change to full-program optimizers 27eb668 Adapt GDB scripts to '--enable-check-lisp-object-type' builds dac64e3 Avoid optimizing out the last_marked[] array
Paul Eggert [Sun, 23 Oct 2016 04:12:54 +0000 (21:12 -0700)]
Port to GCC 6.2.1 + --enable-gcc-warnings
* src/regex.c (ENSURE_FAIL_STACK, re_search_2):
Redo recent regex changes to avoid complaints from GCC 6.2.1 when
Emacs is configured with --enable-gcc-warnings. Also, work around
GCC bug 78081, which was uncovered by this new code.
Jorgen Schaefer [Sat, 22 Oct 2016 11:07:32 +0000 (13:07 +0200)]
Autoload all commands from misc.el
Only two of the commands there were autoloaded, one of which is an
easter egg.
* lisp/miscl.el (copy-from-above-command):
* lisp/miscl.el (zap-up-to-char):
* lisp/miscl.el (mark-beginning-of-buffer):
* lisp/miscl.el (mark-end-of-buffer):
* lisp/miscl.el (upcase-char):
* lisp/miscl.el (forward-to-word):
* lisp/miscl.el (backward-to-word):
Add autoload cookie.
Noam Postavsky [Mon, 3 Oct 2016 22:49:56 +0000 (18:49 -0400)]
Let describe-function work for lambda again
Since commit "* lisp/help-fns.el (describe-function): More type
checking[...]", `describe-function' throws a user-error when given a
non-symbol. This prevents the [back] button in a *Help* buffer from
working when the page it goes back to describes an anonymous
function (e.g., the result of `describe-key' on a key which is bound to
a lambda form).
* lisp/help-fns.el (describe-function): Move the checks on FUNCTION
being an fbound symbol into the `interactive' form. This allows
non-interactive calls to pass an anonymous function (Bug #24221). Note
that passing a non-bound symbol non-interactively will still trigger a
`void-function' error from `describe-function-1'.
Noam Postavsky [Thu, 20 Oct 2016 00:23:50 +0000 (20:23 -0400)]
Fix handling of allocation in regex matching
`re_match_2_internal' uses pointers to the lisp objects that it
searches. Since it may call malloc when growing the "fail stack", these
pointers may be invalidated while searching, resulting in memory
curruption (Bug #24358).
To fix this, we check the pointer that the lisp object (as specified by
re_match_object) points to before and after growing the stack, and
update existing pointers accordingly.
* src/regex.c (STR_BASE_PTR): New macro.
(ENSURE_FAIL_STACK, re_search_2): Use it to convert pointers into
offsets before possible malloc call, and back into pointers again
afterwards.
(POS_AS_IN_BUFFER): Add explanatory comment about punning trick.
* src/search.c (search_buffer): Instead of storing search location as
pointers, store them as pointers and recompute the corresponding address
for each call to `re_search_2'.
(string_match_1, fast_string_match_internal, fast_looking_at):
* src/dired.c (directory_files_internal): Set `re_match_object' to Qnil
after calling `re_search' or `re_match_2'.
* src/regex.h (re_match_object): Mention new usage in commentary.
Paul Eggert [Fri, 21 Oct 2016 20:04:02 +0000 (13:04 -0700)]
New error file-missing
This fixes a recently-introduced bug in delete-directory,
where the code assumes the C locale when determining
whether a file-error corresponds to a missing file (Bug#24714).
* doc/lispref/errors.texi (Standard Errors):
* doc/lispref/files.texi (Changing Files):
* etc/NEWS:
Document this.
* doc/lispref/loading.texi (How Programs Do Loading):
Say "a file-error" rather than "the error file-error" since
it might be a file-missing now.
* lisp/emacs-lisp/bytecomp.el (byte-compile-file):
* lisp/epa-file.el (epa-file--find-file-not-found-function):
(epa-file-insert-file-contents, epa-file-write-region):
* lisp/ffap.el (find-file-at-point, dired-at-point):
* lisp/jka-compr.el (jka-compr-insert-file-contents)
(jka-compr-insert-file-contents):
* lisp/net/ange-ftp.el (ange-ftp-barf-if-not-directory)
(ange-ftp-insert-file-contents, ange-ftp-copy-file-internal):
* lisp/progmodes/etags.el (visit-tags-table):
* lisp/url/url-handlers.el (url-copy-file):
* src/fileio.c (report_file_errno):
Signal file-missing if appropriate.
* lisp/epa-file.el (epa-file-insert-file-contents):
* lisp/jka-compr.el (jka-compr-insert-file-contents):
Don't assume file-error is a leaf in the error hierarchy.
* lisp/files.el (files--force):
* lisp/gnus/nnmaildir.el (nnmaildir--enoent-p):
* lisp/jka-compr.el (jka-compr-insert-file-contents):
Use file-missing to detect whether the file is missing.
* lisp/url/url-handlers.el (url-copy-file):
Signal file-already-exists if appropriate.
* src/fileio.c (syms_of_fileio): Define file-missing.
Mark Oteiza [Fri, 21 Oct 2016 15:23:39 +0000 (11:23 -0400)]
Teach browse-url to open man page urls
* lisp/net/browse-url.el (browse-url-man-function): New custom option.
(browse-url): Add a condition to catch links matching "^man:".
(browse-url-man): New function.
Eli Zaretskii [Fri, 21 Oct 2016 09:59:58 +0000 (12:59 +0300)]
Improve fontification of footnote references in Info buffers
* lisp/info.el (Info-fontify-node): Don't fontify random numbers
in parentheses as if they were footnote references. See
https://lists.gnu.org/archive/html/bug-texinfo/2016-10/msg00007.html
for the details.
Tino Calancha [Thu, 20 Oct 2016 10:51:55 +0000 (19:51 +0900)]
cl-seq: Remove max limit on input sequence length
* lisp/emacs-lisp/cl-seq.el (cl-fill, cl-replace, cl-delete)
(cl--position, cl-nsubstitute, cl-substitute, cl-remove):
Remove limit on maximum length for the input sequence
(#Bug24264).
* test/lisp/emacs-lisp/cl-seq-tests.el: Update test expected result as passed.
Mark Oteiza [Thu, 20 Oct 2016 03:59:04 +0000 (23:59 -0400)]
Derive dig-mode from special-mode
* lisp/net/dig.el: Remove unused cl dependency. Remove top level
mode-class assignment.
(dig-mode-map): Unmap g, as dig has no notion of reverting the buffer.
(dig-mode): Derive from special-mode.
(dig-exit): Use quit-window instead.
(dig): Use pop-to-buffer-same-window. Remove redundant assignments.
(query-dig): Use pop-to-buffer-same-window.
Eli Zaretskii [Wed, 19 Oct 2016 18:10:31 +0000 (21:10 +0300)]
Fix documentation of 'alist-get'
* doc/lispref/lists.texi (Association Lists): Fix the signature of
'alist-get'. Fix the markup, the wording, and the punctuation in
the description. (Bug#24740)
Mark Oteiza [Tue, 18 Oct 2016 22:05:51 +0000 (18:05 -0400)]
Add an option for eshell-input-filter
* etc/NEWS: Document changes.
* lisp/eshell/em-hist.el (eshell-input-filter): Set value to function
symbol. Change type to a radio for choosing functions. Refer to both
new functions.
(eshell-input-filter-default): New function. Same body as the previous
value of eshell-input-filter.
(eshell-input-filter-initial-space): New function.
Paul Eggert [Tue, 18 Oct 2016 16:36:03 +0000 (09:36 -0700)]
delete-directory no longer errors when racing
Problem reported by Glenn Morris for package-test.el (Bug#24714).
* doc/lispref/files.texi (Create/Delete Dirs), etc/NEWS: Document this.
* lisp/files.el (files--force): New function.
(delete-directory): Use it to avoid error in this case.
Yuri Khan [Tue, 18 Oct 2016 06:42:54 +0000 (09:42 +0300)]
Support Shift selection in nxml-mode commands
* lisp/nxml/nxml-mode.el (nxml-forward-balanced-item)
(nxml-up-element, nxml-backward-up-element, nxml-down-element)
(nxml-backward-down-element, nxml-forward-element)
(nxml-backward-element, nxml-forward-paragraph)
(nxml-backward-paragraph): Use "^p" as the interactive spec, to
support shift-selection.
Mark Oteiza [Tue, 18 Oct 2016 05:53:22 +0000 (01:53 -0400)]
Simplify some loops and cons
* lisp/net/mailcap.el: Replace cl with cl-lib.
(mailcap--get-user-mime-data, mailcap--set-user-mime-data):
(mailcap-parse-mailcaps, mailcap-parse-mailcap-extras):
(mailcap-possible-viewers): Use push and dolist where possible.
(mailcap-viewer-passes-test): Remove unused binding.
(mailcap-add-mailcap-entry): Use push.
(mailcap-mime-info): Remove unused binding. Use push.
(mailcap-parse-mimetypes): Use dolist.
Göktuğ Kayaalp [Tue, 18 Oct 2016 00:01:58 +0000 (03:01 +0300)]
Fix display of vc-dir CVS file statuses in subdirectories
* lisp/vc/vc-cvs.el (vc-cvs-dir-status-files): Use 'cvs update'
instead of 'cvs status'. It's faster, easier to parse, and
relieves us of the need to use vc-expand-dirs. (Bug#24082)
(vc-cvs-after-dir-status): Parse its output.
Mark Oteiza [Mon, 17 Oct 2016 18:31:31 +0000 (14:31 -0400)]
Turn on lexical-binding in auth-source
* lisp/auth-source.el: Turn on lexical-binding.
(auth-source-netrc-parse, auth-source-netrc-normalize):
(auth-source-token-passphrase-callback-function):
(auth-source-netrc-create, auth-source-secrets-search):
(auth-source-macos-keychain-search-items):
(auth-source-plstore-search): Use let instead of lexical-let.
Martin Rudalics [Mon, 17 Oct 2016 08:52:01 +0000 (10:52 +0200)]
Fix frame focus redirection with shared minibuffer windows (Bug#24500)
* src/frame.c (do_switch_frame): Redirect frame focus also when
the frame switched to has its minibuffer window on the selected
frame.
* src/window.c (candidate_window_p): To qualify as candidate
it's not sufficient for the window's frame to just share the
minibuffer window - it must be active as well.