diff options
| author | Eric S. Raymond | 1993-03-25 01:49:59 +0000 |
|---|---|---|
| committer | Eric S. Raymond | 1993-03-25 01:49:59 +0000 |
| commit | 8fbea12c08909aa7c4fdfc454bee382d5d3c7f44 (patch) | |
| tree | f48cb18c2e6846dde1e5e8176811ed9c78a06d30 | |
| parent | 8e0ff8c8d411b59f3ca7db68dfb4b82fae8aa2e8 (diff) | |
| download | emacs-8fbea12c08909aa7c4fdfc454bee382d5d3c7f44.tar.gz emacs-8fbea12c08909aa7c4fdfc454bee382d5d3c7f44.zip | |
(mh-unshar) Added.
| -rw-r--r-- | lisp/mh-e.el | 47 |
1 files changed, 47 insertions, 0 deletions
diff --git a/lisp/mh-e.el b/lisp/mh-e.el index b094934bc4a..63cc9efe2d8 100644 --- a/lisp/mh-e.el +++ b/lisp/mh-e.el | |||
| @@ -2740,6 +2740,52 @@ Assumes that any filename that starts with '+' is a folder name." | |||
| 2740 | (if (re-search-forward "^$\\|^-+$" nil nil) | 2740 | (if (re-search-forward "^$\\|^-+$" nil nil) |
| 2741 | (forward-line arg))) | 2741 | (forward-line arg))) |
| 2742 | 2742 | ||
| 2743 | |||
| 2744 | (defun mh-unshar (dir) | ||
| 2745 | "Unshar the current message in the directory given by DIR." | ||
| 2746 | (interactive "DUnshar in directory: ") | ||
| 2747 | (let ((default-directory default-directory) | ||
| 2748 | (errbuf " *Unshar Output*") | ||
| 2749 | (curbuf (current-buffer)) | ||
| 2750 | (show-buffer mh-show-buffer) | ||
| 2751 | start | ||
| 2752 | ) | ||
| 2753 | (setq dir (expand-file-name dir)) | ||
| 2754 | (if (not (eq system-type 'vax-vms)) | ||
| 2755 | (setq dir (file-name-as-directory dir))) | ||
| 2756 | (mh-show nil) ;;; force showing of current message | ||
| 2757 | (save-excursion | ||
| 2758 | (set-buffer show-buffer) | ||
| 2759 | (goto-char (point-min)) | ||
| 2760 | (message "Looking for start of shar package ...") | ||
| 2761 | (if (or (re-search-forward "^#![ \t]*/bin/sh" nil t) | ||
| 2762 | (and (re-search-forward "^[^a-z0-9\"]*cut here" nil t) | ||
| 2763 | (forward-line 1)) | ||
| 2764 | (re-search-forward "^#" nil t) | ||
| 2765 | (re-search-forward "^: " nil t) | ||
| 2766 | ) | ||
| 2767 | (progn | ||
| 2768 | (beginning-of-line) | ||
| 2769 | (setq start (point)) | ||
| 2770 | (set-buffer curbuf) | ||
| 2771 | (pop-to-buffer errbuf) | ||
| 2772 | (kill-region (point-max) (point-min)) | ||
| 2773 | (insert (format "Unsharing in directory \"%s\" ...\n\n" dir)) | ||
| 2774 | (message "Please wait ...") | ||
| 2775 | (sit-for 0) | ||
| 2776 | (set-buffer show-buffer) | ||
| 2777 | (setq default-directory dir) | ||
| 2778 | (call-process-region start (point-max) | ||
| 2779 | "/bin/sh" nil errbuf t) | ||
| 2780 | (pop-to-buffer curbuf) | ||
| 2781 | (message "Unshar done") | ||
| 2782 | ) | ||
| 2783 | (error "Can't find start of shar file") | ||
| 2784 | ) | ||
| 2785 | ) | ||
| 2786 | ) | ||
| 2787 | ) | ||
| 2788 | |||
| 2743 | 2789 | ||
| 2744 | 2790 | ||
| 2745 | ;;; Build the folder-mode keymap: | 2791 | ;;; Build the folder-mode keymap: |
| @@ -2762,6 +2808,7 @@ Assumes that any filename that starts with '+' is a folder name." | |||
| 2762 | (define-key mh-folder-mode-map "\ef" 'mh-visit-folder) | 2808 | (define-key mh-folder-mode-map "\ef" 'mh-visit-folder) |
| 2763 | (define-key mh-folder-mode-map "\ek" 'mh-kill-folder) | 2809 | (define-key mh-folder-mode-map "\ek" 'mh-kill-folder) |
| 2764 | (define-key mh-folder-mode-map "\el" 'mh-list-folders) | 2810 | (define-key mh-folder-mode-map "\el" 'mh-list-folders) |
| 2811 | (define-key mh-folder-mode-map "\en" 'mh-unshar) | ||
| 2765 | (define-key mh-folder-mode-map "\eo" 'mh-write-msg-to-file) | 2812 | (define-key mh-folder-mode-map "\eo" 'mh-write-msg-to-file) |
| 2766 | (define-key mh-folder-mode-map "\ep" 'mh-pack-folder) | 2813 | (define-key mh-folder-mode-map "\ep" 'mh-pack-folder) |
| 2767 | (define-key mh-folder-mode-map "\es" 'mh-search-folder) | 2814 | (define-key mh-folder-mode-map "\es" 'mh-search-folder) |