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

123430 commits

Author SHA1 Message Date
Stephen Leake
ce4eeca8d4 Improve doc string
* lisp/progmodes/xref.el (xref-backend-references): Improve doc string.
2015-11-17 07:49:29 -06:00
Paul Eggert
54beeef118 eval_sub followed dangling pointer when debugging
Problem reported by Pip Cet (Bug#21245).
This bug could occur in eval_sub if the C compiler reused
storage associated with the ‘argvals’ local after ‘argvals’
went out of scope, and if the Elisp debugger stopped on Elisp
function exit and accessed ‘argvals’.  It could also occur if
a variadic function was called with so many arguments (over
2048 args on x86-64) that SAFE_ALLOCA_LISP called malloc, then
SAFE_FREE freed the arguments, then the memory manager used
the storage for other purposes, then the debugger accessed the
arguments.
* src/eval.c (eval_sub): Declare ‘argvals’ at top level of
function body.	Simplify local decls.
When allocating args via SAFE_ALLOCA, call
debugger before invoking SAFE_FREE, as the debugger needs
access to the args.
(eval_sub, apply_lambda): Rework to avoid need for
set_backtrace_debug_on_exit hack.  This is cleaner,
and should work better with buggy custom debuggers.
2015-11-16 23:09:28 -08:00
Daiki Ueno
1721600d24 * lisp/image-mode.el: Support encrypted file
(image-toggle-display-image): Read content from the buffer instead
of the file, if the buffer holds a decrypted data.  (Bug#21870)
2015-11-17 11:49:40 +09:00
Paul Eggert
c9fd597a4c ELF unexec: align section header
This ports the recent unexelf.c changes to Fedora x86-64
when configured with GCC’s -fsanitize=undefined option.
* src/unexelf.c (unexec): Align new_data2_size to a multiple
of ElfW (Shdr)’s alignment, so that NEW_SECTION_H returns a
pointer aligned appropriately for its type.
2015-11-16 17:48:52 -08:00
Juanma Barranquero
1cdddc1db6 ; lisp/window.el (display-buffer-at-bottom): Fix indentation 2015-11-17 02:02:07 +01:00
Andreas Schwab
d443710169 Do more checks on bytecode objects (Bug#21929)
* src/eval.c (funcall_lambda): Check size of compiled function
object.
(Ffetch_bytecode): Likewise.
2015-11-17 00:18:50 +01:00
Johan Bockgård
c4b20fc936 pcase.el: Fix edebugging of backquoted cons patterns
* lisp/emacs-lisp/pcase.el (pcase-QPAT): Fix edebugging of backquoted
cons patterns. (Bug#21920)
2015-11-16 23:48:25 +01:00
Paul Eggert
8ff888a07d Improve fix for regex reentrancy abort
Suggested by Stefan Monnier (Bug#21688).
* src/syntax.c (update_syntax_table_forward):
Remove recently-added PROPERTIZE arg, and assume it is true.
All callers changed.
* src/syntax.h (UPDATE_SYNTAX_TABLE_FORWARD_FAST):
Invoke update_syntax_table directly.
2015-11-16 13:10:17 -08:00
Dmitry Gutov
1f07a61ee3 ; Fix breakage in elisp-mode-tests.el 2015-11-16 19:15:58 +02:00
Artur Malabarba
26b6952277 * lisp/faces.el (faces--attribute-at-point): Use `face-list-p' 2015-11-16 14:35:31 +00:00
Artur Malabarba
31fc056791 * lisp/emacs-lisp/package.el (package--with-response-buffer): Missing require 2015-11-16 13:53:45 +00:00
Artur Malabarba
63acb2e868 * lisp/emacs-lisp/nadvice.el (add-function): Escape quote 2015-11-16 09:49:00 +00:00
Vasily Korytov
dbc090aeab Recognize .rbw and .pyw files (bug#18753)
* lisp/progmodes/python.el (auto-mode-alist):
Recognize .pyw files.

* lisp/progmodes/ruby-mode.el (auto-mode-alist):
Recognize .rbw files.
2015-11-16 01:32:35 +02:00
Dmitry Gutov
2edfc40a72 Fix ruby-mode auto-mode-alist entry
* lisp/progmodes/ruby-mode.el (auto-mode-alist): Add grouping
around the extensions (bug#21257).
2015-11-16 01:14:54 +02:00
Dmitry Gutov
f60a3b086c Fix etags completion near eob
* lisp/progmodes/etags.el (tags-completion-at-point-function):
Use `goto-char', to avoid the end-of-buffer error (bug#20061).
2015-11-16 00:30:30 +02:00
Alan Mackenzie
4765d24e18 De-pessimize detection of C++ member initialization lists.
list/progmodes/cc-engine.el (c-back-over-list-of-member-inits): New macro.
(c-back-over-member-initializers): Reformulate such that c-at-toplevel-p
is only called when a construct "looks right" rather than continually.
(c-guess-basic-syntax, CASE 5R): Add a check for the mode being C++ Mode.
2015-11-15 21:59:40 +00:00
Artur Malabarba
d99ccd6dd1 Backport: * lisp/emacs-lisp/package.el: Fix a decoding issue.
* lisp/url/url-handlers.el (url-insert-file-contents): Move some code to
`url-insert-buffer-contents'.
(url-insert-buffer-contents): New function

(package--with-response-buffer): Use `url-insert-buffer-contents'.
The previous code had some issues with decoding. Refactoring that
function allows us to use the decoding from url-handlers while still
treating both sync and async requests the same.
2015-11-15 21:32:47 +00:00
Stephen Leake
a6843cce90 Improve a few doc strings, comments
* lisp/cedet/cedet-global.el (cedet-gnu-global-expand-filename):
* lisp/cedet/ede/locate.el (ede-locate-base):
* lisp/cedet/semantic/symref.el (semantic-symref-calculate-rootdir):
* src/fns.c (Fdelq): Improve doc string.

* lisp/progmodes/elisp-mode.el (elisp--xref-find-definitions): Add FIXME.
2015-11-15 13:44:41 -06:00
Anders Lindgren
ae16894d1e Enhance NSTRACE (trace output for NextStep).
Trace can be disabled for groups of functions. By default, event
functions and functions that generate lots of output are disabled.

Trace output of Objective-C functions now use the "[ClassName
parameter:]" form.

* src/nsterm.h (NSTRACE_ALL_GROUPS, NSTRACE_GROUP_EVENTS)
(NSTRACE_GROUP_UPDATES, NSTRACE_GROUP_FRINGE, NSTRACE_GROUP_COLOR)
(NSTRACE_GROUP_GLYPHS, NSTRACE_GROUP_FOCUS): New macros,
controlling in which function groups trace should be active.
(NSTRACE_WHEN): Support for silencing a function, this also
silencing all called functions.
(NSTRACE_UNSILENCE): New macro, used to re-enable trace.
(NSTRACE_FMT_FSTYPE, NSTRACE_ARG_FSTYPE): New macros, used to
print the full screen state in NSTRACE functions.

* src/nsterm.m (nstrace_depth, nstrace_num): Made volatile as they
can be accessed from multiple threads.
(nstrace_enabled_global): New variable, when FALSE, trace is
silenced.
(nstrace_restore_global_trace_state): New function, used to
restore `nstrace_enabled_global' at end of block.
([EmacsView setFrame:], [EmacsWindow setFrame:display:])
([EmacsWindow setFrame:display:animation:])
([EmacsWindow setFrameTopLeftPoint:]): New functions, print trace
and call corresponding super function.
(Many functions): Add or enhance trace output.

* src/nsimage.m (ns_image_from_file): Enhanced trace output.

* src/nsfns.m (x_set_tool_bar_lines): Add trace output.

* src/nsmenu.m ([EmacsToolbar setVisible:]): New function, print trace
and call corresponding super function.
2015-11-15 20:19:34 +01:00
Anders Lindgren
6d109c051c ; Cleanup of change log. Removed obsolete email addresses. 2015-11-15 19:28:32 +01:00
Anders Lindgren
b36ba568a9 Fixed a toolbar related issue on OS X.
Earlier, when toggling the tool-bar in a maximized frame, the
frame size didn't match the number of text lines, leaving an
unused area at the bottom of the frame.

* nsfns.m (x_set_tool_bar_lines): Exit maximized and full height
fullscreen modes when tool bar is disabled.
2015-11-15 19:17:53 +01:00
Anders Lindgren
63e6f4c820 Fixed OS X 10.6.8 build issue (bug#21862).
* src/nsterm.h (EmacsView): Add missing declarations.
* src/nsterm.m ([EmacsView windowDidBecomeKey]): New method, like
the standard method but without the notification parameter.
Intended to be used for direct calls.
([EmacsView windowDidEnterFullScreen]): Call the non-notification
version of `windowDidBecomeKey'. Made the notification method call
the non-notification method instead of the vice versa.
(NSWindowDidEnterFullScreenNotification): Deleted, no longer
needed.
2015-11-15 18:51:50 +01:00
Artur Malabarba
4f19767dfa * lisp/faces.el (faces--attribute-at-point): Fix an issue
Previous code would signal an error when the face at point was
a manually built list of attributes such as '(:foregroud "white").

* test/automated/faces-tests.el (faces--test-color-at-point): Add a test
2015-11-15 18:43:28 +00:00
Paul Eggert
8121757b3a Fix regex abort when it tries to reenter itself
Problem reported by Ken Raeburn.
Solution suggested by Stefan Monnier (Bug#21688).
* src/regex.c (re_match_2_internal):
Use new _FAST functions to avoid regex code reentering itself.
* src/syntax.c (update_syntax_table_forward): New arg PROPERTIZE.
All callers changed.
* src/syntax.h (UPDATE_SYNTAX_TABLE_FORWARD_FAST)
(UPDATE_SYNTAX_TABLE_FAST): New inline functions.
2015-11-15 01:15:42 -08:00
Dmitry Gutov
3a1a220b02 Improve Ruby 1.9-style keyword keys highlighting
* lisp/progmodes/ruby-mode.el (ruby-font-lock-keywords):
Handle required keyword arguments (bug#21367).
And highlight the colon together with the name.
2015-11-15 07:25:19 +02:00
Dmitry Gutov
a4c6f55b9a Unify the absolutely equal xref-backend-references implementations
* lisp/progmodes/elisp-mode.el (xref-backend-references):
Remove.

* lisp/progmodes/etags.el (xref-backend-references):
Remove.

* lisp/progmodes/xref.el (xref-backend-references):
Define the default implementation.
2015-11-15 07:00:45 +02:00
Dmitry Gutov
1a3c4541c3 Update project-find-regexp for the new xref API
* lisp/progmodes/project.el (project--read-regexp):
Update to use the new xref API methods.

* lisp/progmodes/xref.el (xref-find-backend): Autoload.
2015-11-15 06:32:13 +02:00
Dmitry Gutov
bc2cec6b20 Fix replacing a match with a shorter string
In effect, partially reverting fe973fc.

* lisp/progmodes/xref.el (xref-query-replace): Store the end
of each match as a marker again, instead of length.
(xref--query-replace-1): Update accordingly.
2015-11-15 06:32:13 +02:00
Artur Malabarba
d24e7833e5 * lisp/progmodes/xref.el (xref-pop-marker-stack): Downgrade errors
Signal user-errors instead.
2015-11-14 21:13:33 +00:00
Eli Zaretskii
278d8c8e6c Document 'describe-symbol'
* doc/emacs/help.texi (Help Summary): Mention "C-h o".
(Name Help): Document "C-h o" and describe-symbol.

* lisp/help-fns.el (describe-symbol): Doc fix.
2015-11-14 22:02:26 +02:00
Paul Eggert
478262d6cc Change test name to avoid spellcheck issue. 2015-11-14 11:51:20 -08:00
Eli Zaretskii
33249be645 ; * etc/NEWS: Minor improvements in wording. 2015-11-14 21:38:47 +02:00
Eli Zaretskii
7ad01cb68a Avoid signaling an error in 'describe-symbol'
* lisp/help-fns.el (describe-symbol): Avoid errors when the symbol
exists as a function/variable/face/etc., but is undocumented.

* test/automated/help-fns.el (help-fns-test-describe-symbol): New
test.
2015-11-14 19:27:52 +02:00
Eli Zaretskii
855c6e8cdb ; * etc/NEWS: Fix formatting 2015-11-14 18:25:24 +02:00
Eli Zaretskii
c0cbecf3e8 ; * etc/NEWS: Some easily fixed documentation marks 2015-11-14 18:22:45 +02:00
Eli Zaretskii
abef71f38a * INSTALL (--with-cairo): Document this new configure option. 2015-11-14 18:20:36 +02:00
Eli Zaretskii
07742820e4 Document that GNU Make >= 3.81 is required to build Emacs
* doc/lispref/internals.texi (Building Emacs): Document that GNU
Make 3.81 or later is now required.
2015-11-14 18:12:25 +02:00
Artur Malabarba
e7f2c91bd1 Backport: * lisp/emacs-lisp/package.el: Refactor -with-work-buffer-async.
(package--with-work-buffer-async): Reimplement as
`package--with-response-buffer'.
(package--with-work-buffer): Mark obsolete.
(package--with-response-buffer): New macro. This is a more self
contained and less contrived version of
`package--with-work-buffer-async'.  It uses keyword arguments,
doesn't have async on the name, doesn't fallback on
`package--with-work-buffer', and has _much_ simpler error
handling.  On master, this macro will soon be part of another
library (either standalone or inside url.el), which is why this
commit is not to be merged back.

(package--check-signature, package--download-one-archive)
(package-install-from-archive, describe-package-1): Use it.

(package--download-and-read-archives): Let
`package--download-one-archive' take care of calling
`package--update-downloads-in-progress'.
2015-11-14 16:06:01 +00:00
Eli Zaretskii
ca947054e2 * CONTRIBUTE (Branches): Improve wording for back-ported commits. 2015-11-14 13:52:34 +02:00
Dmitry Gutov
f234fc2cb3 Merge branch 'master' into emacs-25 2015-11-14 13:02:35 +02:00
Dmitry Gutov
138ad3d93b ; Fix warnings
* lisp/vc/diff-mode.el (diff-kill-applied-hunks):
Fix unused variable warnings.
2015-11-14 03:03:58 +02:00
Dmitry Gutov
7126e9a40b ; Update xref-etags-mode for the latest change 2015-11-14 02:41:38 +02:00
Dmitry Gutov
246d6605f7 Use generic dispatch for xref backends
* lisp/progmodes/xref.el (xref-backend-functions):
New variable.
(xref-find-function): Remove.
(xref-find-backend)
(xref--etags-backend): New functions.
(xref-identifier-at-point-function)
(xref-identifier-completion-table-function): Remove.
(xref-backend-definitions, xref-backend-references)
(xref-backend-apropos, xref-backend-identifier-at-point)
(xref-backend-identifier-completion-table):
New generic functions.

* lisp/progmodes/elisp-mode.el (emacs-lisp-mode): Add
`elisp--xref-backend' to the beginning of
`xref-backend-functions', locally.  Delete references to
removed functions and vars.
(elisp-xref-find): Remove.
(elisp--xref-backend): New function.
(elisp--xref-find-references, elisp--xref-find-apropos)
(elisp--xref-identifier-completion-table):
Turn into appropriately named generic methods.

* lisp/progmodes/etags.el (etags-xref-find): Remove.
(xref-backend-identifier-completion-table)
(xref-backend-references, xref-backend-definitions)
(xref-backend-apropos): New generic methods.
2015-11-14 02:41:38 +02:00
Juri Linkov
31f6e93933 Support rectangular regions for more commands
* lisp/simple.el (region-extract-function): Handle the arg value ‘bounds’.
(region-insert-function): New function.
(shell-command-on-region): Add arg ‘region-noncontiguous-p’.
If non-nil, operate on multiple chunks.
(region-noncontiguous-p): New function.

* lisp/rect.el: Add function rectangle--insert-region
around region-insert-function.
(extract-rectangle-bounds): New function.
(rectangle--extract-region): Handle the arg value ‘bounds’.
(rectangle--insert-region): New function.

* lisp/emulation/cua-rect.el: Add function cua--insert-rectangle
around region-insert-function.
(cua--extract-rectangle-bounds): New function.
(cua--rectangle-region-extract): Handle the arg value ‘bounds’.

* lisp/replace.el (query-replace, query-replace-regexp): Add arg
‘region-noncontiguous-p’.  Use ‘use-region-p’.
(query-replace-regexp-eval, map-query-replace-regexp)
(replace-string, replace-regexp): Use ‘use-region-p’.
(keep-lines, flush-lines, how-many): Use ‘use-region-p’.
(perform-replace): Add arg ‘region-noncontiguous-p’.
If non-nil, operate on multiple chunks.

* src/casefiddle.c (Fdowncase_region): Add arg ‘region-noncontiguous-p’.
If non-nil, operate on multiple chunks. (Bug#19829)
2015-11-14 01:28:03 +02:00
Dmitry Gutov
f103a2771b Handle multiple matches on the same line; add highlighting
* lisp/progmodes/xref.el (xref-location-marker): Interpret the
column value in characters.
(xref--collect-matches): Rename from `xref--collect-match'.
Search for all matches in the hit line.  Add `highlight' face to
the matched region in the summary.  Update both callers.
2015-11-14 01:11:52 +02:00
Dmitry Gutov
fe973fc270 Replace xref-match-bounds with xref-match-length
Relying on xref-location-marker to point to the beginning of the match

* lisp/progmodes/xref.el (xref-match-bounds): Remove.
(xref-match-length): Add.
(xref-make-match): Change the arguments.
(xref--match-buffer-bounds): Remove.
(xref-match-item): Store length, instead of end-column.
(xref-pulse-momentarily)
(xref--collect-match)
(xref--query-replace-1): Update accordingly.
(xref-query-replace): Ditto.  And check that the search results
are up-to-date.
2015-11-14 01:01:58 +02:00
John Wiegley
4d71d2471a Merge remote-tracking branch 'origin/master' into emacs-25 2015-11-13 14:41:41 -08:00
l3thal
51644c33d2 Merge branch 'erc-async-reconnect' into emacs-25 2015-11-13 16:37:26 -05:00
l3thal
68cdc4bd7a Reconnect asynchronously. 2015-11-13 16:34:32 -05:00
Paul Eggert
92a501022e Merge from gnulib
This incorporates:
2015-11-13 xalloc-oversized: improve performance with GCC 5
* lib/xalloc-oversized.h: Copy from gnulib.
2015-11-13 12:40:52 -08:00