Function: cperl-info-on-command
cperl-info-on-command is an interactive and byte-compiled function
defined in cperl-mode.el.gz.
This command is obsolete since 30.1; use cperl-perldoc instead.
Signature
(cperl-info-on-command COMMAND)
Key Bindings
Source Code
;; Defined in /usr/src/emacs/lisp/progmodes/cperl-mode.el.gz
(defun cperl-info-on-command (command)
(declare (obsolete cperl-perldoc "30.1"))
(interactive
(let* ((default (cperl-word-at-point))
(read (read-string
(cperl--format-prompt "Find doc for Perl function" default))))
(list (if (equal read "")
default
read))))
(let ((cmd-desc (concat "^" (regexp-quote command) "[^a-zA-Z_0-9]")) ; "tr///"
pos isvar height iniheight frheight buf win iniwin not-loner
max-height char-height buf-list)
(if (string-match "^-[a-zA-Z]$" command)
(setq cmd-desc "^-X[ \t\n]"))
(setq isvar (string-match "^[$@%]" command)
buf (cperl-info-buffer isvar)
iniwin (selected-window))
(set-buffer buf)
(goto-char (point-min))
(or isvar
(progn (re-search-forward "^-X[ \t\n]")
(forward-line -1)))
(if (re-search-forward cmd-desc nil t)
(progn
;; Go back to beginning of the group (ex, for qq)
(if (re-search-backward "^[ \t\n\f]")
(forward-line 1))
(beginning-of-line)
;; Get some of
(setq pos (point)
buf-list (list buf "*info-perl-var*" "*info-perl*"))
(while (and (not win) buf-list)
(setq win (get-buffer-window (car buf-list) t))
(setq buf-list (cdr buf-list)))
(or (not win)
(eq (window-buffer win) buf)
(set-window-buffer win buf))
(pop-to-buffer buf)
(goto-char pos) ; Needed (?!).
;; Resize
(setq iniheight (window-height)
frheight (frame-height)
not-loner (< iniheight (1- frheight))) ; Are not alone
(cond ((if not-loner cperl-max-help-size
cperl-shrink-wrap-info-frame)
(setq height
(+ 2
(count-lines
pos
(save-excursion
(if (re-search-forward
"^[ \t][^\n]*\n+\\([^ \t\n\f]\\|\\'\\)" nil t)
(match-beginning 0) (point-max)))))
max-height
(if not-loner
(/ (* (- frheight 3) cperl-max-help-size) 100)
(setq char-height (frame-char-height))
(if (eq char-height 1) (setq char-height 18))
;; Title, menubar, + 2 for slack
(- (/ (display-pixel-height) char-height) 4)))
(if (> height max-height) (setq height max-height))
;;(message "was %s doing %s" iniheight height)
(if not-loner
(enlarge-window (- height iniheight))
(set-frame-height (window-frame win) (1+ height)))))
(set-window-start (selected-window) pos))
(message "No entry for %s found." command))
;;(pop-to-buffer buffer)
(select-window iniwin)))