*** steno.el;1 Mon Dec 16 03:20:50 1996 --- steno.el Mon Dec 16 04:44:17 1996 *************** *** 1,5 **** ;;; steno.el --- edit time-stamped entries in text notepads under Emacs. ! ;;; $Revision: 1.1 $ ;; Copyright (C) 1996 David Megginson --- 1,5 ---- ;;; steno.el --- edit time-stamped entries in text notepads under Emacs. ! ;;; $Revision: 1.2 $ ;; Copyright (C) 1996 David Megginson *************** *** 60,65 **** --- 60,76 ---- ;; I may add menu support and multi-file searching in a future release. + ;;; History: + + ;; Mon Dec 16 04:06:55 1996 Richard Levitte + ;; - Changed `(concat dir "/" file)' construction to the more portable + ;; `(expand-file-name file dir)'. + ;; - Made a few VMS-supporting changes, making sure things would still + ;; work as expected under Unix. One of them was to make the + ;; completion-read case insensitive. + ;; - Corrected a couple of (error) calls with missing arguments. + ;; - Added steno-mode-hook. + ;;; Code: *************** *** 87,92 **** --- 98,109 ---- (list "^-\\*-Steno-\\*-.*$" 0 'font-lock-comment-face))) ;; + ;; Steno mode hook variable + ;; + (defvar steno-mode-hook nil + "Normal hook run by steno-mode.") + + ;; ;; Create a new major mode for Steno pads. ;; (define-derived-mode steno-mode text-mode "Steno" *************** *** 101,107 **** (define-key steno-mode-map "\C-c\C-n" 'steno-next-entry) (define-key steno-mode-map "\C-c\C-p" 'steno-previous-entry) (define-key steno-mode-map "\C-c\C-a" 'steno-add-entry) ! (define-key steno-mode-map "\C-c\C-c" 'steno-close)) ;; ;; Show a steno pad and start a new entry. --- 118,125 ---- (define-key steno-mode-map "\C-c\C-n" 'steno-next-entry) (define-key steno-mode-map "\C-c\C-p" 'steno-previous-entry) (define-key steno-mode-map "\C-c\C-a" 'steno-add-entry) ! (define-key steno-mode-map "\C-c\C-c" 'steno-close) ! (run-hooks 'steno-mode-hook)) ;; ;; Show a steno pad and start a new entry. *************** *** 122,130 **** If called interactively, the user will be prompted for the pad name. For more information, see steno-mode." (interactive (steno-choose-pad)) ! (let ((buffer (find-file-noselect (concat steno-pad-directory ! "/" ! pad) t))) (set-buffer buffer) (steno-mode) --- 140,146 ---- If called interactively, the user will be prompted for the pad name. For more information, see steno-mode." (interactive (steno-choose-pad)) ! (let ((buffer (find-file-noselect (expand-file-name pad steno-pad-directory) t))) (set-buffer buffer) (steno-mode) *************** *** 136,171 **** ;; Prompt the user for a steno pad. ;; (defun steno-choose-pad () ; Does the directory exist? ! (if (file-exists-p steno-pad-directory) ; Is it readable? ! (cond ((not (file-readable-p steno-pad-directory)) ! (error "steno-pad-directory \"%s\" is not readable." ! steno-pad-directory)) ; Is it a directory? ! ((not (car (file-attributes steno-pad-directory))) ! (error "steno-pad-directory \"%s\" is not a directory."))) ; If it doesn't exist, can ; we create it? ! (if (y-or-n-p (format "Create directory \"%s\"? " steno-pad-directory)) ! (make-directory steno-pad-directory t) ! (error "steno-pad-directory \"%s\" does not exist."))) ; Read the pad from the user. (let ((pads (directory-files steno-pad-directory)) ! (pad nil)) (setq pad (completing-read "Select a steno pad: " (mapcar 'list pads))) ; If it is new, can we create it? ! (if (not (file-exists-p (concat steno-pad-directory ! "/" ! pad))) (if (not (y-or-n-p (format "Create new pad \"%s\"? " pad))) ! (error "Pad \"%s\" does not exist."))) ; Return the full path. (list pad))) --- 152,191 ---- ;; Prompt the user for a steno pad. ;; (defun steno-choose-pad () + ; Support for VMS, harmless on Unix + (let ((steno-pad-dir-file-name (directory-file-name steno-pad-directory))) ; Does the directory exist? ! (if (file-exists-p steno-pad-dir-file-name) ; Is it readable? ! (cond ((not (file-readable-p steno-pad-dir-file-name)) ! (error "steno-pad-directory \"%s\" is not readable." ! steno-pad-directory)) ; Is it a directory? ! ((not (car (file-attributes steno-pad-dir-file-name))) ! (error "steno-pad-directory \"%s\" is not a directory." ! steno-pad-directory))) ; If it doesn't exist, can ; we create it? ! (if (y-or-n-p (format "Create directory \"%s\"? " steno-pad-directory)) ! (make-directory steno-pad-directory t) ! (error "steno-pad-directory \"%s\" does not exist." ! steno-pad-directory)))) ; Read the pad from the user. (let ((pads (directory-files steno-pad-directory)) ! (pad nil) ! (completion-ignore-case t)) ; VMS support, harmless on Unix (setq pad (completing-read "Select a steno pad: " (mapcar 'list pads))) ; If it is new, can we create it? ! (if (not (file-exists-p (expand-file-name pad steno-pad-directory))) (if (not (y-or-n-p (format "Create new pad \"%s\"? " pad))) ! (error "Pad \"%s\" does not exist." ! pad))) ; Return the full path. (list pad)))