mirror of
https://git.savannah.gnu.org/git/emacs.git
synced 2024-11-27 07:37:33 +00:00
Merge from emacs-24; up to 2012-11-09T14:45:15Z!dmantipov@yandex.ru
This commit is contained in:
commit
f78ee6afc0
@ -1,3 +1,12 @@
|
||||
2012-11-13 Chong Yidong <cyd@gnu.org>
|
||||
|
||||
* building.texi (Multithreaded Debugging): gdb-stopped-hooks is
|
||||
actually named gdb-stopped-functions.
|
||||
|
||||
2012-11-13 Glenn Morris <rgm@gnu.org>
|
||||
|
||||
* misc.texi (Single Shell): Mention async-shell-command-buffer.
|
||||
|
||||
2012-11-10 Glenn Morris <rgm@gnu.org>
|
||||
|
||||
* misc.texi (Terminal emulator): Rename `term-face' to `term'.
|
||||
|
@ -1244,8 +1244,8 @@ depending on the reason which caused the stop. Customize the variable
|
||||
@code{gdb-switch-reasons} to select the stop reasons which will cause
|
||||
a thread switch.
|
||||
|
||||
@vindex gdb-stopped-hooks
|
||||
The variable @code{gdb-stopped-hooks} allows you to execute your
|
||||
@vindex gdb-stopped-functions
|
||||
The variable @code{gdb-stopped-functions} allows you to execute your
|
||||
functions whenever some thread stops.
|
||||
|
||||
In non-stop mode, you can switch between different modes for GUD
|
||||
|
@ -542,11 +542,19 @@ which is impossible to ignore.
|
||||
You can also type @kbd{M-&} (@code{async-shell-command}) to execute a
|
||||
shell command asynchronously; this is exactly like calling @kbd{M-!}
|
||||
with a trailing @samp{&}, except that you do not need the @samp{&}.
|
||||
The output buffer for asynchronous shell commands is named
|
||||
The default output buffer for asynchronous shell commands is named
|
||||
@samp{*Async Shell Command*}. Emacs inserts the output into this
|
||||
buffer as it comes in, whether or not the buffer is visible in a
|
||||
window.
|
||||
|
||||
@vindex async-shell-command-buffer
|
||||
If you want to run more than one asynchronous shell command at the
|
||||
same time, they could end up competing for the output buffer. The
|
||||
option @code{async-shell-command-buffer} specifies what to do about
|
||||
this; e.g., whether to rename the pre-existing output buffer, or to
|
||||
use a different buffer for the new command. Consult the variable's
|
||||
documentation for more possibilities.
|
||||
|
||||
@kindex M-|
|
||||
@findex shell-command-on-region
|
||||
@kbd{M-|} (@code{shell-command-on-region}) is like @kbd{M-!}, but
|
||||
|
@ -1,3 +1,18 @@
|
||||
2012-11-13 Glenn Morris <rgm@gnu.org>
|
||||
|
||||
* variables.texi (Adding Generalized Variables):
|
||||
At least mention gv-define-expander and gv-letplace.
|
||||
|
||||
* debugging.texi (Error Debugging): Mention debug-on-message.
|
||||
(Using Debugger): Mention debugger-bury-or-kill.
|
||||
|
||||
* control.texi (Signaling Errors):
|
||||
* debugging.texi (Error Debugging):
|
||||
* errors.texi (Standard Errors): Add user-error.
|
||||
|
||||
* variables.texi (Adding Generalized Variables):
|
||||
Use standard formatting for common lisp note about setf functions.
|
||||
|
||||
2012-11-10 Martin Rudalics <rudalics@gmx.at>
|
||||
|
||||
* elisp.texi (Top): Add Recombining Windows to menu.
|
||||
|
@ -824,6 +824,19 @@ The function @code{signal} never returns.
|
||||
@end example
|
||||
@end defun
|
||||
|
||||
@cindex user errors, signaling
|
||||
@defun user-error format-string &rest args
|
||||
This function behaves exactly like @code{error}, except that it uses
|
||||
the error symbol @code{user-error} rather than @code{error}. As the
|
||||
name suggests, this is intended to report errors on the part of the
|
||||
user, rather than errors in the code itself. For example,
|
||||
if you try to use the command @code{Info-history-back} (@kbd{l}) to
|
||||
move back beyond the start of your Info browsing history, Emacs
|
||||
signals a @code{user-error}. Such errors do not cause entry to the
|
||||
debugger, even when @code{debug-on-error} is non-@code{nil}.
|
||||
@xref{Error Debugging}.
|
||||
@end defun
|
||||
|
||||
@cindex CL note---no continuable errors
|
||||
@quotation
|
||||
@b{Common Lisp note:} Emacs Lisp has nothing like the Common Lisp
|
||||
|
@ -117,12 +117,12 @@ has any of those condition symbols, or if the error message matches
|
||||
any of the regular expressions, then that error does not enter the
|
||||
debugger.
|
||||
|
||||
The normal value of this variable lists several errors that happen
|
||||
often during editing but rarely result from bugs in Lisp programs.
|
||||
However, ``rarely'' is not ``never''; if your program fails with an
|
||||
error that matches this list, you may try changing this list to debug
|
||||
the error. The easiest way is usually to set
|
||||
@code{debug-ignored-errors} to @code{nil}.
|
||||
The normal value of this variable includes @code{user-error}, as well
|
||||
as several errors that happen often during editing but rarely result
|
||||
from bugs in Lisp programs. However, ``rarely'' is not ``never''; if
|
||||
your program fails with an error that matches this list, you may try
|
||||
changing this list to debug the error. The easiest way is usually to
|
||||
set @code{debug-ignored-errors} to @code{nil}.
|
||||
@end defopt
|
||||
|
||||
@defopt eval-expression-debug-on-error
|
||||
@ -163,6 +163,14 @@ supported values correspond to the signals @code{SIGUSR1} and
|
||||
@code{inhibit-quit} is set and Emacs is not otherwise responding.
|
||||
@end defopt
|
||||
|
||||
@cindex message, finding what causes a particular message
|
||||
@defvar debug-on-message
|
||||
If you set @code{debug-on-message} to a regular expression,
|
||||
Emacs will enter the debugger if it displays a matching message in the
|
||||
echo area. For example, this can be useful when trying to find the
|
||||
cause of a particular message.
|
||||
@end defvar
|
||||
|
||||
To debug an error that happens during loading of the init
|
||||
file, use the option @samp{--debug-init}. This binds
|
||||
@code{debug-on-error} to @code{t} while loading the init file, and
|
||||
@ -314,6 +322,7 @@ is a message describing the reason that the debugger was invoked (such
|
||||
as the error message and associated data, if it was invoked due to an
|
||||
error).
|
||||
|
||||
@vindex debugger-bury-or-kill
|
||||
The backtrace buffer is read-only and uses a special major mode,
|
||||
Debugger mode, in which letters are defined as debugger commands. The
|
||||
usual Emacs editing commands are available; thus, you can switch windows
|
||||
@ -322,8 +331,12 @@ switch buffers, visit files, or do any other sort of editing. However,
|
||||
the debugger is a recursive editing level (@pxref{Recursive Editing})
|
||||
and it is wise to go back to the backtrace buffer and exit the debugger
|
||||
(with the @kbd{q} command) when you are finished with it. Exiting
|
||||
the debugger gets out of the recursive edit and kills the backtrace
|
||||
buffer.
|
||||
the debugger gets out of the recursive edit and buries the backtrace
|
||||
buffer. (You can customize what the @kbd{q} command does with the
|
||||
backtrace buffer by setting the variable @code{debugger-bury-or-kill}.
|
||||
For example, set it to @code{kill} if you prefer to kill the buffer
|
||||
rather than bury it. Consult the variable's documentation for more
|
||||
possibilities.)
|
||||
|
||||
When the debugger has been entered, the @code{debug-on-error}
|
||||
variable is temporarily set according to
|
||||
|
@ -172,6 +172,9 @@ The message is @samp{Text is read-only}. This is a subcategory of
|
||||
@item undefined-color
|
||||
The message is @samp{Undefined color}. @xref{Color Names}.
|
||||
|
||||
@item user-error
|
||||
The message is the empty string. @xref{Signaling Errors}.
|
||||
|
||||
@item void-function
|
||||
The message is @samp{Symbol's function definition is void}.
|
||||
@xref{Function Cells}.
|
||||
|
@ -2133,20 +2133,24 @@ set. An example of using this macro is:
|
||||
@end example
|
||||
@end defmac
|
||||
|
||||
@c FIXME? Not sure what, if anything, to say about this.
|
||||
@ignore
|
||||
@defmac gv-define-expander name handler
|
||||
This is the most general way to define a new @code{setf} expansion.
|
||||
@end defmac
|
||||
@end ignore
|
||||
@findex gv-define-expander
|
||||
@findex gv-letplace
|
||||
@c FIXME? Not sure what or how much to say about these.
|
||||
@c See cl.texi for an example of using gv-letplace.
|
||||
For more control over the expansion, see the macro @code{gv-define-expander}.
|
||||
The macro @code{gv-letplace} can be useful in defining macros that
|
||||
perform similarly to @code{setf}; for example, the @code{incf} macro
|
||||
of Common Lisp. Consult the source file @file{gv.el} for more details.
|
||||
|
||||
@cindex CL note---no @code{setf} functions
|
||||
Common Lisp defines another way to specify the @code{setf} behavior of
|
||||
a function, namely ``@code{setf} functions'', whose names are lists
|
||||
@code{(setf @var{name})} rather than symbols. For example,
|
||||
@code{(defun (setf foo) @dots{})} defines the function that is used
|
||||
when @code{setf} is applied to @code{foo}. Emacs does not support
|
||||
this. It is a compile-time error to use @code{setf} on a form that
|
||||
has not already had an appropriate expansion defined. In Common Lisp,
|
||||
this is not an error since the function @code{(setf @var{func})} might
|
||||
be defined later.
|
||||
@quotation
|
||||
@b{Common Lisp note:} Common Lisp defines another way to specify the
|
||||
@code{setf} behavior of a function, namely ``@code{setf} functions'',
|
||||
whose names are lists @code{(setf @var{name})} rather than symbols.
|
||||
For example, @code{(defun (setf foo) @dots{})} defines the function
|
||||
that is used when @code{setf} is applied to @code{foo}. Emacs does
|
||||
not support this. It is a compile-time error to use @code{setf} on a
|
||||
form that has not already had an appropriate expansion defined. In
|
||||
Common Lisp, this is not an error since the function @code{(setf
|
||||
@var{func})} might be defined later.
|
||||
@end quotation
|
||||
|
@ -1,3 +1,9 @@
|
||||
2012-11-13 Glenn Morris <rgm@gnu.org>
|
||||
|
||||
* flymake.texi (Customizable variables)
|
||||
(Highlighting erroneous lines): Mention flymake-error-bitmap,
|
||||
flymake-warning-bitmap, and flymake-fringe-indicator-position.
|
||||
|
||||
2012-11-12 Vincent Belaïche <vincentb1@users.sourceforge.net>
|
||||
|
||||
* ses.texi: Doc for ses-rename-cell, ses-repair-cell-reference-all & ses-range.
|
||||
|
@ -337,6 +337,17 @@ been reported.
|
||||
A custom face for highlighting lines for which at least one warning
|
||||
and no errors have been reported.
|
||||
|
||||
@item flymake-error-bitmap
|
||||
A bitmap used in the fringe to mark lines for which an error has
|
||||
been reported.
|
||||
|
||||
@item flymake-warning-bitmap
|
||||
A bitmap used in the fringe to mark lines for which a warning has
|
||||
been reported.
|
||||
|
||||
@item flymake-fringe-indicator-position
|
||||
Which fringe (if any) should show the warning/error bitmaps.
|
||||
|
||||
@end table
|
||||
|
||||
@node Adding support for a new syntax check tool
|
||||
@ -718,6 +729,15 @@ are used: @code{flymake-errline} and
|
||||
@code{flymake-warnline}. Errors belonging outside the current
|
||||
buffer are considered to belong to line 1 of the current buffer.
|
||||
|
||||
@c This manual does not use vindex.
|
||||
@c @vindex flymake-fringe-indicator-position
|
||||
@c @vindex flymake-error-bitmap
|
||||
@c @vindex flymake-warning-bitmap
|
||||
If the option @code{flymake-fringe-indicator-position} is non-@code{nil},
|
||||
errors and warnings are also highlighted in the left or right fringe,
|
||||
using the bitmaps specified by @code{flymake-error-bitmap}
|
||||
and @code{flymake-warning-bitmap}.
|
||||
|
||||
@node Interaction with other modes
|
||||
@section Interaction with other modes
|
||||
@cindex Interaction with other modes
|
||||
|
24
etc/NEWS
24
etc/NEWS
@ -162,6 +162,7 @@ next and previous path separator, respectively.
|
||||
*** minibuffer-electric-default-mode can rewrite (default ...) to [...].
|
||||
Just set minibuffer-eldef-shorten-default to t before enabling the mode.
|
||||
|
||||
+++
|
||||
** ImageMagick support, if available, is automatically enabled.
|
||||
It is no longer necessary to call `imagemagick-register-types'
|
||||
explicitly to install ImageMagick image types; that function is called
|
||||
@ -470,6 +471,7 @@ when you receive a private message or your nickname is mentioned.
|
||||
*** ERC will look up server/channel names via auth-source and use any
|
||||
channel keys found.
|
||||
|
||||
+++
|
||||
** Flymake uses fringe bitmaps to indicate errors and warnings.
|
||||
See `flymake-fringe-indicator-position', `flymake-error-bitmap' and
|
||||
`flymake-warning-bitmap'.
|
||||
@ -478,10 +480,12 @@ See `flymake-fringe-indicator-position', `flymake-error-bitmap' and
|
||||
** Follow mode no longer works by using advice.
|
||||
The option `follow-intercept-processes' has been removed.
|
||||
|
||||
---
|
||||
** The FFAP option `ffap-url-unwrap-remote' can now be a list of strings,
|
||||
specifying URL types which should be converted to remote file names at
|
||||
specifying URL types that should be converted to remote file names at
|
||||
the FFAP prompt. The default is now '("ftp").
|
||||
|
||||
---
|
||||
** New Ibuffer `derived-mode' filter, bound to `/ M'.
|
||||
The old binding for `/ M' (filter by used-mode) is now bound to `/ m'.
|
||||
|
||||
@ -497,11 +501,14 @@ The old binding for `/ M' (filter by used-mode) is now bound to `/ m'.
|
||||
The function `notifications-get-capabilities' returns the supported
|
||||
server properties.
|
||||
|
||||
---
|
||||
** In Perl mode, new option `perl-indent-parens-as-block' causes non-block
|
||||
closing brackets to be aligned with the line of the opening bracket.
|
||||
|
||||
---
|
||||
** In Proced mode, new command `proced-renice' renices marked processes.
|
||||
|
||||
---
|
||||
** Python mode
|
||||
|
||||
A new version of python.el, which provides several new features, including:
|
||||
@ -548,6 +555,8 @@ python-insert-while | python-skeleton-while
|
||||
python-find-function | python-nav-jump-to-defun
|
||||
python-next-statement | python-nav-forward-sentence
|
||||
python-previous-statement | python-nav-backward-sentence
|
||||
python-beginning-of-defun-function | python-nav-beginning-of-defun
|
||||
python-end-of-defun-function | python-nav-end-of-defun
|
||||
python-send-buffer | python-shell-send-buffer
|
||||
python-send-defun | python-shell-send-defun
|
||||
python-send-region | python-shell-send-region
|
||||
@ -586,8 +595,9 @@ Sphinx support has been improved.
|
||||
|
||||
*** `sh-use-smie' lets you choose a new indentation and navigation code.
|
||||
|
||||
+++
|
||||
** New option `async-shell-command-buffer' specifies the buffer to use
|
||||
for a new asynchronous shell command when the default output buffer
|
||||
for a new asynchronous `shell-command' when the default output buffer
|
||||
`*Async Shell Command*' is already in use.
|
||||
|
||||
---
|
||||
@ -831,11 +841,15 @@ table, but with a different prefix.
|
||||
|
||||
** Debugger changes
|
||||
|
||||
+++
|
||||
*** New error type and new function `user-error'.
|
||||
These do not trigger the debugger.
|
||||
|
||||
*** New option `debugger-bury-or-kill'.
|
||||
+++
|
||||
*** New option `debugger-bury-or-kill', saying what to do with the
|
||||
debugger buffer when exiting debug.
|
||||
|
||||
+++
|
||||
*** Set `debug-on-message' to enter the debugger when a certain
|
||||
message is displayed in the echo area. This can be useful when trying
|
||||
to work out which code is doing something.
|
||||
@ -900,7 +914,7 @@ in Emacs 24.1:
|
||||
*** `current-time-string' no longer requires that its argument's year
|
||||
must be in the range 1000..9999. It now works with any year supported
|
||||
by the underlying C implementation.
|
||||
|
||||
+++
|
||||
*** `current-time' now returns extended-format time stamps
|
||||
(HIGH LOW USEC PSEC), where the new PSEC slot specifies picoseconds.
|
||||
PSEC is typically a multiple of 1000 on current machines. Other
|
||||
@ -912,7 +926,7 @@ stamps are still accepted.
|
||||
[TRIGGERED-P HI-SECS LO-SECS USECS REPEAT-DELAY FUNCTION ARGS IDLE-DELAY PSECS].
|
||||
The PSECS slot is new, and uses picosecond resolution. It can be
|
||||
accessed via the new timer--psecs accessor.
|
||||
|
||||
+++
|
||||
*** Last-modified time stamps in undo lists now are of the form
|
||||
(t HI-SECS LO-SECS USECS PSECS) instead of (t HI-SECS . LO-SECS).
|
||||
|
||||
|
@ -1,3 +1,53 @@
|
||||
2012-11-13 Stefan Monnier <monnier@iro.umontreal.ca>
|
||||
|
||||
* emacs-lisp/gv.el (gv-define-simple-setter): One more fix (bug#12871).
|
||||
|
||||
2012-11-13 Wolfgang Jenkner <wjenkner@inode.at>
|
||||
|
||||
* ansi-color.el (ansi-color-apply-sequence): Implement SGR codes
|
||||
39 and 49 (bug#12792). Also, treat unimplemented parameters as 0,
|
||||
thereby restoring the behavior of revisions prior to 2012-08-15T03:33:55Z!monnier@iro.umontreal.ca.
|
||||
|
||||
2012-11-13 Fabián Ezequiel Gallina <fgallina@cuca>
|
||||
|
||||
Fix end-of-defun misbehavior.
|
||||
* progmodes/python.el (python-nav-beginning-of-defun): Rename from
|
||||
python-beginning-of-defun-function. Handle nested defuns
|
||||
correctly.
|
||||
(python-nav-end-of-defun): Rename from
|
||||
python-end-of-defun-function. Ensure forward movement.
|
||||
(python-info-current-defun): Reimplement to work as intended
|
||||
with new fixed python-nav-{end,beginning}-of-defun. Stop scanning
|
||||
parent defuns as soon as possible.
|
||||
|
||||
2012-11-13 Glenn Morris <rgm@gnu.org>
|
||||
|
||||
* progmodes/flymake.el (flymake-error-bitmap)
|
||||
(flymake-warning-bitmap, flymake-fringe-indicator-position): Doc fixes.
|
||||
(flymake-error-bitmap, flymake-warning-bitmap): Fix :types.
|
||||
|
||||
2012-11-13 Dmitry Gutov <dgutov@yandex.ru>
|
||||
|
||||
* progmodes/ruby-mode.el (ruby-move-to-block): When moving
|
||||
backward, always stop at indentation. Reverts the change from
|
||||
2012-08-12T22:06:56Z!monnier@iro.umontreal.ca (Bug#12851).
|
||||
|
||||
2012-11-13 Glenn Morris <rgm@gnu.org>
|
||||
|
||||
* ibuffer.el (ibuffer-mode-map, ibuffer-mode):
|
||||
Add ibuffer-filter-by-derived-mode.
|
||||
|
||||
* ibuffer.el (ibuffer-mode-map): Don't have two menu items with
|
||||
the same name shadowing each other.
|
||||
|
||||
* window.el (with-temp-buffer-window): Doc tweak.
|
||||
|
||||
* emacs-lisp/debug.el (debugger-bury-or-kill): Doc tweak.
|
||||
|
||||
* help.el (temp-buffer-max-height):
|
||||
* window.el (fit-frame-to-buffer, fit-frame-to-buffer-bottom-margin):
|
||||
* emacs-lisp/debug.el (debugger-bury-or-kill): Fix :version.
|
||||
|
||||
2012-11-12 Stefan Monnier <monnier@iro.umontreal.ca>
|
||||
|
||||
* emacs-lisp/nadvice.el: New package.
|
||||
|
@ -534,34 +534,39 @@ Returns nil only if there's no match for `ansi-color-parameter-regexp'."
|
||||
|
||||
ESCAPE-SEQ is an escape sequence parsed by `ansi-color-parse-sequence'.
|
||||
|
||||
If the new codes resulting from ESCAPE-SEQ start with 0, then the
|
||||
old codes are discarded and the remaining new codes are
|
||||
processed. Otherwise, for each new code: if it is 21-25 or 27-29
|
||||
delete appropriate parameters from the list of codes; any other
|
||||
code that makes sense is added to the list of codes. Finally,
|
||||
the so changed list of codes is returned."
|
||||
For each new code, the following happens: if it is 1-7, add it to
|
||||
the list of codes; if it is 21-25 or 27, delete appropriate
|
||||
parameters from the list of codes; if it is 30-37 resp. 39, the
|
||||
foreground color code is replaced or added resp. deleted; if it
|
||||
is 40-47 resp. 49, the background color code is replaced or added
|
||||
resp. deleted; any other code is discarded together with the old
|
||||
codes. Finally, the so changed list of codes is returned."
|
||||
(let ((new-codes (ansi-color-parse-sequence escape-sequence)))
|
||||
(while new-codes
|
||||
(setq codes
|
||||
(let ((new (pop new-codes)))
|
||||
(cond ((zerop new)
|
||||
nil)
|
||||
((or (<= new 20)
|
||||
(>= new 30))
|
||||
(if (memq new codes)
|
||||
codes
|
||||
(cons new codes)))
|
||||
;; The standard says `21 doubly underlined' while
|
||||
;; http://en.wikipedia.org/wiki/ANSI_escape_code claims
|
||||
;; `21 Bright/Bold: off or Underline: Double'.
|
||||
((/= new 26)
|
||||
(remq (- new 20)
|
||||
(cond ((= new 22)
|
||||
(remq 1 codes))
|
||||
((= new 25)
|
||||
(remq 6 codes))
|
||||
(t codes))))
|
||||
(t codes)))))
|
||||
(let* ((new (pop new-codes))
|
||||
(q (/ new 10)))
|
||||
(setq codes
|
||||
(pcase q
|
||||
(0 (unless (memq new '(0 8 9))
|
||||
(cons new (remq new codes))))
|
||||
(2 (unless (memq new '(20 26 28 29))
|
||||
;; The standard says `21 doubly underlined' while
|
||||
;; http://en.wikipedia.org/wiki/ANSI_escape_code claims
|
||||
;; `21 Bright/Bold: off or Underline: Double'.
|
||||
(remq (- new 20) (pcase new
|
||||
(22 (remq 1 codes))
|
||||
(25 (remq 6 codes))
|
||||
(_ codes)))))
|
||||
((or 3 4) (let ((r (mod new 10)))
|
||||
(unless (= r 8)
|
||||
(let (beg)
|
||||
(while (and codes (/= q (/ (car codes) 10)))
|
||||
(push (pop codes) beg))
|
||||
(setq codes (nconc (nreverse beg) (cdr codes)))
|
||||
(if (= r 9)
|
||||
codes
|
||||
(cons new codes))))))
|
||||
(_ nil)))))
|
||||
codes))
|
||||
|
||||
(defun ansi-color-make-color-map ()
|
||||
|
@ -1,7 +1,20 @@
|
||||
2012-11-13 Stefan Monnier <monnier@iro.umontreal.ca>
|
||||
|
||||
* semantic/mru-bookmark.el (semantic-mru-bookmark-mode):
|
||||
* semantic/grammar.el (semantic-grammar-mode):
|
||||
* semantic/util-modes.el (semantic-highlight-edits-mode)
|
||||
(semantic-show-parser-state-mode): Avoid obsolete name
|
||||
semantic-edits-new-change-hooks (bug#12869).
|
||||
|
||||
2012-11-13 Glenn Morris <rgm@gnu.org>
|
||||
|
||||
* srecode/srt-mode.el (srecode-template-mode):
|
||||
Don't change global values of comment-start, comment-end. (Bug#12781)
|
||||
|
||||
2012-10-25 David Engster <deng@randomsample.de>
|
||||
|
||||
* semantic/analyze.el (semantic-analyze-dereference-alias): New
|
||||
function to dereference aliases.
|
||||
* semantic/analyze.el (semantic-analyze-dereference-alias):
|
||||
New function to dereference aliases.
|
||||
(semantic-analyze-current-context-default): Use it.
|
||||
|
||||
* semantic/grammar.el (semantic-grammar-create-package):
|
||||
@ -12,8 +25,8 @@
|
||||
|
||||
* semantic.el (semantic-elapsed-time): Make it a defsubst.
|
||||
|
||||
* srecode/dictionary.el (srecode-adebug-dictionary): Remove
|
||||
require for `semantic'.
|
||||
* srecode/dictionary.el (srecode-adebug-dictionary):
|
||||
Remove require for `semantic'.
|
||||
|
||||
* srecode/map.el:
|
||||
* srecode/insert.el: Declare functions from `data-debug'.
|
||||
|
@ -1333,8 +1333,8 @@ the change bounds to encompass the whole nonterminal tag."
|
||||
(add-hook 'before-change-functions
|
||||
'semantic--grammar-clear-macros-regexp-2 nil t)
|
||||
;; Handle safe re-parse of grammar rules.
|
||||
(semantic-make-local-hook 'semantic-edits-new-change-hooks)
|
||||
(add-hook 'semantic-edits-new-change-hooks
|
||||
(semantic-make-local-hook 'semantic-edits-new-change-functions)
|
||||
(add-hook 'semantic-edits-new-change-functions
|
||||
'semantic-grammar-edits-new-change-hook-fcn
|
||||
nil t)
|
||||
(semantic-run-mode-hooks 'semantic-grammar-mode-hook))
|
||||
|
@ -292,13 +292,13 @@ minor mode is enabled."
|
||||
(setq semantic-mru-bookmark-mode nil)
|
||||
(error "Buffer %s was not set up for parsing"
|
||||
(buffer-name)))
|
||||
(semantic-make-local-hook 'semantic-edits-new-change-hooks)
|
||||
(add-hook 'semantic-edits-new-change-hooks
|
||||
(semantic-make-local-hook 'semantic-edits-new-change-functions)
|
||||
(add-hook 'semantic-edits-new-change-functions
|
||||
'semantic-mru-bookmark-change-hook-fcn nil t)
|
||||
(add-hook 'semantic-edits-move-change-hooks
|
||||
'semantic-mru-bookmark-change-hook-fcn nil t))
|
||||
;; Remove hooks
|
||||
(remove-hook 'semantic-edits-new-change-hooks
|
||||
(remove-hook 'semantic-edits-new-change-functions
|
||||
'semantic-mru-bookmark-change-hook-fcn t)
|
||||
(remove-hook 'semantic-edits-move-change-hooks
|
||||
'semantic-mru-bookmark-change-hook-fcn t)))
|
||||
|
@ -221,11 +221,11 @@ minor mode is enabled."
|
||||
(setq semantic-highlight-edits-mode nil)
|
||||
(error "Buffer %s was not set up for parsing"
|
||||
(buffer-name)))
|
||||
(semantic-make-local-hook 'semantic-edits-new-change-hooks)
|
||||
(add-hook 'semantic-edits-new-change-hooks
|
||||
(semantic-make-local-hook 'semantic-edits-new-change-functions)
|
||||
(add-hook 'semantic-edits-new-change-functions
|
||||
'semantic-highlight-edits-new-change-hook-fcn nil t))
|
||||
;; Remove hooks
|
||||
(remove-hook 'semantic-edits-new-change-hooks
|
||||
(remove-hook 'semantic-edits-new-change-functions
|
||||
'semantic-highlight-edits-new-change-hook-fcn t)))
|
||||
|
||||
(semantic-add-minor-mode 'semantic-highlight-edits-mode
|
||||
@ -460,8 +460,8 @@ minor mode is enabled."
|
||||
(append mode-line-modified
|
||||
'(semantic-show-parser-state-string))))
|
||||
;; Add hooks
|
||||
(semantic-make-local-hook 'semantic-edits-new-change-hooks)
|
||||
(add-hook 'semantic-edits-new-change-hooks
|
||||
(semantic-make-local-hook 'semantic-edits-new-change-functions)
|
||||
(add-hook 'semantic-edits-new-change-functions
|
||||
'semantic-show-parser-state-marker nil t)
|
||||
(semantic-make-local-hook 'semantic-edits-incremental-reparse-failed-hook)
|
||||
(add-hook 'semantic-edits-incremental-reparse-failed-hook
|
||||
@ -491,7 +491,7 @@ minor mode is enabled."
|
||||
(setq mode-line-modified
|
||||
(delq 'semantic-show-parser-state-string mode-line-modified))
|
||||
;; Remove hooks
|
||||
(remove-hook 'semantic-edits-new-change-hooks
|
||||
(remove-hook 'semantic-edits-new-change-functions
|
||||
'semantic-show-parser-state-marker t)
|
||||
(remove-hook 'semantic-edits-incremental-reparse-failed-hook
|
||||
'semantic-show-parser-state-marker t)
|
||||
|
@ -189,8 +189,8 @@ we can tell font lock about them.")
|
||||
;;;###autoload
|
||||
(define-derived-mode srecode-template-mode fundamental-mode "SRecorder"
|
||||
"Major-mode for writing SRecode macros."
|
||||
(setq comment-start ";;"
|
||||
comment-end "")
|
||||
(set (make-local-variable 'comment-start) ";;")
|
||||
(set (make-local-variable 'comment-end) "")
|
||||
(set (make-local-variable 'parse-sexp-ignore-comments) t)
|
||||
(set (make-local-variable 'comment-start-skip)
|
||||
"\\(\\(^\\|[^\\\\\n]\\)\\(\\\\\\\\\\)*\\);+ *")
|
||||
|
@ -49,9 +49,9 @@ the middle is discarded, and just the beginning and end are displayed."
|
||||
:version "21.1")
|
||||
|
||||
(defcustom debugger-bury-or-kill 'bury
|
||||
"How to proceed with the debugger buffer when exiting `debug'.
|
||||
The value used here affects the behavior of operations on any
|
||||
window previously showing the debugger buffer.
|
||||
"What to do with the debugger buffer when exiting `debug'.
|
||||
The value affects the behavior of operations on any window
|
||||
previously showing the debugger buffer.
|
||||
|
||||
`nil' means that if its window is not deleted when exiting the
|
||||
debugger, invoking `switch-to-prev-buffer' will usually show
|
||||
@ -79,7 +79,7 @@ The value used here is passed to `quit-restore-window'."
|
||||
(const :tag "Bury" bury)
|
||||
(const :tag "Kill" kill))
|
||||
:group 'debugger
|
||||
:version "24.2")
|
||||
:version "24.3")
|
||||
|
||||
(defvar debugger-step-after-exit nil
|
||||
"Non-nil means \"single-step\" after the debugger exits.")
|
||||
|
@ -220,8 +220,9 @@ so as to preserve the semantics of `setf'."
|
||||
`(gv-define-setter ,name (val &rest args)
|
||||
,(if fix-return
|
||||
`(macroexp-let2 nil v val
|
||||
(cons ',setter (append args (list v)))
|
||||
v)
|
||||
`(progn
|
||||
(,',setter ,@(append args (list v)))
|
||||
,v))
|
||||
`(cons ',setter (append args (list val))))))
|
||||
|
||||
;;; Typical operations on generalized variables.
|
||||
|
@ -979,7 +979,7 @@ buffer, and should return a positive integer. At the time the
|
||||
function is called, the window to be resized is selected."
|
||||
:type '(choice integer function)
|
||||
:group 'help
|
||||
:version "24.2")
|
||||
:version "24.3")
|
||||
|
||||
(define-minor-mode temp-buffer-resize-mode
|
||||
"Toggle auto-resizing temporary buffer windows (Temp Buffer Resize Mode).
|
||||
|
@ -632,10 +632,13 @@ directory, like `default-directory'."
|
||||
'(menu-item "Disable all filtering" ibuffer-filter-disable
|
||||
:enable (and (featurep 'ibuf-ext) ibuffer-filtering-qualifiers)))
|
||||
(define-key-after map [menu-bar view filter filter-by-mode]
|
||||
'(menu-item "Add filter by major mode..." ibuffer-filter-by-mode))
|
||||
(define-key-after map [menu-bar view filter filter-by-mode]
|
||||
'(menu-item "Add filter by major mode in use..."
|
||||
'(menu-item "Add filter by any major mode..." ibuffer-filter-by-mode))
|
||||
(define-key-after map [menu-bar view filter filter-by-used-mode]
|
||||
'(menu-item "Add filter by a major mode in use..."
|
||||
ibuffer-filter-by-used-mode))
|
||||
(define-key-after map [menu-bar view filter filter-by-derived-mode]
|
||||
'(menu-item "Add filter by derived mode..."
|
||||
ibuffer-filter-by-derived-mode))
|
||||
(define-key-after map [menu-bar view filter filter-by-name]
|
||||
'(menu-item "Add filter by buffer name..." ibuffer-filter-by-name))
|
||||
(define-key-after map [menu-bar view filter filter-by-filename]
|
||||
@ -2438,8 +2441,9 @@ Marking commands:
|
||||
|
||||
Filtering commands:
|
||||
|
||||
'\\[ibuffer-filter-by-mode]' - Add a filter by major mode.
|
||||
'\\[ibuffer-filter-by-used-mode]' - Add a filter by major mode now in use.
|
||||
'\\[ibuffer-filter-by-mode]' - Add a filter by any major mode.
|
||||
'\\[ibuffer-filter-by-used-mode]' - Add a filter by a major mode now in use.
|
||||
'\\[ibuffer-filter-by-derived-mode]' - Add a filter by derived mode.
|
||||
'\\[ibuffer-filter-by-name]' - Add a filter by buffer name.
|
||||
'\\[ibuffer-filter-by-content]' - Add a filter by buffer content.
|
||||
'\\[ibuffer-filter-by-filename]' - Add a filter by filename.
|
||||
|
@ -764,25 +764,39 @@ line number outside the file being compiled."
|
||||
(and (overlayp ov) (overlay-get ov 'flymake-overlay)))
|
||||
|
||||
(defcustom flymake-error-bitmap '(exclamation-mark error)
|
||||
"Bitmap used in the fringe for indicating errors.
|
||||
"Bitmap (a symbol) used in the fringe for indicating errors.
|
||||
The value may also be a list of two elements where the second
|
||||
element specifies the face for the bitmap."
|
||||
element specifies the face for the bitmap. For possible bitmap
|
||||
symbols, see `fringe-bitmaps'. See also `flymake-warning-bitmap'.
|
||||
|
||||
The option `flymake-fringe-indicator-position' controls how and where
|
||||
this is used."
|
||||
:group 'flymake
|
||||
:version "24.3"
|
||||
:type 'symbol)
|
||||
:type '(choice (symbol :tag "Bitmap")
|
||||
(list :tag "Bitmap and face"
|
||||
(symbol :tag "Bitmap")
|
||||
(face :tag "Face"))))
|
||||
|
||||
(defcustom flymake-warning-bitmap 'question-mark
|
||||
"Bitmap used in the fringe for indicating warnings.
|
||||
"Bitmap (a symbol) used in the fringe for indicating warnings.
|
||||
The value may also be a list of two elements where the second
|
||||
element specifies the face for the bitmap."
|
||||
element specifies the face for the bitmap. For possible bitmap
|
||||
symbols, see `fringe-bitmaps'. See also `flymake-error-bitmap'.
|
||||
|
||||
The option `flymake-fringe-indicator-position' controls how and where
|
||||
this is used."
|
||||
:group 'flymake
|
||||
:version "24.3"
|
||||
:type 'symbol)
|
||||
:type '(choice (symbol :tag "Bitmap")
|
||||
(list :tag "Bitmap and face"
|
||||
(symbol :tag "Bitmap")
|
||||
(face :tag "Face"))))
|
||||
|
||||
(defcustom flymake-fringe-indicator-position 'left-fringe
|
||||
"The position to put flymake fringe indicator.
|
||||
The value can be nil, left-fringe or right-fringe.
|
||||
Fringe indicators are disabled if nil."
|
||||
The value can be nil (do not use indicators), `left-fringe' or `right-fringe'.
|
||||
See `flymake-error-bitmap' and `flymake-warning-bitmap'."
|
||||
:group 'flymake
|
||||
:version "24.3"
|
||||
:type '(choice (const left-fringe)
|
||||
|
@ -1074,12 +1074,9 @@ automatically if needed."
|
||||
The name of the defun should be grouped so it can be retrieved
|
||||
via `match-string'.")
|
||||
|
||||
(defun python-nav-beginning-of-defun (&optional arg)
|
||||
"Move point to `beginning-of-defun'.
|
||||
With positive ARG move search backwards. With negative do the
|
||||
same but forward. When ARG is nil or 0 defaults to 1. This is
|
||||
the main part of `python-beginning-of-defun-function'. Return
|
||||
non-nil if point is moved to `beginning-of-defun'."
|
||||
(defun python-nav--beginning-of-defun (&optional arg)
|
||||
"Internal implementation of `python-nav-beginning-of-defun'.
|
||||
With positive ARG search backwards, else search forwards."
|
||||
(when (or (null arg) (= arg 0)) (setq arg 1))
|
||||
(let* ((re-search-fn (if (> arg 0)
|
||||
#'re-search-backward
|
||||
@ -1087,6 +1084,15 @@ non-nil if point is moved to `beginning-of-defun'."
|
||||
(line-beg-pos (line-beginning-position))
|
||||
(line-content-start (+ line-beg-pos (current-indentation)))
|
||||
(pos (point-marker))
|
||||
(beg-indentation
|
||||
(and (> arg 0)
|
||||
(save-excursion
|
||||
(and (python-info-current-line-empty-p)
|
||||
(python-util-forward-comment -1))
|
||||
(python-nav-beginning-of-statement)
|
||||
(if (python-info-looking-at-beginning-of-defun)
|
||||
(+ (current-indentation) python-indent-offset)
|
||||
(current-indentation)))))
|
||||
(found
|
||||
(progn
|
||||
(when (and (< arg 0)
|
||||
@ -1094,7 +1100,12 @@ non-nil if point is moved to `beginning-of-defun'."
|
||||
(end-of-line 1))
|
||||
(while (and (funcall re-search-fn
|
||||
python-nav-beginning-of-defun-regexp nil t)
|
||||
(python-syntax-context-type)))
|
||||
(or (python-syntax-context-type)
|
||||
;; Handle nested defuns when moving
|
||||
;; backwards by checking indentation.
|
||||
(and (> arg 0)
|
||||
(not (= (current-indentation) 0))
|
||||
(>= (current-indentation) beg-indentation)))))
|
||||
(and (python-info-looking-at-beginning-of-defun)
|
||||
(or (not (= (line-number-at-pos pos)
|
||||
(line-number-at-pos)))
|
||||
@ -1105,55 +1116,43 @@ non-nil if point is moved to `beginning-of-defun'."
|
||||
(or (beginning-of-line 1) t)
|
||||
(and (goto-char pos) nil))))
|
||||
|
||||
(defun python-beginning-of-defun-function (&optional arg)
|
||||
"Move point to the beginning of def or class.
|
||||
With positive ARG move that number of functions backwards. With
|
||||
negative do the same but forward. When ARG is nil or 0 defaults
|
||||
to 1. Return non-nil if point is moved to `beginning-of-defun'."
|
||||
(defun python-nav-beginning-of-defun (&optional arg)
|
||||
"Move point to `beginning-of-defun'.
|
||||
With positive ARG search backwards else search forward. When ARG
|
||||
is nil or 0 defaults to 1. When searching backwards nested
|
||||
defuns are handled with care depending on current point
|
||||
position. Return non-nil if point is moved to
|
||||
`beginning-of-defun'."
|
||||
(when (or (null arg) (= arg 0)) (setq arg 1))
|
||||
(let ((found))
|
||||
(cond ((and (eq this-command 'mark-defun)
|
||||
(python-info-looking-at-beginning-of-defun)))
|
||||
(t
|
||||
(dotimes (i (if (> arg 0) arg (- arg)))
|
||||
(when (and (python-nav-beginning-of-defun arg)
|
||||
(when (and (python-nav--beginning-of-defun arg)
|
||||
(not found))
|
||||
(setq found t)))))
|
||||
found))
|
||||
|
||||
(defun python-end-of-defun-function ()
|
||||
(defun python-nav-end-of-defun ()
|
||||
"Move point to the end of def or class.
|
||||
Returns nil if point is not in a def or class."
|
||||
(interactive)
|
||||
(let ((beg-defun-indent))
|
||||
(let ((beg-defun-indent)
|
||||
(beg-pos (point)))
|
||||
(when (or (python-info-looking-at-beginning-of-defun)
|
||||
(python-beginning-of-defun-function 1)
|
||||
(python-beginning-of-defun-function -1))
|
||||
(python-nav-beginning-of-defun 1)
|
||||
(python-nav-beginning-of-defun -1))
|
||||
(setq beg-defun-indent (current-indentation))
|
||||
(while (progn
|
||||
(python-nav-end-of-statement)
|
||||
(python-util-forward-comment 1)
|
||||
(and (> (current-indentation) beg-defun-indent)
|
||||
(not (eobp)))))
|
||||
(python-util-forward-comment -1)
|
||||
(forward-line 1)
|
||||
;; Go as forward as possible
|
||||
(while (and (or
|
||||
(python-nav-beginning-of-defun -1)
|
||||
(and (goto-char (point-max)) nil))
|
||||
(> (current-indentation) beg-defun-indent)))
|
||||
(beginning-of-line 1)
|
||||
;; Go as backwards as possible
|
||||
(while (and (forward-line -1)
|
||||
(not (bobp))
|
||||
(or (not (current-word))
|
||||
(equal (char-after (+ (point) (current-indentation))) ?#)
|
||||
(<= (current-indentation) beg-defun-indent)
|
||||
(looking-at (python-rx decorator))
|
||||
(python-syntax-context-type))))
|
||||
(forward-line 1)
|
||||
;; If point falls inside a paren or string context the point is
|
||||
;; forwarded at the end of it (or end of buffer if its not closed)
|
||||
(let ((context-type (python-syntax-context-type)))
|
||||
(when (memq context-type '(paren string))
|
||||
;; Slow but safe.
|
||||
(while (and (not (eobp))
|
||||
(python-syntax-context-type))
|
||||
(forward-line 1)))))))
|
||||
;; Ensure point moves forward.
|
||||
(and (> beg-pos (point)) (goto-char beg-pos)))))
|
||||
|
||||
(defun python-nav-beginning-of-statement ()
|
||||
"Move to start of current statement."
|
||||
@ -2022,7 +2021,7 @@ When argument ARG is non-nil do not include decorators."
|
||||
(python-shell-send-region
|
||||
(progn
|
||||
(end-of-line 1)
|
||||
(while (and (or (python-beginning-of-defun-function)
|
||||
(while (and (or (python-nav-beginning-of-defun)
|
||||
(beginning-of-line 1))
|
||||
(> (current-indentation) 0)))
|
||||
(when (not arg)
|
||||
@ -2031,7 +2030,7 @@ When argument ARG is non-nil do not include decorators."
|
||||
(forward-line 1))
|
||||
(point-marker))
|
||||
(progn
|
||||
(or (python-end-of-defun-function)
|
||||
(or (python-nav-end-of-defun)
|
||||
(end-of-line 1))
|
||||
(point-marker)))))
|
||||
|
||||
@ -2879,38 +2878,40 @@ Optional argument INCLUDE-TYPE indicates to include the type of the defun.
|
||||
This function is compatible to be used as
|
||||
`add-log-current-defun-function' since it returns nil if point is
|
||||
not inside a defun."
|
||||
(let ((names '())
|
||||
(starting-indentation)
|
||||
(starting-point)
|
||||
(first-run t))
|
||||
(save-restriction
|
||||
(widen)
|
||||
(save-excursion
|
||||
(setq starting-point (point-marker))
|
||||
(setq starting-indentation (save-excursion
|
||||
(python-nav-beginning-of-statement)
|
||||
(current-indentation)))
|
||||
(end-of-line 1)
|
||||
(while (python-beginning-of-defun-function 1)
|
||||
(when (or (< (current-indentation) starting-indentation)
|
||||
(and first-run
|
||||
(<
|
||||
starting-point
|
||||
(save-excursion
|
||||
(python-end-of-defun-function)
|
||||
(point-marker)))))
|
||||
(setq first-run nil)
|
||||
(setq starting-indentation (current-indentation))
|
||||
(looking-at python-nav-beginning-of-defun-regexp)
|
||||
(setq names (cons
|
||||
(let ((names)
|
||||
(starting-indentation
|
||||
(save-excursion
|
||||
(and
|
||||
(python-nav-beginning-of-defun 1)
|
||||
;; This extra number is just for checking code
|
||||
;; against indentation to work well on first run.
|
||||
(+ (current-indentation) 4))))
|
||||
(starting-point (point)))
|
||||
;; Check point is inside a defun.
|
||||
(when (and starting-indentation
|
||||
(< starting-point
|
||||
(save-excursion
|
||||
(python-nav-end-of-defun)
|
||||
(point))))
|
||||
(catch 'exit
|
||||
(while (python-nav-beginning-of-defun 1)
|
||||
(when (< (current-indentation) starting-indentation)
|
||||
(setq starting-indentation (current-indentation))
|
||||
(setq names
|
||||
(cons
|
||||
(if (not include-type)
|
||||
(match-string-no-properties 1)
|
||||
(mapconcat 'identity
|
||||
(split-string
|
||||
(match-string-no-properties 0)) " "))
|
||||
names))))))
|
||||
(when names
|
||||
(mapconcat (lambda (string) string) names "."))))
|
||||
names)))
|
||||
(and (= (current-indentation) 0) (throw 'exit t)))))
|
||||
(and names
|
||||
(mapconcat (lambda (string) string) names "."))))))
|
||||
|
||||
(defun python-info-current-symbol (&optional replace-self)
|
||||
"Return current symbol using dotty syntax.
|
||||
@ -3200,9 +3201,9 @@ if that value is non-nil."
|
||||
'python-fill-paragraph)
|
||||
|
||||
(set (make-local-variable 'beginning-of-defun-function)
|
||||
#'python-beginning-of-defun-function)
|
||||
#'python-nav-beginning-of-defun)
|
||||
(set (make-local-variable 'end-of-defun-function)
|
||||
#'python-end-of-defun-function)
|
||||
#'python-nav-end-of-defun)
|
||||
|
||||
(add-hook 'completion-at-point-functions
|
||||
'python-completion-complete-at-point nil 'local)
|
||||
@ -3230,7 +3231,7 @@ if that value is non-nil."
|
||||
(add-to-list 'hs-special-modes-alist
|
||||
`(python-mode "^\\s-*\\(?:def\\|class\\)\\>" nil "#"
|
||||
,(lambda (arg)
|
||||
(python-end-of-defun-function)) nil))
|
||||
(python-nav-end-of-defun)) nil))
|
||||
|
||||
(set (make-local-variable 'mode-require-final-newline) t)
|
||||
|
||||
|
@ -898,17 +898,7 @@ or blocks containing the current block."
|
||||
(back-to-indentation)
|
||||
(if (looking-at (concat "\\<\\(" ruby-block-mid-re "\\)\\>"))
|
||||
(setq done nil)))))
|
||||
(back-to-indentation)
|
||||
(when (< n 0)
|
||||
(let ((eol (point-at-eol)) state next)
|
||||
(if (< orig eol) (setq eol orig))
|
||||
(setq orig (point))
|
||||
(while (and (setq next (apply 'ruby-parse-partial eol state))
|
||||
(< (point) eol))
|
||||
(setq state next))
|
||||
(when (cdaadr state)
|
||||
(goto-char (cdaadr state)))
|
||||
(backward-word)))))
|
||||
(back-to-indentation)))
|
||||
|
||||
(defun ruby-beginning-of-block (&optional arg)
|
||||
"Move backward to the beginning of the current block.
|
||||
|
@ -143,37 +143,36 @@ to `display-buffer'."
|
||||
window))))
|
||||
|
||||
(defmacro with-temp-buffer-window (buffer-or-name action quit-function &rest body)
|
||||
"Evaluate BODY and display buffer specified by BUFFER-OR-NAME.
|
||||
BUFFER-OR-NAME must specify either a live buffer or the name of a
|
||||
buffer. If no buffer with such a name exists, create one.
|
||||
"Evaluate BODY and display the buffer specified by BUFFER-OR-NAME.
|
||||
BUFFER-OR-NAME must specify either a live buffer, or the name of a
|
||||
buffer (if it does not exist, this macro creates it).
|
||||
|
||||
Make sure the specified buffer is empty before evaluating BODY.
|
||||
Do not make that buffer current for BODY. Instead, bind
|
||||
`standard-output' to that buffer, so that output generated with
|
||||
`prin1' and similar functions in BODY goes into that buffer.
|
||||
|
||||
After evaluating BODY, mark the specified buffer unmodified and
|
||||
read-only, and display it in a window via `display-buffer'. Pass
|
||||
ACTION as action argument to `display-buffer'. Automatically
|
||||
shrink the window used if `temp-buffer-resize-mode' is enabled.
|
||||
After evaluating BODY, this marks the specified buffer unmodified and
|
||||
read-only, and displays it in a window via `display-buffer', passing
|
||||
ACTION as the action argument to `display-buffer'. It automatically
|
||||
shrinks the relevant window if `temp-buffer-resize-mode' is enabled.
|
||||
|
||||
Return the value returned by BODY unless QUIT-FUNCTION specifies
|
||||
a function. In that case, run the function with two arguments -
|
||||
Returns the value returned by BODY, unless QUIT-FUNCTION specifies
|
||||
a function. In that case, runs the function with two arguments -
|
||||
the window showing the specified buffer and the value returned by
|
||||
BODY - and return the value returned by that function.
|
||||
BODY - and returns the value returned by that function.
|
||||
|
||||
If the buffer is displayed on a new frame, the window manager may
|
||||
decide to select that frame. In that case, it's usually a good
|
||||
strategy if the function specified by QUIT-FUNCTION selects the
|
||||
window showing the buffer before reading a value from the
|
||||
minibuffer, for example, when asking a `yes-or-no-p' question.
|
||||
minibuffer; for example, when asking a `yes-or-no-p' question.
|
||||
|
||||
This construct is similar to `with-output-to-temp-buffer' but
|
||||
does neither put the buffer in help mode nor does it call
|
||||
`temp-buffer-show-function'. It also runs different hooks,
|
||||
namely `temp-buffer-window-setup-hook' (with the specified buffer
|
||||
current) and `temp-buffer-window-show-hook' (with the specified
|
||||
buffer current and the window showing it selected).
|
||||
This construct is similar to `with-output-to-temp-buffer', but does
|
||||
not put the buffer in help mode, or call `temp-buffer-show-function'.
|
||||
It also runs different hooks, namely `temp-buffer-window-setup-hook'
|
||||
\(with the specified buffer current) and `temp-buffer-window-show-hook'
|
||||
\(with the specified buffer current and the window showing it selected).
|
||||
|
||||
Since this macro calls `display-buffer', the window displaying
|
||||
the buffer is usually not selected and the specified buffer
|
||||
@ -6065,7 +6064,7 @@ A frame can be resized if and only if its root window is a live
|
||||
window. The height of the root window is subject to the values
|
||||
of `fit-frame-to-buffer-max-height' and `window-min-height'."
|
||||
:type 'boolean
|
||||
:version "24.2"
|
||||
:version "24.3"
|
||||
:group 'help)
|
||||
|
||||
(defcustom fit-frame-to-buffer-bottom-margin 4
|
||||
@ -6073,7 +6072,7 @@ of `fit-frame-to-buffer-max-height' and `window-min-height'."
|
||||
This is the number of lines `fit-frame-to-buffer' leaves free at the
|
||||
bottom of the display in order to not obscure the system task bar."
|
||||
:type 'integer
|
||||
:version "24.2"
|
||||
:version "24.3"
|
||||
:group 'windows)
|
||||
|
||||
(defun fit-frame-to-buffer (&optional frame max-height min-height)
|
||||
|
@ -1,3 +1,11 @@
|
||||
2012-11-13 Eli Zaretskii <eliz@gnu.org>
|
||||
|
||||
* xdisp.c (decode_mode_spec): Limit the value of WIDTH argument
|
||||
passed to pint2str and pint2hrstr to be at most the size of the
|
||||
frame's decode_mode_spec_buffer. This avoids crashes with very
|
||||
large values of FIELD_WIDTH argument to decode_mode_spec.
|
||||
(Bug#12867)
|
||||
|
||||
2012-11-13 Paul Eggert <eggert@cs.ucla.edu>
|
||||
|
||||
Fix a race with verify-visited-file-modtime (Bug#12863).
|
||||
|
16
src/xdisp.c
16
src/xdisp.c
@ -21371,6 +21371,12 @@ decode_mode_spec (struct window *w, register int c, int field_width,
|
||||
Lisp_Object obj;
|
||||
struct frame *f = XFRAME (WINDOW_FRAME (w));
|
||||
char *decode_mode_spec_buf = f->decode_mode_spec_buffer;
|
||||
/* We are going to use f->decode_mode_spec_buffer as the buffer to
|
||||
produce strings from numerical values, so limit preposterously
|
||||
large values of FIELD_WIDTH to avoid overrunning the buffer's
|
||||
end. The size of the buffer is enough for FRAME_MESSAGE_BUF_SIZE
|
||||
bytes plus the terminating null. */
|
||||
int width = min (field_width, FRAME_MESSAGE_BUF_SIZE (f));
|
||||
struct buffer *b = current_buffer;
|
||||
|
||||
obj = Qnil;
|
||||
@ -21466,7 +21472,7 @@ decode_mode_spec (struct window *w, register int c, int field_width,
|
||||
{
|
||||
ptrdiff_t col = current_column ();
|
||||
wset_column_number_displayed (w, make_number (col));
|
||||
pint2str (decode_mode_spec_buf, field_width, col);
|
||||
pint2str (decode_mode_spec_buf, width, col);
|
||||
return decode_mode_spec_buf;
|
||||
}
|
||||
|
||||
@ -21497,14 +21503,14 @@ decode_mode_spec (struct window *w, register int c, int field_width,
|
||||
case 'i':
|
||||
{
|
||||
ptrdiff_t size = ZV - BEGV;
|
||||
pint2str (decode_mode_spec_buf, field_width, size);
|
||||
pint2str (decode_mode_spec_buf, width, size);
|
||||
return decode_mode_spec_buf;
|
||||
}
|
||||
|
||||
case 'I':
|
||||
{
|
||||
ptrdiff_t size = ZV - BEGV;
|
||||
pint2hrstr (decode_mode_spec_buf, field_width, size);
|
||||
pint2hrstr (decode_mode_spec_buf, width, size);
|
||||
return decode_mode_spec_buf;
|
||||
}
|
||||
|
||||
@ -21611,12 +21617,12 @@ decode_mode_spec (struct window *w, register int c, int field_width,
|
||||
line_number_displayed = 1;
|
||||
|
||||
/* Make the string to show. */
|
||||
pint2str (decode_mode_spec_buf, field_width, topline + nlines);
|
||||
pint2str (decode_mode_spec_buf, width, topline + nlines);
|
||||
return decode_mode_spec_buf;
|
||||
no_value:
|
||||
{
|
||||
char* p = decode_mode_spec_buf;
|
||||
int pad = field_width - 2;
|
||||
int pad = width - 2;
|
||||
while (pad-- > 0)
|
||||
*p++ = ' ';
|
||||
*p++ = '?';
|
||||
|
@ -202,13 +202,13 @@ VALUES-PLIST is a list with alternating index and value elements."
|
||||
| end
|
||||
|"))
|
||||
|
||||
(ert-deftest ruby-move-to-block-stops-at-opening ()
|
||||
(ert-deftest ruby-move-to-block-stops-at-indentation ()
|
||||
(with-temp-buffer
|
||||
(insert "def f\nend")
|
||||
(beginning-of-line)
|
||||
(ruby-mode)
|
||||
(ruby-move-to-block -1)
|
||||
(should (looking-at "f$"))))
|
||||
(should (looking-at "^def"))))
|
||||
|
||||
(ert-deftest ruby-toggle-block-to-do-end ()
|
||||
(with-temp-buffer
|
||||
|
Loading…
Reference in New Issue
Block a user