(forward-line 1)
(newline (- n (/ n 2)))))
(goto-char (point-min))
+ (setq buffer-undo-list nil)
(set-buffer-modified-p nil))))
;;;###autoload
(intern (upcase name))))))
arglist)))
+;;; Could be this, if we make symbol-file do the work below.
+;;; (defun help-C-file-name (subr-or-var kind)
+;;; "Return the name of the C file where SUBR-OR-VAR is defined.
+;;; KIND should be `var' for a variable or `subr' for a subroutine."
+;;; (symbol-file (if (symbolp subr-or-var) subr-or-var
+;;; (subr-name subr-or-var))
+;;; (if (eq kind 'var) 'defvar 'defun)))
+;;;###autoload
(defun help-C-file-name (subr-or-var kind)
"Return the name of the C file where SUBR-OR-VAR is defined.
KIND should be `var' for a variable or `subr' for a subroutine."
(let ((file (catch 'loop
(while t
(let ((pnt (search-forward (concat "\1f" name "\n"))))
- (re-search-backward "\1fS\\(.*\\)")
- (let ((file (match-string 1)))
+ (re-search-backward "\1fS\\(.*\\)")
+ (let ((file (match-string 1)))
(if (member file build-files)
(throw 'loop file)
(goto-char pnt))))))))
;; Variables
;;;###autoload
-(defun variable-at-point ()
+(defun variable-at-point (&optional any-symbol)
"Return the bound variable symbol found around point.
-Return 0 if there is no such symbol."
+Return 0 if there is no such symbol.
+If ANY-SYMBOL is non-nil, don't insist the symbol be bound."
(or (condition-case ()
(with-syntax-table emacs-lisp-mode-syntax-table
(save-excursion
(error nil))
(let* ((str (find-tag-default))
(sym (if str (intern-soft str))))
- (if (and sym (boundp sym))
+ (if (and sym (or any-symbol (boundp sym)))
sym
(save-match-data
(when (and str (string-match "\\`\\W*\\(.*?\\)\\W*\\'" str))
(setq sym (intern-soft (match-string 1 str)))
- (and (boundp sym) sym)))))
+ (and (or any-symbol (boundp sym)) sym)))))
0))
;;;###autoload
(terpri)
(let ((from (point)))
(pp val)
- (help-xref-on-pp from (point))
+ ;; Hyperlinks in variable's value are quite frequently
+ ;; inappropriate e.g C-h v <RET> features <RET>
+ ;; (help-xref-on-pp from (point))
(if (< (point) (+ from 20))
(delete-region (1- from) from)))))
(terpri)
;; sensible size before prettyprinting. -- fx
(let ((from (point)))
(pp val)
- (help-xref-on-pp from (point))
+ ;; See previous comment for this function.
+ ;; (help-xref-on-pp from (point))
(if (< (point) (+ from 20))
(delete-region (1- from) from))))))
(terpri))