タイトルJedit4のスクリプトで見るMac OSとMac OS XのAppleScriptの非互換部分カテゴリーアプリケーション, AppleScript, Mac OS X
作成日2000/10/27 11:33:27作成者新居雅行
Mac OS XのAppleScriptについて、Jeditで知られる株式会社まつもとの松本慧氏より、情報をいただいた。Mac OSとMac OS Xの間でのAppleScriptの非互換のある部分があるということだ。Jedit4は、AppleScriptによるさまざまな処理に対応していることから、周辺ユーティリティも数多くリリースされているが、Mac OS Xでの稼動ではいくらか注意が必要だろう。

まず、選択範囲を別の文字列に置き換えるためには、
 insert "strings" at selection
といった記述を行うが、これはMac OS Xの上で稼動させたJedit4に対して実行させてもエラーになるということだ。同等な作業をする命令として、たとえば、
 insert "strings" at end of selection
という記述は実行できる。命令の意味は若干異なるが、文字列の範囲選択をしていない状態ではおおむね同じ処理をすると言えるだろう。これは、Jedit4側の問題というより、AppleScriptの解釈を行うシステム機能の部分に若干の違いが発生しているということのようである。
さらに別の問題も見つかった。AppleScriptでは「return」というキーワードで、改行コードの文字列を記述できる。Mac OS Xでは、0x0D(CR)のコードだったが、Mac OS Xでは0x0A(LF)になってします。基本システムがUNIXのMac OS Xは「改行」と言えば「LF」であるといえばそれまでだが、たとえば、Jedit4で改行を挿入する場合に、
 insert return at end of selection
としたとする。文書ファイルの改行コードとしては既定値ではCRになっているので、文書内にはLFコードが挿入されたマークが入り、改行はされないのである。さらに、文字列中の「\r」でさえも、LFコードになってしまう。この問題をクリアするためには、「(ascii character 13)」という記述でCRコードの改行を記述するしかないということだ。

前者の問題については微妙なところではあるが、後者については互換性を考えた場合には利用者が意図する方向にはなっていないと考えられる。松本氏はさっそくフィードバックをしたそうだ。要望があれば、読者の方々もフィードバックをすることをお勧めする。
関連リンク