X-Git-Url: http://git.chise.org/gitweb/?a=blobdiff_plain;f=mel-q.el;h=36f2d2f889a931a4ca3fff7d8bbd2cc925262759;hb=d45720e98a56a7646e60dd7a098c7fcc0334f195;hp=ca11faff85671985004ae3767ca79f417da998c6;hpb=b0992046db3ec7fb35057615ceb7c371d29198c1;p=elisp%2Fflim.git diff --git a/mel-q.el b/mel-q.el index ca11faf..36f2d2f 100644 --- a/mel-q.el +++ b/mel-q.el @@ -1,5 +1,5 @@ ;;; -;;; $Id: mel-q.el,v 1.5 1995/06/26 05:56:39 morioka Exp $ +;;; $Id: mel-q.el,v 3.0 1995/11/02 03:48:01 morioka Exp $ ;;; ;;; @ constants @@ -48,10 +48,13 @@ external decoder is called.") (let ((i 0)) (mapconcat (function (lambda (chr) - (cond ((or (< chr 32) (< 126 chr) (eq chr ?=)) + (cond ((eq chr ?\n) + (setq i 0) + "\n") + ((or (< chr 32) (< 126 chr) (eq chr ?=)) (if (>= i 73) (progn - (setq i 0) + (setq i 3) (concat "=\n" (quoted-printable-quote-char chr)) ) (progn @@ -60,7 +63,7 @@ external decoder is called.") ))) (t (if (>= i 75) (progn - (setq i 0) + (setq i 1) (concat "=\n" (char-to-string chr)) ) (progn @@ -105,13 +108,14 @@ external decoder is called.") (save-excursion (save-restriction (narrow-to-region beg end) - (goto-char (point-min)) - (while (re-search-forward "^.*$" nil t) - (replace-match - (quoted-printable-encode-string - (buffer-substring (match-beginning 0)(match-end 0)) - )) - )))) + (let ((str (buffer-substring beg end))) + (delete-region beg end) + (insert (quoted-printable-encode-string str)) + ) + (or (bolp) + (insert "=\n") + ) + ))) (defun quoted-printable-internal-decode-region (beg end) (save-excursion @@ -127,7 +131,8 @@ external decoder is called.") (setq b (match-beginning 0)) (setq e (match-end 0)) (setq str (buffer-substring b e)) - (replace-match (quoted-printable-decode-string str)) + (delete-region b e) + (insert (quoted-printable-decode-string str)) )) ))) @@ -146,17 +151,32 @@ external decoder is called.") (defun quoted-printable-external-encode-region (beg end) (save-excursion - (apply (function call-process-region) - beg end (car quoted-printable-external-encoder) - t t nil (cdr quoted-printable-external-encoder)) - )) + (save-restriction + (narrow-to-region beg end) + (let ((selective-display nil) ;Disable ^M to nl translation. + (mc-flag nil) ;Mule + (kanji-flag nil)) ;NEmacs + (apply (function call-process-region) + beg end (car quoted-printable-external-encoder) + t t nil (cdr quoted-printable-external-encoder)) + ) + ;; for OS/2 + ;; regularize line break code + (goto-char (point-min)) + (while (re-search-forward "\r$" nil t) + (replace-match "") + ) + ))) (defun quoted-printable-external-decode-region (beg end) (save-excursion - (apply (function call-process-region) - beg end (car quoted-printable-external-decoder) - t t nil (cdr quoted-printable-external-decoder)) - )) + (let ((selective-display nil) ;Disable ^M to nl translation. + (mc-flag nil) ;Mule + (kanji-flag nil)) ;NEmacs + (apply (function call-process-region) + beg end (car quoted-printable-external-decoder) + t t nil (cdr quoted-printable-external-decoder)) + ))) (defun quoted-printable-encode-region (beg end) (interactive "r") @@ -205,7 +225,8 @@ external decoder is called.") (defun q-encoding-encode-string-for-phrase (str) (mapconcat (function (lambda (chr) - (cond ((or (and (<= ?A chr)(<= chr ?Z)) + (cond ((eq chr 32) "_") + ((or (and (<= ?A chr)(<= chr ?Z)) (and (<= ?a chr)(<= chr ?z)) (and (<= ?0 chr)(<= chr ?9)) (memq chr '(?! ?* ?+ ?- ?/)) @@ -223,11 +244,9 @@ external decoder is called.") ((eq mode 'comment) (q-encoding-encode-string-for-comment str) ) - ((eq mode 'phrase) + (t (q-encoding-encode-string-for-phrase str) - ) - (t (quoted-printable-encode-string str)) - )) + ))) (defun q-encoding-decode-string (str) (let (q h l) @@ -275,4 +294,4 @@ external decoder is called.") ;;; @ end ;;; -(provide 'qprint) +(provide 'mel-q)