◀ANSI版開発トップへ
  • 4617 起動オプションの英大文字小文字区別について
    • 4618 Re:起動オプションの英大文字小文字区別について
      • 4621 Re2:起動オプションの英大文字小文字区別について
        • 4624 Re3:起動オプションの英大文字小文字区別について
          • 4625 Re4:起動オプションの英大文字小文字区別について
          • 4626 Re4:起動オプションの英大文字小文字区別について
            • 4627 Re5:起動オプションの英大文字小文字区別について
  • [4617] 起動オプションの英大文字小文字区別について ryoji 2006年10月24日 22:13

    現仕様では起動オプションは英大文字小文字を区別するようになっていて、使っているのは大文字だけですよね?
    大文字小文字を区別しないように仕様変更したら問題あるでしょうか?

    自分は差分ソフトにWinMergeを利用しているのですが、最近になって外部エディタに行番号を渡せるようになっているのを知り(日本語版固有機能)、早速試してみたんですが、何故かサクラエディタには行番号が渡りませんでした。orz...
    で、WinMergeのほうのソースを調べたところ、コマンドライン文字列を大文字→小文字変換して外部エディタを起動するようになっていて、行番号指定の'-Y'が'-y'になっているのでした。ぎゃぼ~。
    もちろん、これはWinMerge側の問題だと思いますが...
    他エディタの多くは大文字小文字を区別しないか小文字主体のオプション体系になっているみたいで、サクラエディタだけがうまく動かないような感じになってしまっています。
    また、うまくいかないことでユーザーには余計な手間がかかり、結局はあきらめて起動元アプリの側の対処を待つしか術がなくなるんじゃあないかと思います。
    (別アプリやWSHなどのスクリプト経由で小文字→大文字の逆変換をしてサクラエディタを起動するという手はありますが、誰にでもできるってわけじゃないですし...)
    WinMerge以外でも同様な不備のものがあるかも/今後も出てくるかもしれないことを考えると、一部または全部のオプションについて大文字小文字を区別しないようにしておいたほうが問題が起きなくなって良いのではないかな~、と思ったのですが、どうでしょう?
    • [4618] Re:起動オプションの英大文字小文字区別について じゅうじ 2006年10月24日 23:49

      小文字も許すようにしても問題無いと思います。
      そこで、patch を作成しました。-code=1 -y:3 でテストしています。
      COMMIT可能でしたら、お願いします。

      --- K:\Program Files\Sakura\ssrc_2006-09-23\ssrc_2006-09-23\sakura_core\CCommandLine.cpp Thu Apr 20 08:59:52 2006
      +++ K:\Program Files\Sakura\ssrc_2006-09-23\sakura_core\CCommandLine.cpp Tue Oct 24 23:41:52 2006
      @@ -113,4 +113,8 @@
      int len = lstrlen( str );

      + for(int i=0 ; i<len ; i++ ) { // 2006/10/24 ADD じゅうじ dev:4617
      + if(str[i] == '=' || str[i] == ':') break;
      + if(str[i] >= 'a' && str[i] <= 'z') str[i] &= 0xFF ^ ('a'-'A') ; // 半角小文字→大文字
      + }
      // 引数がある場合を先に確認
      for( ptr = _COptWithA; ptr->opt != NULL; ptr++ ){
      • [4621] Re2:起動オプションの英大文字小文字区別について ryoji 2006年10月25日 22:17

        ▼ じゅうじさん
        > そこで、patch を作成しました。-code=1 -y:3 でテストしています。
        > COMMIT可能でしたら、お願いします。
        考えていただいてありがとうございます。
        このやりかたでもいけそうですが、シンプルにその後の比較をmemcmp()からmy_icmp.hの_memicmp()に置き換えるやり方で作ってみました。
        ->Patches#1584411

        他エディタでの大文字小文字区別ですが、調べた範囲では次のようになってます。
        区別なし: 秀丸,Peggy,ViVi,QX,K2Editor,TeraPad,MkEditor
        区別あり: EmEditor,gvim
        EmEditorは小文字しか使ってなくて、gvimの行指定は'+'なので、WinMergeから行番号が渡らないのはサクラのみという...(;_;)

        一度「区別する」から「区別しない」に変えたら、簡単に戻るわけにはいかないでしょうから、他の方もご意見があればよろしくお願いします。
        • [4624] Re3:起動オプションの英大文字小文字区別について げんた 2006年10月28日 22:53

          >一度「区別する」から「区別しない」に変えたら、簡単に戻るわけにはいかないでしょうから、他の方もご意見があればよろしくお願いします。
          オプションは1文字に限定していないので,大文字小文字の区別を無くしても

          ところで,通常のオプション以外にGREP条件を渡す部分も区別を無くしていますが,ここは基本的にsakuraが内部で使う物なのでそのままでも良いように思いますけど.
          • [4625] Re4:起動オプションの英大文字小文字区別について じゅうじ 2006年10月29日 07:21

            ▼ げんたさん
            > オプションは1文字に限定していないので,大文字小文字の区別を無くしても
            > ところで,通常のオプション以外にGREP条件を渡す部分も区別を無くしていますが,ここは基本的にsakuraが内部で使う物なのでそのままでも良いように思いますけど.

            私もそう思います。
            ・オプションは英大文字小文字を区別します。
            これって何処に書いてあるか分かります? HELP! AT SAKURA です。新HELPは、
            ・オプションは英大文字小文字を区別しません。
            ウインドウズなので、小文字を区別しても意味無いと思いますが、
            どちらにしても修正個所が多いのが、駄目なんでしょうね。toupper OK!
          • [4626] Re4:起動オプションの英大文字小文字区別について ryoji 2006年10月29日 12:02

            ▼ げんたさん
            > ところで,通常のオプション以外にGREP条件を渡す部分も区別を無くしていますが,ここは基本的にsakuraが内部で使う物なのでそのままでも良いように思いますけど.
            単に、同一視するならサブオプションもそうしたほうがわかりやすいかと思って。
            grepサブオプションは1文字指定ですね。
            grep画面上のショートカットは大文字小文字区別無しだけど、それはあまり関係ないか。
            さて、ここはどうしたものか...

            ちなみに、
            秀丸では検索/grepのサブオプションは特別に小文字は有効、大文字は無効を表すようになっいるのは知ってたんですが、
            例)w:単語検索有効, W:単語検索無効
            無指定も許していて、その場合にどうなるのかよくわからなかったりします。
            (明示的にするためには全サブオプションを記述しなければならない)
            ※サクラでは指定すれば有効、無指定だと無効
            • [4627] Re5:起動オプションの英大文字小文字区別について げんた 2006年10月29日 12:36

              すいません.書きかけで投稿してしまったのに意をくんでくださってありがとうございました.

              >単に、同一視するならサブオプションもそうしたほうがわかりやすいかと思って。
              >grepサブオプションは1文字指定ですね。
              >grep画面上のショートカットは大文字小文字区別無しだけど、それはあまり関係ないか。
              >さて、ここはどうしたものか...

              Grepの方もどんどんオプションが増えて文字数が足りなくなるという心配があるわけでもなく,どっちでもいいと言えばいいんですが,Grepの方を変えるとテストが面倒くさそう...普通のGrepでは決して通らないパスなので自分でGrep風引数を与えないといけないので.

              =(またはコロン)の後ろは大文字小文字の区別有りの方が他のオプションとの整合が取れると思います.