weiner@novavax.UUCP (Bob Weiner) (04/28/89)
;;!emacs ;; ;; SUMMARY: Sample support routines for ../info-local/cmd-menus ;; USAGE: Called by ../info-local/cmd-menus ;; ;; AUTHOR: Bob Weiner, Applied Research, Motorola, Inc. ;; ORIG-DATE: 03/23/89 ;; LAST-MOD: 04/26/89 ;; DESCRIPTION: ;; ;; Sample and support functions for Info command reference (menus) ;; extensions. See info-README for more information. ;; ;; This library allows cmd-menus code referenced in Info files to be byte ;; compiled for efficiency. ;; ;; DESCRIP-END. ;; ;; Copyright (C) 1989 Bob Weiner and Free Software Foundation, Inc. ;; Available for use and distribution under the same terms as GNU Emacs. ;; ;; This file is not part of GNU Emacs. ;; (defun cmd-menus-dm-command (dm-cmd) "Execute Apollo DM command, DM-CMD, if using an Apollo display." (if (term-machine-type-p "apollo") (execute-dm-command dm-cmd) (message "This command requires an Apollo display."))) (defun cmd-menus-shell-command (shell-cmd &optional internal-cmd kill-prev) "Execute shell command, SHELL-CMD, the '*shell*' buffer. Optional non-nil second argument INTERNAL-CMD means do not display the shell command line executed and do not return to *info* buffer, otherwise point ends up in *info* buffer after this command. Optional non-nil third argument KILL-PREV means kill last output to '*shell*' buffer before executing SHELL-CMD." (if (not (get-buffer "*shell*")) (save-excursion (shell))) (or (equal (buffer-name (current-buffer)) "*shell*") (pop-to-buffer "*shell*")) (end-of-buffer) (and kill-prev (kill-output-from-shell)) (insert shell-cmd) (shell-send-input) (show-output-from-shell) (or internal-cmd (progn (scroll-down 1) ;; Move back to '*info*' buffer when done (pop-to-buffer "*info*")))) (defun cmd-menus-manual-entry (topic) "Display unix manual entry for TOPIC in a separate window. See 'manual-entry' function description for the format of TOPIC." (manual-entry topic) (message "Use {C-x o} to switch to *Manual Entry* buffer.")) (defun cmd-menus-read-mail () "Split current window and execute 'rmail'." (split-window-vertically) (rmail)) (defun cmd-menus-mail () "Split current window and execute 'mail'." (split-window-vertically) (mail)) (defun cmd-menus-dir-size () "Display directory size in kilobytes." (cmd-menus-shell-command (concat "du -s " (expand-file-name (read-file-name "Pathname: " nil nil t))))) (defun cmd-menus-user-data () "'Finger' a user." (cmd-menus-shell-command (concat "finger " (read-string "Username: ")))) (provide 'cmd-menus) -- Bob Weiner, Motorola, Inc., USENET: ...!gatech!uflorida!novavax!weiner (407) 738-2087