◀ANSI版開発トップへ
  • 3749 要望
  • [3749] 要望 すい 2004年09月12日 07:29

    2ch「サクラエディタふぁんくらぶ part4」見ていて思ったのですが、

    >805 :名無しさん@お腹いっぱい。 :04/09/04 01:52 ID:M4aIWGqu
    > S_FileSaveAs(ファイル名, 文字コード, 改行コード)
    > をマクロで使う時、文字コードを指定しないとエラーになりますが、
    > 文字コードを変更せずに保存するということはできないでしょうか?
    > 現在の文字コードを取得できたら可能だと思うのですが、
    > どうすればいいか方法がわかりません。
    >
    >806 :名無しさん@お腹いっぱい。 :04/09/04 12:23 ID:enbilh+u
    > 99を指定すればいいんじゃないかと思ったがそうでもないな。
    > 落ちるのはバグっぽい。
    >
    >815 :名無しさん@お腹いっぱい。 :04/09/11 11:38:43 ID:KsOqGZDd
    > >>806
    > 範囲チェック漏れ
    >
    > >>805
    > 次版より無指定=99=文字コード変更しないにします.

    「S_FileSaveAs で文字コードをそのままで保存」は私も前々からマクロで
    やりたかったので、その機能が付くのは嬉しいのですが、それとは別に

    > 現在の文字コードを取得できたら可能だと...

    こちらも欲しいです。

    一番簡単なのは ExpandParameter の条件文を拡張する事かな~~
    とか思ったりするんですが。今は

    ssrc_2004-08-19/sakura_core/CEditDoc.cpp 4062 :int CEditDoc::ExParam_Evaluate( )
    ├ R:読み取り専用/上書き禁止(リードオンリー属性)/書込み可
    ├ w:Grepウィンドウ/Outputウィンドウ/通常のウィンドウ
    ├ M:キーボードマクロ記録中/通常
    ├ U:更新されている/されていない
    └ I:アクティブではない/アクティブである

    だけですよね。で、探してみるとメニュー作成時のチェックon/off判定処理、

    ssrc_2004-08-19/sakura_core/CEditWnd.cpp 2745 :int CEditWnd::IsFuncChecked( )
    ├ 文字コード判定(SJISか?/JISか?/EUCか?...)
    ├ キーマクロの記録中か?
    ├ ツールバー表示中か?
    ├ ファンクションキー表示中か?
    ├ タブ表示中か?
    ├ ステータスバー表示中か?
    ├ 読み取り専用か?
    ├ 改行コード(CRLFか?/LFか?/CRか?)
    └ 上書きモードか?

    な~んていう各種条件判定部がまとまった物が。
    この条件判定を ExpandParameter の条件判定部にコピー&ペーストして並べ替えて
    「この条件の場合は return 0; この場合は return 1;...」って追加していけば
    よいのかなと。

    とりあえずこれ全部一通り欲しいですね。
    文字コード,改行コード,上書き/挿入モード,ツールバー,ステータスバー,...
    これ拡張すれば例えば「ステータスバー非表示時はタイトルバーに文字コード,改行コード類を表示」
    なんて共通設定でできるようになるわけですし。

    他にもマクロ動作に影響が出そうだから取得したい情報とかはありそうですが
    数あり過ぎて何の情報が取得できれば嬉しいのかまとめきれない。。。