X-Git-Url: http://git.chise.org/gitweb/?a=blobdiff_plain;f=mel.el;h=2ed43a402216a711414a33bbf33b905d634809f4;hb=5dea9b12c7bea11a20ebfd744ba0784013d8c007;hp=01efaf2c62279ae455c7fd9c2c161206bf363e02;hpb=3dbcf97432d6bb283116a2f63bb58b73839f9695;p=elisp%2Fflim.git diff --git a/mel.el b/mel.el index 01efaf2..2ed43a4 100644 --- a/mel.el +++ b/mel.el @@ -28,8 +28,6 @@ (require 'emu) -(defconst mel-version "7.5") - ;;; @ variable ;;; @@ -183,6 +181,38 @@ region by its value." ))) +;;; @ string +;;; + +;;;###autoload +(defvar mime-string-decoding-method-alist + '(("base64" . base64-decode-string) + ("quoted-printable" . quoted-printable-decode-string) + ("7bit" . identity) + ("8bit" . identity) + ("binary" . identity) + ) + "Alist of encoding vs. corresponding method to decode string. +Each element looks like (STRING . FUNCTION). +STRING is content-transfer-encoding. +FUNCTION is string decoder.") + +;;;###autoload +(defun mime-decode-string (string encoding) + "Decode STRING using ENCODING. +ENCODING must be string. If ENCODING is found in +`mime-string-decoding-method-alist' as its key, this function decodes +the STRING by its value." + (let ((f (cdr (assoc encoding mime-string-decoding-method-alist)))) + (if f + (funcall f string) + (with-temp-buffer + (insert string) + (mime-decode-region (point-min)(point-max) encoding) + (buffer-string) + )))) + + ;;; @ file ;;;