Add a utility function buffer-narrowed-p, and use it.
* lisp/subr.el (buffer-narrowed-p): New function. * lisp/ses.el (ses-widen): * lisp/simple.el (count-words--buffer-message): * lisp/net/browse-url.el (browse-url-of-buffer): Use it * lisp/simple.el (count-words-region): Don't signal an error if there is a non-nil prefix arg and the mark is not set. * doc/lispref/positions.texi (Narrowing): Document buffer-narrowed-p.
This commit is contained in:
parent
eddb36a7d5
commit
e5c2edf79b
9 changed files with 40 additions and 21 deletions
|
|
@ -1,5 +1,7 @@
|
|||
2012-09-07 Chong Yidong <cyd@gnu.org>
|
||||
|
||||
* positions.texi (Narrowing): Document buffer-narrowed-p.
|
||||
|
||||
* markers.texi (Moving Markers): Add xref to Point (Bug#7151).
|
||||
|
||||
* syntax.texi (Low-Level Parsing): Add xref to Parser State
|
||||
|
|
|
|||
|
|
@ -874,18 +874,18 @@ commands to a limited range of characters in a buffer. The text that
|
|||
remains addressable is called the @dfn{accessible portion} of the
|
||||
buffer.
|
||||
|
||||
Narrowing is specified with two buffer positions which become the
|
||||
beginning and end of the accessible portion. For most editing commands
|
||||
and most Emacs primitives, these positions replace the values of the
|
||||
beginning and end of the buffer. While narrowing is in effect, no text
|
||||
outside the accessible portion is displayed, and point cannot move
|
||||
outside the accessible portion.
|
||||
Narrowing is specified with two buffer positions, which become the
|
||||
beginning and end of the accessible portion. For most editing
|
||||
commands and primitives, these positions replace the values of the
|
||||
beginning and end of the buffer. While narrowing is in effect, no
|
||||
text outside the accessible portion is displayed, and point cannot
|
||||
move outside the accessible portion. Note that narrowing does not
|
||||
alter actual buffer positions (@pxref{Point}); it only determines
|
||||
which positions are considered the accessible portion of the buffer.
|
||||
Most functions refuse to operate on text that is outside the
|
||||
accessible portion.
|
||||
|
||||
Values such as positions or line numbers, which usually count from the
|
||||
beginning of the buffer, do so despite narrowing, but the functions
|
||||
which use them refuse to operate on text that is inaccessible.
|
||||
|
||||
The commands for saving buffers are unaffected by narrowing; they save
|
||||
Commands for saving buffers are unaffected by narrowing; they save
|
||||
the entire buffer regardless of any narrowing.
|
||||
|
||||
If you need to display in a single buffer several very different
|
||||
|
|
@ -924,6 +924,11 @@ It is equivalent to the following expression:
|
|||
@end example
|
||||
@end deffn
|
||||
|
||||
@defun buffer-narrowed-p
|
||||
This function returns non-@code{nil} if the buffer is narrowed, and
|
||||
@code{nil} otherwise.
|
||||
@end defun
|
||||
|
||||
@defspec save-restriction body@dots{}
|
||||
This special form saves the current bounds of the accessible portion,
|
||||
evaluates the @var{body} forms, and finally restores the saved bounds,
|
||||
|
|
|
|||
3
etc/NEWS
3
etc/NEWS
|
|
@ -645,6 +645,9 @@ The interpretation of the DECLS is determined by `defun-declarations-alist'.
|
|||
|
||||
** New error type and new function `user-error'. Doesn't trigger the debugger.
|
||||
|
||||
+++
|
||||
** New utility function `buffer-narrowed-p'.
|
||||
|
||||
** Window changes
|
||||
|
||||
*** The functions get-lru-window, get-mru-window and get-largest-window
|
||||
|
|
|
|||
|
|
@ -1,6 +1,13 @@
|
|||
2012-09-07 Chong Yidong <cyd@gnu.org>
|
||||
|
||||
* simple.el (count-words--buffer-message): Fix narrowing check.
|
||||
* subr.el (buffer-narrowed-p): New function.
|
||||
|
||||
* ses.el (ses-widen):
|
||||
* simple.el (count-words--buffer-message):
|
||||
* net/browse-url.el (browse-url-of-buffer): Use it
|
||||
|
||||
* simple.el (count-words-region): Don't signal an error if there
|
||||
is a non-nil prefix arg and the mark is not set.
|
||||
|
||||
* help.el (describe-key-briefly): Allow the message to be seen
|
||||
when invoked from the minibuffer (Bug#7014).
|
||||
|
|
|
|||
|
|
@ -260,7 +260,7 @@ Remove from SYMBOL's plist the property PROPNAME and its value.
|
|||
;;;;;; cl-typecase cl-ecase cl-case cl-load-time-value cl-eval-when
|
||||
;;;;;; cl-destructuring-bind cl-function cl-defmacro cl-defun cl-gentemp
|
||||
;;;;;; cl-gensym cl--compiler-macro-cXXr cl--compiler-macro-list*)
|
||||
;;;;;; "cl-macs" "cl-macs.el" "e09b4be5072a8b52d40af6e073876e76")
|
||||
;;;;;; "cl-macs" "cl-macs.el" "9f9bae5b8ccaf325bd59ba9be2b27c44")
|
||||
;;; Generated autoloads from cl-macs.el
|
||||
|
||||
(autoload 'cl--compiler-macro-list* "cl-macs" "\
|
||||
|
|
|
|||
|
|
@ -743,7 +743,7 @@ narrowed."
|
|||
(and buffer (set-buffer buffer))
|
||||
(let ((file-name
|
||||
;; Ignore real name if restricted
|
||||
(and (= (- (point-max) (point-min)) (buffer-size))
|
||||
(and (not (buffer-narrowed-p))
|
||||
(or buffer-file-name
|
||||
(and (boundp 'dired-directory) dired-directory)))))
|
||||
(or file-name
|
||||
|
|
|
|||
|
|
@ -1270,11 +1270,9 @@ when the width of cell (ROW,COL) has changed."
|
|||
;; The data area
|
||||
;;----------------------------------------------------------------------------
|
||||
|
||||
(defun ses-narrowed-p () (/= (- (point-max) (point-min)) (buffer-size)))
|
||||
|
||||
(defun ses-widen ()
|
||||
"Turn off narrowing, to be reenabled at end of command loop."
|
||||
(if (ses-narrowed-p)
|
||||
(if (buffer-narrowed-p)
|
||||
(setq ses--deferred-narrow t))
|
||||
(widen))
|
||||
|
||||
|
|
|
|||
|
|
@ -974,7 +974,9 @@ rather than the region.
|
|||
|
||||
If called from Lisp, return the number of words between positions
|
||||
START and END."
|
||||
(interactive "r\nP")
|
||||
(interactive (if current-prefix-arg
|
||||
(list nil nil current-prefix-arg)
|
||||
(list (region-beginning) (region-end) nil)))
|
||||
(cond ((not (called-interactively-p 'any))
|
||||
(count-words start end))
|
||||
(arg
|
||||
|
|
@ -1008,9 +1010,7 @@ END, without printing any message."
|
|||
|
||||
(defun count-words--buffer-message ()
|
||||
(count-words--message
|
||||
(if (= (- (point-max) (point-min)) (buffer-size))
|
||||
"Buffer"
|
||||
"Narrowed part of buffer")
|
||||
(if (buffer-narrowed-p) "Narrowed part of buffer" "Buffer")
|
||||
(point-min) (point-max)))
|
||||
|
||||
(defun count-words--message (str start end)
|
||||
|
|
|
|||
|
|
@ -2647,6 +2647,10 @@ directory if it does not exist."
|
|||
|
||||
;;;; Misc. useful functions.
|
||||
|
||||
(defsubst buffer-narrowed-p ()
|
||||
"Return non-nil if the current buffer is narrowed."
|
||||
(/= (- (point-max) (point-min)) (buffer-size)))
|
||||
|
||||
(defun find-tag-default ()
|
||||
"Determine default tag to search for, based on text at point.
|
||||
If there is no plausible default, return nil."
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue