emacs-diffs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Emacs-diffs] Changes to emacs/lisp/calc/calc-help.el [lexbind]


From: Miles Bader
Subject: [Emacs-diffs] Changes to emacs/lisp/calc/calc-help.el [lexbind]
Date: Mon, 25 Oct 2004 00:46:28 -0400

Index: emacs/lisp/calc/calc-help.el
diff -c emacs/lisp/calc/calc-help.el:1.4.2.2 
emacs/lisp/calc/calc-help.el:1.4.2.3
*** emacs/lisp/calc/calc-help.el:1.4.2.2        Tue Oct 14 23:35:48 2003
--- emacs/lisp/calc/calc-help.el        Mon Oct 25 04:19:45 2004
***************
*** 93,110 ****
  
  (defun calc-describe-copying ()
    (interactive)
!   (calc-info)
!   (Info-goto-node "Copying"))
  
  (defun calc-describe-distribution ()
    (interactive)
!   (calc-info)
!   (Info-goto-node "Reporting Bugs"))
  
  (defun calc-describe-no-warranty ()
    (interactive)
!   (calc-info)
!   (Info-goto-node "Copying")
    (let ((case-fold-search nil))
      (search-forward "     NO WARRANTY"))
    (beginning-of-line)
--- 93,107 ----
  
  (defun calc-describe-copying ()
    (interactive)
!   (calc-info-goto-node "Copying"))
  
  (defun calc-describe-distribution ()
    (interactive)
!   (calc-info-goto-node "Reporting Bugs"))
  
  (defun calc-describe-no-warranty ()
    (interactive)
!   (calc-info-goto-node "Copying")
    (let ((case-fold-search nil))
      (search-forward "     NO WARRANTY"))
    (beginning-of-line)
***************
*** 190,202 ****
                             (message "Reading Calc summary from manual...")
                             (save-window-excursion
                               (save-excursion
!                                (calc-info)
!                                (Info-goto-node "Summary")
                                 (goto-char (point-min))
                                 (forward-line 1)
                                 (copy-to-buffer "*Calc Summary*"
                                                 (point) (point-max))
!                                (Info-last)))
                             (setq case-fold-search nil)
                             (re-search-forward "^\\(.*\\)\\[\\.\\. a b")
                             (setq calc-summary-indentation
--- 187,199 ----
                             (message "Reading Calc summary from manual...")
                             (save-window-excursion
                               (save-excursion
!                                (calc-info-goto-node "Summary")
                                 (goto-char (point-min))
                                 (forward-line 1)
                                 (copy-to-buffer "*Calc Summary*"
                                                 (point) (point-max))
!                                  (if Info-history
!                                      (Info-last))))
                             (setq case-fold-search nil)
                             (re-search-forward "^\\(.*\\)\\[\\.\\. a b")
                             (setq calc-summary-indentation
***************
*** 299,333 ****
        (calc-describe-thing desc "Key Index" nil
                             (string-match "[A-Z][A-Z][A-Z]" desc))))))
  
  (defun calc-describe-function (&optional func)
    (interactive)
    (or func
!       (setq func (intern (completing-read "Describe function: "
!                                         obarray nil t "calcFunc-"))))
!   (setq func (symbol-name func))
    (if (string-match "\\`calc-." func)
        (calc-describe-thing func "Command Index")
!     (calc-describe-thing (if (string-match "\\`calcFunc-." func)
!                            (substring func 9)
!                          func)
!                        "Function Index")))
  
  (defun calc-describe-variable (&optional var)
    (interactive)
    (or var
!       (setq var (intern (completing-read "Describe variable: "
!                                        obarray nil t "var-"))))
!   (setq var (symbol-name var))
!   (calc-describe-thing var "Variable Index"
!                      (if (string-match "\\`var-." var)
!                          (substring var 4)
!                        var)))
  
  (defun calc-describe-thing (thing where &optional target not-quoted)
    (message "Looking for `%s' in %s..." thing where)
    (let ((savewin (current-window-configuration)))
!     (calc-info)
!     (Info-goto-node where)
      (or (let ((case-fold-search nil))
          (re-search-forward (format "\n\\* +%s: \\(.*\\)\\."
                                     (regexp-quote thing))
--- 296,357 ----
        (calc-describe-thing desc "Key Index" nil
                             (string-match "[A-Z][A-Z][A-Z]" desc))))))
  
+ (defvar calc-help-function-list nil
+   "List of functions provided by Calc.")
+ 
+ (defvar calc-help-variable-list nil
+   "List of variables provided by Calc.")
+ 
+ (defun calc-help-index-entries (&rest indices)
+   "Create a list of entries from the INDICES in the Calc info manual."
+   (let ((entrylist '())
+         entry)
+     (require 'info nil t)
+     (while indices
+       (condition-case nil
+           (with-temp-buffer
+             (Info-mode)
+             (Info-goto-node (concat "(Calc)" (car indices) " Index"))
+             (goto-char (point-min))
+             (while (re-search-forward "\n\\* \\(.*\\): " nil t)
+               (setq entry (match-string 1))
+               (if (and (not (string-match "<[1-9]+>" entry))
+                        (not (string-match "(.*)" entry))
+                        (not (string= entry "Menu")))
+                   (unless (assoc entry entrylist)
+                     (setq entrylist (cons entry entrylist))))))
+         (error nil))
+       (setq indices (cdr indices)))
+     entrylist))
+ 
  (defun calc-describe-function (&optional func)
    (interactive)
+   (unless calc-help-function-list
+     (setq calc-help-function-list 
+           (calc-help-index-entries "Function" "Command")))
    (or func
!       (setq func (completing-read "Describe function: "
!                                   calc-help-function-list 
!                                   nil t)))
    (if (string-match "\\`calc-." func)
        (calc-describe-thing func "Command Index")
!     (calc-describe-thing func "Function Index")))
  
  (defun calc-describe-variable (&optional var)
    (interactive)
+   (unless calc-help-variable-list
+     (setq calc-help-variable-list 
+           (calc-help-index-entries "Variable")))
    (or var
!       (setq var (completing-read "Describe variable: "
!                                  calc-help-variable-list
!                                  nil t)))
!   (calc-describe-thing var "Variable Index"))
  
  (defun calc-describe-thing (thing where &optional target not-quoted)
    (message "Looking for `%s' in %s..." thing where)
    (let ((savewin (current-window-configuration)))
!     (calc-info-goto-node where)
      (or (let ((case-fold-search nil))
          (re-search-forward (format "\n\\* +%s: \\(.*\\)\\."
                                     (regexp-quote thing))
***************
*** 338,344 ****
                                nil t)
             (setq thing (format "%s9" (substring thing 0 -1))))
        (progn
!         (Info-last)
          (set-window-configuration savewin)
          (error "Can't find `%s' in %s" thing where)))
      (let (Info-history)
--- 362,369 ----
                                nil t)
             (setq thing (format "%s9" (substring thing 0 -1))))
        (progn
!           (if Info-history
!               (Info-last))
          (set-window-configuration savewin)
          (error "Can't find `%s' in %s" thing where)))
      (let (Info-history)




reply via email to

[Prev in Thread] Current Thread [Next in Thread]