X-Git-Url: https://cgit.sxemacs.org/?a=blobdiff_plain;f=lisp%2Frfc1843.el;h=a57d16aaf089cab45c8e236eb5647b3c3248a067;hb=b3b2cc0f4f2109fd7eeba0582be0d336c3a190c2;hp=fb59ede6106748ec7c36a2368ef49dd47b0503cc;hpb=0f02de60a02d0ca6ba8987750a764106ad91424b;p=gnus diff --git a/lisp/rfc1843.el b/lisp/rfc1843.el index fb59ede61..a57d16aaf 100644 --- a/lisp/rfc1843.el +++ b/lisp/rfc1843.el @@ -1,10 +1,10 @@ ;;; rfc1843.el --- HZ (rfc1843) decoding -;; Copyright (c) 1998,1999 by Shenghuo Zhu +;; Copyright (c) 1998, 1999, 2000 Free Software Foundation, Inc. ;; Author: Shenghuo Zhu -;; Keywords: news HZ +;; Keywords: news HZ HZ+ mail i18n -;; This file is a part of GNU Emacs, but the same permissions apply. +;; This file is a part of GNU Emacs. ;; GNU Emacs is free software; you can redistribute it and/or modify ;; it under the terms of the GNU General Public License as published @@ -32,13 +32,14 @@ ;;; Code: +(eval-when-compile (require 'cl)) (require 'mm-util) (defvar rfc1843-word-regexp - "~\\({\\([\041-\167][\041-\176]\\| \\)+\\(~}\\|$\\)") + "~\\({\\([\041-\167][\041-\176]\\| \\)+\\)\\(~}\\|$\\)") (defvar rfc1843-word-regexp-strictly - "~\\({\\([\041-\167][\041-\176]\\)+\\(~}\\|$\\)") + "~\\({\\([\041-\167][\041-\176]\\)+\\)\\(~}\\|$\\)") (defvar rfc1843-hzp-word-regexp "~\\({\\([\041-\167][\041-\176]\\| \\)+\\|\ @@ -53,7 +54,7 @@ When it is set non-nil, only buffers or strings with strictly HZ-encoded are decoded." :type 'boolean - :group 'gnus) + :group 'mime) (defcustom rfc1843-decode-hzp t "HZ+ decoding support if non-nil. @@ -63,12 +64,12 @@ e-mail transmission, news posting, etc. The document of HZ+ 0.78 specification can be found at ftp://ftp.math.psu.edu/pub/simpson/chinese/hzp/hzp.doc" :type 'boolean - :group 'gnus) + :group 'mime) (defcustom rfc1843-newsgroups-regexp "chinese\\|hz" "Regexp of newsgroups in which might be HZ encoded." :type 'string - :group 'gnus) + :group 'mime) (defun rfc1843-decode-region (from to) "Decode HZ in the region between FROM and TO." @@ -86,7 +87,10 @@ ftp://ftp.math.psu.edu/pub/simpson/chinese/hzp/hzp.doc" (while (re-search-forward (if rfc1843-decode-hzp rfc1843-hzp-word-regexp rfc1843-word-regexp) (point-max) t) - (setq str (match-string 1)) + ;;; Text with extents may cause XEmacs crash + (setq str (buffer-substring-no-properties + (match-beginning 1) + (match-end 1))) (setq firstc (aref str 0)) (insert (mm-decode-coding-string (rfc1843-decode @@ -141,7 +145,7 @@ ftp://ftp.math.psu.edu/pub/simpson/chinese/hzp/hzp.doc" (ct (message-fetch-field "Content-Type" t)) (ctl (and ct (ignore-errors (mail-header-parse-content-type ct))))) - (if (and ctl (not (string-match "/" (car ctl)))) + (if (and ctl (not (string-match "/" (car ctl)))) (setq ctl nil)) (goto-char (point-max)) (widen)