[mew-dist 19477] Re: text/html without charset specification
Hideyuki SHIRAI ( 白井秀行 )
shirai at example.com
2001年 10月 24日 (水) 18:06:38 JST
kazu> > Text/Html 以外は (2), (3), (4) というプライオリティになっていま
kazu> > す。また、Text/Xml にも mew-text/xml-detect-cs() 相当が必要だと
kazu> > 思われますが、ちょっとパス。^^;;;
kazu>
kazu> どうも、
kazu>
kazu> <?xml version='1.0' encoding='Shift_JIS' ?>
kazu>
kazu> を探すだけのようですよ。
あら、これだけ?
" と ' の対応は無視しているけど、とりあえず、パッチ。
## 面倒くさいのは app/xml の方だったのか。
kazu> http://www.atmarkit.co.jp/fxml/rensai/xmlwomanabou06/learning-xml06.html
勉強しないといかんなぁ。
--
白井秀行 (mailto:shirai at example.com)
-------------- next part --------------
Index: mew-mime.el
===================================================================
RCS file: /cvsroot/shirai/mew/mew/mew-mime.el,v
retrieving revision 1.37
diff -c -u -r1.37 mew-mime.el
cvs server: conflicting specifications of output style
--- mew-mime.el 2001/10/24 04:02:28 1.37
+++ mew-mime.el 2001/10/24 09:05:00
@@ -259,7 +259,7 @@
mew-prog-text/html-ext nil mew-prog-text/html-ext arg))
(message "Displaying Text/Html...done")))))))
-(defun mew-text/html-detect-cs (beging end params)
+(defun mew-text/html-detect-cs (begin end params)
(let ((cs (mew-charset-to-cs (mew-syntax-get-param params "charset")))
(case-fold-search t))
(save-excursion
@@ -349,18 +349,31 @@
(setq orig (cdr orig)))
(unless esqp (setq arg (cons file arg)))
(setq arg (nreverse arg))
- (setq wcs (mew-charset-to-cs (mew-syntax-get-param params "charset")))
- (unless wcs
- (setq wcs (if mew-decode-broken
- (mew-charset-to-cs (mew-charset-guess-region begin end))
- ;; this text is no decoded.
- mew-cs-text-for-write)))
+ (setq wcs (mew-text/xml-detect-cs begin end params))
(mew-frwlet
mew-cs-dummy wcs
(write-region begin end file nil 'no-msg)
(apply (function mew-start-process-disp)
mew-prog-text/xml-ext nil mew-prog-text/xml-ext arg))
(message "Displaying Text/Xml...done")))))))
+
+(defun mew-text/xml-detect-cs (begin end params)
+ (let ((cs (mew-charset-to-cs (mew-syntax-get-param params "charset")))
+ (case-fold-search t))
+ (save-excursion
+ (goto-char begin)
+ (cond
+ ((re-search-forward
+ (concat "<\\?xml +version=['\"]1.0['\"] +"
+ "encoding=['\"]\\([^'\"]+\\)['\"] *\\?>")
+ nil t)
+ (mew-charset-to-cs (mew-match 1)))
+ (cs cs)
+ (t ;; charset eq "us-ascii", cs is nil.
+ (if mew-decode-broken
+ (mew-charset-to-cs (mew-charset-guess-region begin end))
+ ;; this text is no decoded.
+ mew-cs-text-for-write))))))
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;
Mew-dist メーリングリストの案内