◀ANSI版開発トップへ
  • 2222 diffの不具合
    • 2223 RE: diffの不具合
      • 2229 RE2: diffの不具合
        • 2231 Re3: diffの不具合
          • 2233 Re4: diffの不具合
            • 2236 Re5: diffの不具合
      • 2242 Re2: diffの不具合
        • 2243 Re3: diffの不具合
          • 2244 Re4: diffの不具合
            • 2245 Re5: diffの不具合
            • 2246 Re5: diffの不具合
            • 2247 Re5: diffの不具合
            • 2248 Re5: diffの不具合
  • [2222] diffの不具合 げんた 2002年06月30日 13:17

    2chより転載

    386 :名無しさん@お腹いっぱい。 :02/06/29 14:19 ID:???
    diff差分表示したあとでファイルをいじると、
    diff関係のメニューがグレイアウトしてしまい
    表示のクリアなどが出来なくなる。
    • [2223] RE: diffの不具合 みく 2002年06月30日 18:10

      >タイトル: RE: diffの不具合
      >発言者: げんた
      >2chより転載
      >
      >386 :名無しさん@お腹いっぱい。 :02/06/29 14:19 ID:???
      >diff差分表示したあとでファイルをいじると、
      >diff関係のメニューがグレイアウトしてしまい
      >表示のクリアなどが出来なくなる。

      修正しました。
      →diff0624.zip

      ・DIFF差分表示した後ファイルを編集するとグレーアウトしてしまう。
      ・GNU DIFF以外のDIFF(MS-DOS版?)が使えない。
      ・PC98機でコントロールコード入力画面から0x1fをキー操作で入力できない。
      • [2229] RE2: diffの不具合 みく 2002年07月01日 21:33


        2chより転載

        400 :名無しさん@お腹いっぱい。 :02/07/01 17:32 ID:???
        1.3.2.1にしたらdiffが使えなくなった。
        やっぱり2.5でないと駄目なのか?

        401 :400 :02/07/01 17:56 ID:???
        ここの2.5でやってみたが、やはり駄目みたい。
        http://www.vector.co.jp/soft/winnt/prog/se015009.html

        ちなみに普段使ってる2.7はこれ。
        http://www.fsci.fuk.kindai.ac.jp/aftp/pub/win32/patch-diff-w32.zip


        一般掲示板:2061より
        「UNIX tools」<http://www.vector.co.jp/soft/win95/util/se010511.html>

        以上の3種類すべて試しましたがW2Kでは正常でした。
        で、多分NT系以外で駄目なのだろうと考えられます。
        試しに、以下のように修正してみてください。
        #はずしてたらすいません。

        CEditView_Diff.cpp:242行目
        - wsprintf( cmdline, "%s /C \"%s\\%s %s \"%s\" \"%s\"\"",
        + wsprintf( cmdline, "%s /C %s\\%s %s \"%s\" \"%s\"",
        • [2231] Re3: diffの不具合 しゅう 2002年07月02日 18:06

          はじめまして。
          以前よりサクラエディタを愛用させて頂いております。

          DIFF差分表示機能についてですが、

          > CEditView_Diff.cpp:242行目
          > - wsprintf( cmdline, "%s /C \"%s\\%s %s \"%s\" \"%s\"\"",
          > + wsprintf( cmdline, "%s /C %s\\%s %s \"%s\" \"%s\"",

          上の修正をしても、サクラエディタのインストール先が「C:\Program Files\sakura」のような半角スペースを含むフォルダの場合は正常に動作しないようです。
          インストール先を「C:\Tools\sakura」に変更してみたところ、正常に動作するようになりました。
          (実行環境はWin98です)

          DIFF.EXEの呼び出し時のパスに半角スペースが入ることで、DIFF.EXEが正しく実行されていないのではないでしょうか。
          • [2233] Re4: diffの不具合 みく 2002年07月02日 18:44


            ご報告ありがとうございます。

            >DIFF.EXEの呼び出し時のパスに半角スペースが入ることで、DIFF.EXEが正しく実行されていないのではないでしょうか。

            CEditView_Diff.cpp:242行目
            - wsprintf( cmdline, "%s /C \"%s\\%s %s \"%s\" \"%s\"\"",
            + wsprintf( cmdline, "%s /C \"%s\\%s\" %s \"%s\" \"%s\"",

            でどうでしょうか。
            • [2236] Re5: diffの不具合 しゅう 2002年07月03日 09:50

              > CEditView_Diff.cpp:242行目
              > - wsprintf( cmdline, "%s /C \"%s\\%s %s \"%s\" \"%s\"\"",
              > + wsprintf( cmdline, "%s /C \"%s\\%s\" %s \"%s\" \"%s\"",
              >
              > でどうでしょうか。

              正常に動作するようになりました。
      • [2242] Re2: diffの不具合 げんた 2002年07月04日 14:45

        1.3.2.1からdiffの起動にcommand.exe or cmd.exe を介するように変更されて,そのせいでオプションの解釈とかいろいろ問題が出ているようですが,直接実行するのをやめたのは
        >・GNU DIFF以外のDIFF(MS-DOS版?)が使えない。
        の対策のためですか?

        また,スペースが入るとうまくいかない件ですがdiff (GNU diff 2.7)をProgram Filesの下に置いて絶対パスで指定した場合,(win2k)
        > "C:\Program Files\GNU\WinCVS1.2_JP\diff.exe" options file1 file2
        のように""で囲んでも引数にかかわらずmissing operandというエラーメッセージしか返ってこないので,スペースの扱いに関してはそもそもdiff自身に問題があるような気がします.
        • [2243] Re3: diffの不具合 みく 2002年07月04日 18:42

          >タイトル: Re3: diffの不具合
          >発言者: げんた
          >1.3.2.1からdiffの起動にcommand.exe or cmd.exe を介するように変更されて,そのせいでオプションの解釈とかいろいろ問題が出ているようですが,直接実行するのをやめたのは
          >>・GNU DIFF以外のDIFF(MS-DOS版?)が使えない。
          >の対策のためですか?

          その通りです。


          >また,スペースが入るとうまくいかない件ですがdiff (GNU diff 2.7)をProgram Filesの下に置いて絶対パスで指定した場合,(win2k)
          >> "C:\Program Files\GNU\WinCVS1.2_JP\diff.exe" options file1 file2
          >のように""で囲んでも引数にかかわらずmissing operandというエラーメッセージしか返ってこないので,スペースの扱いに関してはそもそもdiff自身に問題があるような気がします.

          引数に指定するファイル名も””でくくってください。

          一般掲示板のほうにやざきさんが書いてある修正案で大丈夫ではないでしょうか。
          まとめ:
          ・途中に空白があるパス名は引数(orコマンド)の区切りと認識させないために””でくくる必要がある。
          ・cmd.exe に渡す文字列を特定するために渡す文字列全体を””でくくる必要がある。
          ・command.exeの場合は全体を””でくくってはならない。

          あと、外部コマンド実行でも cmd.exe を使っているので、
          オプションも書く可能性を考えると修正する必要があると思います。


          参考

          -----
          2chより転載

          417 :400 :02/07/04 03:14 ID:???
          sakura_2002-07-04.zipでもやはりdiffが動かない。
          WinXP/ diff2.7(401のやつ)
          sakuraのインストール先は c:\Program Files\sakura\

          ついでに不具合あげとく。
          ・diffのダイアログの「編集中ファイルが 新ファイル・旧ファイル」
           というのがグレイのままで選択できない。
          ・「見つからないときにメッセージを表示」チェックしても、どこにも何も
           表示されない。(diffが動いていた頃の話)
          -----

          1番目:
          最初は実装していたのですが、よーく考えると、
          どちらが新旧だろうが表示するのは自ファイルについてなのだから、同じなのです。
          よって機能として働かせていません。
          ソース上は残骸ありますので、グレーをはずせばたぶん動くと思うが、
          結果は同じはずです。

          2番目:
          これは、次の差分、前の差分で移動したときの話です。
          検索、置換ダイアログにもあります(まったく同じオプションです)。
          全体として差分があるかないかとは無関係です。
          全体として差分がない(ある)場合に、何かしらダイアログを出したほうがよいでしょうか。
          ・違いはありません。
          ・「追加n行・修正n行・削除n行」違いがあります。
          みたいな。(これもオプションで表示する・しないを選択できる?)
          • [2244] Re4: diffの不具合 げんた 2002年07月04日 20:42

            >>>・GNU DIFF以外のDIFF(MS-DOS版?)が使えない。
            >>の対策のためですか?
            >その通りです。
            MS-DOS版だとロングファイル名が扱えなくて困るんじゃないでしょうか.

            >>また,スペースが入るとうまくいかない件ですがdiff (GNU diff 2.7)をProgram Filesの下に置いて絶対パスで指定した場合,(win2k)
            >>> "C:\Program Files\GNU\WinCVS1.2_JP\diff.exe" options file1 file2
            >>のように""で囲んでも引数にかかわらずmissing operandというエラーメッセージしか返ってこないので,スペースの扱いに関してはそもそもdiff自身に問題があるような気がします.
            >
            >引数に指定するファイル名も””でくくってください。
            引数ではなくて,ファイル名のパス中にスペースがあると何も受け付けられなくなってしまうのです.例えば,
            "C:\Program Files\GNU\WinCVS1.2_JP\diff.exe" --help
            でもHELPが出ません.
            • [2245] Re5: diffの不具合 やざき 2002年07月04日 20:47


              >>>また,スペースが入るとうまくいかない件ですがdiff (GNU diff 2.7)をProgram Filesの下に置いて絶対パスで指定した場合,(win2k)
              >>>> "C:\Program Files\GNU\WinCVS1.2_JP\diff.exe" options file1 file2
              >>>のように""で囲んでも引数にかかわらずmissing operandというエラーメッセージしか返ってこないので,スペースの扱いに関してはそもそもdiff自身に問題があるような気がします.
              >>
              >>引数に指定するファイル名も””でくくってください。
              >引数ではなくて,ファイル名のパス中にスペースがあると何も受け付けられなくなってしまうのです.例えば,
              >"C:\Program Files\GNU\WinCVS1.2_JP\diff.exe" --help
              >でもHELPが出ません.

              げんたさんが使っているOSは?
              Win2000だと、

              cmd.exe /C ""C:\Documents and Settings\yazaki.makoto\デスクトップ\patch-diff-w32\diff.exe" --help"

              でHELPが出たよ。
              そもそも、パスに空白があるからdiffが誤動作する理由がわからないんだけど。
              diffは、自分のパスを見ているの?
            • [2246] Re5: diffの不具合 げんた 2002年07月04日 20:58

              >引数ではなくて,ファイル名のパス中にスペースがあると何も受け付けられなくなってしまうのです.
              同じGNU diff v2.7でも http://www.fsci.fuk.kindai.ac.jp/kakuto/soft.html から取った物はパス中のスペースを正しく認識してくれました.
              単にWinCVS 1.2付属の物がよろしくないみたいです.

              それにしても,同じ名前・同じバージョンなのに中身が違うというのは厳しいですね.
            • [2247] Re5: diffの不具合 みく 2002年07月04日 21:04

              >タイトル: Re5: diffの不具合
              >発言者: げんた
              >>>>・GNU DIFF以外のDIFF(MS-DOS版?)が使えない。
              >>>の対策のためですか?
              >>その通りです。
              >MS-DOS版だとロングファイル名が扱えなくて困るんじゃないでしょうか.

              そのようなバージョンを使いたいと思って使うのだから、
              その人は納得するしかないでしょう。
            • [2248] Re5: diffの不具合 すい 2002年07月04日 23:21

              >MS-DOS版だとロングファイル名が扱えなくて困るんじゃないでしょうか.
              そうとは限りません。
              MS-DOS版の実行ファイルのプログラムは、確かに多くの物はロングファイル名に対応していませんが、
              ロングファイル名に対応したMS-DOS版.exe のアプリケーションも実在します。
              # 私がはじめに試してみた diff (UNIX-like tools)は、正にコレでした。

              方法は、単純に「 Windows 環境内である場合には拡張ファンクションを利用する」だけです。

              純粋なMS-DOS版.exe(非Win32コンソールアプリ)でありながら、
              ・MS-DOS環境ではロングファイル名は使えない。
              ・Windows のコマンドプロンプト内ではロングファイル名対応。
              というアプリケーションになります。

              つまり、MS-DOS版 のコンパイラ「LSI C 試食版」の類でロングファイル名対応アプリも作れます。

              簡単にロングファイル名対応アプリを作れるように、その部分のみをフリーソフトのライブラリ
              として公開している方もいらっしゃいます。 http://member.nifty.ne.jp/k-takata/