- (interactive (list (read-file-name "Insert encoded file: ")))
- (call-process (car uuencode-external-encoder) filename t nil
- (file-name-nondirectory filename))
- )
+ (interactive "*fInsert encoded file: ")
+ (call-process (car uuencode-external-encoder)
+ filename t nil
+ (file-name-nondirectory filename)))
+
+(mel-define-method mime-write-decoded-region (start end filename
+ (nil "x-uue"))
+ "Decode and write current region encoded by uuencode into FILENAME.
+START and END are buffer positions."
+ (interactive "*r\nFWrite decoded region to file: ")
+ (save-excursion
+ (let ((file (save-excursion
+ (save-restriction
+ (narrow-to-region start end)
+ (goto-char start)
+ (if (re-search-forward "^begin [0-9]+ " nil t)
+ (if (looking-at ".+$")
+ (buffer-substring (match-beginning 0)
+ (match-end 0)))))))
+ (default-directory temporary-file-directory))
+ (if file
+ (as-binary-process
+ (apply (function call-process-region)
+ start end (car uuencode-external-decoder)
+ nil nil nil
+ (cdr uuencode-external-decoder))
+ (rename-file file filename 'overwrites))))))