X-Git-Url: http://git.chise.org/gitweb/?a=blobdiff_plain;f=mel-g.el;h=bc2c5100aa88c8ebaeb01b0acdec8d75c54dcfdc;hb=6769bf5954ca2bf221dfa9a41e2d47b24a135d79;hp=1f50bd079545707ca0b26051481a86bf4cc1cf31;hpb=7bb0094f7461560877244e77534cde7dd41766cd;p=elisp%2Fflim.git diff --git a/mel-g.el b/mel-g.el index 1f50bd0..bc2c510 100644 --- a/mel-g.el +++ b/mel-g.el @@ -1,16 +1,15 @@ ;;; mel-g.el: Gzip64 encoder/decoder for GNU Emacs -;; Copyright (C) 1995,1996,1997 MORIOKA Tomohiko -;; Copyright (C) 1996 Shuhei KOBAYASHI +;; Copyright (C) 1995,1996,1997,1998 MORIOKA Tomohiko +;; Copyright (C) 1996,1997 Shuhei KOBAYASHI ;; Author: Shuhei KOBAYASHI ;; modified by MORIOKA Tomohiko ;; Maintainer: Shuhei KOBAYASHI ;; Created: 1995/10/25 -;; Version: $Id: mel-g.el,v 6.1 1997/03/10 13:06:34 morioka Exp $ ;; Keywords: Gzip64, base64, gzip, MIME -;; This file is not part of MEL (MIME Encoding Library) yet. +;; This file is part of MEL (MIME Encoding Library). ;; This program is free software; you can redistribute it and/or ;; modify it under the terms of the GNU General Public License as @@ -27,10 +26,15 @@ ;; Free Software Foundation, Inc., 59 Temple Place - Suite 330, ;; Boston, MA 02111-1307, USA. +;;; Commentary: + +;;; NOTE: Gzip64 is an experimental Content-Transfer-Encoding and its +;;; use is STRONGLY DISCOURAGED except for private communication. + ;;; Code: (require 'emu) -(require 'file-detect) +(require 'path-util) ;;; @ variables @@ -78,20 +82,54 @@ ) )) -(defalias 'gzip64-encode-region 'gzip64-external-encode-region) -(defalias 'gzip64-decode-region 'gzip64-external-decode-region) +(mel-define-method-function (mime-encode-region start end (nil "x-gzip64")) + 'gzip64-external-encode-region) +(mel-define-method-function (mime-decode-region start end (nil "x-gzip64")) + 'gzip64-external-decode-region) + + +;;; @ encoder/decoder for string +;;; + +(mel-define-method mime-encode-string (string (nil "x-gzip64")) + (with-temp-buffer + (insert string) + (gzip64-external-encode-region (point-min)(point-max)) + (buffer-string))) + +(mel-define-method mime-decode-string (string (nil "x-gzip64")) + (with-temp-buffer + (insert string) + (gzip64-external-decode-region (point-min)(point-max)) + (buffer-string))) ;;; @ encoder/decoder for file ;;; -(defun gzip64-insert-encoded-file (filename) +(mel-define-method mime-insert-encoded-file (filename (nil "x-gzip64")) (interactive (list (read-file-name "Insert encoded file: "))) (apply (function call-process) (car gzip64-external-encoder) filename t nil (cdr gzip64-external-encoder)) ) +(mel-define-method mime-write-decoded-region (start end filename + (nil "x-gzip64")) + "Decode and write current region encoded by gzip64 into FILENAME. +START and END are buffer positions." + (interactive + (list (region-beginning) (region-end) + (read-file-name "Write decoded region to file: "))) + (as-binary-process + (apply (function call-process-region) + start end (car gzip64-external-decoder) + nil nil nil + (let ((args (cdr gzip64-external-decoder))) + (append (butlast args) + (list (concat (car (last args)) ">" filename)))) + ))) + ;;; @ end ;;;