# HG changeset patch # User Eric S. Raymond # Date 733024199 0 # Node ID 7ae960b9e275b8bedc4aa5214672f7ee93564257 # Parent 581cda633215eac19a7f0c30e8559fdfb1efffb1 (mh-unshar) Added. diff -r 581cda633215 -r 7ae960b9e275 lisp/=mh-e.el --- a/lisp/=mh-e.el Thu Mar 25 01:47:39 1993 +0000 +++ b/lisp/=mh-e.el Thu Mar 25 01:49:59 1993 +0000 @@ -2740,6 +2740,52 @@ (if (re-search-forward "^$\\|^-+$" nil nil) (forward-line arg))) + +(defun mh-unshar (dir) + "Unshar the current message in the directory given by DIR." + (interactive "DUnshar in directory: ") + (let ((default-directory default-directory) + (errbuf " *Unshar Output*") + (curbuf (current-buffer)) + (show-buffer mh-show-buffer) + start + ) + (setq dir (expand-file-name dir)) + (if (not (eq system-type 'vax-vms)) + (setq dir (file-name-as-directory dir))) + (mh-show nil) ;;; force showing of current message + (save-excursion + (set-buffer show-buffer) + (goto-char (point-min)) + (message "Looking for start of shar package ...") + (if (or (re-search-forward "^#![ \t]*/bin/sh" nil t) + (and (re-search-forward "^[^a-z0-9\"]*cut here" nil t) + (forward-line 1)) + (re-search-forward "^#" nil t) + (re-search-forward "^: " nil t) + ) + (progn + (beginning-of-line) + (setq start (point)) + (set-buffer curbuf) + (pop-to-buffer errbuf) + (kill-region (point-max) (point-min)) + (insert (format "Unsharing in directory \"%s\" ...\n\n" dir)) + (message "Please wait ...") + (sit-for 0) + (set-buffer show-buffer) + (setq default-directory dir) + (call-process-region start (point-max) + "/bin/sh" nil errbuf t) + (pop-to-buffer curbuf) + (message "Unshar done") + ) + (error "Can't find start of shar file") + ) + ) + ) + ) + ;;; Build the folder-mode keymap: @@ -2762,6 +2808,7 @@ (define-key mh-folder-mode-map "\ef" 'mh-visit-folder) (define-key mh-folder-mode-map "\ek" 'mh-kill-folder) (define-key mh-folder-mode-map "\el" 'mh-list-folders) +(define-key mh-folder-mode-map "\en" 'mh-unshar) (define-key mh-folder-mode-map "\eo" 'mh-write-msg-to-file) (define-key mh-folder-mode-map "\ep" 'mh-pack-folder) (define-key mh-folder-mode-map "\es" 'mh-search-folder)