Ticket #170 (closed 不具合: fixed)

Opened 3 years ago

Last modified 1 year ago

.htmlなのにsgml-modeになる

Reported by: anonymous Assigned to: gotoh
Priority: major Milestone: ver 3.00
Component: Emacs Lisp Version: 3.00 (開発中)
Keywords: Cc:

Description (Last modified by gotoh)

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">

という一行だけのファイルを作成し、拡張子は.htmlで保存する。(例えば sample.html)

meadow -q で立ち上げて find-file でこのsample.htmlをvisitすると、auto-mode-alistにより html-modeになる。

ところが、

(setq default-major-mode 'lisp-interaction-mode)

を評価してからsample.htlmをvisitすると、なぜかsgml-modeになる。

Attachments

Change History

2005年09月23日 04時17分08秒 changed by anonymous

  • version changed from 2.10 to 3.00 (開発中).

2005年09月23日 11時02分28秒 changed by gotoh

  • description changed.

Wiki書式にあわせて若干修正

2005年09月23日 12時33分42秒 changed by gotoh

  • owner set to gotoh.
  • status changed from new to assigned.

調べたところ、この症状は default-major-mode を変更しなくても、DOCTYPEが1行しかない場合には 常に発生しました。

その理由はfiles.elのset-auto-mode<f>によれば、auto-mode-alistより優先して magic-mode-alist にしたがってファイルの内容からモードが決定されるからです。 この場合、1行だけではなく<html>タグがあれば、正しくhtml-modeが選択されます。

しかし、default-major-mode を lisp-interaction-mode に変更した場合、 この magic-mode-alist の正規表現がおそらくsyntax-tableの違いにより、 <html>タグがあっても html-mode の条件に合致せず、 sgml-mode の条件には合致してしまいます。 結果、 auto-mode-alist は使われることなく、つねに sgml-mode と誤判定されるというシナリオのようです。 したがって問題は set-auto-mode<f> 周辺でしょうね。default-major-modeの副作用ともいえますが。

現状での回避方法は2つ

  1. default-major-mode を変更しない
  2. magic-mode-alistを変更するか nil を設定して magic-mode-alist によるモード決定が使われないようにする。

というのでどうでしょう。

2005年09月24日 01時23分23秒 changed by anonymous

  • status changed from assigned to closed.
  • resolution set to fixed.

ありがとうございます。 1(default-major-mode を変更しない)で逃げておきます。

2005年09月24日 01時42分51秒 changed by gotoh

  • status changed from closed to reopened.
  • resolution deleted.
  • milestone set to ver 3.00.

emacs本家へ報告し、修正がなされるまでこのチケットはcloseせずに残しておくことにします。

2007年06月25日 20時07分37秒 changed by kimito

  • status changed from reopened to closed.
  • resolution set to fixed.

報告者です。

r4210で修正されていることを確認したので、FIXにしておきます。


Add/Change #170 (.htmlなのにsgml-modeになる)




Change Properties
Action