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)