なんだこれは

はてなダイアリーから移転しました。

fileコマンドがおかしい件

印刷コマンドではそのファイルがtextかどうかを判定しているのですが、その判定にfileを使うと微妙に間違うことがあるみたいです。

これはある、Fortran90のソースファイルの冒頭です。もちろんテキストファイルですよ。

!!$ -*- coding:euc-jp -*-

program hogehoge

  implicit none

  integer :: kmin, kmax

これをfileで調べると、Bennet Yee's "face" formatと言われる。なんですか?Fortran90にEmacsのcoding指定しただけじゃないですか?うーん、どうなってるんだろう。はて?何の形式なんだ?/usr/share/file/magic*1を見ると、先頭が!!だとそうなるようです。なんてことだ。EmacsでFortran90のファイルをf90-modeでコメントアウトすると、!!$がつくのに。

fileコマンドでファイルの種類がtextだったらPostScriptに変換してから印刷とかしようにもそもそもfileコマンドで調べられなかったら意味ないじゃないか。なんだよ、もう。

しかたない先頭の行を省こう。文字コードを一々指定しなくてもEmacsは大丈夫だよ。fileで調べると、ASCII C program textになる。おかしい、Emacsのf90-modeで整形までしているのに?なんだよ、これ?まあでも、textと認定してくだたのはよしとする。

もういい。めんどい。a2psでいきなりPostScriptに変換してデフォルトプリンタで印刷してやる。

*1:Macだとここにある。