Mercurial > emacs
comparison lisp/=mh-e.el @ 2349:7ae960b9e275
(mh-unshar) Added.
author | Eric S. Raymond <esr@snark.thyrsus.com> |
---|---|
date | Thu, 25 Mar 1993 01:49:59 +0000 |
parents | 9620f7edf04d |
children | 77a302be84da |
comparison
equal
deleted
inserted
replaced
2348:581cda633215 | 2349:7ae960b9e275 |
---|---|
2738 ;; Find the end of the message header in the current buffer and position | 2738 ;; Find the end of the message header in the current buffer and position |
2739 ;; the cursor at the ARG'th newline after the header. | 2739 ;; the cursor at the ARG'th newline after the header. |
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: |
2746 | 2792 |
2747 (suppress-keymap mh-folder-mode-map) | 2793 (suppress-keymap mh-folder-mode-map) |
2760 (define-key mh-folder-mode-map "\e\177" 'mh-page-digest-backwards) | 2806 (define-key mh-folder-mode-map "\e\177" 'mh-page-digest-backwards) |
2761 (define-key mh-folder-mode-map "\ee" 'mh-extract-rejected-mail) | 2807 (define-key mh-folder-mode-map "\ee" 'mh-extract-rejected-mail) |
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) |
2768 (define-key mh-folder-mode-map "\er" 'mh-rescan-folder) | 2815 (define-key mh-folder-mode-map "\er" 'mh-rescan-folder) |
2769 (define-key mh-folder-mode-map "l" 'mh-print-msg) | 2816 (define-key mh-folder-mode-map "l" 'mh-print-msg) |