File:  [Local Repository] / gnujdoc / diffutils-2.8.1 / diff-ja.texi
Revision 1.1: download - view: text, annotated - select for diffs
Sun Nov 3 13:35:09 2002 UTC (18 years ago) by futoshi
Branches: MAIN
CVS tags: HEAD
Add diffutils

    1: \input texinfo @c -*-texinfo-*-
    2: @comment $Id: diff-ja.texi,v 1.1 2002/11/03 13:35:09 futoshi Exp $
    3: @comment %**start of header
    4: @setfilename diff-ja.info
    5: @include diff-v.texi
    6: @settitle Comparing and Merging Files
    7: @syncodeindex vr cp
    8: @setchapternewpage odd
    9: @comment %**end of header
   10: 
   11: @c @documentlanguage ja
   12: 
   13: @copying
   14: This manual is for GNU Diffutils
   15: (version @value{VERSION}, @value{UPDATED}),
   16: and documents the @sc{gnu} @command{diff}, @command{diff3},
   17: @command{sdiff}, and @command{cmp} commands for showing the
   18: differences between files and the @sc{gnu} @command{patch} command for
   19: using their output to update files.
   20: 
   21: Copyright @copyright{} 1992, 1993, 1994, 1998, 2001, 2002 Free
   22: Software Foundation, Inc.
   23: 
   24: @quotation
   25: Permission is granted to copy, distribute and/or modify this document
   26: under the terms of the GNU Free Documentation License, Version 1.1 or
   27: any later version published by the Free Software Foundation; with no
   28: Invariant Sections, with the Front-Cover texts being ``A GNU Manual,''
   29: and with the Back-Cover Texts as in (a) below.  A copy of the
   30: license is included in the section entitled ``GNU Free Documentation
   31: License.''
   32: 
   33: (a) The FSF's Back-Cover Text is: ``You have freedom to copy and modify
   34: this GNU Manual, like GNU software.  Copies published by the Free
   35: Software Foundation raise funds for GNU development.''
   36: @end quotation
   37: @end copying
   38: 
   39: @c Debian install-info (up through at least version 1.9.20) uses only the
   40: @c first dircategory.  Put this one first, as it is more useful in practice.
   41: @dircategory Individual utilities
   42: @direntry
   43: * cmp(ja): (diff-ja)Invoking cmp.      Compare 2 files byte by byte.
   44: * diff(ja): (diff-ja)Invoking diff.    Compare 2 files line by line.
   45: * diff3(ja): (diff-ja)Invoking diff3.  Compare 3 files line by line.
   46: * patch(ja): (diff-ja)Invoking patch.  Apply a patch to a file.
   47: * sdiff(ja): (diff-ja)Invoking sdiff.  Merge 2 files side-by-side.
   48: @end direntry
   49: 
   50: @dircategory GNU packages
   51: @direntry
   52: * Diff(ja): (diff-ja).               Comparing and merging files.
   53: @end direntry
   54: 
   55: @titlepage
   56: @title Comparing and Merging Files
   57: @subtitle for Diffutils @value{VERSION} and @code{patch} 2.5.4
   58: @subtitle @value{UPDATED}
   59: @author David MacKenzie, Paul Eggert, and Richard Stallman
   60: @c 翻訳:西尾 太
   61: @page
   62: @vskip 0pt plus 1filll
   63: @insertcopying
   64: @end titlepage
   65: 
   66: @shortcontents
   67: @contents
   68: 
   69: @ifnottex
   70: @node Top
   71: @c @top Comparing and Merging Files
   72: @top ファイルの比較とマージ
   73: 
   74: @insertcopying
   75: @end ifnottex
   76: 
   77: @menu
   78: * Overview::              Preliminary information.
   79: * Comparison::            What file comparison means.
   80: 
   81: * Output Formats::        Formats for two-way difference reports.
   82: * Incomplete Lines::      Lines that lack trailing newlines.
   83: * Comparing Directories:: Comparing files and directories.
   84: * Adjusting Output::      Making @command{diff} output prettier.
   85: * diff Performance::      Making @command{diff} smarter or faster.
   86: 
   87: * Comparing Three Files:: Formats for three-way difference reports.
   88: * diff3 Merging::         Merging from a common ancestor.
   89: 
   90: * Interactive Merging::   Interactive merging with @command{sdiff}.
   91: 
   92: * Merging with patch::    Using @command{patch} to change old files into new ones.
   93: * Making Patches::        Tips for making and using patch distributions.
   94: 
   95: * Invoking cmp::          Compare two files byte by byte.
   96: * Invoking diff::         Compare two files line by line.
   97: * Invoking diff3::        Compare three files line by line.
   98: * Invoking patch::        Apply a diff file to an original.
   99: * Invoking sdiff::        Side-by-side merge of file differences.
  100: 
  101: * Standards conformance:: Conformance to the @sc{posix} standard.
  102: * Projects::              If you've found a bug or other shortcoming.
  103: 
  104: * Copying This Manual::   How to make copies of this manual.
  105: * Index::                 Index.
  106: @end menu
  107: 
  108: @node Overview
  109: @c @unnumbered Overview
  110: @unnumbered 概要
  111: @cindex overview of @command{diff} and @command{patch}
  112: 
  113: @c Computer users often find occasion to ask how two files differ.  Perhaps
  114: @c one file is a newer version of the other file.  Or maybe the two files
  115: @c started out as identical copies but were changed by different people.
  116: @c 
  117: コンピュータユーザは,二つのファイルの差がどれくらいあるのか尋ねることが
  118: 多いことを知っています.おそらく一つのファイルは,もう一つのファイルのよ
  119: り新しいバージョンでしょう.もしかすると,二つのファイルは最初は同一のも
  120: のだったのですが,別々の人が変更したものかもしれません.
  121: 
  122: @c You can use the @command{diff} command to show differences between two
  123: @c files, or each corresponding file in two directories.  @command{diff}
  124: @c outputs differences between files line by line in any of several
  125: @c formats, selectable by command line options.  This set of differences is
  126: @c often called a @dfn{diff} or @dfn{patch}.  For files that are identical,
  127: @c @command{diff} normally produces no output; for binary (non-text) files,
  128: @c @command{diff} normally reports only that they are different.
  129: @c 
  130: 二つのファイルや,二つのディレクトリでそれぞれ対応するファイルの差を表示
  131: するために,@command{diff}コマンドを使用することが可能です.
  132: @command{diff}は,行単位でのファイル間の差を,コマンドラインで選択可能な
  133: いくつかの書式で出力します.この差の組は@dfn{差分(diff)}や@dfn{パッチ
  134: (patch)}と呼ばれることもよくあります.同一ファイルに対して,通常
  135: @command{diff}は何も出力しません.バイナリ(テキストでない)ファイルに対し
  136: て,通常@command{diff}はそれらが異なっていることだけを報告します.
  137: 
  138: @c You can use the @command{cmp} command to show the byte and line numbers
  139: @c where two files differ.  @command{cmp} can also show all the bytes
  140: @c that differ between the two files, side by side.  A way to compare
  141: @c two files character by character is the Emacs command @kbd{M-x
  142: @c compare-windows}.  @xref{Other Window, , Other Window, emacs, The @sc{gnu}
  143: @c Emacs Manual}, for more information on that command.
  144: @c 
  145: 二つのファイルの差がある場所のオフセットと行番号を表示するために,
  146: @command{cmp}コマンドを使用することが可能です.@command{cmp}では,二つの
  147: ファイル間で異なっている全ての文字を並べて表示することも可能です.二つの
  148: ファイルを文字単位で比較するもう一つの方法としては,Emacsコマンドの 
  149: @kbd{M-x compare-windows}があります.そのコマンドの詳細は,@xref{Other
  150: Window, , Other Window, emacs, The GNU Emacs Manual}.
  151: 
  152: @c You can use the @command{diff3} command to show differences among three
  153: @c files.  When two people have made independent changes to a common
  154: @c original, @command{diff3} can report the differences between the original
  155: @c and the two changed versions, and can produce a merged file that
  156: @c contains both persons' changes together with warnings about conflicts.
  157: @c 
  158: 三つのファイル間の差を表示するために@command{diff3}コマンドを使用するこ
  159: とが可能です.二人の人が共通のオリジナルに個別の変更を行なったとき,
  160: @command{diff3}でオリジナルと二つの変更されたバージョンの差を報告させる
  161: ことが可能で,衝突しているという警告を用いながら,両者の変更をそれぞれ含
  162: めているマージされたファイルを生成することが可能です.
  163: 
  164: @c You can use the @command{sdiff} command to merge two files interactively.
  165: @c 
  166: 二つのファイルを対話的にマージするために@command{sdiff}コマンドを使用す
  167: ることが可能です.
  168: 
  169: @c You can use the set of differences produced by @command{diff} to distribute
  170: @c updates to text files (such as program source code) to other people.
  171: @c This method is especially useful when the differences are small compared
  172: @c to the complete files.  Given @command{diff} output, you can use the
  173: @c @command{patch} program to update, or @dfn{patch}, a copy of the file.  If you
  174: @c think of @command{diff} as subtracting one file from another to produce
  175: @c their difference, you can think of @command{patch} as adding the difference
  176: @c to one file to reproduce the other.
  177: @c 
  178: (プログラムのソースコードのような)テキストファイルへの更新を他の人に配布
  179: するために,@command{diff}で生成された差分の組を使用することが可能です.
  180: 比較したファイルの差が小さいとき,この手法は特に役に立ちます.
  181: @command{diff}出力を与えることで,更新するための@command{patch}プログラ
  182: ムを使用したり,ファイルのコピーを@dfn{patch}にしたりすることが可能です.
  183: @command{diff}とは差分を生成するために一つのファイルからもう一つのファイ
  184: ルを引くことだと考える場合,@command{patch}とは,もう一つのものを再生成
  185: するために差分を一つのファイルに加えることだと考えることが可能です.
  186: 
  187: @c This manual first concentrates on making diffs, and later shows how to
  188: @c use diffs to update files.
  189: @c 
  190: このマニュアルの最初では差分の作成に集中し,その後でファイルを更新するた
  191: めに差分を使用する方法を提示します.
  192: 
  193: @c @sc{gnu} @command{diff} was written by Paul Eggert, Mike Haertel,
  194: @c David Hayes, Richard Stallman, and Len Tower.  Wayne Davison designed and
  195: @c implemented the unified output format.  The basic algorithm is described
  196: @c in ``An O(ND) Difference Algorithm and its Variations'', Eugene W. Myers,
  197: @c @cite{Algorithmica} Vol.@: 1 No.@: 2, 1986, pp.@: 251--266; and in ``A File
  198: @c Comparison Program'', Webb Miller and Eugene W. Myers,
  199: @c @cite{Software---Practice and Experience} Vol.@: 15 No.@: 11, 1985,
  200: @c pp.@: 1025--1040.
  201: @c 
  202: @sc{gnu} @command{diff}は,Paul Eggert,Mike Haertel,David Hayes,
  203: Richard Stallman,そしてLen Towerによって書かれました.Wayne Davisonは,
  204: 一体化した出力書式を設計し実装しました.基本的なアルゴリズムは,``An
  205: O(ND) Difference Algorithm and its Variations'', Eugene W. Myers,
  206: @cite{Algorithmica} Vol.@: 1 No.@: 2, 1986, pp.@: 251--266と,``A File
  207: Comparison Program'', Webb Miller and Eugene W. Myers,
  208: @cite{Software---Practice and Experience} Vol.@: 15 No.@: 11, 1985,
  209: pp.@: 1025--1040に記述されています.
  210: @c From: "Gene Myers" <gene@cs.arizona.edu>
  211: @c They are about the same basic algorithm; the Algorithmica
  212: @c paper gives a rigorous treatment and the sub-algorithm for
  213: @c delivering scripts and should be the primary reference, but
  214: @c both should be mentioned.
  215: @c 
  216: @c The algorithm was independently discovered as described in
  217: @c ``Algorithms for Approximate String Matching'',
  218: @c E. Ukkonen, @cite{Information and Control} Vol.@: 64, 1985, pp.@: 100--118.
  219: @c 
  220: アルゴリズムは,``Algorithms for Approximate String Matching'',
  221: E. Ukkonen, @cite{Information and Control} Vol.@: 64, 1985, pp.@:
  222: 100--118に記述されているものに依存しないようにして発明されました.
  223: @c From: "Gene Myers" <gene@cs.arizona.edu>
  224: @c Date: Wed, 29 Sep 1993 08:27:55 MST
  225: @c Ukkonen should be given credit for also discovering the algorithm used
  226: @c in GNU diff.
  227: 
  228: @c @sc{gnu} @command{diff3} was written by Randy Smith.  @sc{gnu}
  229: @c @command{sdiff} was written by Thomas Lord.  @sc{gnu} @command{cmp}
  230: @c was written by Torbjorn Granlund and David MacKenzie.
  231: @c 
  232: @sc{gnu} @command{diff3}はRandy Smithによって書かれました.@sc{gnu}
  233: @command{sdiff}はThomas Lordによって書かれました.@sc{gnu} @command{cmp} 
  234: はTorbjorn GranlundとDavid MacKenzieによって書かれました.
  235: 
  236: @c @command{patch} was written mainly by Larry Wall and Paul Eggert;
  237: @c several @sc{gnu} enhancements were contributed by Wayne Davison and
  238: @c David MacKenzie.  Parts of this manual are adapted from a manual page
  239: @c written by Larry Wall, with his permission.
  240: @c 
  241: @command{patch}はLarry WallとPaul Eggertによって書かれました.いくつかの
  242: @sc{gnu}の拡張部分はWayne DavisonとDavid MacKenzieが寄贈してくれました.
  243: このマニュアルの一部は,Larry Wallによって書かれたマニュアルページを適用
  244: していて,それには彼の許可が付随しています.
  245: 
  246: @node Comparison
  247: @c @chapter What Comparison Means
  248: @chapter 比較が意味するもの
  249: @cindex introduction
  250: 
  251: @c There are several ways to think about the differences between two files.
  252: @c One way to think of the differences is as a series of lines that were
  253: @c deleted from, inserted in, or changed in one file to produce the other
  254: @c file.  @command{diff} compares two files line by line, finds groups of
  255: @c lines that differ, and reports each group of differing lines.  It can
  256: @c report the differing lines in several formats, which have different
  257: @c purposes.
  258: @c 
  259: 二つのファイル間の差を考えるときいくつかの方法があります.差を考えるとき
  260: の一つの方法は,別のファイルを生成するために,まとまった行があるファイル
  261: から削除,挿入,または変更されているということです.@command{diff}は行単
  262: 位で二つのファイルを比較し,異なっている行のまとまりを探し,そして,異なっ
  263: ているそれぞれのまとまりを報告します.目的によって,いくつかの書式で異なっ
  264: ている行を報告させることが可能です.
  265: 
  266: @c @sc{gnu} @command{diff} can show whether files are different without detailing
  267: @c the differences.  It also provides ways to suppress certain kinds of
  268: @c differences that are not important to you.  Most commonly, such
  269: @c differences are changes in the amount of white space between words or
  270: @c lines.  @command{diff} also provides ways to suppress differences in
  271: @c alphabetic case or in lines that match a regular expression that you
  272: @c provide.  These options can accumulate; for example, you can ignore
  273: @c changes in both white space and alphabetic case.
  274: @c 
  275: @sc{gnu} @command{diff}では,詳細な差異を用いずにファイルが異なっている
  276: かどうかを表示することが可能です.それは,重要ではない差異の表示を抑制す
  277: る方法も提供しています.最も一般的なこととして,そのような差は単語や行の
  278: 間の空白の数が変更されているものです.@command{diff}は,アルファベットの
  279: 大文字小文字の差や,提供されている正規表現にマッチする行の差の表示を抑制
  280: する方法も提供しています.これらのオプションは累積されます.例えば,空白
  281: とアルファベットの大文字小文字の変更を無視することが可能です.
  282: 
  283: @c Another way to think of the differences between two files is as a
  284: @c sequence of pairs of bytes that can be either identical or
  285: @c different.  @command{cmp} reports the differences between two files
  286: @c byte by byte, instead of line by line.  As a result, it is often
  287: @c more useful than @command{diff} for comparing binary files.  For text
  288: @c files, @command{cmp} is useful mainly when you want to know only whether
  289: @c two files are identical, or whether one file is a prefix of the other.
  290: @c 
  291: 二つのファイルの差を考えるもう一つの方法として,バイトの集合が同一または
  292: 異なっているというのもがあります.@command{cmp}は二つのファイル間の差を,
  293: 行単位ではなく,バイト単位で報告します.結果として,バイナリファイルに対
  294: して@command{diff}を使用するより,遥かに役に立つことが多いでしょう.テキ
  295: ストファイルに対しては,二つのファイルが同一かどうか,または,一つのファ
  296: イルがもう一方のファイルに前置されているかどうかを知りたいだけのとき,主
  297: に役に立つでしょう.
  298: 
  299: @c To illustrate the effect that considering changes byte by byte
  300: @c can have compared with considering them line by line, think of what
  301: @c happens if a single newline character is added to the beginning of a
  302: @c file.  If that file is then compared with an otherwise identical file
  303: @c that lacks the newline at the beginning, @command{diff} will report that a
  304: @c blank line has been added to the file, while @command{cmp} will report that
  305: @c almost every byte of the two files differs.
  306: @c 
  307: バイト単位での変更を考慮する影響を説明するには,行単位での変更を考慮する
  308: ことと比較することが可能で,例えば単一の改行文字がファイルの最初にある場
  309: 合に何が生じるかを考えてみてください.そのファイルを,最初に改行が無いだ
  310: けの同一の別ファイルと比較する場合,@command{diff}では改行がファイルに追
  311: 加されたことを報告しますが,@command{cmp}では二つのファイルはほとんど全
  312: 体が異なっていると報告するでしょう.
  313: 
  314: @c @command{diff3} normally compares three input files line by line, finds
  315: @c groups of lines that differ, and reports each group of differing lines.
  316: @c Its output is designed to make it easy to inspect two different sets of
  317: @c changes to the same file.
  318: @c 
  319: @command{diff3}は,通常三つの入力ファイルを行単位で比較し,差異のある行
  320: のまとまりを見つけ,それぞれの差異のある行のまとまりを報告します.その出
  321: 力は,同じファイルを変更した二つのものの差を調べることを容易にするように
  322: 設計されています.
  323: 
  324: @menu
  325: * Hunks::             Groups of differing lines.
  326: * White Space::       Suppressing differences in white space.
  327: * Blank Lines::       Suppressing differences in blank lines.
  328: * Case Folding::      Suppressing differences in alphabetic case.
  329: * Specified Folding:: Suppressing differences that match regular expressions.
  330: * Brief::             Summarizing which files are different.
  331: * Binary::            Comparing binary files or forcing text comparisons.
  332: @end menu
  333: 
  334: @node Hunks
  335: @section Hunks
  336: @cindex hunks
  337: 
  338: @c When comparing two files, @command{diff} finds sequences of lines common to
  339: @c both files, interspersed with groups of differing lines called
  340: @c @dfn{hunks}.  Comparing two identical files yields one sequence of
  341: @c common lines and no hunks, because no lines differ.  Comparing two
  342: @c entirely different files yields no common lines and one large hunk that
  343: @c contains all lines of both files.  In general, there are many ways to
  344: @c match up lines between two given files.  @command{diff} tries to minimize
  345: @c the total hunk size by finding large sequences of common lines
  346: @c interspersed with small hunks of differing lines.
  347: @c 
  348: 二つのファイルを比較しているとき,@command{diff}は,@dfn{hunk}と呼ばれる
  349: 異なっている行のまとまりが疎らに存在している両方のファイルから,共通な行
  350: の並びを探します.二つの同一ファイルの比較では差異のある行は無いので,一
  351: つの共通な行の並びが見つかり,hunkはありません.二つの全く異なるファイル
  352: の比較では,共通の行は無く,両方のファイルのすべての行を含んでいる一つの
  353: 大きなhunkが生成されます.一般的に,二つの与えられたファイル間で,行のマッ
  354: チを調べる方法はたくさんあります.@command{diff}は,大きな共通行の並びを
  355: 探しながら差異のある行を小さなhunkにして,全体のhunkの大きさを最小にする
  356: よう試みます.
  357: 
  358: @c For example, suppose the file @file{F} contains the three lines
  359: @c @samp{a}, @samp{b}, @samp{c}, and the file @file{G} contains the same
  360: @c three lines in reverse order @samp{c}, @samp{b}, @samp{a}.  If
  361: @c @command{diff} finds the line @samp{c} as common, then the command
  362: @c @samp{diff F G} produces this output:
  363: @c 
  364: 例えば,ファイル@file{F}は三行@samp{a},@samp{b},@samp{c}を含んでいて,
  365: ファイル@file{G}は同じ行を逆の順序@samp{c},@samp{b},@samp{a}で含んでい
  366: ると仮定します.@command{diff}が行@samp{c}を共通として見つけた場合,コマ
  367: ンド@samp{diff F G}は以下の出力を生成します.
  368: 
  369: @example
  370: 1,2d0
  371: < a
  372: < b
  373: 3a2,3
  374: > b
  375: > a
  376: @end example
  377: 
  378: @noindent
  379: @c But if @command{diff} notices the common line @samp{b} instead, it produces
  380: @c this output:
  381: @c 
  382: しかし,その代わりに共通行@samp{b}に注目する場合,以下の出力を生成します.
  383: 
  384: @example
  385: 1c1
  386: < a
  387: ---
  388: > c
  389: 3c3
  390: < c
  391: ---
  392: > a
  393: @end example
  394: 
  395: @noindent
  396: @c It is also possible to find @samp{a} as the common line.  @command{diff}
  397: @c does not always find an optimal matching between the files; it takes
  398: @c shortcuts to run faster.  But its output is usually close to the
  399: @c shortest possible.  You can adjust this tradeoff with the
  400: @c @option{--minimal} option (@pxref{diff Performance}).
  401: @c 
  402: @samp{a}が共通行として見つかる可能性もあります.@command{diff}は常に,ファ
  403: イル間の最適なマッチしている部分を見つけるわけではありません.それで実行
  404: がより早くなります.しかし,出力は通常可能な限り短くなるようにします.
  405: @option{--minimal}オプションで,このトレードオフを調整することが可能です
  406: (@pxref{diff Performance}).
  407: 
  408: @node White Space
  409: @c @section Suppressing Differences in Blank and Tab Spacing
  410: @section 空白とタブのスペースの差を抑制する
  411: @cindex blank and tab difference suppression
  412: @cindex tab and blank difference suppression
  413: 
  414: @c The @option{-E} and @option{--ignore-tab-expansion} options ignore the
  415: @c distinction between tabs and spaces on input.  A tab is considered to be
  416: @c equivalent to the number of spaces to the next tab stop.  @command{diff}
  417: @c assumes that tab stops are set every 8 print columns.
  418: @c 
  419: @option{-E}と@option{--ignore-tab-expansion}オプションは,入力のタブとス
  420: ペースの違いを無視します.タブは,次のタブストップまでのスペースの数に等
  421: しいと考えられます.@command{diff}は,タブストップが八文字ごとに設定され
  422: ている仮定します.
  423: 
  424: @c The @option{-b} and @option{--ignore-space-change} options are stronger.
  425: @c They ignore white space at line end, and consider all other sequences of
  426: @c one or more white space characters to be equivalent.  With these
  427: @c options, @command{diff} considers the following two lines to be equivalent,
  428: @c where @samp{$} denotes the line end:
  429: @c 
  430: @option{-b}と@option{--ignore-space-change}オプションはより強力です.そ
  431: れらは行末の空白を無視し,それ以外の一つ以上の空白の並びが等価であると考
  432: えます.これらのオプションを用いると,@command{diff}は以下のに行が等価で
  433: あると考えます.@samp{$}は行末を示します.
  434: 
  435: @example
  436: Here lyeth  muche rychnesse  in lytell space.   -- John Heywood$
  437: Here lyeth muche rychnesse in lytell space. -- John Heywood   $
  438: @end example
  439: 
  440: @c The @option{-w} and @option{--ignore-all-space} options are stronger still.
  441: @c They ignore difference even if one line has white space where
  442: @c the other line has none.  @dfn{White space} characters include
  443: @c tab, newline, vertical tab, form feed, carriage return, and space;
  444: @c some locales may define additional characters to be white space.
  445: @c With these options, @command{diff} considers the
  446: @c following two lines to be equivalent, where @samp{$} denotes the line
  447: @c end and @samp{^M} denotes a carriage return:
  448: @c 
  449: @option{-w}と@option{--ignore-all-space}オプションは更に強力です.それら
  450: は,片方の行には空白がありもう一方にはない場合でさえ,その差を無視します.
  451: @dfn{空白}文字とは,タブ,改行,垂直タブ,改ページ,キャリッジリターン,
  452: そしてスペースです.ロケールによっては,追加の文字が空白として定義されて
  453: いるかもしれません.これらのオプションを用いると,@command{diff}は以下の
  454: に行を等価と考えます.@samp{$}は行末を示し,@samp{^M}はキャリッジリター
  455: ンを示します.
  456: 
  457: @example
  458: Here lyeth  muche  rychnesse in lytell space.--  John Heywood$
  459:   He relyeth much erychnes  seinly tells pace.  --John Heywood   ^M$
  460: @end example
  461: 
  462: @node Blank Lines
  463: @c @section Suppressing Differences in Blank Lines
  464: @section 空白行の差を抑制する
  465: @cindex blank line difference suppression
  466: 
  467: @c The @option{-B} and @option{--ignore-blank-lines} options ignore insertions
  468: @c or deletions of blank lines.  These options affect only lines
  469: @c that are completely empty; they do not affect lines that look empty but
  470: @c contain space or tab characters.  With these options, for example, a
  471: @c file containing
  472: @c 
  473: @option{-B}と@option{--ignore-blank-lines}オプションは,空白行の挿入や削
  474: 除を無視します.これらのオプションは,完全に空の行だけに効果があります.
  475: それらは,空のように見えるが,スペースやタブを含んでいる行には効果があり
  476: ません.これらのオプションを用いると,例えばファイルが以下のものを含んで
  477: いると考えます.
  478: @example
  479: 1.  A point is that which has no part.
  480: 
  481: 2.  A line is breadthless length.
  482: -- Euclid, The Elements, I
  483: @end example
  484: @noindent
  485: @c is considered identical to a file containing
  486: @c 
  487: これは以下を含んでいるファイルと等価です.
  488: @example
  489: 1.  A point is that which has no part.
  490: 2.  A line is breadthless length.
  491: 
  492: 
  493: -- Euclid, The Elements, I
  494: @end example
  495: 
  496: @node Case Folding
  497: @c @section Suppressing Case Differences
  498: @section 大文字小文字の差を抑制する
  499: @cindex case difference suppression
  500: 
  501: @c @sc{gnu} @command{diff} can treat lower case letters as equivalent to their
  502: @c upper case counterparts, so that, for example, it considers @samp{Funky
  503: @c Stuff}, @samp{funky STUFF}, and @samp{fUNKy stuFf} to all be the same.
  504: @c To request this, use the @option{-i} or @option{--ignore-case} option.
  505: @c 
  506: @sc{gnu} @command{diff}では,例えば,@samp{Funky Stuff},@samp{funky
  507: STUFF},そして@samp{fUNKy stuFf}がすべて同じ名前だと考えるように,小文字
  508: がそれに対応する大文字と等価物として扱うことが可能です.こうするために,
  509: @option{-i}や@option{--ignore-case}オプションを使用してください.
  510: 
  511: @node Specified Folding
  512: @c @section Suppressing Lines Matching a Regular Expression
  513: @section 正規表現にマッチする行を抑制する
  514: @cindex regular expression suppression
  515: 
  516: @c To ignore insertions and deletions of lines that match a
  517: @c @command{grep}-style regular expression, use the @option{-I
  518: @c @var{regexp}} or @option{--ignore-matching-lines=@var{regexp}} option.
  519: @c You should escape
  520: @c regular expressions that contain shell metacharacters to prevent the
  521: @c shell from expanding them.  For example, @samp{diff -I '^[[:digit:]]'} ignores
  522: @c all changes to lines beginning with a digit.
  523: @c 
  524: @command{grep}-形式の正規表現にマッチする行の挿入と削除を無視するために,
  525: @option{-I @var{regexp}}や@option{--ignore-matching-lines=@var{regexp}}
  526: オプションを指定してください.シェルのメタ文字がシェルで展開されるのを避
  527: けるために,正規表現をエスケープしてください.例えば,@samp{diff -I
  528: '^[[:digit:]]'}は,数字で始まる行のすべての変更を無視します.
  529: 
  530: @c However, @option{-I} only ignores the insertion or deletion of lines that
  531: @c contain the regular expression if every changed line in the hunk---every
  532: @c insertion and every deletion---matches the regular expression.  In other
  533: @c words, for each nonignorable change, @command{diff} prints the complete set
  534: @c of changes in its vicinity, including the ignorable ones.
  535: @c 
  536: しかし@option{-I}は,hunk内のすべての変更行が --- すべて挿入と削除で --- 
  537: 正規表現にマッチする場合,正規表現を含んでいる行の挿入と削除のみを無視し
  538: ます.言い替えると,無視できない変更に対し,それに隣接する変更の完全な組
  539: を無視できるものも含めて@command{diff}は出力します.
  540: 
  541: @c You can specify more than one regular expression for lines to ignore by
  542: @c using more than one @option{-I} option.  @command{diff} tries to match each
  543: @c line against each regular expression.
  544: @c 
  545: 一つ以上の@option{-I}オプションを使用して,行を無視するために一つ以上の
  546: 正規表現を指定することが可能です.@command{diff}はそれぞれの正規表現に対
  547: し,それぞれの行のマッチを試みます.
  548: 
  549: @node Brief
  550: @c @section Summarizing Which Files Differ
  551: @section ファイルの差の概要
  552: @cindex summarizing which files differ
  553: @cindex brief difference reports
  554: 
  555: @c When you only want to find out whether files are different, and you
  556: @c don't care what the differences are, you can use the summary output
  557: @c format.  In this format, instead of showing the differences between the
  558: @c files, @command{diff} simply reports whether files differ.  The @option{-q}
  559: @c and @option{--brief} options select this output format.
  560: @c 
  561: ファイルが異なっているかどうかを知りたいだけのときで,差異が何かに注目し
  562: ていないとき,概要を出力する書式を使用することが可能です.この書式では,
  563: ファイル間の差を表示する代わりに,@command{diff}は単純にファイルに差異が
  564: あるかどうかを報告します.@option{-q}と@option{--brief}オプションでこの
  565: 書式を選択します.
  566: 
  567: @c This format is especially useful when comparing the contents of two
  568: @c directories.  It is also much faster than doing the normal line by line
  569: @c comparisons, because @command{diff} can stop analyzing the files as soon as
  570: @c it knows that there are any differences.
  571: @c 
  572: この書式は,二つのディレクトリの内容を比較するとき特に役に立ちます.
  573: @command{diff}は,差異があることが分かるとすぐにファイルの解析を停止する
  574: ことが可能なので,それは普通に行ごとに比較するより遥かに速くもなります.
  575: 
  576: @c You can also get a brief indication of whether two files differ by using
  577: @c @command{cmp}.  For files that are identical, @command{cmp} produces no
  578: @c output.  When the files differ, by default, @command{cmp} outputs the byte
  579: @c and line number where the first difference occurs.  You can use
  580: @c the @option{-s} option to suppress that information, so that @command{cmp}
  581: @c produces no output and reports whether the files differ using only its
  582: @c exit status (@pxref{Invoking cmp}).
  583: @c 
  584: @command{cmp}を使用することで,二つのファイルが違っているかどうかを,短
  585: く示しているものを得ることも可能です.ファイルが異なっているとき,デフォ
  586: ルトで,最初の差異が発生したところで@command{cmp}はバイトと行番号を出力
  587: します.@command{cmp}が出力を生成せず,ファイルが異なっているかどうかを
  588: 終了ステータスだけで報告するようにするため,その情報を抑制するために
  589: @option{-s}オプションを使用することも可能です(@pxref{Invoking cmp}).
  590: 
  591: @c Fix this.
  592: @c 
  593: @c Unlike @command{diff}, @command{cmp} cannot compare directories; it can only
  594: @c compare two files.
  595: @c 
  596: @command{diff}とは異なり,@command{cmp}はディレクトリを比較することは不
  597: 可能です.二つのファイルの比較のみ可能です.
  598: 
  599: @node Binary
  600: @c @section Binary Files and Forcing Text Comparisons
  601: @section バイナリファイルと,テキストファイルの比較の強制
  602: @cindex binary file diff
  603: @cindex text versus binary diff
  604: 
  605: @c If @command{diff} thinks that either of the two files it is comparing is
  606: @c binary (a non-text file), it normally treats that pair of files much as
  607: @c if the summary output format had been selected (@pxref{Brief}), and
  608: @c reports only that the binary files are different.  This is because line
  609: @c by line comparisons are usually not meaningful for binary files.
  610: @c 
  611: @command{diff}が比較している二つのファイルのうちの一方がバイナリ(テキス
  612: トファイルではない)と考える場合,通常ファイルの組を概要の出力書式が選択
  613: されているように(@pxref{Brief})扱い,バイナリファイルが異なっていること
  614: だけを報告します.これは,行単位での比較がバイナリファイルに対して普通は
  615: 意味が無いためです.
  616: 
  617: @c @command{diff} determines whether a file is text or binary by checking the
  618: @c first few bytes in the file; the exact number of bytes is system
  619: @c dependent, but it is typically several thousand.  If every byte in
  620: @c that part of the file is non-null, @command{diff} considers the file to be
  621: @c text; otherwise it considers the file to be binary.
  622: @c 
  623: ファイルの最初の数バイトを調査して,@command{diff}はファイルがテキストか
  624: バイナリかを決定します.正確なバイト数はシステムに依存しますが,それは通
  625: 常数千になります.ファイルの一部のすべてのバイトが@samp{null}ではない場
  626: 合,@command{diff}はファイルがテキストだと考えます.それ以外の場合は,ファ
  627: イルがバイナリだと考えます.
  628: 
  629: @c Sometimes you might want to force @command{diff} to consider files to be
  630: @c text.  For example, you might be comparing text files that contain
  631: @c null characters; @command{diff} would erroneously decide that those are
  632: @c non-text files.  Or you might be comparing documents that are in a
  633: @c format used by a word processing system that uses null characters to
  634: @c indicate special formatting.  You can force @command{diff} to consider all
  635: @c files to be text files, and compare them line by line, by using the
  636: @c @option{-a} or @option{--text} option.  If the files you compare using this
  637: @c option do not in fact contain text, they will probably contain few
  638: @c newline characters, and the @command{diff} output will consist of hunks
  639: @c showing differences between long lines of whatever characters the files
  640: @c contain.
  641: @c 
  642: ファイルがテキストファイルだと@command{diff}に強制的に考えさせたいときも
  643: あるでしょう.例えば,@samp{null}文字が含まれているテキストファイルを比
  644: 較する可能性があります.@command{diff}は誤って,これらをテキストファイル
  645: ではないと決定するでしょう.また,@samp{null}文字を特殊なフォーマットを
  646: 示すために使用するワープロシステムで使用されているフォーマットのファイル
  647: を比較する可能性もあります.@option{-a}や@option{--text}オプションを使用
  648: することで,@command{diff}に強制的にすべてのファイルがテキストファイルで
  649: あると考えさせ,行ごとにそれらを比較させることが可能です.このオプション
  650: を使用して比較しているファイルが,実際にはテキストを含んでいない場合,お
  651: そらくファイルには数個の改行文字しかなく,@command{diff}の出力は,ファイ
  652: ルに含まれているすべての文字からなる長い行の差異を表示するhunkになるでしょ
  653: う.
  654: 
  655: @c You can also force @command{diff} to consider all files to be binary files,
  656: @c and report only whether they differ (but not how).  Use the
  657: @c @option{-q} or @option{--brief} option for this.
  658: @c 
  659: すべてのファイルをバイナリファイルだと@command{diff}に強制的に考えさせ,
  660: ファイルが(どのように異なっているかではなく)異なっているかどうかのみを報
  661: 告させることも可能です.このために@option{-q}や@option{--brief}オプショ
  662: ンを使用してください.
  663: 
  664: @c Differing binary files are considered to cause trouble because the
  665: @c resulting @command{diff} output does not capture all the differences.
  666: @c This trouble causes @command{diff} to exit with status 2.  However,
  667: @c this trouble cannot occur with the @option{--a} or @option{--text}
  668: @c option, or with the @option{-q} or @option{--brief} option, as these
  669: @c options both cause @command{diff} to treat binary files like text
  670: @c files.
  671: @c 
  672: バイナリファイルの差は,@command{diff}の出力結果がすべての差を取り切れな
  673: いので,問題が生じると考えられます.この問題で,@command{diff}はステータ
  674: ス2で終了します.しかし,この問題は@option{--a}や@option{--text}オプショ
  675: ンを用いたり,@option{-q}や@option{--brief}オプションを用いることで発生
  676: しないので,これらどちらのオプションでも,@command{diff}はバイナリファイ
  677: ルをテキストファイルのように扱います.
  678: 
  679: @c In operating systems that distinguish between text and binary files,
  680: @c @command{diff} normally reads and writes all data as text.  Use the
  681: @c @option{--binary} option to force @command{diff} to read and write binary
  682: @c data instead.  This option has no effect on a @sc{posix}-compliant system
  683: @c like @sc{gnu} or traditional Unix.  However, many personal computer
  684: @c operating systems represent the end of a line with a carriage return
  685: @c followed by a newline.  On such systems, @command{diff} normally ignores
  686: @c these carriage returns on input and generates them at the end of each
  687: @c output line, but with the @option{--binary} option @command{diff} treats
  688: @c each carriage return as just another input character, and does not
  689: @c generate a carriage return at the end of each output line.  This can be
  690: @c useful when dealing with non-text files that are meant to be
  691: @c interchanged with @sc{posix}-compliant systems.
  692: @c 
  693: テキストファイルとバイナリファイルで差があるオペレーティングシステムでは,
  694: @command{diff}は通常,すべてのデータをテキストとして読み書きします.代わ
  695: りにバイナリデータとして@command{diff}に読み書きさせるために,
  696: @option{--binary}オプションを使用してください.このオプションは,
  697: @sc{gnu}や伝統的なUnixシステムのような@sc{posix}-準拠のシステムでは効果
  698: がありません.しかし,多くのパーソナルコンピュータのオペレーティングシス
  699: テムでは,行末の改行の後にキャリッジリターンが存在します.そのようなシス
  700: テムでは,@command{diff}は通常入力されるこれらのキャリッジリターンを無視
  701: し,それぞれの出力の行末にキャリッジリターンを生成しますが,
  702: @option{--binary}オプションを用いると@command{diff}はそれぞれのキャリッ
  703: ジリターンをそのまま入力文字として扱い,それぞれの出力の行末にキャリッジ
  704: リターンを生成しません.@sc{posix}-準拠のシステムで変換する予定のテキス
  705: トではないファイルを扱うとき,これは役に立つはずです.
  706: 
  707: @c The @option{--strip-trailing-cr} causes @command{diff} to treat input
  708: @c lines that end in carriage return followed by newline as if they end
  709: @c in plain newline.  This can be useful when comparing text that is
  710: @c imperfectly imported from many personal computer operating systems.
  711: @c This option affects how lines are read, which in turn affects how they
  712: @c are compared and output.
  713: @c 
  714: @option{--strip-trailing-cr}で,@command{diff}は行末の改行にキャリッジリ
  715: ターンが続いている入力行を普通の改行として扱います.多くのパーソナルコン
  716: ピュータのオペレーティングシステムからインポートされた不完全なテキストを
  717: 比較するとき,これは役に立つはずです.このオプションは行が読み込まれる方
  718: 法に影響があり,それは順次,比較される方法と出力の方法に影響していきます.
  719: 
  720: @c If you want to compare two files byte by byte, you can use the
  721: @c @command{cmp} program with the @option{-l} option to show the values
  722: @c of each differing byte in the two files.  With @sc{gnu} @command{cmp},
  723: @c you can also use the @option{-b} option to show the @sc{ascii}
  724: @c representation of those bytes.  @xref{Invoking cmp}, for more
  725: @c information.
  726: @c 
  727: 二つのファイルをバイト単位で比較したい場合,二つのファイルのバイトごとの
  728: 差の値を表示するために,@option{-l}オプションを用いて@command{cmp}プログ
  729: ラムを使用することが可能です.@sc{gnu} @command{cmp}を用いると,これらの
  730: バイトの@sc{ascii}表現を表示するために@option{-b}オプションを使用するこ
  731: とも可能です.詳細は@xref{Invoking cmp}.
  732: 
  733: @c If @command{diff3} thinks that any of the files it is comparing is binary
  734: @c (a non-text file), it normally reports an error, because such
  735: @c comparisons are usually not useful.  @command{diff3} uses the same test as
  736: @c @command{diff} to decide whether a file is binary.  As with @command{diff}, if
  737: @c the input files contain a few non-text bytes but otherwise are like
  738: @c text files, you can force @command{diff3} to consider all files to be text
  739: @c files and compare them line by line by using the @option{-a} or
  740: @c @option{--text} options.
  741: @c 
  742: 比較しているファイルのいずれかを@command{diff3}がバイナリ(テキストではな
  743: いファイル)と考える場合,そのような比較は普通意味が無いので,通常はエラー
  744: を報告します.@command{diff3}は,ファイルがバイナリかどうかを
  745: @command{diff}が決定するテストと同じテストを使用します.@command{diff}を
  746: 用いるときと同様に,入力ファイルにテキストでないバイトが含まれているが,
  747: それ以外はテキストファイルに似ている場合,@option{-a}や@option{--text}オ
  748: プションを使用することで,@command{diff3}にすべてのファイルをテキストファ
  749: イルと考えさせ,行単位での比較を強制させることが可能です.
  750: 
  751: @node Output Formats
  752: @c @chapter @command{diff} Output Formats
  753: @chapter @command{diff}の出力書式
  754: @cindex output formats
  755: @cindex format of @command{diff} output
  756: 
  757: @c @command{diff} has several mutually exclusive options for output format.
  758: @c The following sections describe each format, illustrating how
  759: @c @command{diff} reports the differences between two sample input files.
  760: @c 
  761: @command{diff}には,出力書式に対する相互に排他的なオプションがいくつかあ
  762: ります.以下のセクションではそれぞれの書式を記述し,二つのサンプル入力ファ
  763: イル間の差を@command{diff}が報告する方法を図示します.
  764: 
  765: @menu
  766: * Sample diff Input:: Sample @command{diff} input files for examples.
  767: * Normal::            Showing differences without surrounding text.
  768: * Context::           Showing differences with the surrounding text.
  769: * Side by Side::      Showing differences in two columns.
  770: * Scripts::           Generating scripts for other programs.
  771: * If-then-else::      Merging files with if-then-else.
  772: @end menu
  773: 
  774: @node Sample diff Input
  775: @c @section Two Sample Input Files
  776: @section 二つのサンプル入力ファイル
  777: @cindex @command{diff} sample input
  778: @cindex sample input for @command{diff}
  779: 
  780: @c Here are two sample files that we will use in numerous examples to
  781: @c illustrate the output of @command{diff} and how various options can
  782: @c change it.
  783: @c 
  784: @command{diff}の出力と,様々なオプションがどのようにしてそれを変更するか
  785: をを説明するために多くの例で使用する二つのサンプルファイルを以下に示しま
  786: す.
  787: 
  788: @c This is the file @file{lao}:
  789: @c 
  790: これはファイル@file{lao}です.
  791: 
  792: @example
  793: The Way that can be told of is not the eternal Way;
  794: The name that can be named is not the eternal name.
  795: The Nameless is the origin of Heaven and Earth;
  796: The Named is the mother of all things.
  797: Therefore let there always be non-being,
  798:   so we may see their subtlety,
  799: And let there always be being,
  800:   so we may see their outcome.
  801: The two are the same,
  802: But after they are produced,
  803:   they have different names.
  804: @end example
  805: 
  806: @c This is the file @file{tzu}:
  807: @c 
  808: これはファイル@file{tzu}です.
  809: 
  810: @example
  811: The Nameless is the origin of Heaven and Earth;
  812: The named is the mother of all things.
  813: 
  814: Therefore let there always be non-being,
  815:   so we may see their subtlety,
  816: And let there always be being,
  817:   so we may see their outcome.
  818: The two are the same,
  819: But after they are produced,
  820:   they have different names.
  821: They both may be called deep and profound.
  822: Deeper and more profound,
  823: The door of all subtleties!
  824: @end example
  825: 
  826: @c In this example, the first hunk contains just the first two lines of
  827: @c @file{lao}, the second hunk contains the fourth line of @file{lao}
  828: @c opposing the second and third lines of @file{tzu}, and the last hunk
  829: @c contains just the last three lines of @file{tzu}.
  830: @c 
  831: この例では,最初のhunkには@file{lao}の最初の二つの行が含まれ,二番目の
  832: hunkには@file{lao}の四行目と対応する@file{tzu}の二行目と三行目が含まれ,
  833: そして,最後のhunkには@file{tzu}の最後の三行が含まれます.
  834: 
  835: @node Normal
  836: @c @section Showing Differences Without Context
  837: @section 周りの文(コンテクスト)を使用しない差の表示
  838: @cindex normal output format
  839: @cindex @samp{<} output format
  840: 
  841: @c The ``normal'' @command{diff} output format shows each hunk of differences
  842: @c without any surrounding context.  Sometimes such output is the clearest
  843: @c way to see how lines have changed, without the clutter of nearby
  844: @c unchanged lines (although you can get similar results with the context
  845: @c or unified formats by using 0 lines of context).  However, this format
  846: @c is no longer widely used for sending out patches; for that purpose, the
  847: @c context format (@pxref{Context Format}) and the unified format
  848: @c (@pxref{Unified Format}) are superior.  Normal format is the default for
  849: @c compatibility with older versions of @command{diff} and the @sc{posix}
  850: @c standard.  Use the @option{--normal} option to select this output
  851: @c format explicitly.
  852: @c 
  853: ``通常''の@command{diff}出力の書式は,周りの文を付けずに差異部分のそれぞ
  854: れのhunkを表示します.そのような出力は,変更されていない周りの行に邪魔さ
  855: れず,行が変更された様子を見るには最も明確なときもあります(しかし,周り
  856: の文を0行使用した,周りの行を用いた書式や一体化した書式を使用して,同様
  857: な結果を得ることも可能です).しかし,この書式をパッチの送付に広く使用す
  858: ることはもうありません.その目的では,周りの文を使用する書式
  859: (@pxref{Context Format})と,一体化した書式(@pxref{Unified Format})がより
  860: 好まれます.通常の書式は,古いバージョンの@command{diff}と@sc{posix}標準
  861: との互換性のため,デフォルトになっています.この出力書式を明示的に選択す
  862: るために@option{--normal}オプションを使用してください.
  863: 
  864: @menu
  865: * Detailed Normal:: A detailed description of normal output format.
  866: * Example Normal::  Sample output in the normal format.
  867: @end menu
  868: 
  869: @node Detailed Normal
  870: @c @subsection Detailed Description of Normal Format
  871: @subsection 通常書式の詳細な説明
  872: 
  873: @c The normal output format consists of one or more hunks of differences;
  874: @c each hunk shows one area where the files differ.  Normal format hunks
  875: @c look like this:
  876: @c 
  877: 通常の出力書式は,一つ以上の差異部分のhunkを含んでいます.それぞれのhunk 
  878: はファイルの差の一つの領域を表示します.通常の書式のhunkは以下のようにな
  879: ります.
  880: 
  881: @example
  882: @var{change-command}
  883: < @var{from-file-line}
  884: < @var{from-file-line}@dots{}
  885: ---
  886: > @var{to-file-line}
  887: > @var{to-file-line}@dots{}
  888: @end example
  889: 
  890: @c There are three types of change commands.  Each consists of a line
  891: @c number or comma-separated range of lines in the first file, a single
  892: @c character indicating the kind of change to make, and a line number or
  893: @c comma-separated range of lines in the second file.  All line numbers are
  894: @c the original line numbers in each file.  The types of change commands
  895: @c are:
  896: @c 
  897: 三つの形式の変更コマンド(@samp{change-command})があります.それぞれ,最
  898: 初のファイルの行番号またはカンマで分けられた行の範囲,変更方法の種類を示
  899: す単一文字,そして,二番目のファイルの行番号またはカンマで分けられた行の
  900: 範囲です.すべての行番号は,それぞれのファイルのもともとの行番号です.変
  901: 更コマンドの形式は以下のとおりです.
  902: 
  903: @table @samp
  904: @item @var{l}a@var{r}
  905: @c Add the lines in range @var{r} of the second file after line @var{l} of
  906: @c the first file.  For example, @samp{8a12,15} means append lines 12--15
  907: @c of file 2 after line 8 of file 1; or, if changing file 2 into file 1,
  908: @c delete lines 12--15 of file 2.
  909: @c 
  910: 最初のファイルの@var{l}行の後に,二番目のファイルの範囲@var{r}に行が追加
  911: されています.例えば,@samp{8a12,15}は,1のファイルの八行目の後に2のファ
  912: イルの12--15行が追加されたことを意味します.または,変更が2から1への場合,
  913: ファイル2の12--15行が削除されたことを意味します.
  914: 
  915: @item @var{f}c@var{t}
  916: @c Replace the lines in range @var{f} of the first file with lines in range
  917: @c @var{t} of the second file.  This is like a combined add and delete, but
  918: @c more compact.  For example, @samp{5,7c8,10} means change lines 5--7 of
  919: @c file 1 to read as lines 8--10 of file 2; or, if changing file 2 into
  920: @c file 1, change lines 8--10 of file 2 to read as lines 5--7 of file 1.
  921: @c 
  922: 最初のファイルの@var{f}の範囲の行が,二番目のファイルの@var{t}の範囲の行
  923: で置換されています.これは,追加と削除の組み合わせに似ていますが,よりコ
  924: ンパクトになっています.例えば,@samp{5,7c8,10}は,ファイル1の5--7行がファ
  925: イル2の8--10行に変更されたことを意味します.または,変更が2から1への場合,
  926: ファイル2の8--10行がファイル1の5--7行に変更されたことを意味します.
  927: 
  928: @item @var{r}d@var{l}
  929: @c Delete the lines in range @var{r} from the first file; line @var{l} is where
  930: @c they would have appeared in the second file had they not been deleted.
  931: @c For example, @samp{5,7d3} means delete lines 5--7 of file 1; or, if
  932: @c changing file 2 into file 1, append lines 5--7 of file 1 after line 3 of
  933: @c file 2.
  934: @c 
  935: 最初のファイルから範囲@var{r}の行が削除されています.行@var{l}は,二番目
  936: のファイルに削除されているようにみえる場所です.例えば,@samp{5,7d3}はファ
  937: イル1の5--7行が削除されていることを意味します.または,変更が2から1への
  938: 場合,ファイル2の3行目の後にファイル1の5--7行が追加されたことを意味しま
  939: す.
  940: @end table
  941: 
  942: @node Example Normal
  943: @c @subsection An Example of Normal Format
  944: @subsection 通常の書式の例
  945: 
  946: @c Here is the output of the command @samp{diff lao tzu}
  947: @c (@pxref{Sample diff Input}, for the complete contents of the two files).
  948: @c Notice that it shows only the lines that are different between the two
  949: @c files.
  950: @c 
  951: コマンド@samp{diff lao tzu}の出力は以下のようになります(完全な二つのファ
  952: イルの内容は@pxref{Sample diff Input}).二つのファイルで異なっている行の
  953: みが表示されていることに注目してください.
  954: 
  955: @example
  956: 1,2d0
  957: < The Way that can be told of is not the eternal Way;
  958: < The name that can be named is not the eternal name.
  959: 4c2,3
  960: < The Named is the mother of all things.
  961: ---
  962: > The named is the mother of all things.
  963: > 
  964: 11a11,13
  965: > They both may be called deep and profound.
  966: > Deeper and more profound,
  967: > The door of all subtleties!
  968: @end example
  969: 
  970: @node Context
  971: @c @section Showing Differences in Their Context
  972: @section 周りの文を用いた差の表示
  973: @cindex context output format
  974: @cindex @samp{!} output format
  975: 
  976: @c Usually, when you are looking at the differences between files, you will
  977: @c also want to see the parts of the files near the lines that differ, to
  978: @c help you understand exactly what has changed.  These nearby parts of the
  979: @c files are called the @dfn{context}.
  980: @c 
  981: 通常,ファイル間の差を見るときは,正確に何が変更されたのかを理解する手助
  982: けとなる,ファイルの差がある行の周りの部分も見たいと思うでしょう.このよ
  983: うなファイルの周りの部分を@dfn{context(周りの文)}と呼びます.
  984: 
  985: @c @sc{gnu} @command{diff} provides two output formats that show context
  986: @c around the differing lines: @dfn{context format} and @dfn{unified
  987: @c format}.  It can optionally show in which function or section of the
  988: @c file the differing lines are found.
  989: @c 
  990: @sc{gnu} @command{diff}は異なっている行の周りの文を表示する,二つの出力
  991: 書式を提供しています.@dfn{context format(周りの文を用いた書式)}と
  992: @dfn{unified format(一体化した書式)}です.それで,異なっている行が見つかっ
  993: た関数やファイルのセクションを追加表示することが可能です.
  994: 
  995: @c If you are distributing new versions of files to other people in the
  996: @c form of @command{diff} output, you should use one of the output formats
  997: @c that show context so that they can apply the diffs even if they have
  998: @c made small changes of their own to the files.  @command{patch} can apply
  999: @c the diffs in this case by searching in the files for the lines of
 1000: @c context around the differing lines; if those lines are actually a few
 1001: @c lines away from where the diff says they are, @command{patch} can adjust
 1002: @c the line numbers accordingly and still apply the diff correctly.
 1003: @c @xref{Imperfect}, for more information on using @command{patch} to apply
 1004: @c imperfect diffs.
 1005: @c 
 1006: @command{diff}の出力形式で,他人にファイルの新しいバージョンを配布する場
 1007: 合,彼らがファイルに独自の変更をしている場合でも差分を適用できるように,
 1008: 周りの文を表示する出力形式の一つを使用すべきです.この状況でも,異なって
 1009: いる行の周りの文の行をファイル内で探すことで,@command{patch}で差分を適
 1010: 用することが可能です.これらの行が差分が告げている場所から実際には数行離
 1011: れていても,@command{patch}は行番号を調整し,差分を正しく適用することが
 1012: 可能です.不完全な差分を適用するために@command{patch}を使用する詳細は,
 1013: @xref{Imperfect}.
 1014: 
 1015: @menu
 1016: * Context Format::  An output format that shows surrounding lines.
 1017: * Unified Format::  A more compact output format that shows context.
 1018: * Sections::        Showing which sections of the files differences are in.
 1019: * Alternate Names:: Showing alternate file names in context headers.
 1020: @end menu
 1021: 
 1022: @node Context Format
 1023: @c @subsection Context Format
 1024: @subsection 周りの文を使用した書式
 1025: 
 1026: @c The context output format shows several lines of context around the
 1027: @c lines that differ.  It is the standard format for distributing updates
 1028: @c to source code.
 1029: @c 
 1030: 周りの文を使用した出力書式は,異なっている行の周りの文の数行を表示します.
 1031: それはソースコードの更新部分を配布するための標準的な書式です.
 1032: 
 1033: @c To select this output format, use the @option{-C @var{lines}},
 1034: @c @option{--context@r{[}=@var{lines}@r{]}}, or @option{-c} option.  The
 1035: @c argument @var{lines} that some of these options take is the number of
 1036: @c lines of context to show.  If you do not specify @var{lines}, it
 1037: @c defaults to three.  For proper operation, @command{patch} typically needs
 1038: @c at least two lines of context.
 1039: @c 
 1040: この出力形式を選択するために,@option{-C @var{lines}},
 1041: @option{--context@r{[}=@var{lines}@r{]}},または@option{-c}オプションを
 1042: 使用してください.これらのオプションのいくつかが受けとる引数@var{lines} 
 1043: は,表示する周りの文の行数です.@var{lines}を指定しない場合,それはデフォ
 1044: ルトで三行になります.適切に処理するため,@command{patch}は通常少なくと
 1045: も二行の周りの文を必要とします.
 1046: 
 1047: @menu
 1048: * Detailed Context:: A detailed description of the context output format.
 1049: * Example Context::  Sample output in context format.
 1050: * Less Context::     Another sample with less context.
 1051: @end menu
 1052: 
 1053: @node Detailed Context
 1054: @c @subsubsection Detailed Description of Context Format
 1055: @subsubsection 周りの文を使用した書式の詳細な説明
 1056: 
 1057: @c The context output format starts with a two-line header, which looks
 1058: @c like this:
 1059: @c 
 1060: 周りの文を使用した出力書式は,二行のヘッダを用いて開始され,それは以下の
 1061: ようになります.
 1062: 
 1063: @example
 1064: *** @var{from-file} @var{from-file-modification-time}
 1065: --- @var{to-file} @var{to-file-modification time}
 1066: @end example
 1067: 
 1068: @noindent
 1069: @vindex LC_TIME
 1070: @cindex time stamp format, context diffs
 1071: @c The time stamp normally looks like @samp{2002-02-21 23:30:39.942229878
 1072: @c -0800} to indicate the date, time with fractional seconds, and time
 1073: @c zone in @uref{ftp://ftp.isi.edu/in-notes/rfc2822.txt, Internet RFC
 1074: @c 2822 format}.  However, a traditional time stamp like @samp{Thu Feb 21
 1075: @c 23:30:39 2002} is used if the @env{LC_TIME} locale category is either
 1076: @c @samp{C} or @samp{POSIX}.
 1077: @c 
 1078: タイムスタンプは通常,日付,有理数の秒を使用した時間,そして
 1079: @uref{ftp://ftp.isi.edu/in-notes/rfc2822.txt, Internet RFC 2822 format} 
 1080: のタイムゾーンを示すため@samp{2002-02-21 23:30:39.942229878 -0800}のよう
 1081: になります.しかし,@env{LC_TIME}ロケールカテゴリが@samp{C}または
 1082: @samp{POSIX}の場合,伝統的なタイムスタンプ@samp{Thu Feb 21 23:30:39
 1083: 2002}が使用されます.
 1084: 
 1085: @c You can change the header's content with the
 1086: @c @option{--label=@var{label}} option; see @ref{Alternate Names}.
 1087: @c 
 1088: ヘッダの内容を@option{--label=@var{label}}オプションを使用して変更するこ
 1089: とが可能です.@ref{Alternate Names}を参照してください.
 1090: 
 1091: @c Next come one or more hunks of differences; each hunk shows one area
 1092: @c where the files differ.  Context format hunks look like this:
 1093: @c 
 1094: 次に一つ以上の差異のhunkが続きます.それぞれのhunkはファイルの差異のある
 1095: 部分の一つの領域を表示します.周りの文を使用した書式では,hunkは以下のよ
 1096: うになります.
 1097: 
 1098: @example
 1099: ***************
 1100: *** @var{from-file-line-range} ****
 1101:   @var{from-file-line}
 1102:   @var{from-file-line}@dots{}
 1103: --- @var{to-file-line-range} ----
 1104:   @var{to-file-line}
 1105:   @var{to-file-line}@dots{}
 1106: @end example
 1107: 
 1108: @c The lines of context around the lines that differ start with two space
 1109: @c characters.  The lines that differ between the two files start with one
 1110: @c of the following indicator characters, followed by a space character:
 1111: @c 
 1112: 差異のある行の周りの行は,二つのスペース文字を用いて開始されます.二つの
 1113: ファイル間で異なっている行は,以下の識別文字の一つで開始され,スペース文
 1114: 字が続きます.
 1115: 
 1116: @table @samp
 1117: @item !
 1118: @c A line that is part of a group of one or more lines that changed between
 1119: @c the two files.  There is a corresponding group of lines marked with
 1120: @c @samp{!} in the part of this hunk for the other file.
 1121: @c 
 1122: 二つのファイル間で変更されている一行以上のまとまった部分の行です.この
 1123: hunk部分の@samp{!}で印が付いている行のまとまりに対応するものが,もう一方
 1124: のファイルに存在します.
 1125: 
 1126: @item +
 1127: @c An ``inserted'' line in the second file that corresponds to nothing in
 1128: @c the first file.
 1129: @c 
 1130: 最初のファイルには対応するものが無い,二番目のファイルに``挿入された''行
 1131: です.
 1132: 
 1133: @item -
 1134: @c A ``deleted'' line in the first file that corresponds to nothing in the
 1135: @c second file.
 1136: @c 
 1137: 二番目のファイルには対応するものが無い,最初のファイルから``削除された'' 
 1138: 行です.
 1139: @end table
 1140: 
 1141: @c If all of the changes in a hunk are insertions, the lines of
 1142: @c @var{from-file} are omitted.  If all of the changes are deletions, the
 1143: @c lines of @var{to-file} are omitted.
 1144: @c 
 1145: hunkの変更がすべて挿入されたものの場合,@var{from-file}の行は省略されま
 1146: す.変更のすべてが削除の場合,@var{to-file}の行は省略されます.
 1147: 
 1148: @node Example Context
 1149: @c @subsubsection An Example of Context Format
 1150: @subsubsection 周りの文を使用した書式の例
 1151: 
 1152: @c Here is the output of @samp{diff -c lao tzu} (@pxref{Sample diff Input},
 1153: @c for the complete contents of the two files).  Notice that up to three
 1154: @c lines that are not different are shown around each line that is
 1155: @c different; they are the context lines.  Also notice that the first two
 1156: @c hunks have run together, because their contents overlap.
 1157: @c 
 1158: コマンド@samp{diff -c lao tzu}の出力は以下のようになります(完全な二つの
 1159: ファイルの内容は@pxref{Sample diff Input}).差の無い行が三行になるまで,
 1160: 差がある行の周りの行が表示されていることに注目してください.それらは周り
 1161: の文の行です.周りの文が重なっているため,最初の二つのhunkは一緒になって
 1162: いることにも注目してください.
 1163: 
 1164: @example
 1165: *** lao	2002-02-21 23:30:39.942229878 -0800
 1166: --- tzu	2002-02-21 23:30:50.442260588 -0800
 1167: ***************
 1168: *** 1,7 ****
 1169: - The Way that can be told of is not the eternal Way;
 1170: - The name that can be named is not the eternal name.
 1171:   The Nameless is the origin of Heaven and Earth;
 1172: ! The Named is the mother of all things.
 1173:   Therefore let there always be non-being,
 1174:     so we may see their subtlety,
 1175:   And let there always be being,
 1176: --- 1,6 ----
 1177:   The Nameless is the origin of Heaven and Earth;
 1178: ! The named is the mother of all things.
 1179: ! 
 1180:   Therefore let there always be non-being,
 1181:     so we may see their subtlety,
 1182:   And let there always be being,
 1183: ***************
 1184: *** 9,11 ****
 1185: --- 8,13 ----
 1186:   The two are the same,
 1187:   But after they are produced,
 1188:     they have different names.
 1189: + They both may be called deep and profound.
 1190: + Deeper and more profound,
 1191: + The door of all subtleties!
 1192: @end example
 1193: 
 1194: @node Less Context
 1195: @c @subsubsection An Example of Context Format with Less Context
 1196: @subsubsection より少ない周りの文を用いた,周りの文を使用した書式の例
 1197: 
 1198: @c Here is the output of @samp{diff -C 1 lao tzu} (@pxref{Sample diff
 1199: @c Input}, for the complete contents of the two files).  Notice that at
 1200: @c most one context line is reported here.
 1201: @c 
 1202: コマンド@samp{diff -C 1 lao tzu}の出力は以下のようになります(完全な二つ
 1203: のファイルの内容は@pxref{Sample diff Input}).ここでは最大一行が報告され
 1204: ていることに注目してください.
 1205: 
 1206: @example
 1207: *** lao	2002-02-21 23:30:39.942229878 -0800
 1208: --- tzu	2002-02-21 23:30:50.442260588 -0800
 1209: ***************
 1210: *** 1,5 ****
 1211: - The Way that can be told of is not the eternal Way;
 1212: - The name that can be named is not the eternal name.
 1213:   The Nameless is the origin of Heaven and Earth;
 1214: ! The Named is the mother of all things.
 1215:   Therefore let there always be non-being,
 1216: --- 1,4 ----
 1217:   The Nameless is the origin of Heaven and Earth;
 1218: ! The named is the mother of all things.
 1219: ! 
 1220:   Therefore let there always be non-being,
 1221: ***************
 1222: *** 11 ****
 1223: --- 10,13 ----
 1224:     they have different names.
 1225: + They both may be called deep and profound.
 1226: + Deeper and more profound,
 1227: + The door of all subtleties!
 1228: @end example
 1229: 
 1230: @node Unified Format
 1231: @c @subsection Unified Format
 1232: @subsection 一体化した書式
 1233: @cindex unified output format
 1234: @cindex @samp{+-} output format
 1235: 
 1236: @c The unified output format is a variation on the context format that is
 1237: @c more compact because it omits redundant context lines.  To select this
 1238: @c output format, use the @option{-U @var{lines}},
 1239: @c @option{--unified@r{[}=@var{lines}@r{]}}, or @option{-u}
 1240: @c option.  The argument @var{lines} is the number of lines of context to
 1241: @c show.  When it is not given, it defaults to three.
 1242: @c 
 1243: 一体化した出力書式は周りの文を使用した書式の変形で,冗長な周りの行を省略
 1244: していて,よりコンパクトになっています.この出力書式を選択するため,
 1245: @option{-U @var{lines}},@option{--unified@r{[}=@var{lines}@r{]}},また
 1246: は@option{-u}オプションを使用してください.引数@var{lines}は,表示する周
 1247: りの行数です.与えられていないとき,デフォルトは三行です.
 1248: 
 1249: @c At present, only @sc{gnu} @command{diff} can produce this format and
 1250: @c only @sc{gnu} @command{patch} can automatically apply diffs in this
 1251: @c format.  For proper operation, @command{patch} typically needs at
 1252: @c least three lines of context.
 1253: @c 
 1254: 現在,@sc{gnu} @command{diff}だけがこの書式を生成することが可能で,
 1255: @sc{gnu} @command{patch}だけがこの書式の差分を自動的に適用することが可能
 1256: です.適切に処理するため,@command{patch}は通常,少なくとも周りの三行を
 1257: 必要とします.
 1258: 
 1259: @menu
 1260: * Detailed Unified:: A detailed description of unified format.
 1261: * Example Unified::  Sample output in unified format.
 1262: @end menu
 1263: 
 1264: @node Detailed Unified
 1265: @c @subsubsection Detailed Description of Unified Format
 1266: @subsubsection 一体化した書式の詳細な記述
 1267: 
 1268: @c The unified output format starts with a two-line header, which looks
 1269: @c like this:
 1270: @c 
 1271: 一体化した出力書式は二行のヘッダで開始され,それは以下のようになります.
 1272: 
 1273: @example
 1274: --- @var{from-file} @var{from-file-modification-time}
 1275: +++ @var{to-file} @var{to-file-modification-time}
 1276: @end example
 1277: 
 1278: @noindent
 1279: @cindex time stamp format, unified diffs
 1280: @c The time stamp looks like @samp{2002-02-21 23:30:39.942229878 -0800}
 1281: @c to indicate the date, time with fractional seconds, and time zone.
 1282: @c 
 1283: タイムスタンプは,日付,有理数の秒を使用した時間,そして
 1284: @uref{ftp://ftp.isi.edu/in-notes/rfc2822.txt, Internet RFC 2822 format} 
 1285: のタイムゾーンを示すため@samp{2002-02-21 23:30:39.942229878 -0800}のよう
 1286: になります.
 1287: 
 1288: @c You can change the header's content with the
 1289: @c @option{--label=@var{label}} option; see @xref{Alternate Names}.
 1290: @c 
 1291: ヘッダの内容を,@option{--label=@var{label}}オプションを用いて変更するこ
 1292: とが可能です.@ref{Alternate Names}を参照してください.
 1293: 
 1294: @c Next come one or more hunks of differences; each hunk shows one area
 1295: @c where the files differ.  Unified format hunks look like this:
 1296: @c 
 1297: 次に,差異部分のhunkが一つ以上続きます.それぞれのhunkはファイルの差異部
 1298: 分の一つの領域を表示します.一体化した書式のhunkは以下のようになります.
 1299: 
 1300: @example
 1301: @@@@ @var{from-file-range} @var{to-file-range} @@@@
 1302:  @var{line-from-either-file}
 1303:  @var{line-from-either-file}@dots{}
 1304: @end example
 1305: 
 1306: @c The lines common to both files begin with a space character.  The lines
 1307: @c that actually differ between the two files have one of the following
 1308: @c indicator characters in the left print column:
 1309: @c 
 1310: 両方のファイルでの共通部分は,スペース文字で開始されます.二つのファイル
 1311: 間で実際に差のある行には,以下の左側の列に出力されている指示文字の一つが
 1312: あります.
 1313: 
 1314: @table @samp
 1315: @item +
 1316: @c A line was added here to the first file.
 1317: @c 
 1318: 最初のファイルの,ここに一行追加されました.
 1319: 
 1320: @item -
 1321: @c A line was removed here from the first file.
 1322: @c 
 1323: 最初のファイルから,ここの一行が削除されました.
 1324: @end table
 1325: 
 1326: @node Example Unified
 1327: @c @subsubsection An Example of Unified Format
 1328: @subsubsection 一体化した書式の例
 1329: 
 1330: @c Here is the output of the command @samp{diff -u lao tzu}
 1331: @c (@pxref{Sample diff Input}, for the complete contents of the two files):
 1332: @c 
 1333: 以下は,コマンド@samp{diff -u lao tzu}の出力です(二つのファイルの内容の
 1334: 完全なものは,@pxref{Sample diff Input}).
 1335: 
 1336: @example
 1337: --- lao	2002-02-21 23:30:39.942229878 -0800
 1338: +++ tzu	2002-02-21 23:30:50.442260588 -0800
 1339: @@@@ -1,7 +1,6 @@@@
 1340: -The Way that can be told of is not the eternal Way;
 1341: -The name that can be named is not the eternal name.
 1342:  The Nameless is the origin of Heaven and Earth;
 1343: -The Named is the mother of all things.
 1344: +The named is the mother of all things.
 1345: +
 1346:  Therefore let there always be non-being,
 1347:    so we may see their subtlety,
 1348:  And let there always be being,
 1349: @@@@ -9,3 +8,6 @@@@
 1350:  The two are the same,
 1351:  But after they are produced,
 1352:    they have different names.
 1353: +They both may be called deep and profound.
 1354: +Deeper and more profound,
 1355: +The door of all subtleties!
 1356: @end example
 1357: 
 1358: @node Sections
 1359: @c @subsection Showing Which Sections Differences Are in
 1360: @subsection 差異のある領域が存在するセクションの表示
 1361: @cindex headings
 1362: @cindex section headings
 1363: 
 1364: @c Sometimes you might want to know which part of the files each change
 1365: @c falls in.  If the files are source code, this could mean which function
 1366: @c was changed.  If the files are documents, it could mean which chapter or
 1367: @c appendix was changed.  @sc{gnu} @command{diff} can show this by displaying the
 1368: @c nearest section heading line that precedes the differing lines.  Which
 1369: @c lines are ``section headings'' is determined by a regular expression.
 1370: @c 
 1371: それぞれの変更がファイルのどの部分かを知りたいときもあるでしょう.ファイ
 1372: ルがソースコードの場合,これは変更された関数を意味します.ファイルがドキュ
 1373: メントの場合,変更された章や付録を意味します.@sc{gnu} @command{diff}で
 1374: は,差異のある行の前にあるセクション見出し行で最も近くにあるものを表示す
 1375: ることで,これを示すことが可能です.``セクション見出し''の行は,正規表現
 1376: で決定されます.
 1377: 
 1378: @menu
 1379: * Specified Headings::  Showing headings that match regular expressions.
 1380: * C Function Headings:: Showing headings of C functions.
 1381: @end menu
 1382: 
 1383: @node Specified Headings
 1384: @c @subsubsection Showing Lines That Match Regular Expressions
 1385: @subsubsection 正規表現にマッチする行を表示する
 1386: @cindex specified headings
 1387: @cindex regular expression matching headings
 1388: 
 1389: @c To show in which sections differences occur for files that are not
 1390: @c source code for C or similar languages, use the @option{-F @var{regexp}}
 1391: @c or @option{--show-function-line=@var{regexp}} option.  @command{diff}
 1392: @c considers lines that match the @command{grep}-style regular expression
 1393: @c @var{regexp} to be the beginning of a section of the file.  Here are
 1394: @c suggested regular expressions for some common languages:
 1395: @c 
 1396: Cやそれに似た言語以外のソースコードのファイルで差異が生じたセクションを
 1397: 表示するために,@option{-F @var{regexp}}や
 1398: @option{--show-function-line=@var{regexp}}オプションを使用してください.
 1399: @command{diff}は,@command{grep}形式の正規表現@var{regexp}にマッチした行
 1400: が,ファイルのセクションの先頭だと考えます.いくつかの一般的な言語に対す
 1401: る正規表現を以下で提案します.
 1402: 
 1403: @c Please add to this list, e.g. Fortran, Pascal, Perl, Python.
 1404: @table @samp
 1405: @item ^[[:alpha:]$_]
 1406: C, C++, Prolog
 1407: @item ^(
 1408: Lisp
 1409: @item ^@@node
 1410: Texinfo
 1411: @end table
 1412: 
 1413: @c This option does not automatically select an output format; in order to
 1414: @c use it, you must select the context format (@pxref{Context Format}) or
 1415: @c unified format (@pxref{Unified Format}).  In other output formats it
 1416: @c has no effect.
 1417: @c 
 1418: このオプションでは出力書式を自動的に選択しません.それを使用するために,
 1419: 周りの文を使用した書式(@pxref{Context Format})や,一体化した書式
 1420: (@pxref{Unified Format})を選択する必要があります.それ以外の出力書式では
 1421: 効果はありません.
 1422: 
 1423: @c The @option{-F} and @option{--show-function-line} options find the nearest
 1424: @c unchanged line that precedes each hunk of differences and matches the
 1425: @c given regular expression.  Then they add that line to the end of the
 1426: @c line of asterisks in the context format, or to the @samp{@@@@} line in
 1427: @c unified format.  If no matching line exists, they leave the output for
 1428: @c that hunk unchanged.  If that line is more than 40 characters long, they
 1429: @c output only the first 40 characters.  You can specify more than one
 1430: @c regular expression for such lines; @command{diff} tries to match each line
 1431: @c against each regular expression, starting with the last one given.  This
 1432: @c means that you can use @option{-p} and @option{-F} together, if you wish.
 1433: @c 
 1434: @option{-F}と@option{--show-function-line}オプションで,差異があるそれぞ
 1435: れのhunkの前にある変更されていない最も近い行で与えられた正規表現にマッチ
 1436: する行を見つけます.そしてその行を,周りの文を使用した書式のアスタリスク
 1437: がある行の終りに,または一体化した書式の@samp{@@@@}行に追加します.マッ
 1438: チする行がない場合は,そのまま変更されずに,hunk出力に出力されます.その
 1439: 行が40文字以上の場合,それらは最初の40文字だけ出力されます.そのような行
 1440: に対し,一つ以上の正規表現を指定することが可能です.@command{diff}は,そ
 1441: れぞれの行に対しそれぞれの正規表現にマッチすることを,最後に与えられたも
 1442: のから試します.これは,希望があれば@option{-p}と@option{-F}を一緒に使用
 1443: することが可能だということを意味します.
 1444: 
 1445: @node C Function Headings
 1446: @c @subsubsection Showing C Function Headings
 1447: @subsubsection Cの関数の見出しを表示する
 1448: @cindex C function headings
 1449: @cindex function headings, C
 1450: 
 1451: @c To show in which functions differences occur for C and similar
 1452: @c languages, you can use the @option{-p} or @option{--show-c-function} option.
 1453: @c This option automatically defaults to the context output format
 1454: @c (@pxref{Context Format}), with the default number of lines of context.
 1455: @c You can override that number with @option{-C @var{lines}} elsewhere in the
 1456: @c command line.  You can override both the format and the number with
 1457: @c @option{-U @var{lines}} elsewhere in the command line.
 1458: @c 
 1459: Cとそれに似た言語で差異の生じた関数を表示するために,@option{-p}や
 1460: @option{--show-c-function}オプションを使用することが可能です.このオプショ
 1461: ンで,デフォルトの周りの文の行数を用いた周りの文を使用した出力書式を自動
 1462: 的にデフォルトにします(@pxref{Context Format}).コマンドラインのどこかで
 1463: @option{-C @var{lines}}を用いることで,その行数に優先させること可能です.
 1464: コマンドラインのどこかで@option{-U @var{lines}}を用いることで,その書式
 1465: と行数に優先させることが可能です.
 1466: 
 1467: @c The @option{-p} and @option{--show-c-function} options are equivalent to
 1468: @c @option{-F '^[[:alpha:]$_]'} if the unified format is specified, otherwise
 1469: @c @option{-c -F '^[[:alpha:]$_]'} (@pxref{Specified Headings}).  @sc{gnu}
 1470: @c @command{diff} provides them for the sake of convenience.
 1471: @c 
 1472: @option{-p}と@option{--show-c-function}オプションは,一体化した書式が指
 1473: 定されている場合,@option{-F '^[[:alpha:]$_]'}と同じで,それ以外では
 1474: @option{-c -F '^[[:alpha:]$_]'}と同じです(@pxref{Specified Headings}).
 1475: @sc{gnu} @command{diff}は利便性を目的としてそれらを提供しています.
 1476: 
 1477: @node Alternate Names
 1478: @c @subsection Showing Alternate File Names
 1479: @subsection ファイル名の代替物を表示する
 1480: @cindex alternate file names
 1481: @cindex file name alternates
 1482: 
 1483: @c If you are comparing two files that have meaningless or uninformative
 1484: @c names, you might want @command{diff} to show alternate names in the header
 1485: @c of the context and unified output formats.  To do this, use the
 1486: @c @option{--label=@var{label}} option.  The first time
 1487: @c you give this option, its argument replaces the name and date of the
 1488: @c first file in the header; the second time, its argument replaces the
 1489: @c name and date of the second file.  If you give this option more than
 1490: @c twice, @command{diff} reports an error.  The @option{--label} option does not
 1491: @c affect the file names in the @command{pr} header when the @option{-l} or
 1492: @c @option{--paginate} option is used (@pxref{Pagination}).
 1493: @c 
 1494: 意味が無かったり情報として価値の無い名前を持つ二つのファイルを比較する場
 1495: 合,周りの文を利用したり一体化した出力書式のヘッダに,名前の変わりのもの
 1496: を@command{diff}で表示させたいかもしれません.こうするために
 1497: @option{--label=@var{label}}オプションを使用してください.最初にこのオプ
 1498: ションを与えると,ヘッダ内の最初のファイルの名前と日付をその引数で置換し,
 1499: 二回与えると,ヘッダ内の二番目のファイルの名前と日付をその引数で置換しま
 1500: す.このオプションが二回以上与えられる場合,@command{diff} はエラーを報
 1501: 告します.@option{--label}オプションは,@option{-l}や@option{--paginate} 
 1502: オプションが使用されている(@pxref{Pagination})とき,@command{pr}ヘッダ内
 1503: のファイル名に影響しません.
 1504: 
 1505: @c Here are the first two lines of the output from @samp{diff -C 2
 1506: @c --label=original --label=modified lao tzu}:
 1507: @c 
 1508: @samp{diff -C 2 --label=original --label=modified lao tzu}の出力の最初の
 1509: 二行は以下のようになります.
 1510: 
 1511: @example
 1512: *** original
 1513: --- modified
 1514: @end example
 1515: 
 1516: @node Side by Side
 1517: @c @section Showing Differences Side by Side
 1518: @section 差異を並べて表示する
 1519: @cindex side by side
 1520: @cindex two-column output
 1521: @cindex columnar output
 1522: 
 1523: @c @command{diff} can produce a side by side difference listing of two files.
 1524: @c The files are listed in two columns with a gutter between them.  The
 1525: @c gutter contains one of the following markers:
 1526: @c 
 1527: @command{diff}では,二つのファイルの差異のリストを並べて生成することが可
 1528: 能です.縦段落間の溝を用いてファイルは二列にリストアップされます.縦段落
 1529: 間の溝は以下のマーカの一つを含んでいます.
 1530: 
 1531: @table @asis
 1532: @item white space
 1533: @c The corresponding lines are in common.  That is, either the lines are
 1534: @c identical, or the difference is ignored because of one of the
 1535: @c @option{--ignore} options (@pxref{White Space}).
 1536: @c 
 1537: 共通の対応する行です.すなわち,それぞれの行は同じ,または
 1538: @option{--ignore}オプション(@pxref{White Space})の一つで無視されている差
 1539: しかありません.
 1540: 
 1541: @item @samp{|}
 1542: @c The corresponding lines differ, and they are either both complete
 1543: @c or both incomplete.
 1544: @c 
 1545: 対応する行に差があり,両方とも完全または両方とも不完全です.
 1546: 
 1547: @item @samp{<}
 1548: @c The files differ and only the first file contains the line.
 1549: @c 
 1550: ファイルに差があり,最初のファイルだけに含まれている行です.
 1551: 
 1552: @item @samp{>}
 1553: @c The files differ and only the second file contains the line.
 1554: @c 
 1555: ファイルに差があり,二番目のファイルだけに含まれている行です.
 1556: 
 1557: @item @samp{(}
 1558: @c Only the first file contains the line, but the difference is ignored.
 1559: @c 
 1560: 最初のファイルだけに含まれている行ですが,差異は無視されます.
 1561: 
 1562: @item @samp{)}
 1563: @c Only the second file contains the line, but the difference is ignored.
 1564: @c 
 1565: 二番目のファイルだけに含まれている行ですが,差異は無視されます.
 1566: 
 1567: @item @samp{\}
 1568: @c The corresponding lines differ, and only the first line is incomplete.
 1569: @c 
 1570: 対応する行に差があり,最初のファイルの行のみが不完全です.
 1571: 
 1572: @item @samp{/}
 1573: @c The corresponding lines differ, and only the second line is incomplete.
 1574: @c 
 1575: 対応する行に差があり,二番目のファイルの行のみが不完全です.
 1576: @end table
 1577: 
 1578: @c Normally, an output line is incomplete if and only if the lines that it
 1579: @c contains are incomplete; @xref{Incomplete Lines}.  However, when an
 1580: @c output line represents two differing lines, one might be incomplete
 1581: @c while the other is not.  In this case, the output line is complete,
 1582: @c but its the gutter is marked @samp{\} if the first line is incomplete,
 1583: @c @samp{/} if the second line is.
 1584: @c 
 1585: 通常出力行は,それは不完全な行が含まれている場合だけ不完全です.
 1586: @xref{Incomplete Lines}.  しかし,出力行が二つの差異のある行に表示される
 1587: とき,一方は不完全でもう一方はそうでないかもしれません.この状況では,出
 1588: 力行は完全ですが,その縦段落間の溝は,最初の行が不完全な場合は@samp{\} 
 1589: で,二番目の行が不完全な場合は@samp{/}で印が付いています.
 1590: 
 1591: @c Side by side format is sometimes easiest to read, but it has limitations.
 1592: @c It generates much wider output than usual, and truncates lines that are
 1593: @c too long to fit.  Also, it relies on lining up output more heavily than
 1594: @c usual, so its output looks particularly bad if you use varying
 1595: @c width fonts, nonstandard tab stops, or nonprinting characters.
 1596: @c 
 1597: 並べた書式が最も読み易いときもありますが,それには制限があります.それは
 1598: 通常よりはるかに幅広の出力を生成し,長過ぎると切り詰められます.また,通
 1599: 常より出力の整列状態に強く依存するので,可変幅フォント,標準的ではないタ
 1600: ブストップ,または表示不可能な文字を使用している場合,その出力は特に見栄
 1601: えが悪くなります.
 1602: 
 1603: @c You can use the @command{sdiff} command to interactively merge side by side
 1604: @c differences.  @xref{Interactive Merging}, for more information on merging files.
 1605: @c 
 1606: 並べた差異を対話的にマージするために,@command{sdiff}コマンドを使用する
 1607: ことも可能です.ファイルのマージの詳細は,@xref{Interactive Merging}.
 1608: 
 1609: @menu
 1610: * Side by Side Format::  Controlling side by side output format.
 1611: * Example Side by Side:: Sample side by side output.
 1612: @end menu
 1613: 
 1614: @node Side by Side Format
 1615: @c @subsection Controlling Side by Side Format
 1616: @subsection 並べた書式の制御
 1617: @cindex side by side format
 1618: 
 1619: @c The @option{-y} or @option{--side-by-side} option selects side by side
 1620: @c format.  Because side by side output lines contain two input lines, the
 1621: @c output is wider than usual: normally 130 print columns, which can fit
 1622: @c onto a traditional printer line.  You can set the width of the output
 1623: @c with the @option{-W @var{columns}} or @option{--width=@var{columns}}
 1624: @c option.  The output is split into two halves of equal width, separated by a
 1625: @c small gutter to mark differences; the right half is aligned to a tab
 1626: @c stop so that tabs line up.  Input lines that are too long to fit in half
 1627: @c of an output line are truncated for output.
 1628: @c 
 1629: @option{-y}や@option{--side-by-side}オプションで並べた書式を選択します.
 1630: 並んでいる出力行には二つの入力行が含まれるので,出力は通常より幅広になり
 1631: ます.通常は130列出力され,それは伝統的なプリンタの行に適しているはずで
 1632: す.出力の幅を@option{-W @var{columns}}や@option{--width=@var{columns}} 
 1633: オプションを用いて設定することが可能です.出力は同じ幅で半分に分けられ,
 1634: 差異に印を付ける小さな縦段落間の溝で分けられています.入力行が長過ぎて出
 1635: 力の半分に適さないものは,出力で切り詰められます.
 1636: 
 1637: @c The @option{--left-column} option prints only the left column of two
 1638: @c common lines.  The @option{--suppress-common-lines} option suppresses
 1639: @c common lines entirely.
 1640: @c 
 1641: @option{--left-column}オプションで,二つの共通列の左の列のみ出力します.
 1642: @option{--suppress-common-lines}オプションで,完全に共通の行の出力を抑制
 1643: します.
 1644: 
 1645: @node Example Side by Side
 1646: @c @subsection An Example of Side by Side Format
 1647: @subsection 並べた出力の例
 1648: 
 1649: @c Here is the output of the command @samp{diff -y -W 72 lao tzu}
 1650: @c (@pxref{Sample diff Input}, for the complete contents of the two files).
 1651: @c 
 1652: コマンド@samp{diff -y -W 72 lao tzu}の出力は以下のようになります(二つの
 1653: ファイルの完全な内容は,@pxref{Sample diff Input}).
 1654: 
 1655: @example
 1656: The Way that can be told of is n   <
 1657: The name that can be named is no   <
 1658: The Nameless is the origin of He        The Nameless is the origin of He
 1659: The Named is the mother of all t   |    The named is the mother of all t
 1660:                                    >
 1661: Therefore let there always be no        Therefore let there always be no
 1662:   so we may see their subtlety,           so we may see their subtlety,
 1663: And let there always be being,          And let there always be being,
 1664:   so we may see their outcome.            so we may see their outcome.
 1665: The two are the same,                   The two are the same,
 1666: But after they are produced,            But after they are produced,
 1667:   they have different names.              they have different names.
 1668:                                    >    They both may be called deep and
 1669:                                    >    Deeper and more profound,
 1670:                                    >    The door of all subtleties!
 1671: @end example
 1672: 
 1673: @node Scripts
 1674: @c @section Making Edit Scripts
 1675: @section 編集スクリプトの作成
 1676: @cindex script output formats
 1677: 
 1678: @c Several output modes produce command scripts for editing @var{from-file}
 1679: @c to produce @var{to-file}.
 1680: @c 
 1681: 出力モードには,@var{to-file}を生成するために@var{from-file}ファイルを編
 1682: 集する,コマンドスクリプトを生成するものもあります.
 1683: 
 1684: @menu
 1685: * ed Scripts:: Using @command{diff} to produce commands for @command{ed}.
 1686: * Forward ed:: Making forward @command{ed} scripts.
 1687: * RCS::        A special @command{diff} output format used by @sc{rcs}.
 1688: @end menu
 1689: 
 1690: @node ed Scripts
 1691: @c @subsection @command{ed} Scripts
 1692: @subsection @command{ed}スクリプト
 1693: @cindex @command{ed} script output format
 1694: 
 1695: @c @command{diff} can produce commands that direct the @command{ed} text editor
 1696: @c to change the first file into the second file.  Long ago, this was the
 1697: @c only output mode that was suitable for editing one file into another
 1698: @c automatically; today, with @command{patch}, it is almost obsolete.  Use the
 1699: @c @option{-e} or @option{--ed} option to select this output format.
 1700: @c 
 1701: @command{diff}で,@command{ed}テキストエディタに最初のファイルを二番目の
 1702: ファイルに変更するように指示するコマンドを生成することが可能です.以前は
 1703: これが,あるファイルをもう一つのファイルに自動的に編集することに適した唯
 1704: 一の出力モードでした.現在は,@command{patch}を用いることになり,それは
 1705: もう時代遅れです.この出力書式を選択するために,@option{-e}や
 1706: @option{--ed}オプションを使用してください.
 1707: 
 1708: @c Like the normal format (@pxref{Normal}), this output format does not
 1709: @c show any context; unlike the normal format, it does not include the
 1710: @c information necessary to apply the diff in reverse (to produce the first
 1711: @c file if all you have is the second file and the diff).
 1712: @c 
 1713: 通常の書式(@pxref{Normal})同様,この出力書式では周りの文を全く表示しませ
 1714: ん.通常の書式とは異なり,(二番目のファイルと差分がある場合,最初のファ
 1715: イルを生成するために)逆に差分を適用するのに必要な情報を含んでいません.
 1716: 
 1717: @c If the file @file{d} contains the output of @samp{diff -e old new}, then
 1718: @c the command @samp{(cat d && echo w) | ed - old} edits @file{old} to make
 1719: @c it a copy of @file{new}.  More generally, if @file{d1}, @file{d2},
 1720: @c @dots{}, @file{dN} contain the outputs of @samp{diff -e old new1},
 1721: @c @samp{diff -e new1 new2}, @dots{}, @samp{diff -e newN-1 newN},
 1722: @c respectively, then the command @samp{(cat d1 d2 @dots{} dN && echo w) |
 1723: @c ed - old} edits @file{old} to make it a copy of @file{newN}.
 1724: @c 
 1725: ファイル@file{d}に@samp{diff -e old new}の出力が含まれている場合,コマン
 1726: ド@samp{(cat d && echo w) | ed - old}で@file{old}が@file{new}のコピーに
 1727: なるように編集します.より一般的には,@file{d1},@file{d2},@dots{},
 1728: @file{dN}がそれぞれ,@samp{diff -e old new1},@samp{diff -e new1 new2},
 1729: @dots{},@samp{diff -e newN-1 newN}の出力になっている場合,@samp{(cat d1
 1730: d2 @dots{} dN && echo w) | ed - old}で@file{old}が@file{new}のコピーにな
 1731: るように編集します.
 1732: 
 1733: @menu
 1734: * Detailed ed:: A detailed description of @command{ed} format.
 1735: * Example ed::  A sample @command{ed} script.
 1736: @end menu
 1737: 
 1738: @node Detailed ed
 1739: @c @subsubsection Detailed Description of @command{ed} Format
 1740: @subsubsection @command{ed}書式の詳細な記述
 1741: 
 1742: @c The @command{ed} output format consists of one or more hunks of
 1743: @c differences.  The changes closest to the ends of the files come first so
 1744: @c that commands that change the number of lines do not affect how
 1745: @c @command{ed} interprets line numbers in succeeding commands.  @command{ed}
 1746: @c format hunks look like this:
 1747: @c 
 1748: @command{ed}出力書式は,一つ以上の差異部分のhunkから成り立ちます.複数行
 1749: を変更するコマンドで,@command{ed}コマンドの成功によって行番号を解釈する
 1750: 方法に影響しないように,ファイルの終りに近い変更が最初に来ます.
 1751: @command{ed}書式のhunkは以下のようになります.
 1752: 
 1753: @example
 1754: @var{change-command}
 1755: @var{to-file-line}
 1756: @var{to-file-line}@dots{}
 1757: .
 1758: @end example
 1759: 
 1760: @c Because @command{ed} uses a single period on a line to indicate the end of
 1761: @c input, @sc{gnu} @command{diff} protects lines of changes that contain a single
 1762: @c period on a line by writing two periods instead, then writing a
 1763: @c subsequent @command{ed} command to change the two periods into one.  The
 1764: @c @command{ed} format cannot represent an incomplete line, so if the second
 1765: @c file ends in a changed incomplete line, @command{diff} reports an error and
 1766: @c then pretends that a newline was appended.
 1767: @c 
 1768: @command{ed}は行中のピリオドを入力の終りを示すものとして使用するので,
 1769: @sc{gnu} @command{diff}は,行中の単一のピリオドを二つのピリオドとして書
 1770: き込み,それに続く@command{ed}コマンドで二つのピリオドを一つに変更するこ
 1771: とで,変更された行を保護します.@command{ed}書式は不完全な行を表現するこ
 1772: とが不可能なので,二番目のファイルの終りが変更のある不完全な行の場合,
 1773: @command{diff}はエラーを報告し,改行を追加するように要求します.
 1774: 
 1775: @c There are three types of change commands.  Each consists of a line
 1776: @c number or comma-separated range of lines in the first file and a single
 1777: @c character indicating the kind of change to make.  All line numbers are
 1778: @c the original line numbers in the file.  The types of change commands
 1779: @c are:
 1780: @c 
 1781: 三種類の変更コマンドがあります.それぞれ,最初のファイルの行番号やカンマ
 1782: で分離されている行の範囲と変更させる手法を示す単一文字から成り立ちます.
 1783: すべての行番号は,ファイルの元々の行番号です.変更コマンドの種類は以下の
 1784: とおりです.
 1785: 
 1786: @table @samp
 1787: @item @var{l}a
 1788: @c Add text from the second file after line @var{l} in the first file.  For
 1789: @c example, @samp{8a} means to add the following lines after line 8 of file
 1790: @c 1.
 1791: @c 
 1792: 最初のファイルの@var{l}行目の後に二番目のファイルからのテキストを追加し
 1793: ます.例えば@samp{8a}は,ファイル1の8行目以降に,それに続く行を追加しま
 1794: す.
 1795: 
 1796: @item @var{r}c
 1797: @c Replace the lines in range @var{r} in the first file with the following
 1798: @c lines.  Like a combined add and delete, but more compact.  For example,
 1799: @c @samp{5,7c} means change lines 5--7 of file 1 to read as the text file
 1800: @c 2.
 1801: @c 
 1802: 最初のファイルの範囲@var{r}の行を,それに続く行で置換します.追加と削除
 1803: の組み合わせに似ていますが,よりコンパクトです.例えば@samp{5,7c}は,ファ
 1804: イル1の5--7行をファイル2のテキストで変更することを意味します.
 1805: 
 1806: @item @var{r}d
 1807: @c Delete the lines in range @var{r} from the first file.  For example,
 1808: @c @samp{5,7d} means delete lines 5--7 of file 1.
 1809: @c 
 1810: 最初のファイルから範囲@var{r}の行を削除します.例えば,@samp{5,7d}は,ファ
 1811: イル1の5--7行を削除することを意味します.
 1812: @end table
 1813: 
 1814: @node Example ed
 1815: @c @subsubsection Example @command{ed} Script
 1816: @subsubsection @command{ed}スクリプトの例
 1817: 
 1818: @c Here is the output of @samp{diff -e lao tzu} (@pxref{Sample
 1819: @c diff Input}, for the complete contents of the two files):
 1820: @c 
 1821: @samp{diff -e lao tzu}の出力は以下のようになります(二つのファイルの完全
 1822: な内容は,@pxref{Sample diff Input}).
 1823: 
 1824: @example
 1825: 11a
 1826: They both may be called deep and profound.
 1827: Deeper and more profound,
 1828: The door of all subtleties!
 1829: .
 1830: 4c
 1831: The named is the mother of all things.
 1832: 
 1833: .
 1834: 1,2d
 1835: @end example
 1836: 
 1837: @node Forward ed
 1838: @c @subsection Forward @command{ed} Scripts
 1839: @subsection 前置@command{ed}スクリプト
 1840: @cindex forward @command{ed} script output format
 1841: 
 1842: @c @command{diff} can produce output that is like an @command{ed} script, but
 1843: @c with hunks in forward (front to back) order.  The format of the commands
 1844: @c is also changed slightly: command characters precede the lines they
 1845: @c modify, spaces separate line numbers in ranges, and no attempt is made
 1846: @c to disambiguate hunk lines consisting of a single period.  Like
 1847: @c @command{ed} format, forward @command{ed} format cannot represent incomplete
 1848: @c lines.
 1849: @c 
 1850: @command{diff}で@command{ed}スクリプトのような出力を生成することが可能で
 1851: すが,hunkは(前のものを後ろにする)前方への順序を用いています.コマンドの
 1852: 書式を若干変更することも可能です.それは,変更した行の前にコマンド文字前
 1853: 置すること,範囲をスペースで分離した行番号にすること,そして,単一のピリ
 1854: オドから成り立つhunk行を明示する試みを行なわないことです.@command{ed}書
 1855: 式のように,前置@command{ed}書式は,不完全な行を表現することは不可能です.
 1856: 
 1857: @c Forward @command{ed} format is not very useful, because neither @command{ed}
 1858: @c nor @command{patch} can apply diffs in this format.  It exists mainly for
 1859: @c compatibility with older versions of @command{diff}.  Use the @option{-f} or
 1860: @c @option{--forward-ed} option to select it.
 1861: @c 
 1862: 前置@command{ed}書式は,@command{ed}でも@command{patch}でもこの書式の差
 1863: 分を適用することが不可能なので,ほとんど役に立ちません.それは主に,古い
 1864: バージョンの@command{diff}との互換性のために存在しています.それを選択す
 1865: るために,@option{-f}や@option{--forward-ed}オプションを使用してください.
 1866: 
 1867: @node RCS
 1868: @c @subsection @sc{rcs} Scripts
 1869: @subsection @sc{rcs}スクリプト
 1870: @cindex @sc{rcs} script output format
 1871: 
 1872: @c The @sc{rcs} output format is designed specifically for use by the Revision
 1873: @c Control System, which is a set of free programs used for organizing
 1874: @c different versions and systems of files.  Use the @option{-n} or
 1875: @c @option{--rcs} option to select this output format.  It is like the
 1876: @c forward @command{ed} format (@pxref{Forward ed}), but it can represent
 1877: @c arbitrary changes to the contents of a file because it avoids the
 1878: @c forward @command{ed} format's problems with lines consisting of a single
 1879: @c period and with incomplete lines.  Instead of ending text sections with
 1880: @c a line consisting of a single period, each command specifies the number
 1881: @c of lines it affects; a combination of the @samp{a} and @samp{d}
 1882: @c commands are used instead of @samp{c}.  Also, if the second file ends
 1883: @c in a changed incomplete line, then the output also ends in an
 1884: @c incomplete line.
 1885: @c 
 1886: @sc{rcs}出力書式は,異なるファイルのバージョンとシステムを管理するために
 1887: 使用するフリープログラム,Revision Control Systemで使用するために設計さ
 1888: れています.この出力書式を選択するために,@option{-n}や@option{--rcs}を
 1889: 使用してください.前に書いた@command{ed}書式(@pxref{Forward ed})に似てい
 1890: ますが,それは前に書いた@command{ed}書式の単一のピリオドを含む行と不完全
 1891: な行の問題を避けているので,ファイルの内容の任意の変更を表現することが可
 1892: 能です.単一のピリオドを含む行でテキストセクションを終える変わりに,それ
 1893: ぞれのコマンドで影響する行数を指定します.@samp{a}と@samp{d}を組み合わせ
 1894: たコマンドが,@samp{c}の変わりに使用されます.また,二番目のファイルが変
 1895: 更されている不完全な行で終る場合,出力も不完全な行で終ります.
 1896: 
 1897: @c Here is the output of @samp{diff -n lao tzu} (@pxref{Sample
 1898: @c diff Input}, for the complete contents of the two files):
 1899: @c 
 1900: @samp{diff -n lao tzu}の出力は以下のようになります(二つのファイルの完全
 1901: な内容は,@pxref{Sample diff Input}).
 1902: 
 1903: @example
 1904: d1 2
 1905: d4 1
 1906: a4 2
 1907: The named is the mother of all things.
 1908: 
 1909: a11 3
 1910: They both may be called deep and profound.
 1911: Deeper and more profound,
 1912: The door of all subtleties!
 1913: @end example
 1914: 
 1915: @node If-then-else
 1916: @c @section Merging Files with If-then-else
 1917: @section If-then-elseを用いたファイルのマージ
 1918: @cindex merged output format
 1919: @cindex if-then-else output format
 1920: @cindex C if-then-else output format
 1921: @cindex @command{ifdef} output format
 1922: 
 1923: @c You can use @command{diff} to merge two files of C source code.  The output
 1924: @c of @command{diff} in this format contains all the lines of both files.
 1925: @c Lines common to both files are output just once; the differing parts are
 1926: @c separated by the C preprocessor directives @code{#ifdef @var{name}} or
 1927: @c @code{#ifndef @var{name}}, @code{#else}, and @code{#endif}.  When
 1928: @c compiling the output, you select which version to use by either defining
 1929: @c or leaving undefined the macro @var{name}.
 1930: @c 
 1931: 二つのCソースコードをマージするために@command{diff}を使用することが可能
 1932: です.この書式の@command{diff}の出力は,両方のファイルのすべての行を含み
 1933: ます.両方のファイルに共通の行は,一回だけ出力されます.差異のある部分は,
 1934: Cプリプロセッサの指示語の@code{#ifdef @var{name}}や@code{#ifndef
 1935: @var{name}},@code{#else},そして@code{#endif}で分離されています.出力を
 1936: コンパイルするとき,マクロ@var{name}を定義したり未定義にしたりすることで,
 1937: バージョンを選択します.
 1938: 
 1939: @c To merge two files, use @command{diff} with the @option{-D @var{name}} or
 1940: @c @option{--ifdef=@var{name}} option.  The argument @var{name} is the C
 1941: @c preprocessor identifier to use in the @code{#ifdef} and @code{#ifndef}
 1942: @c directives.
 1943: @c 
 1944: 二つのファイルをマージするために,@option{-D @var{name}}や
 1945: @option{--ifdef=@var{name}}オプションを用いて@command{diff}を使用してく
 1946: ださい.引数の@var{name}は,@code{#ifdef}と@code{#ifndef}といった指示語
 1947: で使用するCプリプロセッサの識別子です.
 1948: 
 1949: @c For example, if you change an instance of @code{wait (&s)} to
 1950: @c @code{waitpid (-1, &s, 0)} and then merge the old and new files with
 1951: @c the @option{--ifdef=HAVE_WAITPID} option, then the affected part of your code
 1952: @c might look like this:
 1953: @c 
 1954: 例えば,@code{wait (&s)}の文を@code{waitpid (-1, &s, 0)}に変更し,新旧の
 1955: ファイルを@option{--ifdef=HAVE_WAITPID}オプションを用いてマージした場合,
 1956: 影響する部分のコードは以下のようになるでしょう.
 1957: 
 1958: @example
 1959:     do @{
 1960: #ifndef HAVE_WAITPID
 1961:         if ((w = wait (&s)) < 0  &&  errno != EINTR)
 1962: #else /* HAVE_WAITPID */
 1963:         if ((w = waitpid (-1, &s, 0)) < 0  &&  errno != EINTR)
 1964: #endif /* HAVE_WAITPID */
 1965:             return w;
 1966:     @} while (w != child);
 1967: @end example
 1968: 
 1969: @c You can specify formats for languages other than C by using line group
 1970: @c formats and line formats, as described in the next sections.
 1971: @c 
 1972: 次のセクションで説明する,行のグループを使用した書式と,行の書式を使用す
 1973: ることで,C以外の言語に対する書式を指定することが可能です.
 1974: 
 1975: @menu
 1976: * Line Group Formats::    Formats for general if-then-else line groups.
 1977: * Line Formats::          Formats for each line in a line group.
 1978: * Detailed If-then-else:: A detailed description of if-then-else format.
 1979: * Example If-then-else::  Sample if-then-else format output.
 1980: @end menu
 1981: 
 1982: @node Line Group Formats
 1983: @c @subsection Line Group Formats
 1984: @subsection 行のグループを使用した書式
 1985: @cindex line group formats
 1986: @cindex formats for if-then-else line groups
 1987: 
 1988: @c Line group formats let you specify formats suitable for many
 1989: @c applications that allow if-then-else input, including programming
 1990: @c languages and text formatting languages.  A line group format specifies
 1991: @c the output format for a contiguous group of similar lines.
 1992: @c 
 1993: 行のグループを使用した書式で,プログラミング言語とテキストの書式化言語が
 1994: 含まれる,if-then-elseの入力が可能な多くのアプリケーションに適した書式を
 1995: 指定することができます.行のグループを使用した書式で,類似した行の連続し
 1996: たグループに対して出力書式を指定します.
 1997: 
 1998: @c For example, the following command compares the TeX files @file{old}
 1999: @c and @file{new}, and outputs a merged file in which old regions are
 2000: @c surrounded by @samp{\begin@{em@}}-@samp{\end@{em@}} lines, and new
 2001: @c regions are surrounded by @samp{\begin@{bf@}}-@samp{\end@{bf@}} lines.
 2002: @c 
 2003: 例えば,以下のコマンドで,@TeX{}ファイルの@file{old}と@file{new}を比較し,
 2004: 古い領域の周りに@samp{\begin@{em@}}-@samp{\end@{em@}}行を書き,新しい領
 2005: 域の周りに@samp{\begin@{bf@}}-@samp{\end@{bf@}}行を書くことで,出力をマー
 2006: ジします.
 2007: 
 2008: @example
 2009: diff \
 2010:    --old-group-format='\begin@{em@}
 2011: %<\end@{em@}
 2012: ' \
 2013:    --new-group-format='\begin@{bf@}
 2014: %>\end@{bf@}
 2015: ' \
 2016:    old new
 2017: @end example
 2018: 
 2019: @c The following command is equivalent to the above example, but it is a
 2020: @c little more verbose, because it spells out the default line group formats.
 2021: @c 
 2022: 以下のコマンドは上記の例と等価ですが,デフォルトの行のグループを使用した
 2023: 書式で綴っているので,若干冗長になっています.
 2024: 
 2025: @example
 2026: diff \
 2027:    --old-group-format='\begin@{em@}
 2028: %<\end@{em@}
 2029: ' \
 2030:    --new-group-format='\begin@{bf@}
 2031: %>\end@{bf@}
 2032: ' \
 2033:    --unchanged-group-format='%=' \
 2034:    --changed-group-format='\begin@{em@}
 2035: %<\end@{em@}
 2036: \begin@{bf@}
 2037: %>\end@{bf@}
 2038: ' \
 2039:    old new
 2040: @end example
 2041: 
 2042: @c Here is a more advanced example, which outputs a diff listing with
 2043: @c headers containing line numbers in a ``plain English'' style.
 2044: @c 
 2045: 以下はより高度な例で,``plain English''形式の行番号を含むヘッダを用いて
 2046: 差分リストを出力します.
 2047: 
 2048: @example
 2049: diff \
 2050:    --unchanged-group-format='' \
 2051:    --old-group-format='-------- %dn line%(n=1?:s) deleted at %df:
 2052: %<' \
 2053:    --new-group-format='-------- %dN line%(N=1?:s) added after %de:
 2054: %>' \
 2055:    --changed-group-format='-------- %dn line%(n=1?:s) changed at %df:
 2056: %<-------- to:
 2057: %>' \
 2058:    old new
 2059: @end example
 2060: 
 2061: @c To specify a line group format, use @command{diff} with one of the options
 2062: @c listed below.  You can specify up to four line group formats, one for
 2063: @c each kind of line group.  You should quote @var{format}, because it
 2064: @c typically contains shell metacharacters.
 2065: @c 
 2066: 行のグループを使用した書式を指定するために,以下でリストアップするオプショ
 2067: ンの一つを使用してください.行のグループを使用した書式のうち四つまで指定
 2068: することが可能で,それぞれの行のグループの種類になります.通常
 2069: @var{format}はシェルのメタ文字を含んでいるので,引用符で囲むべきです.
 2070: 
 2071: @table @option
 2072: @item --old-group-format=@var{format}
 2073: @c These line groups are hunks containing only lines from the first file.
 2074: @c The default old group format is the same as the changed group format if
 2075: @c it is specified; otherwise it is a format that outputs the line group as-is.
 2076: @c 
 2077: これらの行のグループは,最初のファイルの行だけに含まれているhunkです.デ
 2078: フォルトの古いグループの書式は,指定されている場合は変更されたグループの
 2079: 書式と同じです.それ以外の場合,行のグループはそのまま出力される書式にな
 2080: ります.
 2081: 
 2082: @item --new-group-format=@var{format}
 2083: @c These line groups are hunks containing only lines from the second
 2084: @c file.  The default new group format is same as the changed group
 2085: @c format if it is specified; otherwise it is a format that outputs the
 2086: @c line group as-is.
 2087: @c 
 2088: これらの行のグループは,二番目のファイルの行だけに含まれているhunkです.
 2089: デフォルトの新しいグループの書式は,指定されている場合は変更されたグルー
 2090: プの書式と同じです.それ以外の場合,行のグループはそのまま出力される書式
 2091: になります.
 2092: 
 2093: @item --changed-group-format=@var{format}
 2094: @c These line groups are hunks containing lines from both files.  The
 2095: @c default changed group format is the concatenation of the old and new
 2096: @c group formats.
 2097: @c 
 2098: これらの行のグループは,両方のファイルの行を含んでいるhunkです.デフォル
 2099: トで,変更されたグループの書式は,新旧のグループの書式を連結したものにな
 2100: ります.
 2101: 
 2102: @item --unchanged-group-format=@var{format}
 2103: @c These line groups contain lines common to both files.  The default
 2104: @c unchanged group format is a format that outputs the line group as-is.
 2105: @c 
 2106: これらの行のグループは,両方のファイルに共通な行を含んでいます.デフォル
 2107: トで,変更されていないグループの書式は,行のグループをそのまま出力する書
 2108: 式です.
 2109: @end table
 2110: 
 2111: @c In a line group format, ordinary characters represent themselves;
 2112: @c conversion specifications start with @samp{%} and have one of the
 2113: @c following forms.
 2114: @c 
 2115: 行のグループを使用した書式では,通常の文字はそのまま表示されます.伝統的
 2116: な仕様は,@samp{%}で開始し以下の形式の一つが続きます.
 2117: 
 2118: @table @samp
 2119: @item %<
 2120: @c stands for the lines from the first file, including the trailing newline.
 2121: @c Each line is formatted according to the old line format (@pxref{Line Formats}).
 2122: @c 
 2123: 最初のファイルからの行を意味し,それは最後の改行を含めます.それぞれの行
 2124: は,古い行の書式に依存して書式化されます(@pxref{Line Formats}).
 2125: 
 2126: @item %>
 2127: @c stands for the lines from the second file, including the trailing newline.
 2128: @c Each line is formatted according to the new line format.
 2129: @c 
 2130: 二番目のファイルからの行を意味し,それは最後の改行を含めます.それぞれの
 2131: 行は,新しい行の書式に依存して書式化されます.
 2132: 
 2133: @item %=
 2134: @c stands for the lines common to both files, including the trailing newline.
 2135: @c Each line is formatted according to the unchanged line format.
 2136: @c 
 2137: 両方のファイルに共通な行を意味し,それは最後の改行を含めます.それぞれの
 2138: 行は,変更されていない行の書式に依存して書式化されます.
 2139: 
 2140: @item %%
 2141: @c stands for @samp{%}.
 2142: @c 
 2143: @samp{%}を意味します.
 2144: 
 2145: @item %c'@var{C}'
 2146: @c where @var{C} is a single character, stands for @var{C}.
 2147: @c @var{C} may not be a backslash or an apostrophe.
 2148: @c For example, @samp{%c':'} stands for a colon, even inside
 2149: @c the then-part of an if-then-else format, which a colon would
 2150: @c normally terminate.
 2151: @c 
 2152: この@var{C}は単一文字で,@var{C}を意味します.@var{C}をバックスラッシュ
 2153: やアポストロフィーにしてはいけません.例えば,@samp{%c':'}はコロンを意味
 2154: し,if-then-else書式のthen-part内部ではコロンは通常終端文字ですが,その
 2155: ままの意味になります.
 2156: 
 2157: @item %c'\@var{O}'
 2158: @c where @var{O} is a string of 1, 2, or 3 octal digits,
 2159: @c stands for the character with octal code @var{O}.
 2160: @c For example, @samp{%c'\0'} stands for a null character.
 2161: @c 
 2162: この@var{O}は,1桁,2桁,または3桁の八進数で,8ビットコード@var{O}の文字
 2163: を意味します.例えば,@samp{%c'\0'}はヌル文字を意味します.
 2164: 
 2165: @item @var{F}@var{n}
 2166: @c where @var{F} is a @code{printf} conversion specification and @var{n} is one
 2167: @c of the following letters, stands for @var{n}'s value formatted with @var{F}.
 2168: @c 
 2169: この@var{F}は,@code{printf}の変換を指定し,@var{n}は以下の文字の一つに
 2170: なり,@var{F}で書式化される@var{n}の値を意味します.
 2171: 
 2172: @table @samp
 2173: @item e
 2174: @c The line number of the line just before the group in the old file.
 2175: @c 
 2176: 古いファイルのグループの直前の行番号です.
 2177: 
 2178: @item f
 2179: @c The line number of the first line in the group in the old file;
 2180: @c equals @var{e} + 1.
 2181: @c 
 2182: 古いファイルのグループの最初の行の行番号です.@var{e} + 1と同じです.
 2183: 
 2184: @item l
 2185: @c The line number of the last line in the group in the old file.
 2186: @c 
 2187: 古いファイルのグループの最後の行の行番号です.
 2188: 
 2189: @item m
 2190: @c The line number of the line just after the group in the old file;
 2191: @c equals @var{l} + 1.
 2192: @c 
 2193: 古いファイルのグループ直後の行番号です.@var{l} + 1と同じです.
 2194: 
 2195: @item n
 2196: @c The number of lines in the group in the old file; equals @var{l} - @var{f} + 1.
 2197: @c 
 2198: 古いファイルのグループの行番号です.@var{l} - @var{f} + 1と同じです.
 2199: 
 2200: @item E, F, L, M, N
 2201: @c Likewise, for lines in the new file.
 2202: @c 
 2203: 同様に,新しいファイルの行です.
 2204: 
 2205: @end table
 2206: 
 2207: @vindex LC_NUMERIC
 2208: @c The @code{printf} conversion specification can be @samp{%d},
 2209: @c @samp{%o}, @samp{%x}, or @samp{%X}, specifying decimal, octal,
 2210: @c lower case hexadecimal, or upper case hexadecimal output
 2211: @c respectively.  After the @samp{%} the following options can appear in
 2212: @c sequence: a series of zero or more flags; an integer
 2213: @c specifying the minimum field width; and a period followed by an
 2214: @c optional integer specifying the minimum number of digits.
 2215: @c The flags are @samp{-} for left-justification, @samp{'} for separating
 2216: @c the digit into groups as specified by the @env{LC_NUMERIC} locale category,
 2217: @c and @samp{0} for padding with zeros instead of spaces.
 2218: @c For example, @samp{%5dN} prints the number of new lines in the group
 2219: @c in a field of width 5 characters, using the @code{printf} format @code{"%5d"}.
 2220: @c 
 2221: @code{printf}の変換指定は,@samp{%d},@samp{%o},@samp{%x},または
 2222: @samp{%X}が可能で,それぞれ,10進数,8進数,小文字の16進数,または大文字
 2223: の16進数の出力を指定します.@samp{%}の後に続くオプションを順番に表します.
 2224: ゼロ以上のフラグの列.最小フィールド幅の整数.そして,ピリオドに続く桁数
 2225: の最小値を指定する追加の整数.フラグは,左寄せに対する@samp{-},
 2226: @env{LC_NUMERIC}ロケールのカテゴリで指定される,グループごとの桁数に分離
 2227: する@samp{'},そして,スペースの変わりにゼロでパディングするための
 2228: @samp{0}です.例えば,@samp{%5dN}はグループの新しい行の数を,五文字幅の
 2229: フィールドで,@code{printf}の書式@code{"%5d"}で出力します.
 2230: 
 2231: @item (@var{A}=@var{B}?@var{T}:@var{E})
 2232: @c If @var{A} equals @var{B} then @var{T} else @var{E}.
 2233: @c @var{A} and @var{B} are each either a decimal constant
 2234: @c or a single letter interpreted as above.
 2235: @c This format spec is equivalent to @var{T} if
 2236: @c @var{A}'s value equals @var{B}'s; otherwise it is equivalent to @var{E}.
 2237: @c 
 2238: @var{A}が@var{B}に等しい場合は@var{T},それ以外では@var{E}になります.
 2239: @var{A}と@var{B}はそれぞれ10進数の定数または上記で解釈される単一文字です.
 2240: この書式指定は,@var{A}の値が@var{B}の値に等しい場合は@var{T}と等価にな
 2241: ります.それ以外では@var{E}と等価になります.
 2242: 
 2243: @c For example, @samp{%(N=0?no:%dN) line%(N=1?:s)} is equivalent to
 2244: @c @samp{no lines} if @var{N} (the number of lines in the group in the the
 2245: @c new file) is 0, to @samp{1 line} if @var{N} is 1, and to @samp{%dN lines}
 2246: @c otherwise.
 2247: @c 
 2248: 例えば@samp{%(N=0?no:%dN) line%(N=1?:s)}は,@var{N}(新しいファイルのグルー
 2249: プの行数)が0の場合は@samp{no lines}と等価で,@var{N}が1の場合は@samp{1
 2250: line}と等価で,それ以外の場合は@samp{%dN lines}と等価になります.
 2251: @end table
 2252: 
 2253: @node Line Formats
 2254: @c @subsection Line Formats
 2255: @subsection 行の書式
 2256: @cindex line formats
 2257: 
 2258: @c Line formats control how each line taken from an input file is
 2259: @c output as part of a line group in if-then-else format.
 2260: @c 
 2261: 行の書式は,if-then-else書式での行のグループの部分として入力行から出力行
 2262: に持っていく行数を制御します.
 2263: 
 2264: @c For example, the following command outputs text with a one-character
 2265: @c change indicator to the left of the text.  The first character of output
 2266: @c is @samp{-} for deleted lines, @samp{|} for added lines, and a space for
 2267: @c unchanged lines.  The formats contain newline characters where newlines
 2268: @c are desired on output.
 2269: @c 
 2270: 例えば,以下のコマンドは,テキストの左に変更を示す単一の文字を用いてテキ
 2271: ストを出力します.出力の最初の文字は,削除行に対する@samp{-},追加行に対
 2272: する@samp{|},そして変更されていない行に対するスペースです.その書式には,
 2273: 出力に概況が必要な場所では,改行文字が含まれます.
 2274: 
 2275: @example
 2276: diff \
 2277:    --old-line-format='-%l
 2278: ' \
 2279:    --new-line-format='|%l
 2280: ' \
 2281:    --unchanged-line-format=' %l
 2282: ' \
 2283:    old new
 2284: @end example
 2285: 
 2286: @c To specify a line format, use one of the following options.  You should
 2287: @c quote @var{format}, since it often contains shell metacharacters.
 2288: @c 
 2289: 行の書式を指定するために,以下のオプションの一つを使用してください.シェ
 2290: ルのメタ文字を含むことが多いので,@var{format}を引用符で囲むべきです.
 2291: 
 2292: @table @option
 2293: @item --old-line-format=@var{format}
 2294: @c formats lines just from the first file.
 2295: @c 
 2296: 最初のファイルからの行だけ書式化します.
 2297: 
 2298: @item --new-line-format=@var{format}
 2299: @c formats lines just from the second file.
 2300: @c 
 2301: 二番目のファイルからの行だけ書式化します.
 2302: 
 2303: @item --unchanged-line-format=@var{format}
 2304: @c formats lines common to both files.
 2305: @c 
 2306: 両方のファイルに共通の行を書式化します.
 2307: 
 2308: @item --line-format=@var{format}
 2309: @c formats all lines; in effect, it sets all three above options simultaneously.
 2310: @c 
 2311: すべての行を書式化します.影響として,上記の三つのオプションすべてを同時
 2312: に設定します.
 2313: @end table
 2314: 
 2315: @c In a line format, ordinary characters represent themselves;
 2316: @c conversion specifications start with @samp{%} and have one of the
 2317: @c following forms.
 2318: @c 
 2319: 行の書式では,通常の文字はそれ自身を示します.変換指定は@samp{%}で始め,
 2320: 以下の形式の一つを用います.
 2321: 
 2322: @table @samp
 2323: @item %l
 2324: @c stands for the contents of the line, not counting its trailing
 2325: @c newline (if any).  This format ignores whether the line is incomplete;
 2326: @c @xref{Incomplete Lines}.
 2327: @c 
 2328: 行の内容を意味し,後置される改行は(存在しても)数えません.この書式は行が
 2329: 不完全かどうかを無視します.@xref{Incomplete Lines}.
 2330: 
 2331: @item %L
 2332: @c stands for the contents of the line, including its trailing newline
 2333: @c (if any).  If a line is incomplete, this format preserves its
 2334: @c incompleteness.
 2335: @c 
 2336: 行の内容を意味し,後置される改行を(存在する場合)含みます.行が不完全な場
 2337: 合,この書式はその不完全さを保持します.
 2338: 
 2339: @item %%
 2340: @c stands for @samp{%}.
 2341: @c 
 2342: @samp{%}を意味します.
 2343: 
 2344: @item %c'@var{C}'
 2345: @c where @var{C} is a single character, stands for @var{C}.
 2346: @c @var{C} may not be a backslash or an apostrophe.
 2347: @c For example, @samp{%c':'} stands for a colon.
 2348: @c 
 2349: ここでの@var{C}は単一文字で,@var{C}を意味します.@var{C}をバックスラッ
 2350: シュにしたりアポストロフィーにしたりしてはいけません.例えば,
 2351: @samp{%c':'}はコロンを意味します.
 2352: 
 2353: @item %c'\@var{O}'
 2354: @c where @var{O} is a string of 1, 2, or 3 octal digits,
 2355: @c stands for the character with octal code @var{O}.
 2356: @c For example, @samp{%c'\0'} stands for a null character.
 2357: @c 
 2358: ここでの@var{O}は1桁,2桁,または3桁の8進数で,8進コード@var{O}の文字を
 2359: 意味します.例えば,@samp{%c'\0'}はヌル文字を意味します.
 2360: 
 2361: @item @var{F}n
 2362: @c where @var{F} is a @code{printf} conversion specification,
 2363: @c stands for the line number formatted with @var{F}.
 2364: @c For example, @samp{%.5dn} prints the line number using the
 2365: @c @code{printf} format @code{"%.5d"}.  @xref{Line Group Formats}, for
 2366: @c more about printf conversion specifications.
 2367: @c 
 2368: ここでの@var{F}は@code{printf}の変換指定で,@var{F}で書式化された行番号
 2369: を意味します.例えば@samp{%.5dn}は,@code{printf}の書式@code{"%.5d"}を使
 2370: 用して行番号を出力します.@code{printf}変換指定の詳細は,@xref{Line
 2371: Group Formats}.
 2372: 
 2373: @end table
 2374: 
 2375: @c The default line format is @samp{%l} followed by a newline character.
 2376: @c 
 2377: デフォルトの行の書式は,改行文字が続く@samp{%l}です.
 2378: 
 2379: @c If the input contains tab characters and it is important that they line
 2380: @c up on output, you should ensure that @samp{%l} or @samp{%L} in a line
 2381: @c format is just after a tab stop (e.g.@: by preceding @samp{%l} or
 2382: @c @samp{%L} with a tab character), or you should use the @option{-t} or
 2383: @c @option{--expand-tabs} option.
 2384: @c 
 2385: 入力にタブ文字が含まれていて,それが出力行にとって重要な場合,行の書式の
 2386: @samp{%l}や@samp{%L}をタブの直後に書くか(例えば,@: @samp{%l} や
 2387: @samp{%L}を前置してタブ文字を使用します),@option{-t}や
 2388: @option{--expand-tabs}オプションを使用すべきです.
 2389: 
 2390: @c Taken together, the line and line group formats let you specify many
 2391: @c different formats.  For example, the following command uses a format
 2392: @c similar to normal @command{diff} format.  You can tailor this command
 2393: @c to get fine control over @command{diff} output.
 2394: @c 
 2395: 行と行のグループの書式を組み合わせると,様々な書式を指定することが可能に
 2396: なります.例えば以下のコマンドで,通常の@command{diff}の書式に似たものを
 2397: 使用します.@command{diff}の出力を詳細に制御するために,このコマンドに手
 2398: を加えることも可能です.
 2399: 
 2400: @example
 2401: diff \
 2402:    --old-line-format='< %l
 2403: ' \
 2404:    --new-line-format='> %l
 2405: ' \
 2406:    --old-group-format='%df%(f=l?:,%dl)d%dE
 2407: %<' \
 2408:    --new-group-format='%dea%dF%(F=L?:,%dL)
 2409: %>' \
 2410:    --changed-group-format='%df%(f=l?:,%dl)c%dF%(F=L?:,%dL)
 2411: %<---
 2412: %>' \
 2413:    --unchanged-group-format='' \
 2414:    old new
 2415: @end example
 2416: 
 2417: @node Detailed If-then-else
 2418: @c @subsection Detailed Description of If-then-else Format
 2419: @subsection If-then-else書式の詳細な説明
 2420: 
 2421: @c For lines common to both files, @command{diff} uses the unchanged line
 2422: @c group format.  For each hunk of differences in the merged output
 2423: @c format, if the hunk contains only lines from the first file,
 2424: @c @command{diff} uses the old line group format; if the hunk contains only
 2425: @c lines from the second file, @command{diff} uses the new group format;
 2426: @c otherwise, @command{diff} uses the changed group format.
 2427: @c 
 2428: 両方のファイルで共通の行に対し,@command{diff}は変更されていない行のグルー
 2429: プ書式を使用します.マージされた出力書式の差異部分のそれぞれのhunkに対し,
 2430: hunkが最初のファイルの行だけを含んでいる場合,@command{diff}は古い行のグ
 2431: ループ書式を使用します.hunkが二番目のファイルの行だけを含んでいる場合,
 2432: @command{diff}は新しい行のグループ書式を使用します.それ以外の場合,
 2433: @command{diff}は変更されたグループ書式を使用します.
 2434: 
 2435: @c The old, new, and unchanged line formats specify the output format of
 2436: @c lines from the first file, lines from the second file, and lines common
 2437: @c to both files, respectively.
 2438: @c 
 2439: 古いもの,新しいもの,そして変更されている行の書式はそれぞれ,最初のファ
 2440: イルの行,二番目のファイルの行,そして両方のファイルに共通の行の出力書式
 2441: を指定します.
 2442: 
 2443: @c The option @option{--ifdef=@var{name}} is equivalent to
 2444: @c the following sequence of options using shell syntax:
 2445: @c 
 2446: オプション@option{--ifdef=@var{name}}は,以下のシェルの構文を使用した連
 2447: 続したオプションと等価です.
 2448: 
 2449: @example
 2450: --old-group-format='#ifndef @var{name}
 2451: %<#endif /* ! @var{name} */
 2452: ' \
 2453: --new-group-format='#ifdef @var{name}
 2454: %>#endif /* @var{name} */
 2455: ' \
 2456: --unchanged-group-format='%=' \
 2457: --changed-group-format='#ifndef @var{name}
 2458: %<#else /* @var{name} */
 2459: %>#endif /* @var{name} */
 2460: '
 2461: @end example
 2462: 
 2463: @c You should carefully check the @command{diff} output for proper nesting.
 2464: @c For example, when using the @option{-D @var{name}} or
 2465: @c @option{--ifdef=@var{name}} option, you should check that if the
 2466: @c differing lines contain any of the C preprocessor directives
 2467: @c @samp{#ifdef}, @samp{#ifndef}, @samp{#else}, @samp{#elif}, or
 2468: @c @samp{#endif}, they are nested properly and match.  If they don't, you
 2469: @c must make corrections manually.  It is a good idea to carefully check
 2470: @c the resulting code anyway to make sure that it really does what you
 2471: @c want it to; depending on how the input files were produced, the output
 2472: @c might contain duplicate or otherwise incorrect code.
 2473: @c 
 2474: 適切に入れ子状にするため,@command{diff}の出力を注意深く調べるべきです.
 2475: 例えば,@option{-D @var{name}}や@option{--ifdef=@var{name}}オプションを
 2476: 使用するとき,差異のある行がCのプリプロセッサの指示語の@samp{#ifdef},
 2477: @samp{#ifndef},@samp{#else},@samp{#elif},または@samp{#endif}を含んで
 2478: いるかどうかを調べるべきで,それらはおそらく入れ子状になっているのでマッ
 2479: チします.そうでない場合,手動で正しくする必要があります.望んだように本
 2480: 当になっていることを確実にするため,コードの結果を注意深く調べるのは良い
 2481: 考えです.入力ファイルが生成される方法に依存して,出力が二重になったもの
 2482: が含まれたり,正しくないコードになったりします.
 2483: 
 2484: @c The @command{patch} @option{-D @var{name}} option behaves like
 2485: @c the @command{diff} @option{-D @var{name}} option, except it operates on
 2486: @c a file and a diff to produce a merged file; @xref{patch Options}.
 2487: @c 
 2488: @command{patch} @option{-D @var{name}}オプションは,ファイルとマージされ
 2489: たファイルを生成する差分で処理を行なう以外,@command{diff} @option{-D
 2490: @var{name}}と同じように動作します.@xref{patch Options}.
 2491: 
 2492: @node Example If-then-else
 2493: @c @subsection An Example of If-then-else Format
 2494: @subsection If-then-else書式の例
 2495: 
 2496: @c Here is the output of @samp{diff -DTWO lao tzu} (@pxref{Sample
 2497: @c diff Input}, for the complete contents of the two files):
 2498: @c 
 2499: @samp{diff -DTWO lao tzu}の出力は以下のようになります(二つのファイルの完
 2500: 全な内容は,@pxref{Sample diff Input}).
 2501: 
 2502: @example
 2503: #ifndef TWO
 2504: The Way that can be told of is not the eternal Way;
 2505: The name that can be named is not the eternal name.
 2506: #endif /* ! TWO */
 2507: The Nameless is the origin of Heaven and Earth;
 2508: #ifndef TWO
 2509: The Named is the mother of all things.
 2510: #else /* TWO */
 2511: The named is the mother of all things.
 2512: 
 2513: #endif /* TWO */
 2514: Therefore let there always be non-being,
 2515:   so we may see their subtlety,
 2516: And let there always be being,
 2517:   so we may see their outcome.
 2518: The two are the same,
 2519: But after they are produced,
 2520:   they have different names.
 2521: #ifdef TWO
 2522: They both may be called deep and profound.
 2523: Deeper and more profound,
 2524: The door of all subtleties!
 2525: #endif /* TWO */
 2526: @end example
 2527: 
 2528: @node Incomplete Lines
 2529: @c @chapter Incomplete Lines
 2530: @chapter 不完全な行
 2531: @cindex incomplete lines
 2532: @cindex full lines
 2533: @cindex newline treatment by @command{diff}
 2534: 
 2535: @c When an input file ends in a non-newline character, its last line is
 2536: @c called an @dfn{incomplete line} because its last character is not a
 2537: @c newline.  All other lines are called @dfn{full lines} and end in a
 2538: @c newline character.  Incomplete lines do not match full lines unless
 2539: @c differences in white space are ignored (@pxref{White Space}).
 2540: @c 
 2541: 入力ファイルが改行ではない文字で終るとき,最後の文字が改行ではないので,
 2542: その最後の行は@dfn{不完全な行(incomplete line)}と呼ばれます.それ以外の
 2543: すべての行は@dfn{完全な行(full lines)}と呼ばれ,改行文字で終ります.空白
 2544: (@pxref{White Space})の差異が無視されない限り,不完全な行は完全な行にマッ
 2545: チしません.
 2546: 
 2547: @c An incomplete line is normally distinguished on output from a full line
 2548: @c by a following line that starts with @samp{\}.  However, the @sc{rcs} format
 2549: @c (@pxref{RCS}) outputs the incomplete line as-is, without any trailing
 2550: @c newline or following line.  The side by side format normally represents
 2551: @c incomplete lines as-is, but in some cases uses a @samp{\} or @samp{/}
 2552: @c gutter marker; @xref{Side by Side}.  The if-then-else line format
 2553: @c preserves a line's incompleteness with @samp{%L}, and discards the
 2554: @c newline with @samp{%l}; @xref{Line Formats}.  Finally, with the
 2555: @c @command{ed} and forward @command{ed} output formats (@pxref{Output Formats})
 2556: @c @command{diff} cannot represent an incomplete line, so it pretends there
 2557: @c was a newline and reports an error.
 2558: @c 
 2559: 不完全な行は,@samp{\}で開始される行が続く完全な行の出力とは,通常区別さ
 2560: れます.しかし,@sc{rcs}書式(@pxref{RCS})では,改行もそれに続く行も用い
 2561: ず,不完全な行をそのまま出力します.並べた書式では,不完全な行を通常その
 2562: まま表示しますが,場合によっては,段の印として@samp{\}や@samp{/}を使用し
 2563: ます.if-then-elseの行の書式は,不完全な行を@samp{%L}で保持し,@samp{%l} 
 2564: で改行を破棄します.@xref{Line Formats}.  最後に,@command{ed}と前置
 2565: @command{ed}出力書式では(@pxref{Output Formats}),@command{diff}は不完全
 2566: な行を表示することが不可能なので,改行があることを要求し,エラーを報告し
 2567: ます.
 2568: 
 2569: @c For example, suppose @file{F} and @file{G} are one-byte files that
 2570: @c contain just @samp{f} and @samp{g}, respectively.  Then @samp{diff F G}
 2571: @c outputs
 2572: @c 
 2573: 例えば,@file{F}と@file{G}が1バイトのファイルで,それぞれ@samp{f}と
 2574: @samp{g}を含んでいると仮定します.そして,@samp{diff F G}は以下を出力し
 2575: ます.
 2576: 
 2577: 
 2578: @example
 2579: 1c1
 2580: < f
 2581: \ No newline at end of file
 2582: ---
 2583: > g
 2584: \ No newline at end of file
 2585: @end example
 2586: 
 2587: @noindent
 2588: @c (The exact message may differ in non-English locales.)
 2589: @c @samp{diff -n F G} outputs the following without a trailing newline:
 2590: @c 
 2591: (正確なメッセージは英語以外のロケールとは異なるでしょう.)@samp{diff -n
 2592: F G}は,改行を後置すること無く以下を出力します.
 2593: 
 2594: @example
 2595: d1 1
 2596: a1 1
 2597: g
 2598: @end example
 2599: 
 2600: @noindent
 2601: @c @samp{diff -e F G} reports two errors and outputs the following:
 2602: @c 
 2603: @samp{diff -e F G}では,二つのエラーを報告し,以下を出力します.
 2604: 
 2605: @example
 2606: 1c
 2607: g
 2608: .
 2609: @end example
 2610: 
 2611: @node Comparing Directories
 2612: @c @chapter Comparing Directories
 2613: @chapter ディレクトリの比較
 2614: 
 2615: @vindex LC_COLLATE
 2616: @c You can use @command{diff} to compare some or all of the files in two
 2617: @c directory trees.  When both file name arguments to @command{diff} are
 2618: @c directories, it compares each file that is contained in both
 2619: @c directories, examining file names in alphabetical order as specified by
 2620: @c the @env{LC_COLLATE} locale category.  Normally
 2621: @c @command{diff} is silent about pairs of files that contain no differences,
 2622: @c but if you use the @option{-s} or @option{--report-identical-files} option,
 2623: @c it reports pairs of identical files.  Normally @command{diff} reports
 2624: @c subdirectories common to both directories without comparing
 2625: @c subdirectories' files, but if you use the @option{-r} or
 2626: @c @option{--recursive} option, it compares every corresponding pair of files
 2627: @c in the directory trees, as many levels deep as they go.
 2628: @c 
 2629: 二つのディレクトリツリーでファイルのいくつかまたはすべてを比較するために,
 2630: @command{diff}を使用することが可能です.@command{diff}への引数が両方とも
 2631: ディレクトリのとき,両方のディレクトリに含まれているそれぞれのファイルを,
 2632: @env{LC_COLLATE}ロケールカテゴリで指定されているように,アルファベット順
 2633: に比較します.通常@command{diff}は,差異の無いファイルの組に対しては何も
 2634: 出力しませんが,@option{-s}や@option{--report-identical-files}オプション
 2635: を使用している場合,同一ファイルの組も報告します.通常@command{diff}は,
 2636: サブディレクトリの比較を行なわず,両方のディレクトリに共通のサブディレク
 2637: トリについて報告しますが,@option{-r}や@option{--recursive}オプションを
 2638: 使用している場合,可能な限り深いレベルまで,ディレクトリツリーの対応する
 2639: ファイルの組ごとに比較をします.
 2640: 
 2641: @c For file names that are in only one of the directories, @command{diff}
 2642: @c normally does not show the contents of the file that exists; it reports
 2643: @c only that the file exists in that directory and not in the other.  You
 2644: @c can make @command{diff} act as though the file existed but was empty in the
 2645: @c other directory, so that it outputs the entire contents of the file that
 2646: @c actually exists.  (It is output as either an insertion or a
 2647: @c deletion, depending on whether it is in the first or the second
 2648: @c directory given.)  To do this, use the @option{-N} or @option{--new-file}
 2649: @c option.
 2650: @c 
 2651: 一方 のディレクトリだけにあるファイル名に対して,@command{diff}は通常,
 2652: 存在するファイルの内容を表示しません.ファイルがディレクトリに存在し,も
 2653: う一方には存在しないことだけを報告します.実際に存在するファイルの内容全
 2654: 部を出力するように,もう一方のディレクトリにファイルは存在するが空のファ
 2655: イルであるかのように,@command{diff}に動作させることも可能です.(該当す
 2656: るものが最初または二番目のディレクトリにあるかどうかに依存して,挿入また
 2657: は削除として出力します.)こうするために,@option{-N}や
 2658: @option{--new-file}オプションを使用してください.
 2659: 
 2660: @c If the older directory contains one or more large files that are not in
 2661: @c the newer directory, you can make the patch smaller by using the
 2662: @c @option{--unidirectional-new-file} option instead of @option{-N}.
 2663: @c This option is like @option{-N} except that it only inserts the contents
 2664: @c of files that appear in the second directory but not the first (that is,
 2665: @c files that were added).  At the top of the patch, write instructions for
 2666: @c the user applying the patch to remove the files that were deleted before
 2667: @c applying the patch.  @xref{Making Patches}, for more discussion of
 2668: @c making patches for distribution.
 2669: @c 
 2670: 古いディレクトリに一つ以上の大きなファイルがあり,新しいディレクトリには
 2671: 無い場合,@option{-N}の代わりに@option{--unidirectional-new-file}を使用
 2672: することで,パッチをより小さくすることが可能です.このオプションは
 2673: @option{-N}に似ていますが,最初のディレクトリには無く二番目ディレクトリ
 2674: にあるファイル(すなわち,追加されたファイル)の内容だけを挿入します.パッ
 2675: チの最初に,ユーザが適用するパッチで,パッチを適用する前に削除されたファ
 2676: イルを削除するように命令を書いてください.配布物へのパッチを作成する議論
 2677: は,@xref{Making Patches}.
 2678: 
 2679: @c To ignore some files while comparing directories, use the @option{-x
 2680: @c @var{pattern}} or @option{--exclude=@var{pattern}} option.  This option
 2681: @c ignores any files or subdirectories whose base names match the shell
 2682: @c pattern @var{pattern}.  Unlike in the shell, a period at the start of
 2683: @c the base of a file name matches a wildcard at the start of a pattern.
 2684: @c You should enclose @var{pattern} in quotes so that the shell does not
 2685: @c expand it.  For example, the option @option{-x '*.[ao]'} ignores any file
 2686: @c whose name ends with @samp{.a} or @samp{.o}.
 2687: @c 
 2688: ディレクトリを比較している間にいくつかのファイルを無視するために,
 2689: @option{-x @var{pattern}}や@option{--exclude=@var{pattern}}オプションを
 2690: 使用してください.このオプションで,シェルのパターン@var{pattern}にマッ
 2691: チするベース名のファイルやサブディレクトリを無視します.シェルとは異なり,
 2692: ファイル名のベースの最初のピリオドはパターンの最初のワイルドカードにマッ
 2693: チします.シェルが展開しないように,@var{pattern}を引用符で囲むべきです.
 2694: 例えば,オプション@option{-x '*.[ao]'}で,@samp{.a}や@samp{.o}で終る名前
 2695: のファイルを無視します.
 2696: 
 2697: @c This option accumulates if you specify it more than once.  For example,
 2698: @c using the options @option{-x 'RCS' -x '*,v'} ignores any file or
 2699: @c subdirectory whose base name is @samp{RCS} or ends with @samp{,v}.
 2700: @c 
 2701: このオプションは一回以上指定した場合は累積されます.例えば,オプション
 2702: @option{-x 'RCS' -x '*,v'}を使用することで,ベース名が@samp{RCS}または
 2703: @samp{,v}で終るファイルやディレクトリを無視します.
 2704: 
 2705: @c If you need to give this option many times, you can instead put the
 2706: @c patterns in a file, one pattern per line, and use the @option{-X
 2707: @c @var{file}} or @option{--exclude-from=@var{file}} option.
 2708: @c 
 2709: このオプションを何回も与える必要がある場合,その代わりにパターンをファイ
 2710: ルに書き,@option{-X @var{file}}や@option{--exclude-from=@var{file}}オプ
 2711: ションを使用することが可能です.
 2712: 
 2713: @c If you have been comparing two directories and stopped partway through,
 2714: @c later you might want to continue where you left off.  You can do this by
 2715: @c using the @option{-S @var{file}} or @option{--starting-file=@var{file}}
 2716: @c option.  This compares only the file @var{file} and all alphabetically
 2717: @c later files in the topmost directory level.
 2718: @c 
 2719: 二つのディレクトリを比較していて途中で停止した場合,その後で残りを続けた
 2720: いこともあるでしょう.@option{-S @var{file}}や
 2721: @option{--starting-file=@var{file}}オプションを使用することで,それが可
 2722: 能です.これで,最上位レベルのディレクトリで,ファイル@var{file}とアルファ
 2723: ベット順でそれ以降のファイルだけを比較します.
 2724: 
 2725: @c If two directories differ only in that file names are lower case in
 2726: @c one directory and upper case in the upper, @command{diff} normally
 2727: @c reports many differences because it compares file names in a
 2728: @c case sensitive way.  With the @option{--ignore-file-name-case} option,
 2729: @c @command{diff} ignores case differences in file names, so that for example
 2730: @c the contents of the file @file{Tao} in one directory are compared to
 2731: @c the contents of the file @file{TAO} in the other.  The
 2732: @c @option{--no-ignore-file-name-case} option cancels the effect of the
 2733: @c @option{--ignore-file-name-case} option, reverting to the default
 2734: @c behavior.
 2735: @c 
 2736: 二つのディレクトリで,ファイル名が一方のディレクトリでは小文字で,もう一
 2737: 方では大文字になっているという差しかない場合,@command{diff}は通常,大文
 2738: 字小文字を区別してファイル名を比較するので,多くの差異を報告します.
 2739: @option{--ignore-file-name-case}オプションを用いると,例えば一方のディレ
 2740: クトリのファイル@file{Tao}の内容と,もう一方のファイル@file{TAO}の内容を
 2741: 比較するように,@command{diff}はファイル名の大文字小文字を無視します.
 2742: @option{--no-ignore-file-name-case}オプションで,
 2743: @option{--ignore-file-name-case}オプションの効果を停止し,デフォルトの動
 2744: 作に戻ります.
 2745: 
 2746: @c If an @option{-x @var{pattern}}, @option{--exclude=@var{pattern}},
 2747: @c @option{-X @var{file}}, or @option{--exclude-from=@var{file}} option
 2748: @c is specified while the @option{--ignore-file-name-case} option is in
 2749: @c effect, case is ignored when excluding file names matching the
 2750: @c specified patterns.
 2751: @c 
 2752: @option{--ignore-file-name-case}が効果があるときに,@option{-x
 2753: @var{pattern}},@option{--exclude=@var{pattern}},@option{-X @var{file}},
 2754: または@option{--exclude-from=@var{file}}オプションが指定されている場合,
 2755: 指定されているパターンにマッチしたファイル名を除外するとき,大文字小文字
 2756: を無視します.
 2757: 
 2758: @node Adjusting Output
 2759: @c @chapter Making @command{diff} Output Prettier
 2760: @chapter @command{diff}の出力をより良くする
 2761: 
 2762: @c @command{diff} provides several ways to adjust the appearance of its output.
 2763: @c These adjustments can be applied to any output format.
 2764: @c 
 2765: @command{diff}は,出力の見え方を調整する方法をいくつかの提供しています.
 2766: これらの調整は,あらゆる出力書式に適用することが可能です.
 2767: 
 2768: @menu
 2769: * Tabs::       Preserving the alignment of tab stops.
 2770: * Pagination:: Page numbering and time-stamping @command{diff} output.
 2771: @end menu
 2772: 
 2773: @node Tabs
 2774: @c @section Preserving Tab Stop Alignment
 2775: @section タブストップの位置合わせを保持する
 2776: @cindex tab stop alignment
 2777: @cindex aligning tab stops
 2778: 
 2779: @c The lines of text in some of the @command{diff} output formats are preceded
 2780: @c by one or two characters that indicate whether the text is inserted,
 2781: @c deleted, or changed.  The addition of those characters can cause tabs to
 2782: @c move to the next tab stop, throwing off the alignment of columns in the
 2783: @c line.  @sc{gnu} @command{diff} provides two ways to make tab-aligned columns
 2784: @c line up correctly.
 2785: @c 
 2786: いくつかの@command{diff}出力書式のテキストには,テキストが挿入されている,
 2787: 削除されている,または変更されていることを示す一文字または二文字が前置さ
 2788: れます.これらの文字を追加することで,タブが次のタブストップに移動し,行
 2789: での列の位置揃えがなくなります.@sc{gnu} @command{diff}は,行でのタブに
 2790: よる列の位置揃えを正しくする二つの方法を提供しています.
 2791: 
 2792: @c The first way is to have @command{diff} convert all tabs into the correct
 2793: @c number of spaces before outputting them; select this method with the
 2794: @c @option{-t} or @option{--expand-tabs} option.  @command{diff} assumes that
 2795: @c tab stops are set every 8 print columns.  To use this form of output with
 2796: @c @command{patch}, you must give @command{patch} the @option{-l} or
 2797: @c @option{--ignore-white-space} option (@pxref{Changed White Space}, for more
 2798: @c information).
 2799: @c 
 2800: 最初の方法は,@command{diff}で出力する前に,すべてのタブを正しい数のスペー
 2801: スに変更することです.この手法は@option{-t}や@option{--expand-tabs}オプ
 2802: ションで選択してください.@command{diff}はタブストップを8列ごとに設定さ
 2803: れていると仮定します.この形式の出力を@command{patch}で使用するとき,
 2804: @command{patch}に@option{-l}や@option{--ignore-white-space}オプションを
 2805: 与える必要があります(詳細は,@pxref{Changed White Space}).
 2806: 
 2807: @c The other method for making tabs line up correctly is to add a tab
 2808: @c character instead of a space after the indicator character at the
 2809: @c beginning of the line.  This ensures that all following tab characters
 2810: @c are in the same position relative to tab stops that they were in the
 2811: @c original files, so that the output is aligned correctly.  Its
 2812: @c disadvantage is that it can make long lines too long to fit on one line
 2813: @c of the screen or the paper.  It also does not work with the unified
 2814: @c output format, which does not have a space character after the change
 2815: @c type indicator character.  Select this method with the @option{-T} or
 2816: @c @option{--initial-tab} option.
 2817: @c 
 2818: タブの行の揃えを正しくするもう一つの方法は,スペースの代わりにタブを,行
 2819: の最初の指示文字の後に追加する方法です.これで,それ以下のすべてのタブ文
 2820: 字が元のファイルでのタブストップに対応して,出力の位置会わせが正しくなる
 2821: ように,同じ場所に確実に位置します.その欠点は,行が余りに長くなり過ぎて,
 2822: 画面や用紙の一行に適さないようになることです.また,一体化した出力書式で
 2823: は変更形式を示す文字の後にスペースがないので,これでも動作しません.この
 2824: 手法は,@option{-T}や@option{--initial-tab}オプションで選択してください.
 2825: 
 2826: @node Pagination
 2827: @c @section Paginating @command{diff} Output
 2828: @section @command{diff}出力のページ分割
 2829: @cindex paginating @command{diff} output
 2830: 
 2831: @c It can be convenient to have long output page-numbered and time-stamped.
 2832: @c The @option{-l} and @option{--paginate} options do this by sending the
 2833: @c @command{diff} output through the @command{pr} program.  Here is what the page
 2834: @c header might look like for @samp{diff -lc lao tzu}:
 2835: @c 
 2836: 長い出力にページ番号を付けたり,タイムスタンプを付けることも便利でしょう.
 2837: @command{diff}の出力を@command{pr}プログラムに渡す,@option{-l}と
 2838: @option{--paginate}オプションでこうなります.以下は,@samp{diff -lc lao
 2839: tzu}に対するヘッダのようなものです.
 2840: 
 2841: @example
 2842: 2002-02-22 14:20                 diff -lc lao tzu                 Page 1
 2843: @end example
 2844: 
 2845: @node diff Performance
 2846: @c @chapter @command{diff} Performance Tradeoffs
 2847: @chapter @command{diff}の性能のトレードオフ
 2848: @cindex performance of @command{diff}
 2849: 
 2850: @c @sc{gnu} @command{diff} runs quite efficiently; however, in some circumstances
 2851: @c you can cause it to run faster or produce a more compact set of changes.
 2852: @c 
 2853: @sc{gnu} @command{diff}は効率的に動作します.しかし,状況によってはより
 2854: 速く,より小さな変更の組を生成させることが可能です.
 2855: 
 2856: @c One way to improve @command{diff} performance is to use hard or
 2857: @c symbolic links to files instead of copies.  This improves performance
 2858: @c because @command{diff} normally does not need to read two hard or
 2859: @c symbolic links to the same file, since their contents must be
 2860: @c identical.  For example, suppose you copy a large directory hierarchy,
 2861: @c make a few changes to the copy, and then often use @samp{diff -r} to
 2862: @c compare the original to the copy.  If the original files are
 2863: @c read-only, you can greatly improve performance by creating the copy
 2864: @c using hard or symbolic links (e.g., with @sc{gnu} @samp{cp -lR} or
 2865: @c @samp{cp -sR}).  Before editing a file in the copy for the first time,
 2866: @c you should break the link and replace it with a regular copy.
 2867: @c 
 2868: @command{diff}の効率を改善する方法の一つは,コピーの代わりにハードリンク
 2869: やシンボリックリンクを使用することです.@command{diff}は通常,同じファイ
 2870: ルへの二つのハードリンクやシンボリックリンクは内容が同じはずなので読み込
 2871: む必要がないため,これで効率が改善します.例えば,大きなディレクトリ階層
 2872: をコピーして,コピーに対しいくつか変更して,そしてオリジナルとコピーを比
 2873: 較するのに@samp{diff -r}を使用することが多いと仮定します.オリジナルのファ
 2874: イルが読み込み専用の場合,ハードリンクやシンボリックリンクを使用してコピー
 2875: を作成する(例えば,@sc{gnu} @samp{cp -lR}や@samp{cp -sR}を用いる)ことで,
 2876: 効率をかなり改善することが可能です.コピーのファイルを最初に編集する前に,
 2877: リンクを切って,通常のコピーで置換すべきです.
 2878: 
 2879: @c You can also affect the performance of @sc{gnu} @command{diff} by
 2880: @c giving it options that change the way it compares files.
 2881: @c Performance has more than one dimension.  These options improve one
 2882: @c aspect of performance at the cost of another, or they improve
 2883: @c performance in some cases while hurting it in others.
 2884: @c 
 2885: ファイル比較の方法を変更するオプションを与えることで,@sc{gnu}
 2886: @command{diff}の効率に影響を与えることも可能です.これらのオプションは,
 2887: 他のものを犠牲にして効率改善の見地で実装されていたり,他のものに害を与え
 2888: ながら,場合によっては効率を改善したりします.
 2889: 
 2890: @c The way that @sc{gnu} @command{diff} determines which lines have changed always
 2891: @c comes up with a near-minimal set of differences.  Usually it is good
 2892: @c enough for practical purposes.  If the @command{diff} output is large, you
 2893: @c might want @command{diff} to use a modified algorithm that sometimes
 2894: @c produces a smaller set of differences.  The @option{-d} or
 2895: @c @option{--minimal} option does this; however, it can also cause
 2896: @c @command{diff} to run more slowly than usual, so it is not the default
 2897: @c behavior.
 2898: @c 
 2899: @sc{gnu} @command{diff}が変更された行を決定する方法は,常に最小限の差異
 2900: の集合で見つけ出します.通常それは,実用的な目的としては十分です.
 2901: @command{diff}の出力が大きい場合,より小さな差異の集合を生成するために,
 2902: @command{diff}を修正されたアルゴリズムで使用したいかもしれません.
 2903: @option{-d}や@option{--minimal}でこうなります.しかし,通常は
 2904: @command{diff}の実行が遅くなるので,デフォルトの動作ではありません.
 2905: 
 2906: @c When the files you are comparing are large and have small groups of
 2907: @c changes scattered throughout them, you can use the
 2908: @c @option{--speed-large-files} option to make a different modification to
 2909: @c the algorithm that @command{diff} uses.  If the input files have a constant
 2910: @c small density of changes, this option speeds up the comparisons without
 2911: @c changing the output.  If not, @command{diff} might produce a larger set of
 2912: @c differences; however, the output will still be correct.
 2913: @c 
 2914: 比較しているファイルが大きく,全体を通じて変更部分の小さな集合が点在して
 2915: いるとき,@command{diff}が使用するアルゴリズムとは異なる変更を行なう,
 2916: @option{--speed-large-files}を使用することも可能です.入力ファイルが一定
 2917: して小さな密度で変更されているとき,このオプションで出力を変更することな
 2918: く比較の速度が向上します.そうでない場合,@command{diff}は大きな差異の組
 2919: を生成するかもしれません.しかし,出力は正しいままです.
 2920: 
 2921: @c Normally @command{diff} discards the prefix and suffix that is common to
 2922: @c both files before it attempts to find a minimal set of differences.
 2923: @c This makes @command{diff} run faster, but occasionally it may produce
 2924: @c non-minimal output.  The @option{--horizon-lines=@var{lines}} option
 2925: @c prevents @command{diff} from discarding the last @var{lines} lines of the
 2926: @c prefix and the first @var{lines} lines of the suffix.  This gives
 2927: @c @command{diff} further opportunities to find a minimal output.
 2928: @c 
 2929: 通常@command{diff}は,差異部分の最小組を見つけようとする前に,両方のファ
 2930: イルに共通な最初の部分と終りの部分を破棄します.これで@command{diff}の実
 2931: 行は速くなりますが,最小の出力ではなくなることもあるでしょう.
 2932: @option{--horizon-lines=@var{lines}}オプションは,@command{diff}が最初の
 2933: 部分の最後の@var{lines}行と終りの部分の最初の@var{lines}行を破棄すること
 2934: を妨げます.これで,@command{diff}はより最小の出力を見つけることになるで
 2935: しょう.
 2936: 
 2937: @c Suppose a run of changed lines includes a sequence of lines at one end
 2938: @c and there is an identical sequence of lines just outside the other end.
 2939: @c The @command{diff} command is free to choose which identical sequence is
 2940: @c included in the hunk.  In this case, @command{diff} normally shifts the
 2941: @c hunk's boundaries when this merges adjacent hunks, or shifts a hunk's
 2942: @c lines towards the end of the file.  Merging hunks can make the output
 2943: @c look nicer in some cases.
 2944: @c 
 2945: 変更された行に連続する行が含まれていて,それ以外では同一行が連続している
 2946: と仮定してください.@command{diff}コマンドは,hunkに含まれてる連続した同
 2947: じ部分を自由に選択します.この場合,@command{diff}は通常,隣接するhunkを
 2948: マージするときはhunkの境界の位置を変更したり,hunkの行をファイルの終りま
 2949: で位置を変更したりします.hunkのマージは出力行の見栄えを良くすることもあ
 2950: るはずです.
 2951: 
 2952: @node Comparing Three Files
 2953: @c @chapter Comparing Three Files
 2954: @chapter 三つのファイルの比較
 2955: @cindex comparing three files
 2956: @cindex format of @command{diff3} output
 2957: 
 2958: @c Use the program @command{diff3} to compare three files and show any
 2959: @c differences among them.  (@command{diff3} can also merge files; see
 2960: @c @ref{diff3 Merging}).
 2961: @c 
 2962: 三つのファイルを比較し,それらの間の差異を表示するため,プログラム
 2963: @command{diff3}を使用してください(@command{diff3}でファイルのマージも可
 2964: 能です.@pxref{diff3 Merging}).
 2965: 
 2966: @c The ``normal'' @command{diff3} output format shows each hunk of
 2967: @c differences without surrounding context.  Hunks are labeled depending
 2968: @c on whether they are two-way or three-way, and lines are annotated by
 2969: @c their location in the input files.
 2970: @c 
 2971: ``通常の''@command{diff3}の出力書式は,周りの文を用いずに,それぞれの差
 2972: 異部分のhunkを表示します.hunkには,それが二方向か三方向かに依存してラベ
 2973: ルが付けられてて,行には,入力ファイルの位置で注釈がつきます.
 2974: 
 2975: @c @xref{Invoking diff3}, for more information on how to run @command{diff3}.
 2976: @c 
 2977: @command{diff3}の実行方法の詳細は,@xref{Invoking diff3}.
 2978: 
 2979: @menu
 2980: * Sample diff3 Input::    Sample @command{diff3} input for examples.
 2981: * Detailed diff3 Normal:: A detailed description of normal output format.
 2982: * diff3 Hunks::           The format of normal output format.
 2983: * Example diff3 Normal::  Sample output in the normal format.
 2984: @end menu
 2985: 
 2986: @node Sample diff3 Input
 2987: @c @section A Third Sample Input File
 2988: @section 三番目の入力ファイルの見本
 2989: @cindex @command{diff3} sample input
 2990: @cindex sample input for @command{diff3}
 2991: 
 2992: @c Here is a third sample file that will be used in examples to illustrate
 2993: @c the output of @command{diff3} and how various options can change it.  The
 2994: @c first two files are the same that we used for @command{diff} (@pxref{Sample
 2995: @c diff Input}).  This is the third sample file, called @file{tao}:
 2996: @c 
 2997: @command{diff3}の出力とオプションでそれを変更する様子を示す例で使用する
 2998: 三番目のサンプルファイルは,以下のようになります.最初の二つのファイルは,
 2999: @command{diff}で使用したものと同じです(@pxref{Sample diff Input}).以下
 3000: は,@file{tao}という三番目のサンプルファイルです.
 3001: 
 3002: @example
 3003: The Way that can be told of is not the eternal Way;
 3004: The name that can be named is not the eternal name.
 3005: The Nameless is the origin of Heaven and Earth;
 3006: The named is the mother of all things.
 3007: 
 3008: Therefore let there always be non-being,
 3009:   so we may see their subtlety,
 3010: And let there always be being,
 3011:   so we may see their result.
 3012: The two are the same,
 3013: But after they are produced,
 3014:   they have different names.
 3015: 
 3016:   -- The Way of Lao-Tzu, tr. Wing-tsit Chan
 3017: @end example
 3018: 
 3019: @node Detailed diff3 Normal
 3020: @c @section Detailed Description of @command{diff3} Normal Format
 3021: @section @command{diff3}の通常の書式の詳細な説明
 3022: 
 3023: @c Each hunk begins with a line marked @samp{====}.  Three-way hunks have
 3024: @c plain @samp{====} lines, and two-way hunks have @samp{1}, @samp{2}, or
 3025: @c @samp{3} appended to specify which of the three input files differ in
 3026: @c that hunk.  The hunks contain copies of two or three sets of input
 3027: @c lines each preceded by one or two commands identifying where the lines
 3028: @c came from.
 3029: @c 
 3030: それぞれのhunkは@samp{====}で印がついた行で始まります.三方向のhunkには,
 3031: @samp{====}行があり,二方向のhunkには,そのhunkに差異のある三つの入力ファ
 3032: イルのいずれかを示す,@samp{1},@samp{2},または@samp{3}が後置されます.
 3033: hunkには,入力行がどこからのものかを示す一つまたは二つのコマンドが前置さ
 3034: れている,入力行の二つまたは三つの組のコピーが含まれます.
 3035: 
 3036: @c Normally, two spaces precede each copy of an input line to distinguish
 3037: @c it from the commands.  But with the @option{-T} or @option{--initial-tab}
 3038: @c option, @command{diff3} uses a tab instead of two spaces; this lines up
 3039: @c tabs correctly.  @xref{Tabs}, for more information.
 3040: @c 
 3041: 通常,コマンドごとに異なる入力号のコピーに二つのスペースが前置されます.
 3042: しかし,@option{-T}や@option{--initial-tab}オプションを用いると,
 3043: @command{diff3}は二つのスペースの代わりにタブを使用します.これでタブの
 3044: 行揃えは正しくなります.詳細は,@xref{Tabs}.
 3045: 
 3046: @c Commands take the following forms:
 3047: @c 
 3048: コマンドは以下の形式となります.
 3049: 
 3050: @table @samp
 3051: @item @var{file}:@var{l}a
 3052: @c This hunk appears after line @var{l} of file @var{file}, and
 3053: @c contains no lines in that file.  To edit this file to yield the other
 3054: @c files, one must append hunk lines taken from the other files.  For
 3055: @c example, @samp{1:11a} means that the hunk follows line 11 in the first
 3056: @c file and contains no lines from that file.
 3057: @c 
 3058: このhunkは,ファイル@var{file}の行@var{l}以降にあり,そのファイルに含ま
 3059: れていない行です.もう一方のファイルを生成するべくこのファイルを編集する
 3060: ため,もう一方のファイルから得られるhunk行を後置する必要があります.例え
 3061: ば,@samp{1:11a}は最初のファイルの11行以降のhunkで,そのファイルにその行
 3062: が含まれていないことを意味します.
 3063: 
 3064: @item @var{file}:@var{r}c
 3065: @c This hunk contains the lines in the range @var{r} of file @var{file}.
 3066: @c The range @var{r} is a comma-separated pair of line numbers, or just one
 3067: @c number if the range is a singleton.  To edit this file to yield the
 3068: @c other files, one must change the specified lines to be the lines taken
 3069: @c from the other files.  For example, @samp{2:11,13c} means that the hunk
 3070: @c contains lines 11 through 13 from the second file.
 3071: @c 
 3072: このhunkは,ファイル@var{file}の範囲@var{r}の行を含みます.範囲@var{r}は
 3073: カンマで分離されている行番号の組,または範囲が単一行の場合,一つの数字だ
 3074: けになります.もう一方のファイルを生成するべくこのファイルを編集するため,
 3075: 指定された行を,もう一方のファイルから得られる行に変更する必要があります.
 3076: 例えば,@samp{2:11,13c}は,hunkが二番目のファイルの11行から13行に含まれ
 3077: ていることを意味します.
 3078: @end table
 3079: 
 3080: @c If the last line in a set of input lines is incomplete
 3081: @c (@pxref{Incomplete Lines}), it is distinguished on output from a full
 3082: @c line by a following line that starts with @samp{\}.
 3083: @c 
 3084: 入力行の組の最後の行が不完全な場合(@pxref{Incomplete Lines}),出力とは区
 3085: 別される@samp{\}で始まる行が後置された完全な行になります.
 3086: 
 3087: @node diff3 Hunks
 3088: @c @section @command{diff3} Hunks
 3089: @section @command{diff3}のhunk
 3090: @cindex hunks for @command{diff3}
 3091: @cindex @command{diff3} hunks
 3092: 
 3093: @c Groups of lines that differ in two or three of the input files are
 3094: @c called @dfn{diff3 hunks}, by analogy with @command{diff} hunks
 3095: @c (@pxref{Hunks}).  If all three input files differ in a @command{diff3}
 3096: @c hunk, the hunk is called a @dfn{three-way hunk}; if just two input files
 3097: @c differ, it is a @dfn{two-way hunk}.
 3098: @c 
 3099: 二つまたは三つの入力ファイルの差分の行のグループは,@dfn{diff3 hunks}と
 3100: 呼ばれ,@command{diff}のhunkに似ています(@pxref{Hunks}).@command{diff3} 
 3101: のhunkで三つの入力ファイルがすべて異なる場合,hunkは@dfn{三方向の
 3102: hunk(three-way hunk)}と呼ばれます.二つの入力ファイルだけが異なる場合,
 3103: それは@dfn{二方向のhunk(two-way hunk)}.
 3104: 
 3105: @c As with @command{diff}, several solutions are possible.  When comparing the
 3106: @c files @samp{A}, @samp{B}, and @samp{C}, @command{diff3} normally finds
 3107: @c @command{diff3} hunks by merging the two-way hunks output by the two
 3108: @c commands @samp{diff A B} and @samp{diff A C}.  This does not necessarily
 3109: @c minimize the size of the output, but exceptions should be rare.
 3110: @c 
 3111: @command{diff}と同様に,いくつかの解が考えられます.ファイル@samp{A},
 3112: @samp{B},そして@samp{C}を比較するとき, @command{diff3}は通常,二つのコ
 3113: マンド@samp{diff A B}と@samp{diff A C}で出力される二方向のhunkをマージし
 3114: て,@command{diff3}のhunkを見つけます.これでは,必ずしも出力が最小にな
 3115: るわけではありませんが,例外は滅多にないでしょう.
 3116: 
 3117: @c For example, suppose @file{F} contains the three lines @samp{a},
 3118: @c @samp{b}, @samp{f}, @file{G} contains the lines @samp{g}, @samp{b},
 3119: @c @samp{g}, and @file{H} contains the lines @samp{a}, @samp{b},
 3120: @c @samp{h}.  @samp{diff3 F G H} might output the following:
 3121: @c 
 3122: 例えば,@file{F}には三行@samp{a},@samp{b},@samp{f}が含まれていて,
 3123: @file{G}に@samp{g},@samp{b},@samp{g}という行が含まれていて,そして
 3124: @file{H}に@samp{a},@samp{b},@samp{h}という行が含まれていると仮定します.
 3125: @samp{diff3 F G H}の出力は以下のようになるでしょう.
 3126: 
 3127: @example
 3128: ====2
 3129: 1:1c
 3130: 3:1c
 3131:   a
 3132: 2:1c
 3133:   g
 3134: ====
 3135: 1:3c
 3136:   f
 3137: 2:3c
 3138:   g
 3139: 3:3c
 3140:   h
 3141: @end example
 3142: 
 3143: @noindent
 3144: @c because it found a two-way hunk containing @samp{a} in the first and
 3145: @c third files and @samp{g} in the second file, then the single line
 3146: @c @samp{b} common to all three files, then a three-way hunk containing
 3147: @c the last line of each file.
 3148: @c 
 3149: その理由は,最初のファイルと三番目のファイルの@samp{a}が含まれる二方向の
 3150: hunkと二番目のファイルの@samp{g}を見つけ,単一行の@samp{b}が三つのファイ
 3151: ルすべての共通行として見つかり,それぞれのファイルの最後の行に含まれる三
 3152: 方向のhunkが見つかるためです.
 3153: 
 3154: @node Example diff3 Normal
 3155: @c @section An Example of @command{diff3} Normal Format
 3156: @section @command{diff3}の通常の書式の例
 3157: 
 3158: @c Here is the output of the command @samp{diff3 lao tzu tao}
 3159: @c (@pxref{Sample diff3 Input}, for the complete contents of the files).
 3160: @c Notice that it shows only the lines that are different among the three
 3161: @c files.
 3162: @c 
 3163: コマンド@samp{diff3 lao tzu tao}の出力は以下のようになります(ファイルの
 3164: 完全な内容は@pxref{Sample diff3 Input}).三つのファイル間で差異のある行
 3165: だけが表示されていることに注意してください.
 3166: 
 3167: @example
 3168: ====2
 3169: 1:1,2c
 3170: 3:1,2c
 3171:   The Way that can be told of is not the eternal Way;
 3172:   The name that can be named is not the eternal name.
 3173: 2:0a
 3174: ====1
 3175: 1:4c
 3176:   The Named is the mother of all things.
 3177: 2:2,3c
 3178: 3:4,5c
 3179:   The named is the mother of all things.
 3180:   
 3181: ====3
 3182: 1:8c
 3183: 2:7c
 3184:     so we may see their outcome.
 3185: 3:9c
 3186:     so we may see their result.
 3187: ====
 3188: 1:11a
 3189: 2:11,13c
 3190:   They both may be called deep and profound.
 3191:   Deeper and more profound,
 3192:   The door of all subtleties!
 3193: 3:13,14c
 3194:   
 3195:     -- The Way of Lao-Tzu, tr. Wing-tsit Chan
 3196: @end example
 3197: 
 3198: @node diff3 Merging
 3199: @c @chapter Merging From a Common Ancestor
 3200: @chapter 共通の先祖からマージ
 3201: @cindex merging from a common ancestor
 3202: 
 3203: @c When two people have made changes to copies of the same file,
 3204: @c @command{diff3} can produce a merged output that contains both sets of
 3205: @c changes together with warnings about conflicts.
 3206: @c 
 3207: 二人の人が同じファイルのコピーへの変更を行なったとき,衝突している部分の
 3208: 警告を用いて,お互いの変更の両方を含んでいるマージされた出力を
 3209: @command{diff3}で生成することが可能です.
 3210: 
 3211: @c One might imagine programs with names like @command{diff4} and @command{diff5}
 3212: @c to compare more than three files simultaneously, but in practice the
 3213: @c need rarely arises.  You can use @command{diff3} to merge three or more
 3214: @c sets of changes to a file by merging two change sets at a time.
 3215: @c 
 3216: 三つ以上のファイルを同時に比較するために,@command{diff4}と
 3217: @command{diff5}のような名前のプログラムを想像するかもしれませんが,実際
 3218: にそれが必要になることは滅多にありません.二つの変更の組を同時にマージす
 3219: ることで,三つ以上のファイルの変更の組をマージするために,
 3220: @command{diff3}を使用することが可能です.
 3221: 
 3222: @c @command{diff3} can incorporate changes from two modified versions into a
 3223: @c common preceding version.  This lets you merge the sets of changes
 3224: @c represented by the two newer files.  Specify the common ancestor version
 3225: @c as the second argument and the two newer versions as the first and third
 3226: @c arguments, like this:
 3227: @c 
 3228: @command{diff3}で,二つの修正されたバージョンから共通の以前のバージョン
 3229: に変更を取り込むことが可能です.これで,二つの新しいファイルに存在する変
 3230: 更された組をマージします.二番目の引数として共通の以前のバージョンを指定
 3231: し,二つの新しいバージョンを最初と三番目の引数として以下のように指定して
 3232: ください.
 3233: 
 3234: @example
 3235: diff3 @var{mine} @var{older} @var{yours}
 3236: @end example
 3237: 
 3238: @noindent
 3239: @c You can remember the order of the arguments by noting that they are in
 3240: @c alphabetical order.
 3241: @c 
 3242: アルファベット順なので,引数の順番を覚えられるでしょう.
 3243: 
 3244: @cindex conflict
 3245: @cindex overlap
 3246: @c You can think of this as subtracting @var{older} from @var{yours} and
 3247: @c adding the result to @var{mine}, or as merging into @var{mine} the
 3248: @c changes that would turn @var{older} into @var{yours}.  This merging is
 3249: @c well-defined as long as @var{mine} and @var{older} match in the
 3250: @c neighborhood of each such change.  This fails to be true when all three
 3251: @c input files differ or when only @var{older} differs; we call this
 3252: @c a @dfn{conflict}.  When all three input files differ, we call the
 3253: @c conflict an @dfn{overlap}.
 3254: @c 
 3255: このことから,@var{yours}から@var{older}を取り除いてその結果を@var{mine} 
 3256: に追加したり,@var{older}から@var{yours}への変更を@var{mine}にマージして
 3257: いると考えられるでしょう.このマージは,それぞれの変更が近くにあり, 
 3258: @var{mine}と@var{older}でマッチする限りうまくいくでしょう.すべての三つ
 3259: の入力ファイルが異なっているときや,@var{older}だけが異なっているときは
 3260: うまくいかないでしょう.これを@dfn{衝突(conflict)}と呼んでいます.三つの
 3261: 入力ファイルがすべて異なるとき,この衝突を@dfn{オーバーラップ(overlap)} 
 3262: と呼んでいます.
 3263: 
 3264: @c @command{diff3} gives you several ways to handle overlaps and conflicts.
 3265: @c You can omit overlaps or conflicts, or select only overlaps,
 3266: @c or mark conflicts with special @samp{<<<<<<<} and @samp{>>>>>>>} lines.
 3267: @c 
 3268: @command{diff3}は,オーバーラップや衝突を処理する方法も提供しています.
 3269: オーバーラップや衝突を削除したり,オーバーラップだけを選択したり,衝突を
 3270: 特殊な@samp{<<<<<<<}と@samp{>>>>>>>}の行で印を付けたりすることが可能です.
 3271: 
 3272: @c @command{diff3} can output the merge results as an @command{ed} script that
 3273: @c that can be applied to the first file to yield the merged output.
 3274: @c However, it is usually better to have @command{diff3} generate the merged
 3275: @c output directly; this bypasses some problems with @command{ed}.
 3276: @c 
 3277: @command{diff3}で,マージした出力を作成するために最初のファイルに適用す
 3278: ることが可能な@command{ed}スクリプトとして,マージした結果を出力すること
 3279: も可能です.しかし,@command{diff3}でマージした出力を直接生成した方が良
 3280: いでしょう.これで@command{ed}の問題も回避します.
 3281: 
 3282: 
 3283: @menu
 3284: * Which Changes::            Selecting changes to incorporate.
 3285: * Marking Conflicts::        Marking conflicts.
 3286: * Bypassing ed::             Generating merged output directly.
 3287: * Merging Incomplete Lines:: How @command{diff3} merges incomplete lines.
 3288: * Saving the Changed File::  Emulating System V behavior.
 3289: @end menu
 3290: 
 3291: @node Which Changes
 3292: @c @section Selecting Which Changes to Incorporate
 3293: @section 組み込む変更を選択する
 3294: @cindex overlapping change, selection of
 3295: @cindex unmerged change
 3296: 
 3297: @c You can select all unmerged changes from @var{older} to @var{yours} for merging
 3298: @c into @var{mine} with the @option{-e} or @option{--ed} option.  You can
 3299: @c select only the nonoverlapping unmerged changes with @option{-3} or
 3300: @c @option{--easy-only}, and you can select only the overlapping changes with
 3301: @c @option{-x} or @option{--overlap-only}.
 3302: @c 
 3303: @var{mine}にマージするために,@option{-e}や@option{--ed}を用いて,
 3304: @var{older}から@var{yours}へのマージされていないすべての変更を選択するこ
 3305: とが可能です.@option{-3}や@option{--easy-only}を用いて,オーバーラップ
 3306: のないマージされていない変更だけを選択することが可能で,@option{-x}や
 3307: @option{--overlap-only}を用いて,オーバーラップされている変更だけを選択
 3308: することも可能です.
 3309: 
 3310: @c The @option{-e}, @option{-3} and @option{-x} options select only
 3311: @c @dfn{unmerged changes}, i.e.@: changes where @var{mine} and @var{yours}
 3312: @c differ; they ignore changes from @var{older} to @var{yours} where
 3313: @c @var{mine} and @var{yours} are identical, because they assume that such
 3314: @c changes have already been merged.  If this assumption is not a safe
 3315: @c one, you can use the @option{-A} or @option{--show-all} option
 3316: @c (@pxref{Marking Conflicts}).
 3317: @c 
 3318: @option{-e},@option{-3},そして@option{-x}オプションは,@dfn{マージされ
 3319: ていない変更(unmerged changes)},例えば,@var{mine}と@var{yours}で変更が
 3320: 異なるところだけを選択します.@var{mine}と@var{yours}が同じところでは,
 3321: 変更部分は既にマージされていると仮定されるので,@var{older}から
 3322: @var{yours}への変更を無視します.この仮定が安全ではない場合,@option{-A} 
 3323: や@option{--show-all}オプションを使用することが可能です(@pxref{Marking
 3324: Conflicts}).
 3325: 
 3326: @c Here is the output of the command @command{diff3} with each of these three
 3327: @c options (@pxref{Sample diff3 Input}, for the complete contents of the files).
 3328: @c Notice that @option{-e} outputs the union of the disjoint sets of changes
 3329: @c output by @option{-3} and @option{-x}.
 3330: @c 
 3331: これら三つのオプションをそれぞれ用いたコマンド@command{diff3}の出力例は
 3332: 以下のようになります(ファイルの完全な内容は,@pxref{Sample diff3 Input}).
 3333: @option{-e}の出力が@option{-3}と@option{-x}で出力される変更の組をバラし
 3334: て合体させたものになっていることに注意してください.
 3335: 
 3336: @c Output of @samp{diff3 -e lao tzu tao}:
 3337: @c 
 3338: @samp{diff3 -e lao tzu tao}の出力です.
 3339: @example
 3340: 11a
 3341: 
 3342:   -- The Way of Lao-Tzu, tr. Wing-tsit Chan
 3343: .
 3344: 8c
 3345:   so we may see their result.
 3346: .
 3347: @end example
 3348: 
 3349: @c Output of @samp{diff3 -3 lao tzu tao}:
 3350: @c 
 3351: @samp{diff3 -3 lao tzu tao}の出力です.
 3352: @example
 3353: 8c
 3354:   so we may see their result.
 3355: .
 3356: @end example
 3357: 
 3358: @c Output of @samp{diff3 -x lao tzu tao}:
 3359: @c 
 3360: @samp{diff3 -x lao tzu tao}の出力です.
 3361: @example
 3362: 11a
 3363: 
 3364:   -- The Way of Lao-Tzu, tr. Wing-tsit Chan
 3365: .
 3366: @end example
 3367: 
 3368: @node Marking Conflicts
 3369: @c @section Marking Conflicts
 3370: @section 衝突の印づけ
 3371: @cindex conflict marking
 3372: @cindex @samp{<<<<<<<} for marking conflicts
 3373: 
 3374: @c @command{diff3} can mark conflicts in the merged output by
 3375: @c bracketing them with special marker lines.  A conflict
 3376: @c that comes from two files @var{A} and @var{B} is marked as follows:
 3377: @c 
 3378: @command{diff3}で,衝突部分に特殊なマーカー行を用いてマージされた出力を
 3379: 囲むことで,印を付けることが可能です.二つのファイル@var{A}と@var{B}から
 3380: の衝突は,以下のように印が付きます.
 3381: 
 3382: @example
 3383: <<<<<<< @var{A}
 3384: @r{lines from @var{A}}
 3385: =======
 3386: @r{lines from @var{B}}
 3387: >>>>>>> @var{B}
 3388: @end example
 3389: 
 3390: @c A conflict that comes from three files @var{A}, @var{B} and @var{C} is
 3391: @c marked as follows:
 3392: @c 
 3393: 三つのファイル@var{A},@var{B}そして@var{C}からの衝突は,以下のように印
 3394: が付きます.
 3395: 
 3396: @example
 3397: <<<<<<< @var{A}
 3398: @r{lines from @var{A}}
 3399: ||||||| @var{B}
 3400: @r{lines from @var{B}}
 3401: =======
 3402: @r{lines from @var{C}}
 3403: >>>>>>> @var{C}
 3404: @end example
 3405: 
 3406: @c The @option{-A} or @option{--show-all} option acts like the @option{-e}
 3407: @c option, except that it brackets conflicts, and it outputs all changes
 3408: @c from @var{older} to @var{yours}, not just the unmerged changes.  Thus,
 3409: @c given the sample input files (@pxref{Sample diff3 Input}), @samp{diff3
 3410: @c -A lao tzu tao} puts brackets around the conflict where only @file{tzu}
 3411: @c differs:
 3412: @c 
 3413: @option{-A}や@option{--show-all}オプションは,@option{-e}オプションのよ
 3414: うな動作をしますが,衝突部分を大カッコで囲み,マージされていない変更だけ
 3415: でなく,@var{older}から@var{yours}へのすべての変更を出力します.このため,
 3416: サンプルの入力ファイル(@pxref{Sample diff3 Input})が与えられると,
 3417: @samp{diff3 -A lao tzu tao}は,@file{tzu}の差異部分の衝突の周りに大カッ
 3418: コを書きます.
 3419: 
 3420: @example
 3421: <<<<<<< tzu
 3422: =======
 3423: The Way that can be told of is not the eternal Way;
 3424: The name that can be named is not the eternal name.
 3425: >>>>>>> tao
 3426: @end example
 3427: 
 3428: @c And it outputs the three-way conflict as follows:
 3429: @c 
 3430: また,三方向の衝突は以下のように出力されます.
 3431: 
 3432: @example
 3433: <<<<<<< lao
 3434: ||||||| tzu
 3435: They both may be called deep and profound.
 3436: Deeper and more profound,
 3437: The door of all subtleties!
 3438: =======
 3439: 
 3440:   -- The Way of Lao-Tzu, tr. Wing-tsit Chan
 3441: >>>>>>> tao
 3442: @end example
 3443: 
 3444: @c The @option{-E} or @option{--show-overlap} option outputs less information
 3445: @c than the @option{-A} or @option{--show-all} option, because it outputs only
 3446: @c unmerged changes, and it never outputs the contents of the second
 3447: @c file.  Thus the @option{-E} option acts like the @option{-e} option,
 3448: @c except that it brackets the first and third files from three-way
 3449: @c overlapping changes.  Similarly, @option{-X} acts like @option{-x}, except
 3450: @c it brackets all its (necessarily overlapping) changes.  For example,
 3451: @c for the three-way overlapping change above, the @option{-E} and @option{-X}
 3452: @c options output the following:
 3453: @c 
 3454: @option{-E}や@option{--show-overlap}オプションは,@option{-A}や
 3455: @option{--show-all}オプションより情報が少なくなり,それはマージされてい
 3456: ない変更だけを出力し,二番目のファイルの内容を出力しないためです.そのた
 3457: め,@option{-E}オプションは@option{-e}オプションのように動作しますが,三
 3458: 方向のオーバーラップした変更で,最初と三番目のファイルが大カッコで囲みま
 3459: す.同様に,@option{-X}は@option{-x}のように動作しますが,(オーバーラッ
 3460: プが必要な)変更のすべてを大カッコで囲みます.例えば,上記のような三方向
 3461: のオーバーラップしている変更に対し,@option{-E}と@option{-X}オプションは
 3462: 以下を出力します.
 3463: 
 3464: @example
 3465: <<<<<<< lao
 3466: =======
 3467: 
 3468:   -- The Way of Lao-Tzu, tr. Wing-tsit Chan
 3469: >>>>>>> tao
 3470: @end example
 3471: 
 3472: @c If you are comparing files that have meaningless or uninformative names,
 3473: @c you can use the @option{-L @var{label}} or @option{--label=@var{label}}
 3474: @c option to show alternate names in the @samp{<<<<<<<}, @samp{|||||||}
 3475: @c and @samp{>>>>>>>} brackets.  This option can be given up to three
 3476: @c times, once for each input file.  Thus @samp{diff3 -A -L X -L Y -L Z A
 3477: @c B C} acts like @samp{diff3 -A A B C}, except that the output looks like
 3478: @c it came from files named @samp{X}, @samp{Y} and @samp{Z} rather than
 3479: @c from files named @samp{A}, @samp{B} and @samp{C}.
 3480: @c 
 3481: 無意味で情報のない名前を持つファイルを比較している場合,@samp{<<<<<<<},
 3482: @samp{|||||||},そして@samp{>>>>>>>}の大カッコで別名を表示するために,
 3483: @option{-L @var{label}}や@option{--label=@var{label}}オプションを使用す
 3484: ることが可能です.このオプションで,それぞれの入力ファイルごとに,三回ま
 3485: で与えることが可能です.このため,@samp{diff3 -A -L X -L Y -L Z A B C}は
 3486: @samp{diff3 -A A B C}のように動作しますが,出力は,ファイル名@samp{A},
 3487: @samp{B},そして@samp{C}ではなく,ファイル名@samp{X},@samp{Y},そして
 3488: @samp{Z}からのようになります.
 3489: 
 3490: @node Bypassing ed
 3491: @c @section Generating the Merged Output Directly
 3492: @section マージされた出力を直接生成する
 3493: @cindex merged @command{diff3} format
 3494: 
 3495: @c With the @option{-m} or @option{--merge} option, @command{diff3} outputs the
 3496: @c merged file directly.  This is more efficient than using @command{ed} to
 3497: @c generate it, and works even with non-text files that @command{ed} would
 3498: @c reject.  If you specify @option{-m} without an @command{ed} script option,
 3499: @c @option{-A} (@option{--show-all}) is assumed.
 3500: @c 
 3501: @option{-m}や@option{--merge}オプションを用いると,@command{diff3}はマー
 3502: ジされたファイルを直接出力します.これは,それを生成するために
 3503: @command{ed}を使用するより効果的で,@command{ed}が除外するテキストではな
 3504: いファイルでも動作します.@command{ed}スクリプトオプションを使用せずに
 3505: @option{-m}を指定する場合,@option{-A} (@option{--show-all})が仮定されま
 3506: す.
 3507: 
 3508: @c For example, the command @samp{diff3 -m lao tzu tao}
 3509: @c (@pxref{Sample diff3 Input} for a copy of the input files) would output
 3510: @c the following:
 3511: @c 
 3512: 例えば,コマンド@samp{diff3 -m lao tzu tao}は(入力ファイルのコピーは
 3513: @pxref{Sample diff3 Input}),以下の出力を生成します.
 3514: 
 3515: @example
 3516: <<<<<<< tzu
 3517: =======
 3518: The Way that can be told of is not the eternal Way;
 3519: The name that can be named is not the eternal name.
 3520: >>>>>>> tao
 3521: The Nameless is the origin of Heaven and Earth;
 3522: The Named is the mother of all things.
 3523: Therefore let there always be non-being,
 3524:   so we may see their subtlety,
 3525: And let there always be being,
 3526:   so we may see their result.
 3527: The two are the same,
 3528: But after they are produced,
 3529:   they have different names.
 3530: <<<<<<< lao
 3531: ||||||| tzu
 3532: They both may be called deep and profound.
 3533: Deeper and more profound,
 3534: The door of all subtleties!
 3535: =======
 3536: 
 3537:   -- The Way of Lao-Tzu, tr. Wing-tsit Chan
 3538: >>>>>>> tao
 3539: @end example
 3540: 
 3541: @node Merging Incomplete Lines
 3542: @c @section How @command{diff3} Merges Incomplete Lines
 3543: @section 不完全な行を@command{diff3}がマージする方法
 3544: @cindex incomplete line merging
 3545: 
 3546: @c With @option{-m}, incomplete lines (@pxref{Incomplete Lines}) are simply
 3547: @c copied to the output as they are found; if the merged output ends in an
 3548: @c conflict and one of the input files ends in an incomplete
 3549: @c line, succeeding @samp{|||||||}, @samp{=======} or @samp{>>>>>>>}
 3550: @c brackets appear somewhere other than the start of a line because
 3551: @c they are appended to the incomplete line.
 3552: @c 
 3553: @option{-m}を用いると,不完全な行(@pxref{Incomplete Lines})は見つかった
 3554: ものとして,単純に出力にコピーされます.出力の終りで衝突があり,入力ファ
 3555: イルの一つが不完全な行で終る場合,不完全な行が追加されるので,
 3556: @samp{|||||||},@samp{=======},または@samp{>>>>>>>}の大カッコは,行の最
 3557: 初ではない場所に現れるでしょう.
 3558: 
 3559: @c Without @option{-m}, if an @command{ed} script option is specified and an
 3560: @c incomplete line is found, @command{diff3} generates a warning and acts as
 3561: @c if a newline had been present.
 3562: @c 
 3563: @option{-m}オプションを用いないと,@command{ed}スクリプトオプションが指
 3564: 定されていて,不完全な行が見つかる場合,@command{diff3}は警告を生成し,
 3565: 改行が存在しないかのように動作します.
 3566: 
 3567: @node Saving the Changed File
 3568: @c @section Saving the Changed File
 3569: @section 変更されたファイルの保存
 3570: @cindex System V @command{diff3} compatibility
 3571: 
 3572: @c Traditional Unix @command{diff3} generates an @command{ed} script without the
 3573: @c trailing @samp{w} and @samp{q} commands that save the changes.
 3574: @c System V @command{diff3} generates these extra commands.  @sc{gnu}
 3575: @c @command{diff3} normally behaves like traditional Unix
 3576: @c @command{diff3}, but with the @option{-i} option it behaves like
 3577: @c System V @command{diff3} and appends the @samp{w} and @samp{q}
 3578: @c commands.
 3579: @c 
 3580: 伝統的なUnix @command{diff3}は,変更を保存するコマンド@samp{w}と@samp{q} 
 3581: を後置しない@command{ed}スクリプトを生成します.System V @command{diff3} 
 3582: は,これらの追加コマンドを生成します.@sc{gnu} @command{diff3}は通常,伝
 3583: 統的なUnix @command{diff3}のように動作しますが,@option{-i}オプションを
 3584: 用いると,System V @command{diff3}のように動作し,@samp{w}と@samp{q}コマ
 3585: ンドを後置します.
 3586: 
 3587: @c The @option{-i} option requires one of the @command{ed} script options
 3588: @c @option{-AeExX3}, and is incompatible with the merged output option
 3589: @c @option{-m}.
 3590: @c 
 3591: @option{-i}オプションは,@command{ed}スクリプトオプションの
 3592: @option{-AeExX3}の一つを要求し,マージされた出力のオプション@option{-m} 
 3593: と互換性がありません.
 3594: 
 3595: @node Interactive Merging
 3596: @c @chapter Interactive Merging with @command{sdiff}
 3597: @chapter @command{sdiff}を用いた対話的なマージ
 3598: @cindex diff merging
 3599: @cindex interactive merging
 3600: 
 3601: @c With @command{sdiff}, you can merge two files interactively based on a
 3602: @c side-by-side @option{-y} format comparison (@pxref{Side by Side}).  Use
 3603: @c @option{-o @var{file}} or @option{--output=@var{file}} to specify where to
 3604: @c put the merged text.  @xref{Invoking sdiff}, for more details on the
 3605: @c options to @command{sdiff}.
 3606: @c 
 3607: @command{sdiff}を用いると,横に並べた@option{-y}書式の比較を元にして
 3608: (@pxref{Side by Side}),二つのファイルを対話的にマージすることが可能です.
 3609: マージされたテキストを書く場所を指定するために,@option{-o @var{file}}や
 3610: @option{--output=@var{file}}を使用してください.@command{sdiff}のオプショ
 3611: ンの詳細は,@xref{Invoking sdiff}.
 3612: 
 3613: @c Another way to merge files interactively is to use the Emacs Lisp
 3614: @c package @command{emerge}.  @xref{emerge, , emerge, emacs, The @sc{gnu} Emacs
 3615: @c Manual}, for more information.
 3616: @c 
 3617: ファイルを対話的にマージするもう一つの方法は,Emacs Lispパッケージの
 3618: @command{emerge}を使用する方法です.詳細は,@xref{emerge, , emerge,
 3619: emacs, The @sc{gnu} Emacs Manual}.
 3620: 
 3621: @menu
 3622: * sdiff Option Summary:: Summary of @command{sdiff} options.
 3623: * Merge Commands::       Merging two files interactively.
 3624: @end menu
 3625: 
 3626: @node sdiff Option Summary
 3627: @c @section Specifying @command{diff} Options to @command{sdiff}
 3628: @section @command{sdiff}に@command{diff}のオプションを指定する
 3629: @cindex @command{sdiff} output format
 3630: 
 3631: @c The following @command{sdiff} options have the same meaning as for
 3632: @c @command{diff}.  @xref{diff Options}, for the use of these options.
 3633: @c 
 3634: 以下の@command{sdiff}は,@command{diff}と同じ意味です.これらのオプショ
 3635: ンの使用については,@xref{diff Options}.
 3636: 
 3637: @example
 3638: -a -b -d -i -t -v
 3639: -B -E -I @var{regexp}
 3640: 
 3641: --ignore-blank-lines  --ignore-case
 3642: --ignore-matching-lines=@var{regexp}  --ignore-space-change
 3643: --ignore-tab-expansion
 3644: --left-column  --minimal  --speed-large-files
 3645: --strip-trailing-cr  --suppress-common-lines  --expand-tabs
 3646: --text  --version  --width=@var{columns}
 3647: @end example
 3648: 
 3649: @c For historical reasons, @command{sdiff} has alternate names for some
 3650: @c options.  The @option{-l} option is equivalent to the
 3651: @c @option{--left-column} option, and similarly @option{-s} is equivalent
 3652: @c to @option{--suppress-common-lines}.  The meaning of the @command{sdiff}
 3653: @c @option{-w} and @option{-W} options is interchanged from that of
 3654: @c @command{diff}: with @command{sdiff}, @option{-w @var{columns}} is
 3655: @c equivalent to @option{--width=@var{columns}}, and @option{-W} is
 3656: @c equivalent to @option{--ignore-all-space}.  @command{sdiff} without the
 3657: @c @option{-o} option is equivalent to @command{diff} with the @option{-y}
 3658: @c or @option{--side-by-side} option (@pxref{Side by Side}).
 3659: @c 
 3660: 歴史的な理由から,@command{sdiff}は別名のあるオプションもあります.
 3661: @option{-l}は@option{--left-column}オプションと等価で,同様に,
 3662: @option{-s}は@option{--suppress-common-lines}と等価です.@command{sdiff} 
 3663: の@option{-w}と@option{-W}オプションの意味は,@command{diff}とは違います.
 3664: @command{sdiff}では,@option{-w @var{columns}}は
 3665: @option{--width=@var{columns}}と等価で,@option{-W}は
 3666: @option{--ignore-all-space}と等価です.@option{-o}オプションを用いない
 3667: @command{sdiff}は,@option{-y}や@option{--side-by-side}オプション
 3668: (@pxref{Side by Side})を用いた@command{diff}と等価です.
 3669: 
 3670: @node Merge Commands
 3671: @c @section Merge Commands
 3672: @section マージコマンド
 3673: @cindex merge commands
 3674: @cindex merging interactively
 3675: 
 3676: @c Groups of common lines, with a blank gutter, are copied from the first
 3677: @c file to the output.  After each group of differing lines, @command{sdiff}
 3678: @c prompts with @samp{%} and pauses, waiting for one of the following
 3679: @c commands.  Follow each command with @key{RET}.
 3680: @c 
 3681: 空白の溝を用いている共通行のグループは,最初のファイルから出力へコピーさ
 3682: れます.差異のある行のそれぞれの行の後に,@command{sdiff}は@samp{%}のプ
 3683: ロンプトを出力して一時停止し,以下のコマンドの一つを待ち続けます.それぞ
 3684: れのコマンドに@key{RET}を続けてください.
 3685: 
 3686: @table @samp
 3687: @item e
 3688: @c Discard both versions.
 3689: @c Invoke a text editor on an empty temporary file,
 3690: @c then copy the resulting file to the output.
 3691: @c 
 3692: どちらのバージョンも破棄します.空の一時ファイルでテキストエディタを呼び
 3693: 出し,編集結果のファイルを出力にコピーします.
 3694: 
 3695: @item eb
 3696: @c Concatenate the two versions, edit the result in a temporary file,
 3697: @c then copy the edited result to the output.
 3698: @c 
 3699: 二つのバージョンを連結し,一時ファイルでその結果を編集し,そして,編集結
 3700: 果を出力にコピーします.
 3701: 
 3702: @item ed
 3703: @c Like @samp{eb}, except precede each version with a header that
 3704: @c shows what file and lines the version came from.
 3705: @c 
 3706: @samp{eb}に似ていますが,それぞれのバージョンに,ファイルや行があるバー
 3707: ジョンを表示するヘッダが前置されます.
 3708: 
 3709: @item el
 3710: @c Edit a copy of the left version, then copy the result to the output.
 3711: @c 
 3712: 左のバージョンのコピーを編集し,その結果を出力にコピーします.
 3713: 
 3714: @item er
 3715: @c Edit a copy of the right version, then copy the result to the output.
 3716: @c 
 3717: 右のバージョンのコピーを編集し,その結果を出力にコピーします.
 3718: 
 3719: @item l
 3720: @c Copy the left version to the output.
 3721: @c 
 3722: 左のバージョンを出力にコピーします.
 3723: 
 3724: @item q
 3725: @c Quit.
 3726: @c 
 3727: 終了します.
 3728: 
 3729: @item r
 3730: @c Copy the right version to the output.
 3731: @c 
 3732: 右のバージョンを出力にコピーします.
 3733: 
 3734: @item s
 3735: @c Silently copy common lines.
 3736: @c 
 3737: 共通の行を黙ってコピーします.
 3738: 
 3739: @item v
 3740: @c Verbosely copy common lines.  This is the default.
 3741: @c 
 3742: 冗長な出力を出しながら共通の行をコピーします.これはデフォルトです.
 3743: @end table
 3744: 
 3745: @vindex EDITOR
 3746: @c The text editor invoked is specified by the @env{EDITOR} environment
 3747: @c variable if it is set.  The default is system-dependent.
 3748: @c 
 3749: 呼び出されるテキストエディターは,@env{EDITOR}環境変数が設定されていれば
 3750: それで指定されます.デフォルトはシステムに依存します.
 3751: 
 3752: @node Merging with patch
 3753: @c @chapter Merging with @command{patch}
 3754: @chapter @command{patch}を用いてマージする
 3755: 
 3756: @c @command{patch} takes comparison output produced by @command{diff} and applies
 3757: @c the differences to a copy of the original file, producing a patched
 3758: @c version.  With @command{patch}, you can distribute just the changes to a
 3759: @c set of files instead of distributing the entire file set; your
 3760: @c correspondents can apply @command{patch} to update their copy of the files
 3761: @c with your changes.  @command{patch} automatically determines the diff
 3762: @c format, skips any leading or trailing headers, and uses the headers to
 3763: @c determine which file to patch.  This lets your correspondents feed a
 3764: @c mail message containing a difference listing directly to
 3765: @c @command{patch}.
 3766: @c 
 3767: @command{patch}は,@command{diff}で生成される比較された出力を受けとり,
 3768: パッチをあてたバージョンを生成しながら,オリジナルファイルのコピーに差分
 3769: を適用します.@command{patch}を用いることで,ファイルをすべて配布する代
 3770: わりに,変更したファイルの組だけを配布することが可能になります.取引先で
 3771: は,変更したファイルのコピーを更新するために@command{patch}を適用するこ
 3772: とが可能になります.@command{patch}は差分の書式を自動的に決定し,前後の
 3773: ヘッダを飛ばし,パッチをあてるファイルを決定するためにヘッダを使用します.
 3774: これで,取引先は@command{patch}に直接,変更部分のリストをメールのメッセー
 3775: ジに含めることができます.
 3776: 
 3777: @c @command{patch} detects and warns about common problems like forward
 3778: @c patches.  It saves any patches that it could not apply.  It can also maintain a
 3779: @c @code{patchlevel.h} file to ensure that your correspondents apply
 3780: @c diffs in the proper order.
 3781: @c 
 3782: @command{patch}は,後戻りするパッチのような一般的な問題を検出し警告を発
 3783: します.それで適用しなくてもよいパッチあてることを止めます.また,取引先
 3784: が適切な順序で差分を適用するのを確実にするため,@code{patchlevel.h}ファ
 3785: イルも管理することが可能です.
 3786: 
 3787: @c @command{patch} accepts a series of diffs in its standard input, usually
 3788: @c separated by headers that specify which file to patch.  It applies
 3789: @c @command{diff} hunks (@pxref{Hunks}) one by one.  If a hunk does not
 3790: @c exactly match the original file, @command{patch} uses heuristics to try to
 3791: @c patch the file as well as it can.  If no approximate match can be found,
 3792: @c @command{patch} rejects the hunk and skips to the next hunk.  @command{patch}
 3793: @c normally replaces each file @var{f} with its new version, putting reject
 3794: @c hunks (if any) into @samp{@var{f}.rej}.
 3795: @c 
 3796: @command{patch}は,標準入力から連続した差分を受け入れ,それは通常,パッ
 3797: チをあてるファイルを指定するヘッダで分離されています.それは,
 3798: @command{diff}のhunk(@pxref{Hunks})を一つずつ適用します.hunkが元ファイ
 3799: ルに正確にマッチしない場合,@command{patch}はできる限り発見的手法を用い
 3800: てパッチをあてるファイルを見つけようとします.適切にマッチしている部分を
 3801: 見つけることが不可能な場合,@command{patch}はhunkを除外し,次のhunkに飛
 3802: びます.@command{patch}は通常,hunk(が存在する場合はそれ)を
 3803: @samp{@var{f}.rej}に捨てながら,それぞれのファイル@var{f}を新しいバージョ
 3804: ンで置換します.
 3805: 
 3806: @c @xref{Invoking patch}, for detailed information on the options to
 3807: @c @command{patch}.
 3808: @c 
 3809: @command{patch}へのオプションの詳細は,@xref{Invoking patch}.
 3810: 
 3811: @menu
 3812: * patch Input::            Selecting the type of @command{patch} input.
 3813: * Revision Control::       Getting files from @sc{rcs}, @sc{sccs}, etc.
 3814: * Imperfect::              Dealing with imperfect patches.
 3815: * Creating and Removing::  Creating and removing files with a patch.
 3816: * Patching Time Stamps::   Updating time stamps on patched files.
 3817: * Multiple Patches::       Handling multiple patches in a file.
 3818: * patch Directories::      Changing directory and stripping directories.
 3819: * Backups::                Whether backup files are made.
 3820: * Backup Names::           Backup file names.
 3821: * Reject Names::           Reject file names.
 3822: * patch Messages::         Messages and questions @command{patch} can produce.
 3823: * patch and POSIX::        Conformance to the @sc{posix} standard.
 3824: * patch and Tradition::    @sc{gnu} versus traditional @command{patch}.
 3825: @end menu
 3826: 
 3827: @node patch Input
 3828: @c @section Selecting the @command{patch} Input Format
 3829: @section @command{patch}の入力書式の選択
 3830: @cindex @command{patch} input format
 3831: 
 3832: @c @command{patch} normally determines which @command{diff} format the patch
 3833: @c file uses by examining its contents.  For patch files that contain
 3834: @c particularly confusing leading text, you might need to use one of the
 3835: @c following options to force @command{patch} to interpret the patch file as a
 3836: @c certain format of diff.  The output formats listed here are the only
 3837: @c ones that @command{patch} can understand.
 3838: @c 
 3839: @command{patch}は,パッチファイルで使用している@command{diff}の書式を,
 3840: その内容を調査して決定します.特定の複雑な前置テキストの一つが含まれてい
 3841: るパッチファイルに対し,@command{patch}がパッチファイルを特定の書式の差
 3842: 分であると解釈するように,以下のオプションの一つを使用する必要があるかも
 3843: しれません.以下でリストアップしている出力書式は,@command{patch}が理解
 3844: 可能なものだけです.
 3845: 
 3846: @table @option
 3847: @item -c
 3848: @itemx --context
 3849: @c context diff.
 3850: @c 
 3851: 周りの文を使用した差分.
 3852: 
 3853: @item -e
 3854: @itemx --ed
 3855: @c @command{ed} script.
 3856: @c 
 3857: @command{ed}スクリプト.
 3858: 
 3859: @item -n
 3860: @itemx --normal
 3861: @c normal diff.
 3862: @c 
 3863: 通常の差分.
 3864: 
 3865: @item -u
 3866: @itemx --unified
 3867: @c unified diff.
 3868: @c 
 3869: 一体化した差分.
 3870: @end table
 3871: 
 3872: @node Revision Control
 3873: @c @section Revision Control
 3874: @section リビジョンコントロール
 3875: @cindex revision control
 3876: @cindex version control
 3877: @cindex @sc{rcs}
 3878: @cindex ClearCase
 3879: @cindex @sc{sccs}
 3880: 
 3881: @c If a nonexistent input file is under a revision control system
 3882: @c supported by @command{patch}, @command{patch} normally asks the user
 3883: @c whether to get (or check out) the file from the revision control
 3884: @c system.  Patch currently supports @sc{rcs}, ClearCase and @sc{sccs}.
 3885: @c Under @sc{rcs} and @sc{sccs}, @command{patch} also asks when the input
 3886: @c file is read-only and matches the default version in the revision
 3887: @c control system.
 3888: @c 
 3889: 存在しない入力ファイルが,@command{patch}でサポートされているリビジョン
 3890: コントロールシステムにある場合,@command{patch}は通常,ユーザにリビジョ
 3891: ンコントロールシステムからファイルを入手(チェックアウト)するかどうかを尋
 3892: ねます.パッチは現在,@sc{rcs},ClearCase,そして@sc{sccs}をサポートして
 3893: います.@sc{rcs}と@sc{sccs}では,@command{patch}は入力ファイルが読み込み
 3894: 専用で,デフォルトのバージョンがリビジョンコントロールシステムのものとマッ
 3895: チするときにも質問してきます.
 3896: 
 3897: @vindex PATCH_GET
 3898: @c The @option{-g @var{num}} or @option{--get=@var{num}} affects access
 3899: @c to files under supported revision control systems.  If @var{num} is
 3900: @c positive, @command{patch} gets the file without asking the user; if
 3901: @c zero, @command{patch} neither asks the user nor gets the file; and if
 3902: @c negative, @command{patch} asks the user before getting the file.  The
 3903: @c default value of @var{num} is given by the value of the
 3904: @c @env{PATCH_GET} environment variable if it is set; if not, the default
 3905: @c value is zero if @command{patch} is conforming to @sc{posix}, negative
 3906: @c otherwise.  @xref{patch and POSIX}.
 3907: @c 
 3908: @option{-g @var{num}}や@option{--get=@var{num}}は,サポートされているリ
 3909: ビジョンコントロールシステムのファイルへのアクセスに影響します.
 3910: @var{num}が正の場合,@command{patch}はユーザに尋ねることなくファイルを入
 3911: 手します.ゼロの場合,@command{patch}はファイルを入手するかどうかをユー
 3912: ザに尋ねます.負の場合,@command{patch}はファイルを入手する前にユーザに
 3913: 尋ねます.@var{num}のデフォルト値は,@env{PATCH_GET}環境変数が設定されて
 3914: いる場合,それで与えられます.存在しない場合,@command{patch}が
 3915: @sc{posix}に準拠している場合はデフォルト値はゼロで,そうでない場合は負に
 3916: なります.@xref{patch and POSIX}.
 3917: 
 3918: @vindex VERSION_CONTROL
 3919: @c The choice of revision control system is unaffected by the
 3920: @c @env{VERSION_CONTROL} environment variable (@pxref{Backup Names}).
 3921: @c 
 3922: リビジョンコントロールシステムの選択は,@env{VERSION_CONTROL}環境変数に
 3923: 影響しません(@pxref{Backup Names}).
 3924: 
 3925: @node Imperfect
 3926: @c @section Applying Imperfect Patches
 3927: @section 不完全なパッチの適用
 3928: @cindex imperfect patch application
 3929: 
 3930: @c @command{patch} tries to skip any leading text in the patch file,
 3931: @c apply the diff, and then skip any trailing text.  Thus you can feed a
 3932: @c mail message directly to @command{patch}, and it should work.  If the
 3933: @c entire diff is indented by a constant amount of white space,
 3934: @c @command{patch} automatically ignores the indentation.  If a context
 3935: @c diff contains trailing carriage return on each line, @command{patch}
 3936: @c automatically ignores the carriage return.  If a context diff has been
 3937: @c encapsulated by prepending @w{@samp{- }} to lines beginning with @samp{-}
 3938: @c as per @uref{ftp://ftp.isi.edu/in-notes/rfc934.txt, Internet RFC 934},
 3939: @c @command{patch} automatically unencapsulates the input.
 3940: @c 
 3941: @command{patch}は,パッチファイルに前置されるテキストを読み飛ばし,差分
 3942: を適用し,そして後置されるテキストを読み飛ばそうとします.このため,メー
 3943: ルのメッセージを直接@command{patch}に与えることが可能で,それはうまく動
 3944: 作するでしょう.差分全体が空白の固定量と思われる場合,@command{patch}は
 3945: 自動的に字下げを無視します.前後の文を使用した差分のそれぞれの行に改行が
 3946: 後置されている場合,@command{patch}は自動的に改行を無視します.前後の文
 3947: を使用した差分が,@uref{ftp://ftp.isi.edu/in-notes/rfc934.txt, Internet
 3948: RFC 934}によって,@samp{-}で始まる行に@w{@samp{- }}を前置することでカプ
 3949: セル化されている場合,@command{patch}は自動的に入力のカプセル化を外しま
 3950: す.
 3951: 
 3952: @c However, certain other types of imperfect input require user
 3953: @c intervention or testing.
 3954: @c 
 3955: しかし,他の形式の不完全な入力では,ユーザが介入したりテストしたりする必
 3956: 要があります.
 3957: 
 3958: @menu
 3959: * Changed White Space:: When tabs and spaces don't match exactly.
 3960: * Reversed Patches::    Applying reversed patches correctly.
 3961: * Inexact::             Helping @command{patch} find close matches.
 3962: * Dry Runs::            Predicting what @command{patch} will do.
 3963: @end menu
 3964: 
 3965: @node Changed White Space
 3966: @c @subsection Applying Patches with Changed White Space
 3967: @subsection 空白が変更されているパッチを適用する
 3968: @cindex white space in patches
 3969: 
 3970: @c Sometimes mailers, editors, or other programs change spaces into tabs,
 3971: @c or vice versa.  If this happens to a patch file or an input file, the
 3972: @c files might look the same, but @command{patch} will not be able to match
 3973: @c them properly.  If this problem occurs, use the @option{-l} or
 3974: @c @option{--ignore-white-space} option, which makes @command{patch} compare
 3975: @c blank characters (i.e.@: spaces and tabs) loosely so that any nonempty
 3976: @c sequence of blanks in the patch file matches any nonempty sequence of
 3977: @c blanks in the input files.  Non-blank
 3978: @c characters must still match exactly.  Each line of the context must
 3979: @c still match a line in the input file.
 3980: @c 
 3981: メーラ,エディタ,またはその他のプログラムによって,スペースをタブまたは
 3982: その反対に変更するものもあります.これがパッチファイルや入力ファイルに対
 3983: して生じている場合,ファイルは同じように見えますが,@command{patch}はそ
 3984: れらを適切にマッチさせることが不可能です.この問題が生じる場合,パッチファ
 3985: イルの空ではない連続した空白が空ではない入力ファイルの連続した空白にマッ
 3986: チするように,@command{patch}の空白文字(例えば,スペースとタブ)の比較を
 3987: 曖昧にさせる,@option{-l}や@option{--ignore-white-space}オプションを使用
 3988: してください.空白ではない文字は正確にマッチするはずです.周りの文のそれ
 3989: ぞれの行は,入力ファイルの行にマッチするはずです.
 3990: 
 3991: @node Reversed Patches
 3992: @c @subsection Applying Reversed Patches
 3993: @subsection リバースパッチを適用する
 3994: @cindex reversed patches
 3995: 
 3996: @c Sometimes people run @command{diff} with the new file first instead of
 3997: @c second.  This creates a diff that is ``reversed''.  To apply such
 3998: @c patches, give @command{patch} the @option{-R} or @option{--reverse} option.
 3999: @c @command{patch} then attempts to swap each hunk around before applying it.
 4000: @c Rejects come out in the swapped format.
 4001: @c 
 4002: 二番目のファイルの代わりに最初の新しいファイルで@command{diff}を実行する
 4003: こともあります.これで``リバース''の差分が生成されます.そのようなパッチ
 4004: を適用するために,@command{patch}に@option{-R}や@option{--reverse}オプショ
 4005: ンを与えてください.@command{patch}はそれぞれのhunkの周りを,それを適用
 4006: する前に入れ換えようとします.除外されたものは入れ換えられた書式に出力さ
 4007: れます.
 4008: 
 4009: @c Often @command{patch} can guess that the patch is reversed.  If the first
 4010: @c hunk of a patch fails, @command{patch} reverses the hunk to see if it can
 4011: @c apply it that way.  If it can, @command{patch} asks you if you want to have
 4012: @c the @option{-R} option set; if it can't, @command{patch} continues to apply
 4013: @c the patch normally.  This method cannot detect a reversed patch if it is
 4014: @c a normal diff and the first command is an append (which should have been
 4015: @c a delete) since appends always succeed, because a null context matches
 4016: @c anywhere.  But most patches add or change lines rather than delete them,
 4017: @c so most reversed normal diffs begin with a delete, which fails, and
 4018: @c @command{patch} notices.
 4019: @c 
 4020: パッチがリバースだと@command{patch}が分かることもよくあります.パッチファ
 4021: イルの最初のhunkで失敗する場合,リバースすることで適用可能かどうかを判定
 4022: するために,@command{patch}はhunkをリバースします.可能な場合,
 4023: @command{patch}は@option{-R}オプションを設定したいかどうかを尋ねます.不
 4024: 可能な場合,@command{patch}は通常通りパッチを適用し続けます.パッチが通
 4025: 常の差分で,最初のコマンドの追加が常に成功するため(削除されているであろ
 4026: う)最初のコマンドが追加されている場合,空文がどこかでマッチするので,こ
 4027: の手法でリバースパッチを検出することは不可能です.しかし,ほとんどのパッ
 4028: チは行を削除するのではなく追加したり変更したりしているので,ほとんどの通
 4029: 常のリバース差分は削除で始まり,失敗すると@command{patch}はそれに注目し
 4030: ます.
 4031: 
 4032: @c If you apply a patch that you have already applied, @command{patch} thinks
 4033: @c it is a reversed patch and offers to un-apply the patch.  This could be
 4034: @c construed as a feature.  If you did this inadvertently and you don't
 4035: @c want to un-apply the patch, just answer @samp{n} to this offer and to
 4036: @c the subsequent ``apply anyway'' question---or type @kbd{C-c} to kill the
 4037: @c @command{patch} process.
 4038: @c 
 4039: 既に適用しているパッチを適用する場合,@command{patch}はそれをリバースパッ
 4040: チだと考え,パッチを逆に適用するように提案します.これは特長と言っても良
 4041: いでしょう.不注意にこうしてしまい,パッチを逆に適用したくない場合,その
 4042: まま続けて``適用する''ために,この提案に@samp{n}と答えてください --- ま
 4043: たは,@command{patch}処理を中止するために@kbd{C-c}を入力してください.
 4044: 
 4045: @node Inexact
 4046: @c @subsection Helping @command{patch} Find Inexact Matches
 4047: @subsection 不正確なマッチを@command{patch}が見つけるように手助けをする
 4048: @cindex inexact patches
 4049: @cindex fuzz factor when patching
 4050: 
 4051: @c For context diffs, and to a lesser extent normal diffs, @command{patch} can
 4052: @c detect when the line numbers mentioned in the patch are incorrect, and
 4053: @c it attempts to find the correct place to apply each hunk of the patch.
 4054: @c As a first guess, it takes the line number mentioned in the hunk, plus
 4055: @c or minus any offset used in applying the previous hunk.  If that is not
 4056: @c the correct place, @command{patch} scans both forward and backward for a
 4057: @c set of lines matching the context given in the hunk.
 4058: @c 
 4059: 周りの文を使用した差分と,より少ない範囲の通常の差分に対して,パッチが記
 4060: 述している行番号が正しくないときは,@command{patch}は正しいものを検出す
 4061: ることが可能で,パッチのhunkを適用する正しい場所を見つけようとします.最
 4062: 初に見つかると,hunkで記述されている行番号に,以前にhunkに適用したオフセッ
 4063: トを加えたり引いたりします.それが正しい場所ではない場合,hunkで与えられ
 4064: る周りの文に一致する行の前後を@command{patch}はスキャンします.
 4065: 
 4066: @c First @command{patch} looks for a place where all lines of the context
 4067: @c match.  If it cannot find such a place, and it is reading a context or
 4068: @c unified diff, and the maximum fuzz factor is set to 1 or more, then
 4069: @c @command{patch} makes another scan, ignoring the first and last line of
 4070: @c context.  If that fails, and the maximum fuzz factor is set to 2 or
 4071: @c more, it makes another scan, ignoring the first two and last two lines
 4072: @c of context are ignored.  It continues similarly if the maximum fuzz
 4073: @c factor is larger.
 4074: @c 
 4075: 最初に@command{patch}は周りの文のすべての行がマッチする場所を探します.
 4076: そのような場所を見つけることができず,周りの文を使用している差分や一体化
 4077: した差分を読み込んでいて,最大のfuzzの要素が1以上に設定されている場合,
 4078: 周りの文の最初と最後の行を無視しながら,@command{patch}はもう一度スキャ
 4079: ンします.それでも失敗し,最大のfuzzの要素が2以上に設定されている場合,
 4080: 周りの文の最初の二行と最後の二行を無視しながらもう一度スキャンします.最
 4081: 大のfuzzの要素がそれより大きい場合は,同様に続けていきます.
 4082: 
 4083: @c The @option{-F @var{lines}} or @option{--fuzz=@var{lines}} option sets the
 4084: @c maximum fuzz factor to @var{lines}.  This option only applies to context
 4085: @c and unified diffs; it ignores up to @var{lines} lines while looking for
 4086: @c the place to install a hunk.  Note that a larger fuzz factor increases
 4087: @c the odds of making a faulty patch.  The default fuzz factor is 2; there
 4088: @c is no point to setting it to more than the number of lines of context
 4089: @c in the diff, ordinarily 3.
 4090: @c 
 4091: @option{-F @var{lines}}や@option{--fuzz=@var{lines}}オプションで,最大の
 4092: fuzzの要素を@var{lines}に設定します.このオプションは,周りの文を使用し
 4093: ている差分や一体化した差分だけに適用されます.hunkを導入する場所を探して
 4094: いる間,@var{lines}行まで無視します.より大きなfuzzの要素で,不完全なパッ
 4095: チを作成する可能性が高くなることに注意してください.デフォルトのfuzzの値
 4096: は2です.周りの文を使用した差分の行数,通常は三行,以上に設定しても意味
 4097: はありません.
 4098: 
 4099: @c If @command{patch} cannot find a place to install a hunk of the patch, it
 4100: @c writes the hunk out to a reject file (@pxref{Reject Names}, for information
 4101: @c on how reject files are named).  It writes out rejected hunks in context
 4102: @c format no matter what form the input patch is in.  If the input is a
 4103: @c normal or @command{ed} diff, many of the contexts are simply null.  The
 4104: @c line numbers on the hunks in the reject file may be different from those
 4105: @c in the patch file: they show the approximate location where @command{patch}
 4106: @c thinks the failed hunks belong in the new file rather than in the old
 4107: @c one.
 4108: @c 
 4109: @command{patch}がパッチのhunkを導入する場所を見つけることができない場合,
 4110: hunkをリジェクトファイルに書き出します(リジェクトファイルの命名方法は,
 4111: @pxref{Reject Names}).入力されるパッチの形式のまま,リジェクトされた周
 4112: りの文を用いた書式のhunkを書き出しても問題ありません.入力が通常または
 4113: @command{ed}の差分の場合,周りの文の多くは単にヌルになります.リジェクト
 4114: ファイルのhunkの行数は,これらのパッチファイルとは異なります.
 4115: @command{patch}が失敗したファイルが属する適切な場所を,古いファイルでは
 4116: なく新しいファイルで示しています.
 4117: 
 4118: @c If the @option{--verbose} option is given, then as it completes each
 4119: @c hunk @command{patch} tells you whether the hunk succeeded or failed, and
 4120: @c if it failed, on which line (in the new file) @command{patch} thinks the
 4121: @c hunk should go.  If this is different from the line number specified in
 4122: @c the diff, it tells you the offset.  A single large offset @emph{may}
 4123: @c indicate that @command{patch} installed a hunk in the wrong place.
 4124: @c @command{patch} also tells you if it used a fuzz factor to make the
 4125: @c match, in which case you should also be slightly suspicious.
 4126: @c 
 4127: @option{--verbose}オプションが与えられている場合,それぞれのhunkが完了す
 4128: るとき,@command{patch}はhunkが成功したか失敗したかを告げ,失敗した場合,
 4129: hunkを適用すべき行だと@command{patch}が考える(新しいファイルの)行を報告
 4130: します.これが差分で指定されている行番号と異なる場合,そのオフセットを報
 4131: 告します.単一の大きなオフセットは,@command{patch}がhunkを間違った場所
 4132: に導入していることを示している@emph{可能性があります}.疑わしい場合も,
 4133: @command{patch}は,マッチするようにfuzz要素を使用したかどうかを報告しま
 4134: す.
 4135: 
 4136: @c @command{patch} cannot tell if the line numbers are off in an @command{ed}
 4137: @c script, and can only detect wrong line numbers in a normal diff when it
 4138: @c finds a change or delete command.  It may have the same problem with a
 4139: @c context diff using a fuzz factor equal to or greater than the number of
 4140: @c lines of context shown in the diff (typically 3).  In these cases, you
 4141: @c should probably look at a context diff between your original and patched
 4142: @c input files to see if the changes make sense.  Compiling without errors
 4143: @c is a pretty good indication that the patch worked, but not a guarantee.
 4144: @c 
 4145: @command{patch}は,行番号が@command{ed}スクリプトでoffになっているかどう
 4146: かを報告することはできませんが,変更や削除コマンドになっている通常の差分
 4147: での間違った行番号を検出することだけは可能です.差分に表示されている周り
 4148: の文の行数(通常は3)以上のfuzz 要素を使用しているときの,周りの文を使用し
 4149: た差分でも同じ問題があるかもしれません.この状況では,オリジナルとパッチ
 4150: をあてる入力の間を変更することに意味があるかどうかを知るために,周りの文
 4151: を使用した差分を見るべきでしょう.エラー無く組み込まれると,パッチが動作
 4152: したことを見事に示していますが,保証はしていません.
 4153: 
 4154: @c A patch against an empty file applies to a nonexistent file, and vice
 4155: @c versa.  @xref{Creating and Removing}.
 4156: @c 
 4157: 空のファイルへのパッチは,存在しないファイルに適用され,その逆も真です.
 4158: @xref{Creating and Removing}.
 4159: 
 4160: @c @command{patch} usually produces the correct results, even when it must
 4161: @c make many guesses.  However, the results are guaranteed only when
 4162: @c the patch is applied to an exact copy of the file that the patch was
 4163: @c generated from.
 4164: @c 
 4165: @command{patch}は通常,たくさん推測する必要があっても,正しい結果を生成
 4166: します.しかし,結果はパッチが生成されたファイルのコピーに正確に適用され
 4167: るときだけ保証されます.
 4168: 
 4169: @node Dry Runs
 4170: @c @subsection Predicting what @command{patch} will do
 4171: @subsection @command{patch}が行なうことの予測
 4172: @cindex testing @command{patch}
 4173: @cindex dry runs for @command{patch}
 4174: 
 4175: @c It may not be obvious in advance what @command{patch} will do with a
 4176: @c complicated or poorly formatted patch.  If you are concerned that the
 4177: @c input might cause @command{patch} to modify the wrong files, you can
 4178: @c use the @option{--dry-run} option, which causes @command{patch} to
 4179: @c print the results of applying patches without actually changing any
 4180: @c files.  You can then inspect the diagnostics generated by the dry run
 4181: @c to see whether @command{patch} will modify the files that you expect.
 4182: @c If the patch does not do what you want, you can modify the patch (or
 4183: @c the other options to @command{patch}) and try another dry run.  Once
 4184: @c you are satisfied with the proposed patch you can apply it by invoking
 4185: @c @command{patch} as before, but this time without the
 4186: @c @option{--dry-run} option.
 4187: @c 
 4188: @command{patch}が複雑なまたは不完全な書式のパッチをどのように処理するか
 4189: は,あらかじめ明確でないかもしれません.入力で@command{patch}が間違った
 4190: ファイルを編集することが心配な場合,実際にファイルを変更することなく
 4191: @command{patch}がパッチを適用した結果を出力する,@option{--dry-run}オプ
 4192: ションを使用することが可能です.@command{patch}が期待したファイルを編集
 4193: するかどうかを調べるために,予行演習をすることで生成される診断結果を,検
 4194: 査することが可能です.パッチが期待したものでない場合,パッチ(または
 4195: @command{patch}のその他のオプション)を編集して,もう一度予行演習すること
 4196: が可能です.パッチの目的に満足したら,@command{patch}を前回同様に呼び出
 4197: すことで適用することが可能で,このときは@option{--dry-run}オプションは用
 4198: いません.
 4199: 
 4200: @node Creating and Removing
 4201: @c @section Creating and Removing Files
 4202: @section ファイルの作成と削除
 4203: @cindex creating files
 4204: @cindex empty files, removing
 4205: @cindex removing empty files
 4206: 
 4207: @c Sometimes when comparing two directories, a file may exist in one
 4208: @c directory but not the other.  If you give @command{diff} the
 4209: @c @option{-N} or @option{--new-file} option, or if you supply an old or
 4210: @c new file that is named @file{/dev/null} or is empty and is dated the
 4211: @c Epoch (1970-01-01 00:00:00 UTC), @command{diff} outputs a patch that
 4212: @c adds or deletes the contents of this file.  When given such a patch,
 4213: @c @command{patch} normally creates a new file or removes the old file.
 4214: @c However, when conforming to @sc{posix} (@pxref{patch and POSIX}),
 4215: @c @command{patch} does not remove the old file, but leaves it empty.
 4216: @c The @option{-E} or @option{--remove-empty-files} option causes
 4217: @c @command{patch} to remove output files that are empty after applying a
 4218: @c patch, even if the patch does not appear to be one that removed the
 4219: @c file.
 4220: @c 
 4221: 二つのディレクトリを比較しているとき,一方のディレクトリに存在しているファ
 4222: イルがもう一方には無いこともあるかもしれません.@command{diff}に
 4223: @option{-N}や@option{--new-file}オプションを与える場合や,
 4224: @file{/dev/null}という名前のファイルや空のファイル,そしてEpoch
 4225: (1970-01-01 00:00:00 UTC)の日付のファイルで,古いファイルや新しいファイ
 4226: ルを提供した場合,@command{diff}はこのファイルの内容を追加したり削除した
 4227: りします.そのようなパッチが与えられたとき,@command{patch}は通常,新し
 4228: いファイルを作成したり,古いファイルを削除したりします.しかし,
 4229: @sc{posix}(@pxref{patch and POSIX})に準拠するとき,@command{patch}は古い
 4230: ファイルを削除せず,空にして残します.@option{-E}や
 4231: @option{--remove-empty-files}オプションで,パッチを適用後に空になる出力
 4232: ファイルを,パッチがファイルを削除するようには見えない場合でも
 4233: @command{patch}は削除します.
 4234: 
 4235: @c If the patch appears to create a file that already exists,
 4236: @c @command{patch} asks for confirmation before applying the patch.
 4237: @c 
 4238: パッチが既存のファイルを作成するように見える場合,@command{patch}はパッ
 4239: チを適用する前に,確認のため尋ねてきます.
 4240: 
 4241: @node Patching Time Stamps
 4242: @c @section Updating Time Stamps on Patched Files
 4243: @section パッチファイルのタイムスタンプを更新
 4244: @cindex time stamps on patched files
 4245: 
 4246: @c When @command{patch} updates a file, it normally sets the file's
 4247: @c last-modified time stamp to the current time of day.  If you are using
 4248: @c @command{patch} to track a software distribution, this can cause
 4249: @c @command{make} to incorrectly conclude that a patched file is out of
 4250: @c date.  For example, if @file{syntax.c} depends on @file{syntax.y}, and
 4251: @c @command{patch} updates @file{syntax.c} and then @file{syntax.y}, then
 4252: @c @file{syntax.c} will normally appear to be out of date with respect to
 4253: @c @file{syntax.y} even though its contents are actually up to date.
 4254: @c 
 4255: @command{patch}がファイルを更新するとき,通常ファイルの最終更新のタイム
 4256: スタンプを現在の日時に設定します.ソフトウエア配布物の追跡に
 4257: @command{patch}を使用している場合,これで@command{make}は,パッチをあて
 4258: たファイルが古いものだと間違って推定するはずです.例えば,
 4259: @file{syntax.c}が@file{syntax.y}に依存していて@command{patch}が
 4260: @file{syntax.c}を更新してから@file{syntax.y}を更新する場合,
 4261: @file{syntax.y}が更新されているにもかかわらず,@file{syntax.c}はそれより
 4262: 古いものになります.
 4263: 
 4264: @c The @option{-Z} or @option{--set-utc} option causes @command{patch} to
 4265: @c set a patched file's modification and access times to the time stamps
 4266: @c given in context diff headers.  If the context diff headers do not
 4267: @c specify a time zone, they are assumed to use Coordinated Universal
 4268: @c Time (@sc{utc}, often known as @sc{gmt}).
 4269: @c 
 4270: @option{-Z}や@option{--set-utc}オプションで,@command{patch}はパッチをあ
 4271: てたファイルの編集時刻とアクセス時刻を,周りの文を使用した差分のヘッダで
 4272: 与えられるタイムスタンプに設定します.周りの文を使用した差分のヘッダに,
 4273: タイムゾーンが指定されていない場合,Coordinated Universal Time(@sc{gmt} 
 4274: として知られていることが多い@sc{utc})だと仮定します.
 4275: 
 4276: @c The @option{-T} or @option{--set-time} option acts like @option{-Z} or
 4277: @c @option{--set-utc}, except that it assumes that the context diff
 4278: @c headers' time stamps use local time instead of @sc{utc}.  This option
 4279: @c is not recommended, because patches using local time cannot easily be
 4280: @c used by people in other time zones, and because local time stamps are
 4281: @c ambiguous when local clocks move backwards during daylight-saving time
 4282: @c adjustments.  If the context diff headers specify a time zone, this
 4283: @c option is equivalent to @option{-Z} or @option{--set-utc}.
 4284: @c 
 4285: @option{-T}や@option{--set-time}オプションは,@option{-Z}や
 4286: @option{--set-utc}のように動作しますが,周りの文を使用した差分のヘッダの
 4287: タイムスタンプを,@sc{utc}の代わりにローカルタイムを使用していると仮定し
 4288: ます.ローカルタイムを使用しているパッチは,他のタイムゾーンにいる人が簡
 4289: 単に使用することが不可能で,ローカルなタイムスタンプは,ローカルな時計が
 4290: 夏時間に調整されている間に戻ってしまうので,このオプションは推奨されませ
 4291: ん.周りの文を使用した差分のヘッダがタイムゾーンを指定している場合,この
 4292: オプションは,@option{-Z}や@option{--set-utc}と等価です.
 4293: 
 4294: @c @command{patch} normally refrains from setting a file's time stamps if
 4295: @c the file's original last-modified time stamp does not match the time
 4296: @c given in the diff header, of if the file's contents do not exactly
 4297: @c match the patch.  However, if the @option{-f} or @option{--force}
 4298: @c option is given, the file's time stamps are set regardless.
 4299: @c 
 4300: @command{patch}は通常,ファイルのオリジナルの最終更新のタイムスタンプが
 4301: 差分のヘッダで与えられるタイムスタンプとマッチしない場合や,ファイルの内
 4302: 容がパッチに正しくマッチしない場合,ファイルのタイムスタンプで設定されて
 4303: いるものにすることを差し控えます.しかし,@option{-f}や@option{--force} 
 4304: オプションが設定されている場合,ファイルのタイムスタンプはおかまいなしに
 4305: 設定されます.
 4306: 
 4307: @c Due to the limitations of the current @command{diff} format,
 4308: @c @command{patch} cannot update the times of files whose contents have
 4309: @c not changed.  Also, if you set file time stamps to values other than
 4310: @c the current time of day, you should also remove (e.g., with @samp{make
 4311: @c clean}) all files that depend on the patched files, so that later
 4312: @c invocations of @command{make} do not get confused by the patched
 4313: @c files' times.
 4314: @c 
 4315: 現在の@command{diff}書式の制限のため,@command{patch}で内容が変更されて
 4316: いないファイルのタイムスタンプを更新することは不可能です.また,ファイル
 4317: のタイムスタンプを現在の日時以外に設定する場合,後に@command{make}の呼び
 4318: 出しで,パッチをあてたファイルのタイムスタンプで混乱しないように,パッチ
 4319: をあてるファイルに依存するすべてのファイルも(例えば@samp{make clean}で) 
 4320: 削除するべきです.
 4321: 
 4322: @node Multiple Patches
 4323: @c @section Multiple Patches in a File
 4324: @section ファイル内の複数のパッチ
 4325: @cindex multiple patches
 4326: @cindex intuiting file names from patches
 4327: 
 4328: @c If the patch file contains more than one patch, and if you do not
 4329: @c specify an input file on the command line, @command{patch} tries to
 4330: @c apply each patch as if they came from separate patch files.  This
 4331: @c means that it determines the name of the file to patch for each patch,
 4332: @c and that it examines the leading text before each patch for file names
 4333: @c and prerequisite revision level (@pxref{Making Patches}, for more on
 4334: @c that topic).
 4335: @c 
 4336: パッチファイルは一つ以上のパッチが含まれている場合,そして,コマンドライ
 4337: ンで入力ファイルを指定していない場合,@command{patch}はそれぞれのファイ
 4338: ルを個別のパッチファイルから来たもののように適用します.これは,それぞれ
 4339: のパッチに対するパッチをあてるファイル名を決定し,ファイル名に対するそれ
 4340: ぞれのパッチの前に前置されているテキストと,必要条件となるリビジョンレベ
 4341: ルを調べるということを意味します(この話題の詳細は,@pxref{Making
 4342: Patches}).
 4343: 
 4344: @c @command{patch} uses the following rules to intuit a file name from
 4345: @c the leading text before a patch.  First, @command{patch} takes an
 4346: @c ordered list of candidate file names as follows:
 4347: @c 
 4348: パッチの前に前置されてるテキストからファイル名を直観で知るために,
 4349: @command{patch}は以下の規則を使用します.最初に,@command{patch}は以下の
 4350: ような対象となるファイル名の順序のあるリストを受けとります.
 4351: 
 4352: @itemize @bullet
 4353: @item
 4354: @c If the header is that of a context diff, @command{patch} takes the old
 4355: @c and new file names in the header.  A name is ignored if it does not
 4356: @c have enough slashes to satisfy the @option{-p@var{num}} or
 4357: @c @option{--strip=@var{num}} option.  The name @file{/dev/null} is also
 4358: @c ignored.
 4359: @c 
 4360: ヘッダが周りの文を使用した差分の場合,@command{patch}は古いものと新しい
 4361: もののファイル名をヘッダから受けとります.@option{-p@var{num}}や
 4362: @option{--strip=@var{num}}オプションに満たないスラッシュしかない場合,名
 4363: 前は無視されます.@file{/dev/null}という名前も無視されます.
 4364: 
 4365: @item
 4366: @c If there is an @samp{Index:} line in the leading garbage and if either
 4367: @c the old and new names are both absent or if @command{patch} is
 4368: @c conforming to @sc{posix}, @command{patch} takes the name in the
 4369: @c @samp{Index:} line.
 4370: @c 
 4371: 前置される不要な情報に@samp{Index:}行があり,古いものの名前も新しいもの
 4372: の名前も両方とも無い,または@command{patch}が@sc{posix}に準拠している場
 4373: 合,@command{patch}は@samp{Index:}行の名前を受けとります.
 4374: 
 4375: @item
 4376: @c For the purpose of the following rules, the candidate file names are
 4377: @c considered to be in the order (old, new, index), regardless of the
 4378: @c order that they appear in the header.
 4379: @c 
 4380: 以下の規則の目的で,対象となるファイル名は,ヘッダに現れる順番によらず,
 4381: (古いもの,新しいもの,索引の)順番にならんでいると考えられます.
 4382: @end itemize
 4383: 
 4384: @noindent
 4385: @c Then @command{patch} selects a file name from the candidate list as
 4386: @c follows:
 4387: @c 
 4388: そして,@command{patch}は以下のような対象となるファイルのリストからファ
 4389: イル名を選択します.
 4390: 
 4391: @itemize @bullet
 4392: @item
 4393: @c If some of the named files exist, @command{patch} selects the first
 4394: @c name if conforming to @sc{posix}, and the best name otherwise.
 4395: @c 
 4396: 指定されたファイルが存在する場合,@sc{posix}に準拠している場合は最初の名
 4397: 前を,それ以外では最適な名前を選択します.
 4398: 
 4399: @item
 4400: @c If @command{patch} is not ignoring @sc{rcs}, ClearCase, and @sc{sccs}
 4401: @c (@pxref{Revision Control}), and no named files exist but an @sc{rcs},
 4402: @c ClearCase, or @sc{sccs} master is found, @command{patch} selects the
 4403: @c first named file with an @sc{rcs}, ClearCase, or @sc{sccs} master.
 4404: @c 
 4405: @command{patch}が@sc{rcs},ClearCase,そして@sc{sccs}(@pxref{Revision
 4406: Control})を無視せず,@sc{rcs},ClearCase,または@sc{sccs}以外の名前のファ
 4407: イルが存在しない場合,@command{patch}は@sc{rcs},ClearCase,または
 4408: @sc{sccs}のマスターで最初に指名されたファイルを選択します.
 4409: 
 4410: @item
 4411: @c If no named files exist, no @sc{rcs}, ClearCase, or @sc{sccs} master
 4412: @c was found, some names are given, @command{patch} is not conforming to
 4413: @c @sc{posix}, and the patch appears to create a file, @command{patch}
 4414: @c selects the best name requiring the creation of the fewest
 4415: @c directories.
 4416: @c 
 4417: 指名したファイルが存在しないせず,@sc{rcs},ClearCase,または@sc{sccs}の
 4418: マスターも見つからない,名前が与えられていない,@command{patch}が
 4419: @sc{posix}に準拠していない,そしてパッチがファイルを作成しているように見
 4420: える場合,@command{patch}はディレクトリの作成が最小になるように,要求さ
 4421: れている最適な名前を選択します.
 4422: 
 4423: @item
 4424: @c If no file name results from the above heuristics, you are asked for
 4425: @c the name of the file to patch, and @command{patch} selects that name.
 4426: @c 
 4427: 上記の発見的手法の結果でもファイル名が付かない場合,パッチをあてるファイ
 4428: ル名を尋ねられ,@command{patch}はその名前を選択します.
 4429: @end itemize
 4430: 
 4431: @c To determine the @dfn{best} of a nonempty list of file names,
 4432: @c @command{patch} first takes all the names with the fewest path name
 4433: @c components; of those, it then takes all the names with the shortest
 4434: @c basename; of those, it then takes all the shortest names; finally, it
 4435: @c takes the first remaining name.
 4436: @c 
 4437: ファイル名の空ではない@dfn{最適な(best)}リストを決定するため,
 4438: @command{patch}は最初に,パス名の構成要素を最小にして,すべての名前を受
 4439: けとります.そして,最短のベース名にしてすべての名前を受けとります.そし
 4440: て,すべての最短の名前を受けとります.最後に,残っている最初の名前を受け
 4441: とります.
 4442: 
 4443: @c @xref{patch and POSIX}, to see whether @command{patch} is conforming
 4444: @c to @sc{posix}.
 4445: @c 
 4446: @command{patch}が@sc{posix}に準拠しているかどうかを知るために,
 4447: @xref{patch and POSIX}.
 4448: 
 4449: @node patch Directories
 4450: @c @section Applying Patches in Other Directories
 4451: @section 他のディレクトリでパッチを適用する
 4452: @cindex directories and patch
 4453: @cindex patching directories
 4454: 
 4455: @c The @option{-d @var{directory}} or @option{--directory=@var{directory}}
 4456: @c option to @command{patch} makes directory @var{directory} the current
 4457: @c directory for interpreting both file names in the patch file, and file
 4458: @c names given as arguments to other options (such as @option{-B} and
 4459: @c @option{-o}).  For example, while in a mail reading program, you can patch
 4460: @c a file in the @file{/usr/src/emacs} directory directly from a message
 4461: @c containing the patch like this:
 4462: @c 
 4463: @option{-d @var{directory}}や@option{--directory=@var{directory}}オプショ
 4464: ンを@command{patch}に渡すと,ディレクトリ@var{directory}を,パッチファイ
 4465: ル内のファイル名と,それ以外の(@option{-B}と@option{-o}のような)オプショ
 4466: ンの引数として与えられているファイル名の両方を解読するカレントディレクト
 4467: リにしにします.例えば,メールを読むプログラムで,@file{/usr/src/emacs} 
 4468: ディレクトリに,以下のようなパッチを含むメッセージから直接ファイルにパッ
 4469: チをあてることが可能です.
 4470: 
 4471: @example
 4472: | patch -d /usr/src/emacs
 4473: @end example
 4474: 
 4475: @c Sometimes the file names given in a patch contain leading directories,
 4476: @c but you keep your files in a directory different from the one given in
 4477: @c the patch.  In those cases, you can use the
 4478: @c @option{-p@var{number}} or @option{--strip=@var{number}}
 4479: @c option to set the file name strip count to @var{number}.  The strip
 4480: @c count tells @command{patch} how many slashes, along with the directory
 4481: @c names between them, to strip from the front of file names.  A sequence
 4482: @c of one or more adjacent slashes is counted as a single slash.  By
 4483: @c default, @command{patch} strips off all leading directories, leaving
 4484: @c just the base file names.
 4485: @c 
 4486: パッチで与えられるファイル名にディレクトリが前置されてはいるものの,パッ
 4487: チで与えられているディレクトリとは異なるディレクトリにファイルを保持した
 4488: いときもあります.この状況では,ファイル名を@var{number}個切り取って設定
 4489: するために,@option{-p@var{number}}や@option{--strip=@var{number}}オプショ
 4490: ンを使用することが可能です.切り取り数は,ファイル名の最初から切り取る,
 4491: ディレクトリ名が間にはいっている,スラッシュの数を@command{patch}に伝え
 4492: ます.一つ以上の隣接したスラッシュは,単一のスラッシュとして数えられます.
 4493: デフォルトで,@command{patch}はすべての前置したディレクトリを切捨て,ファ
 4494: イルのベース名だけを残します.
 4495: 
 4496: @c For example, suppose the file name in the patch file is
 4497: @c @file{/gnu/src/emacs/etc/NEWS}.  Using @option{-p0} gives the
 4498: @c entire file name unmodified, @option{-p1} gives
 4499: @c @file{gnu/src/emacs/etc/NEWS} (no leading slash), @option{-p4} gives
 4500: @c @file{etc/NEWS}, and not specifying @option{-p} at all gives @file{NEWS}.
 4501: @c 
 4502: 例えば,パッチファイルのファイル名が@file{/gnu/src/emacs/etc/NEWS}だと仮
 4503: 定します.@option{-p0}を使用すると,ファイル名は編集されずに全部与えられ,
 4504: @option{-p1}では,@file{gnu/src/emacs/etc/NEWS}(前置されたスラッシュが無
 4505: い)が与えられ,@option{-p4}では@file{etc/NEWS}が与えられ,@option{-p}を
 4506: 全く指定しなければ,@file{NEWS}が与えられます.
 4507: 
 4508: @c @command{patch} looks for each file (after any slashes have been stripped)
 4509: @c in the current directory, or if you used the @option{-d @var{directory}}
 4510: @c option, in that directory.
 4511: @c 
 4512: @command{patch}はカレントディレクトリで,(スラッシュを切り捨てた後)それ
 4513: ぞれのファイルを探し,@option{-d @var{directory}}を使用した場合はそのディ
 4514: レクトリで探します.
 4515: 
 4516: @node Backups
 4517: @c @section Backup Files
 4518: @section バックアップファイル
 4519: @cindex backup file strategy
 4520: 
 4521: @c Normally, @command{patch} creates a backup file if the patch does not
 4522: @c exactly match the original input file, because in that case the
 4523: @c original data might not be recovered if you undo the patch with
 4524: @c @samp{patch -R} (@pxref{Reversed Patches}).  However, when conforming
 4525: @c to @sc{posix}, @command{patch} does not create backup files by
 4526: @c default.  @xref{patch and POSIX}.
 4527: @c 
 4528: 通常,パッチが正確にオリジナルの入力ファイルにマッチしない場合,その状況
 4529: では@samp{patch -R} (@pxref{Reversed Patches})でパッチを元に戻す場合にオ
 4530: リジナルデータが元に戻らないので,バックアップファイルを作成します.しか
 4531: し,@sc{posix}に準拠しているとき,@command{patch}はデフォルトでバックアッ
 4532: プファイルを作成しません.@xref{patch and POSIX}.
 4533: 
 4534: @c The @option{-b} or @option{--backup} option causes @command{patch} to
 4535: @c make a backup file regardless of whether the patch matches the
 4536: @c original input.  The @option{--backup-if-mismatch} option causes
 4537: @c @command{patch} to create backup files for mismatches files; this is
 4538: @c the default when not conforming to @sc{posix}.  The
 4539: @c @option{--no-backup-if-mismatch} option causes @command{patch} to not
 4540: @c create backup files, even for mismatched patches; this is the default
 4541: @c when conforming to @sc{posix}.
 4542: @c 
 4543: @option{-b}や@option{--backup}オプションで,@command{patch}はパッチがオ
 4544: リジナルの入力にマッチするかどうかに依存せずバックアップファイルを作成し
 4545: ます.@option{--backup-if-mismatch}オプションでは,@command{patch}はマッ
 4546: チしないファイルに対してバックアップファイルを作成します.これは,
 4547: @sc{posix}に準拠していないときのデフォルトです.
 4548: @option{--no-backup-if-mismatch}オプションで,@command{patch}はマッチし
 4549: ないファイルに対してもバックアップファイルを作成しません.これは
 4550: @sc{posix}に準拠しているときのデフォルトです.
 4551: 
 4552: @c When backing up a file that does not exist, an empty, unreadable
 4553: @c backup file is created as a placeholder to represent the nonexistent
 4554: @c file.
 4555: @c 
 4556: バックアップファイルが存在しないとき,存在しないファイルを再生成させる場
 4557: 所として,空の読み込み不可能なバックアップファイルが作成されます.
 4558: 
 4559: @node Backup Names
 4560: @c @section Backup File Names
 4561: @section バックアップファイル名
 4562: @cindex backup file names
 4563: 
 4564: @c Normally, @command{patch} renames an original input file into a backup
 4565: @c file by appending to its name the extension @samp{.orig}, or @samp{~}
 4566: @c if using @samp{.orig} would make the backup file name too
 4567: @c long.@footnote{A coding error in @sc{gnu} @command{patch} version
 4568: @c 2.5.4 causes it to always use @samp{~}, but this should be fixed in
 4569: @c the next release.}  The @option{-z @var{backup-suffix}} or
 4570: @c @option{--suffix=@var{backup-suffix}} option causes @command{patch} to
 4571: @c use @var{backup-suffix} as the backup extension instead.
 4572: @c 
 4573: 通常,@command{patch}は,オリジナルの入力ファイルを,その名前に拡張子
 4574: @samp{.orig}や,@samp{.orig}がバックアップファイルとして長過ぎる場合は
 4575: @samp{~}を後置したバックアップファイルに名前を変えます.
 4576: @footnote{@sc{gnu} @command{patch}のバージョン2.5.4でのコーディングエラー
 4577: で,常に@samp{~}が使用されますが,次のリリースで修正されるでしょう.}
 4578: @option{-z @var{backup-suffix}}や@option{--suffix=@var{backup-suffix}}オ
 4579: プションで,代わりのバックアップ用拡張子として@command{patch}は
 4580: @var{backup-suffix}を使用します.
 4581: 
 4582: @vindex SIMPLE_BACKUP_SUFFIX
 4583: @c Alternately, you can specify the extension for backup files with the
 4584: @c @env{SIMPLE_BACKUP_SUFFIX} environment variable, which the options
 4585: @c override.
 4586: @c 
 4587: また,@env{SIMPLE_BACKUP_SUFFIX}環境変数でバックアップファイルの拡張子を
 4588: 指定することも可能ですが,オプションが優先されます.
 4589: 
 4590: @c @command{patch} can also create numbered backup files the way @sc{gnu} Emacs
 4591: @c does.  With this method, instead of having a single backup of each file,
 4592: @c @command{patch} makes a new backup file name each time it patches a file.
 4593: @c For example, the backups of a file named @file{sink} would be called,
 4594: @c successively, @file{sink.~1~}, @file{sink.~2~}, @file{sink.~3~}, etc.
 4595: @c 
 4596: @command{patch}では,@sc{gnu} Emacsのように番号付のバックアップファイル
 4597: を作成することも可能です.この手法を用いることで,それぞれのファイルに対
 4598: して単一のバックアップファイルを持つ代わりに,@command{patch}でファイル
 4599: にパッチを当てるたびに新しいバックアップファイルを作成します.例えば,
 4600: @file{sink}という名前のファイルのバックアップは,連続的に,
 4601: @file{sink.~1~},@file{sink.~2~},@file{sink.~3~}等になります.
 4602: 
 4603: @vindex PATCH_VERSION_CONTROL
 4604: @vindex VERSION_CONTROL
 4605: @c The @option{-V @var{backup-style}} or
 4606: @c @option{--version-control=@var{backup-style}} option takes as an
 4607: @c argument a method for creating backup file names.  You can alternately
 4608: @c control the type of backups that @command{patch} makes with the
 4609: @c @env{PATCH_VERSION_CONTROL} environment variable, which the
 4610: @c @option{-V} option overrides.  If @env{PATCH_VERSION_CONTROL} is not
 4611: @c set, the @env{VERSION_CONTROL} environment variable is used instead.
 4612: @c Please note that these options and variables control backup file
 4613: @c names; they do not affect the choice of revision control system
 4614: @c (@pxref{Revision Control}).
 4615: @c 
 4616: @option{-V @var{backup-style}}や
 4617: @option{--version-control=@var{backup-style}}オプションは,バックアップ
 4618: ファイルを作成する手法を引数として受け入れます.@command{patch}が
 4619: @env{PATCH_VERSION_CONTROL}環境変数を用いて作成するバックアップの形式を
 4620: 制御することも可能で,@option{-V}オプションで優先します.
 4621: @env{PATCH_VERSION_CONTROL}が設定されていない場合,@env{VERSION_CONTROL} 
 4622: 環境変数が代わりに使用されます.これらのオプションや変数でバックアップファ
 4623: イルの名前を制御することに注意してください.リビジョンコントロールシステ
 4624: ムの選択には影響しません(@pxref{Revision Control}).
 4625: 
 4626: @c The values of these environment variables and the argument to the
 4627: @c @option{-V} option are like the @sc{gnu} Emacs @code{version-control}
 4628: @c variable (@pxref{Backup Names, , , emacs, The @sc{gnu} Emacs Manual},
 4629: @c for more information on backup versions in Emacs).  They also
 4630: @c recognize synonyms that are more descriptive.  The valid values are
 4631: @c listed below; unique abbreviations are acceptable.
 4632: @c 
 4633: 環境変数と@option{-V}オプションの引数の値は,@sc{gnu} Emacsの
 4634: @code{version-control}変数に似ています(Emacsのバックアップバージョンの詳
 4635: 細は,@pxref{Backup Names, , , emacs, The @sc{gnu} Emacs Manual}).それ
 4636: らは,より記述的な同義語も認識します.有効な値は以下にリストアップしてい
 4637: ます.一意に求まる省略も受け入れます.
 4638: 
 4639: @table @option
 4640: @item t
 4641: @itemx numbered
 4642: @c Always make numbered backups.
 4643: @c 
 4644: 常に番号付のバックアップファイルを作成します.
 4645: 
 4646: @item nil
 4647: @itemx existing
 4648: @c Make numbered backups of files that already have them, simple backups of
 4649: @c the others.  This is the default.
 4650: @c 
 4651: 既に存在しているファイルの番号付のバックアップを作成し,それ以外では単純
 4652: なバックアップを作成します.これはデフォルトです.
 4653: 
 4654: @item never
 4655: @itemx simple
 4656: @c Always make simple backups.
 4657: @c 
 4658: 常に単純なバックアップを作成します.
 4659: @end table
 4660: 
 4661: @c You can also tell @command{patch} to prepend a prefix, such as a
 4662: @c directory name, to produce backup file names.  The @option{-B
 4663: @c @var{prefix}} or @option{--prefix=@var{prefix}} option makes backup
 4664: @c files by prepending @var{prefix} to them.  The @option{-Y
 4665: @c @var{prefix}} or @option{--basename-prefix=@var{prefix}} prepends
 4666: @c @var{prefix} to the last file name component of backup file names
 4667: @c instead; for example, @option{-Y ~} causes the backup name for
 4668: @c @file{dir/file.c} to be @file{dir/~file.c}.  If you use either of
 4669: @c these prefix options, the suffix-based options are ignored.
 4670: @c 
 4671: @command{patch}に,ディレクトリ名のような接頭辞を付けてバックアップファ
 4672: イルを作成するるように伝えることも可能です.@option{-B @var{prefix}}や
 4673: @option{--prefix=@var{prefix}}オプションで,@var{prefix}を前置したバック
 4674: アップファイルを作成します.@option{-Y @var{prefix}}や
 4675: @option{--basename-prefix=@var{prefix}}で,バックアップファイル名のファ
 4676: イル名の構成要素の最後に,その代わりに@var{prefix}を前置します.例えば,
 4677: @option{-Y ~}で@file{dir/file.c}のバックアップファイルは
 4678: @file{dir/~file.c}になります.これらの接頭辞オプションの一つを使用した場
 4679: 合,接尾子をベースにしたオプションは無視されます.
 4680: 
 4681: @c If you specify the output file with the @option{-o} option, that file is
 4682: @c the one that is backed up, not the input file.
 4683: @c 
 4684: 出力ファイルを@option{-o}オプションで指定する場合,そのファイルはバック
 4685: アップされたものになりますが,入力ファイルではありません.
 4686: 
 4687: @c Options that affect the names of backup files do not affect whether
 4688: @c backups are made.  For example, if you specify the
 4689: @c @option{--no-backup-if-mismatch} option, none of the options described
 4690: @c in this section have any affect, because no backups are made.
 4691: @c 
 4692: バックアップファイルの名前に影響するオプションは,バックアップを作成する
 4693: かどうかに影響しません.例えば,@option{--no-backup-if-mismatch}オプショ
 4694: ンを指定した場合はバックアップが作成されないので,このセクションで記述さ
 4695: れているオプションは全く影響しません.
 4696: 
 4697: @node Reject Names
 4698: @c @section Reject File Names
 4699: @section リジェクトされたファイル名
 4700: @cindex reject file names
 4701: 
 4702: @c The names for reject files (files containing patches that
 4703: @c @command{patch} could not find a place to apply) are normally the name
 4704: @c of the output file with @samp{.rej} appended (or @samp{#} if if using
 4705: @c @samp{.rej} would make the backup file name too long).
 4706: @c 
 4707: リジェクトファイル(パッチに含まれているファイルで,@command{patch}を適用
 4708: する場所を見つけられなかったファイル)に対する名前は通常,出力ファイルに
 4709: @samp{.rej}を後置して命名されます(または,@samp{.rej}を用いた場合,バッ
 4710: クアップファイル名が長過ぎる場合は@samp{#}になります).
 4711: 
 4712: @c Alternatively, you can tell @command{patch} to place all of the rejected
 4713: @c patches in a single file.  The @option{-r @var{reject-file}} or
 4714: @c @option{--reject-file=@var{reject-file}} option uses @var{reject-file} as
 4715: @c the reject file name.
 4716: @c 
 4717: また,すべてのリジェクトされたファイル名を単一のファイルに書くように伝え
 4718: ることも可能です.@option{-r @var{reject-file}}や
 4719: @option{--reject-file=@var{reject-file}}オプションは,@var{reject-file} 
 4720: をリジェクトされたファイル名として使用します.
 4721: 
 4722: @node patch Messages
 4723: @c @section Messages and Questions from @command{patch}
 4724: @section @command{patch}からのメッセージと質問
 4725: @cindex @command{patch} messages and questions
 4726: @cindex diagnostics from @command{patch}
 4727: @cindex messages from @command{patch}
 4728: 
 4729: @c @command{patch} can produce a variety of messages, especially if it
 4730: @c has trouble decoding its input.  In a few situations where it's not
 4731: @c sure how to proceed, @command{patch} normally prompts you for more
 4732: @c information from the keyboard.  There are options to produce more or
 4733: @c fewer messages, to have it not ask for keyboard input, and to
 4734: @c affect the way that file names are quoted in messages.
 4735: @c 
 4736: @command{patch}は,特に入力のデコードで問題がある場合,様々なメッセージ
 4737: を生成するはずです.処理方法が分からないような状況で,@command{patch}は
 4738: 通常,キーボードから更に情報を入力するように促します.キーボードからの入
 4739: 力を促さないようにしたり,メッセージ内のファイル名を引用符で囲む方法に効
 4740: 果を与えるために,メッセージを多くしたり少なくしたりするオプションもあり
 4741: ます.
 4742: 
 4743: @menu
 4744: * More or Fewer Messages::    Controlling the verbosity of @command{patch}.
 4745: * patch and Keyboard Input::  Inhibiting keyboard input.
 4746: * patch Quoting Style::       Quoting file names in diagnostics.
 4747: @end menu
 4748: 
 4749: @c @command{patch} exits with status 0 if all hunks are applied successfully,
 4750: @c 1 if some hunks cannot be applied, and 2 if there is more serious trouble.
 4751: @c When applying a set of patches in a loop, you should check the
 4752: @c exit status, so you don't apply a later patch to a partially patched
 4753: @c file.
 4754: @c 
 4755: @command{patch}は,すべてのhunkが正しく適用された場合は0,hunkが適用でき
 4756: なかった場合は1,そして,より重要な問題がある場合は2のステータスで終了し
 4757: ます.ループでパッチの組を適用しているとき,部分的にパッチを当てたファイ
 4758: ルにそれ以降適用しないように,終了ステータスを調査すべきです.
 4759: 
 4760: @node More or Fewer Messages
 4761: @c @subsection Controlling the Verbosity of @command{patch}
 4762: @subsection @command{patch}の冗長な制御
 4763: @cindex verbose messages from @command{patch}
 4764: @cindex inhibit messages from @command{patch}
 4765: 
 4766: @c You can cause @command{patch} to produce more messages by using the
 4767: @c @option{--verbose} option.  For example, when you give this option,
 4768: @c the message @samp{Hmm...} indicates that @command{patch} is reading text in
 4769: @c the patch file, attempting to determine whether there is a patch in that
 4770: @c text, and if so, what kind of patch it is.
 4771: @c 
 4772: @option{--verbose}オプションを用いることで,@command{patch}により多くの
 4773: メッセージを生成させることが可能です.例えば,このオプションを与えたとき,
 4774: メッセージ@samp{Hmm...}は,@command{patch}がパッチファイルのテキストを読
 4775: み込んで,テキストにパッチがあるかどうかの決定を試み,存在する場合はパッ
 4776: チの種類が何かの決定を試みていることを示します.
 4777: 
 4778: @c You can inhibit all terminal output from @command{patch}, unless an error
 4779: @c occurs, by using the @option{-s}, @option{--quiet}, or @option{--silent}
 4780: @c option.
 4781: @c 
 4782: @option{-s},@option{--quiet},または@option{--silent}オプションを使用す
 4783: ることで,エラーが発生しない限り,@command{patch}からの端末へのすべての
 4784: 出力を抑制することが可能です.
 4785: 
 4786: @node patch and Keyboard Input
 4787: @c @subsection Inhibiting Keyboard Input
 4788: @subsection キーボード入力の抑制
 4789: @cindex keyboard input to @command{patch}
 4790: 
 4791: @c There are two ways you can prevent @command{patch} from asking you any
 4792: @c questions.  The @option{-f} or @option{--force} option assumes that you know
 4793: @c what you are doing.  It causes @command{patch} to do the following:
 4794: @c 
 4795: @command{patch}が尋ねることを避ける方法は二つあります.@option{-f}や
 4796: @option{--force}オプションは,行なっていることが分かっていることを仮定し
 4797: ます.それで@command{patch}は以下のことを行ないます.
 4798: 
 4799: @itemize @bullet
 4800: @item
 4801: @c Skip patches that do not contain file names in their headers.
 4802: @c 
 4803: ヘッダにファイル名が含まれていないパッチを省略します.
 4804: 
 4805: @item
 4806: @c Patch files even though they have the wrong version for the
 4807: @c @samp{Prereq:} line in the patch;
 4808: @c 
 4809: パッチの@samp{Prereq:}行に対する間違ったバージョンでさえファイルにパッチ
 4810: を当てます.
 4811: 
 4812: @item
 4813: @c Assume that patches are not reversed even if they look like they are.
 4814: @c 
 4815: パッチがリバースパッチのように見えてもリバースパッチと仮定しません.
 4816: @end itemize
 4817: 
 4818: @noindent
 4819: @c The @option{-t} or @option{--batch} option is similar to @option{-f}, in that
 4820: @c it suppresses questions, but it makes somewhat different assumptions:
 4821: @c 
 4822: @option{-t}や@option{--batch}オプションは@option{-f}に似ていて,質問を抑
 4823: 制しますが,仮定は多少異なります.
 4824: 
 4825: @itemize @bullet
 4826: @item
 4827: @c Skip patches that do not contain file names in their headers
 4828: @c (the same as @option{-f}).
 4829: @c 
 4830: ヘッダにファイル名が含まれていないパッチを省略します(@option{-f}と同じで
 4831: す).
 4832: 
 4833: @item
 4834: @c Skip patches for which the file has the wrong version for the
 4835: @c @samp{Prereq:} line in the patch;
 4836: @c 
 4837: パッチの@samp{Prereq:}行に対する間違ったバージョンのファイルにはパッチを
 4838: 当てません.
 4839: 
 4840: @item
 4841: @c Assume that patches are reversed if they look like they are.
 4842: @c 
 4843: パッチがリバースパッチのように見える場合,リバースパッチと仮定します.
 4844: @end itemize
 4845: 
 4846: @node patch Quoting Style
 4847: @c @subsection @command{patch} Quoting Style
 4848: @subsection @command{patch}が引用符で囲む形式
 4849: @cindex quoting style
 4850: 
 4851: @c When @command{patch} outputs a file name in a diagnostic message, it
 4852: @c can format the name in any of several ways.  This can be useful to
 4853: @c output file names unambiguously, even if they contain punctuation or
 4854: @c special characters like newlines.  The
 4855: @c @option{--quoting-style=@var{word}} option controls how names are
 4856: @c output.  The @var{word} should be one of the following:
 4857: @c 
 4858: @command{patch}が診断メッセージでファイル名を出力するとき,名前の書式は
 4859: 何通りかになります.出力ファイル名に,句読点や改行のような特殊文字を含ん
 4860: でいる場合でさえ,それを明確にするとき役に立つはずです.
 4861: @option{--quoting-style=@var{word}}オプションで,名前の出力方法を制御し
 4862: ます.@var{word}は以下の一つです.
 4863: 
 4864: @table @samp
 4865: @item literal
 4866: @c Output names as-is.
 4867: @c 
 4868: 名前をそのまま出力します.
 4869: @item shell
 4870: @c Quote names for the shell if they contain shell metacharacters or would
 4871: @c cause ambiguous output.
 4872: @c 
 4873: 名前にシェルのメタ文字や明確でない出力になる場合,シェルに対して名前を引
 4874: 用符で囲みます.
 4875: @item shell-always
 4876: @c Quote names for the shell, even if they would normally not require quoting.
 4877: @c 
 4878: 名前が通常のもので引用符で囲む必要が無い場合でも,シェルに対して名前を引
 4879: 用符で囲みます.
 4880: @item c
 4881: @c Quote names as for a C language string.
 4882: @c 
 4883: C言語の文字列のように,名前を引用符で囲みます.
 4884: @item escape
 4885: @c Quote as with @samp{c} except omit the surrounding double-quote
 4886: @c characters.
 4887: @c 
 4888: 周りの二重引用不文字を削除する以外,@samp{c}のように引用符で囲みます.
 4889: @c The following are not yet implemented in patch 2.5.4.
 4890: @c @item clocale
 4891: @c Quote as with @samp{c} except use quotation marks appropriate for the
 4892: @c locale.
 4893: @c @item locale
 4894: @c @c Use @t instead of @samp to avoid duplicate quoting in some output styles.
 4895: @c Like @samp{clocale}, but quote @t{`like this'} instead of @t{"like
 4896: @c this"} in the default C locale.  This looks nicer on many displays.
 4897: @end table
 4898: 
 4899: @vindex QUOTING_STYLE
 4900: @c You can specify the default value of the @option{--quoting-style}
 4901: @c option with the environment variable @env{QUOTING_STYLE}.  If that
 4902: @c environment variable is not set, the default value is @samp{shell},
 4903: @c but this default may change in a future version of @command{patch}.
 4904: @c 
 4905: @option{--quoting-style}オプションのデフォルト値を,環境変数
 4906: @env{QUOTING_STYLE}で指定することが可能です.この環境変数が設定されてい
 4907: ない場合,デフォルト値は@samp{shell}ですが,@command{patch}の将来のバー
 4908: ジョンでは,このデフォルト値は変更されるかもしれません.
 4909: 
 4910: @node patch and POSIX
 4911: @c @section @command{patch} and the @sc{posix} Standard
 4912: @section @command{patch}と@sc{posix}の標準
 4913: @cindex @sc{posix}
 4914: 
 4915: @vindex POSIXLY_CORRECT
 4916: @c If you specify the @option{--posix} option, or set the
 4917: @c @env{POSIXLY_CORRECT} environment variable, @command{patch} conforms
 4918: @c more strictly to the @sc{posix} standard, as follows:
 4919: @c 
 4920: @option{--posix}オプションを指定したり,@env{POSIXLY_CORRECT}環境変数を
 4921: 設定した場合,@command{patch}は厳密に@sc{posix}の標準に従い,それは以下
 4922: の内容です.
 4923: 
 4924: @itemize @bullet
 4925: @item
 4926: @c Take the first existing file from the list (old, new, index)
 4927: @c when intuiting file names from diff headers.  @xref{Multiple Patches}.
 4928: @c 
 4929: 差分のヘッダからファイル名を見るとき,リスト(古い,新しい,インデックス) 
 4930: の最初に存在するファイルを受けとります.@xref{Multiple Patches}.
 4931: 
 4932: @item
 4933: @c Do not remove files that are removed by a diff.
 4934: @c @xref{Creating and Removing}.
 4935: @c 
 4936: 差分で削除されるファイルを削除しません.@xref{Creating and Removing}.
 4937: 
 4938: @item
 4939: @c Do not ask whether to get files from @sc{rcs}, ClearCase, or
 4940: @c @sc{sccs}.  @xref{Revision Control}.
 4941: @c 
 4942: @sc{rcs},ClearCase,または@sc{sccs}からファイルを取得するかどうかを尋ね
 4943: ません.@xref{Revision Control}.
 4944: 
 4945: @item
 4946: @c Require that all options precede the files in the command line.
 4947: @c 
 4948: コマンドラインで,すべてのオプションがファイルに前置されていることを要求
 4949: します.
 4950: 
 4951: @item
 4952: @c Do not backup files, even when there is a mismatch.  @xref{Backups}.
 4953: @c 
 4954: 不一致があったとしても,ファイルをバックアップしません.@xref{Backups}.
 4955: @end itemize
 4956: 
 4957: @node patch and Tradition
 4958: @c @section @sc{gnu} @command{patch} and Traditional @command{patch}
 4959: @section @sc{gnu} @command{patch}と伝統的な@command{patch}
 4960: @cindex traditional @command{patch}
 4961: 
 4962: @c The current version of @sc{gnu} @command{patch} normally follows the
 4963: @c @sc{posix} standard.  @xref{patch and POSIX}, for the few exceptions
 4964: @c to this general rule.
 4965: @c 
 4966: 現在のバージョンの@sc{gnu} @command{patch}は,通常@sc{posix}の標準に従い
 4967: ます.この一般的な規則へのわずかな例外は,@xref{patch and POSIX}.
 4968: 
 4969: @c Unfortunately, @sc{posix} redefined the behavior of @command{patch} in
 4970: @c several important ways.  You should be aware of the following
 4971: @c differences if you must interoperate with traditional @command{patch},
 4972: @c or with @sc{gnu} @command{patch} version 2.1 and earlier.
 4973: @c 
 4974: 残念ながら@sc{posix}では,複数の重要な方法で,@command{patch}の動作を再
 4975: 定義しています.伝統的な@command{patch}や@sc{gnu} @command{patch}のバー
 4976: ジョン2.1とそれ以前で内部処理する必要がある場合,以下の違いを知っておく
 4977: べきです.
 4978: 
 4979: @itemize @bullet
 4980: @item
 4981: @c In traditional @command{patch}, the @option{-p} option's operand was
 4982: @c optional, and a bare @option{-p} was equivalent to @option{-p0}.  The
 4983: @c @option{-p} option now requires an operand, and @option{-p@ 0} is now
 4984: @c equivalent to @option{-p0}.  For maximum compatibility, use options
 4985: @c like @option{-p0} and @option{-p1}.
 4986: @c 
 4987: 伝統的な@command{patch}では,@option{-p}のオペランドはオプションで,
 4988: @option{-p}だけだと@option{-p0}と等価です.現在@option{-p}オプションはオ
 4989: ペランドを要求し,@option{-p@ 0}は現在@option{-p0}と等価です.互換性を最
 4990: 大にするため,@option{-p0}と@option{-p1}のようなオプションを使用してくだ
 4991: さい.
 4992: 
 4993: @c Also, traditional @command{patch} simply counted slashes when
 4994: @c stripping path prefixes; @command{patch} now counts pathname
 4995: @c components.  That is, a sequence of one or more adjacent slashes now
 4996: @c counts as a single slash.  For maximum portability, avoid sending
 4997: @c patches containing @file{//} in file names.
 4998: @c 
 4999: また,伝統的な@command{patch}は,前置されるパスを取り除くとき,単純にス
 5000: ラッシュを数えていきます.@command{patch}は現在,パス名の構成要素を数え
 5001: ます.すなわち,一つ以上の隣接するスラッシュは,現在単一のスラッシュとし
 5002: て数えられます.互換性を最大にするため,ファイル名に@file{//}を含むパッ
 5003: チを送るのは避けてください.
 5004: 
 5005: @item
 5006: @c In traditional @command{patch}, backups were enabled by default.  This
 5007: @c behavior is now enabled with the @option{-b} or @option{--backup}
 5008: @c option.
 5009: @c 
 5010: 伝統的な@command{patch}は,デフォルトでバックアップが可能です.この動作
 5011: は現在,@option{-b}や@option{--backup}オプションで利用可能です.
 5012: 
 5013: @c Conversely, in @sc{posix} @command{patch}, backups are never made,
 5014: @c even when there is a mismatch.  In @sc{gnu} @command{patch}, this
 5015: @c behavior is enabled with the @option{--no-backup-if-mismatch} option,
 5016: @c or by conforming to @sc{posix}.
 5017: @c 
 5018: 反対に,@sc{posix}の@command{patch}では,バックアップは一致しないものが
 5019: あるときでも決して作成されません.@sc{gnu} @command{patch}では,この動作
 5020: は@option{--no-backup-if-mismatch}オプションや,@sc{posix}準拠にすること
 5021: で利用可能です.
 5022: 
 5023: @c The @option{-b@ @var{suffix}} option of traditional @command{patch} is
 5024: @c equivalent to the @samp{-b -z@ @var{suffix}} options of @sc{gnu}
 5025: @c @command{patch}.
 5026: @c 
 5027: 伝統的な@command{patch}の@option{-b@ @var{suffix}}オプションは,@sc{gnu}
 5028: @command{patch}の@samp{-b -z@ @var{suffix}}オプションと等価です.
 5029: 
 5030: @item
 5031: @c Traditional @command{patch} used a complicated (and incompletely
 5032: @c documented) method to intuit the name of the file to be patched from
 5033: @c the patch header.  This method did not conform to @sc{posix}, and had
 5034: @c a few gotchas.  Now @command{patch} uses a different, equally
 5035: @c complicated (but better documented) method that is optionally
 5036: @c @sc{posix}-conforming; we hope it has fewer gotchas.  The two methods
 5037: @c are compatible if the file names in the context diff header and the
 5038: @c @samp{Index:} line are all identical after prefix-stripping.  Your
 5039: @c patch is normally compatible if each header's file names all contain
 5040: @c the same number of slashes.
 5041: @c 
 5042: 伝統的な@command{patch}は,パッチヘッダからパッチを当てるファイル名を直
 5043: 観するために,複雑な(そしてドキュメントが不完全な)手法を使用していました.
 5044: この手法は,@sc{posix}に準拠しておらず,わずかにgotchaもあります.現在
 5045: @command{patch}は,別の複雑な(しかしドキュメントがより良い),オプション
 5046: で@sc{posix}に準拠している手法を使用してます.よりgotchaが少ないことを期
 5047: 待しています.その二つの手法は,周りの文を使用した差分のヘッダがファイル
 5048: 名で,@samp{Index:}行が前置物を取り除いた後でもすべて識別できる場合,互
 5049: 換性があります.ヘッダのファイル名が同じ数のスラッシュを含んでいる場合,
 5050: 通常はパッチに互換性があります.
 5051: 
 5052: @item
 5053: @c When traditional @command{patch} asked the user a question, it sent
 5054: @c the question to standard error and looked for an answer from the first
 5055: @c file in the following list that was a terminal: standard error,
 5056: @c standard output, @file{/dev/tty}, and standard input.  Now
 5057: @c @command{patch} sends questions to standard output and gets answers
 5058: @c from @file{/dev/tty}.  Defaults for some answers have been changed so
 5059: @c that @command{patch} never goes into an infinite loop when using
 5060: @c default answers.
 5061: @c 
 5062: 伝統的な@command{patch}はユーザに質問するとき,標準エラー出力に質問を送
 5063: り,端末となっている以下のリストの最初のファイルから答を探します.標準エ
 5064: ラー出力,標準出力,@file{/dev/tty},そして標準入力です.現在
 5065: @command{patch}は,標準出力に質問を送り,答を@file{/dev/tty}から受けとり
 5066: ます.質問に対するデフォルトは,デフォルトの答えを使用するとき
 5067: @command{patch}が無限ループにならないように変更されています.
 5068: 
 5069: @item
 5070: @c Traditional @command{patch} exited with a status value that counted
 5071: @c the number of bad hunks, or with status 1 if there was real trouble.
 5072: @c Now @command{patch} exits with status 1 if some hunks failed, or with
 5073: @c 2 if there was real trouble.
 5074: @c 
 5075: 伝統的な@command{patch}は,悪いhunkの数を数えたステータス値や,本当に問
 5076: 題があったとき1になるステータスで終了していました.現在@command{patch}は,
 5077: hunkに失敗したものがある場合は1のステータス,本当に問題があったときは2の
 5078: ステータスで終了します.
 5079: 
 5080: @item
 5081: @c Limit yourself to the following options when sending instructions
 5082: @c meant to be executed by anyone running @sc{gnu} @command{patch},
 5083: @c traditional @command{patch}, or a @command{patch} that conforms to
 5084: @c @sc{posix}.  Spaces are significant in the following list, and
 5085: @c operands are required.
 5086: @c 
 5087: @sc{gnu} @command{patch},伝統的な@command{patch},または,@sc{posix}準
 5088: 拠の@command{patch}を実行している人に実行方法を説明するとき,以下のオプ
 5089: ションに制限してください.以下のリストのスペースは重要で,オペランドは必
 5090: 要です.
 5091: 
 5092: @example
 5093: @option{-c}
 5094: @option{-d @var{dir}}
 5095: @option{-D @var{define}}
 5096: @option{-e}
 5097: @option{-l}
 5098: @option{-n}
 5099: @option{-N}
 5100: @option{-o @var{outfile}}
 5101: @option{-p@var{num}}
 5102: @option{-R}
 5103: @option{-r @var{rejectfile}}
 5104: @end example
 5105: 
 5106: @end itemize
 5107: 
 5108: @node Making Patches
 5109: @c @chapter Tips for Making and Using Patches
 5110: @chapter パッチの作成と使用の助言
 5111: 
 5112: @c Use some common sense when making and using patches.  For example,
 5113: @c when sending bug fixes to a program's maintainer, send several small
 5114: @c patches, one per independent subject, instead of one large,
 5115: @c harder-to-digest patch that covers all the subjects.
 5116: @c 
 5117: パッチを作成したり使用したりするときは,常識を考慮してください.例えば,
 5118: プログラム管理者にバグフィックスを送るとき,すべての主張をカバーする分か
 5119: りにくい一つの大きなパッチの代わりに,一つの主張ごとに独立な小さなパッチ
 5120: を複数送ってください.
 5121: 
 5122: @c Here are some other things you should keep in mind if you are going to
 5123: @c distribute patches for updating a software package.
 5124: @c 
 5125: ソフトウエアパッケージの更新でパッチを配布しようとする場合,それ以外に覚
 5126: えておくべきことは以下のとおりです.
 5127: 
 5128: @menu
 5129: * Tips for Patch Producers::    Advice for making patches.
 5130: * Tips for Patch Consumers::    Advice for using patches.
 5131: * Avoiding Common Mistakes::    Avoiding common mistakes when using @command{patch}.
 5132: * Generating Smaller Patches::  How to generate smaller patches.
 5133: @end menu
 5134: 
 5135: @node Tips for Patch Producers
 5136: @c @section Tips for Patch Producers
 5137: @section パッチを生成するための助言
 5138: @cindex patch producer tips
 5139: 
 5140: @c To create a patch that changes an older version of a package into a
 5141: @c newer version, first make a copy of the older and newer versions in
 5142: @c adjacent subdirectories.  It is common to do that by unpacking
 5143: @c @command{tar} archives of the two versions.
 5144: @c 
 5145: パッケージの古いバージョンを新しいバージョンに変更するパッチを作成するた
 5146: め,最初に古いバージョンと新しいバージョンのコピーを隣接するサブディレク
 5147: トリに作成してください.二つのバージョンを@command{tar}アーカイブに格納
 5148: するのが一般的です.
 5149: 
 5150: @c To generate the patch, use the command @samp{diff -Naur @var{old}
 5151: @c @var{new}} where @var{old} and @var{new} identify the old and new
 5152: @c directories.  The names @var{old} and @var{new} should not contain any
 5153: @c slashes.  The @option{-N} option lets the patch create and remove
 5154: @c files; @option{-a} lets the patch update non-text files; @option{-u}
 5155: @c generates useful time stamps and enough context; and @option{-r} lets
 5156: @c the patch update subdirectories.  Here is an example command, using
 5157: @c Bourne shell syntax:
 5158: @c 
 5159: パッチを生成するために,@var{old}と@var{new}をそれぞれ古いものと新しいも
 5160: のがあるディレクトリにして,コマンド@samp{diff -Naur @var{old}
 5161: @var{new}}を使用してください.名前の@var{old}と@var{new}にスラッシュを含
 5162: めるべきではありません.@option{-N}オプションで,ファイルを作成したり削
 5163: 除したりします.@option{-a}で,テキストファイル以外も更新するパッチにな
 5164: ります.@option{-u}で,タイムスタンプと周りの文が十分にり役に立つパッチ
 5165: を生成します.そして,@option{-r}でパッチはサブディレクトリも更新します.
 5166: 以下はコマンド例で,Bourneシェルの構文を使用しています.
 5167: 
 5168: @example
 5169: diff -Naur gcc-3.0.3 gcc-3.0.4
 5170: @end example
 5171: 
 5172: @c Tell your recipients how to apply the patches.  This should include
 5173: @c which working directory to use, and which @command{patch} options to
 5174: @c use; the option @samp{-p1} is recommended.  Test your procedure by
 5175: @c pretending to be a recipient and applying your patches to a copy of
 5176: @c the original files.
 5177: @c 
 5178: 受けとる人にパッチの適用方法を伝えてください.これには使用する作業用ディ
 5179: レクトリと,使用する@command{patch}のオプションも含めるべきです.受け手
 5180: が行なうように手順をテストし,オリジナルファイルにパッチを適用してくださ
 5181: い.
 5182: 
 5183: @c @xref{Avoiding Common Mistakes}, for how to avoid common mistakes when
 5184: @c generating a patch.
 5185: @c 
 5186: パッチを生成するときの一般的な誤解を避ける方法は,@xref{Avoiding Common
 5187: Mistakes}.
 5188: 
 5189: @node Tips for Patch Consumers
 5190: @c @section Tips for Patch Consumers
 5191: @section パッチを使用するための助言
 5192: @cindex patch consumer tips
 5193: 
 5194: @c A patch producer should tell recipients how to apply the patches, so
 5195: @c the first rule of thumb for a patch consumer is to follow the
 5196: @c instructions supplied with the patch.
 5197: @c 
 5198: パッチの作成者は,受け手にパッチの適用方法を伝えているはずなので,パッチ
 5199: の使用者の第一の規則は,パッチで提供される説明に従うことです.
 5200: 
 5201: @c @sc{gnu} @command{diff} can analyze files with arbitrarily long lines
 5202: @c and files that end in incomplete lines.  However, older versions of
 5203: @c @command{patch} cannot patch such files.  If you are having trouble
 5204: @c applying such patches, try upgrading to a recent version of @sc{gnu}
 5205: @c @command{patch}.
 5206: @c 
 5207: @sc{gnu} @command{diff}では,任意の長い行を持つファイルと不完全な行で終
 5208: るファイルを解析することが可能です.しかし,@command{patch}の古いバージョ
 5209: ンでは,そのようなファイルにパッチを当てることは不可能です.そのようなパッ
 5210: チの適用時に問題がある場合,最近のバージョンの@sc{gnu} @command{patch}に
 5211: 更新してみてください.
 5212: 
 5213: @node Avoiding Common Mistakes
 5214: @c @section Avoiding Common Mistakes
 5215: @section 一般的な誤解を避ける
 5216: @cindex common mistakes with patches
 5217: @cindex patch, common mistakes
 5218: 
 5219: @c When producing a patch for multiple files, apply @command{diff} to
 5220: @c directories whose names do not have slashes.  This reduces confusion
 5221: @c when the patch consumer specifies the @option{-p@var{number}} option,
 5222: @c since this option can have surprising results when the old and new
 5223: @c file names have different numbers of slashes.  For example, do not
 5224: @c send a patch with a header that looks like this:
 5225: @c 
 5226: 複数のファイルのパッチを生成しているとき,@command{diff}はスラッシュの無
 5227: いディレクトリ名に適用します.こうすることで,パッチの利用者が
 5228: @option{-p@var{number}}を指定しているとき混乱が少なくなり,それは,この
 5229: オプションで古いものと新しいもののファイル名でスラッシュの数が異なる場合,
 5230: びっくりするような結果になるためです.例えば,以下のようなヘッダを持つパッ
 5231: チを送らないでください.
 5232: 
 5233: @example
 5234: diff -Naur v2.0.29/prog/README prog/README
 5235: --- v2.0.29/prog/README	2002-03-10 23:30:39.942229878 -0800
 5236: +++ prog/README	2002-03-17 20:49:32.442260588 -0800
 5237: @end example
 5238: 
 5239: @noindent
 5240: @c because the two file names have different numbers of slashes, and
 5241: @c different versions of @command{patch} interpret the file names
 5242: @c differently.  To avoid confusion, send output that looks like this
 5243: @c instead:
 5244: @c 
 5245: その理由は,二つのファイル名のスラッシュの数が異なっていて,異なるバージョ
 5246: ンの@command{patch}では,ファイル名が異なっていると解釈するためです.混
 5247: 乱を避けるため,その代わりに以下のような出力を送ってください.
 5248: 
 5249: @example
 5250: diff -Naur v2.0.29/prog/README v2.0.30/prog/README
 5251: --- v2.0.29/prog/README	2002-03-10 23:30:39.942229878 -0800
 5252: +++ v2.0.30/prog/README	2002-03-17 20:49:32.442260588 -0800
 5253: @end example
 5254: 
 5255: @c Make sure you have specified the file names correctly, either in a
 5256: @c context diff header or with an @samp{Index:} line.  Take care to not send out
 5257: @c reversed patches, since these make people wonder whether they have
 5258: @c already applied the patch.
 5259: @c 
 5260: 周りの文を使用した差分のヘッダや@samp{Index:}行で,正しくファイル名を指
 5261: 定していることを確かめてください.既にパッチを当てたかどうか不思議に思う
 5262: ので,リバースパッチを送らないように注意してください.
 5263: 
 5264: @c Avoid sending patches that compare backup file names like
 5265: @c @file{README.orig} or @file{README~}, since this might confuse
 5266: @c @command{patch} into patching a backup file instead of the real file.
 5267: @c Instead, send patches that compare the same base file names in
 5268: @c different directories, e.g.@: @file{old/README} and @file{new/README}.
 5269: @c 
 5270: @file{README.orig}や@file{README~}のようなバックアップファイル名と比較し
 5271: ているパッチは,@command{patch}が本当のファイルの代わりにバックアップファ
 5272: イルにパッチを当てようとして混乱するので,そのようなパッチを送ることを避
 5273: けてください.その代わりに,異なるディレクトリ,例えば@file{old/README} 
 5274: と@file{new/README}のように,同じベースファイル名で比較したパッチを送っ
 5275: てください.
 5276: 
 5277: @c To save people from partially applying a patch before other patches that
 5278: @c should have gone before it, you can make the first patch in the patch
 5279: @c file update a file with a name like @file{patchlevel.h} or
 5280: @c @file{version.c}, which contains a patch level or version number.  If
 5281: @c the input file contains the wrong version number, @command{patch} will
 5282: @c complain immediately.
 5283: @c 
 5284: 以前に送られた他のパッチを実際に適用している人を保護するために,パッチファ
 5285: イルの最初のパッチに,パッチレベルやバージョンナンバーが含まれている
 5286: @file{patchlevel.h}や@file{version.c}のような名前でファイルを更新させる
 5287: ことが可能です.入力ファイルに間違ったバージョンナンバーが含まれている場
 5288: 合,@command{patch}はすぐに文句をいいます.
 5289: 
 5290: @c An even clearer way to prevent this problem is to put a @samp{Prereq:}
 5291: @c line before the patch.  If the leading text in the patch file contains a
 5292: @c line that starts with @samp{Prereq:}, @command{patch} takes the next word
 5293: @c from that line (normally a version number) and checks whether the next
 5294: @c input file contains that word, preceded and followed by either
 5295: @c white space or a newline.  If not, @command{patch} prompts you for
 5296: @c confirmation before proceeding.  This makes it difficult to accidentally
 5297: @c apply patches in the wrong order.
 5298: @c 
 5299: この問題を避けるより明確な方法は,パッチの前に@samp{Prereq:}行を書くこと
 5300: です.パッチファイルに前置されるテキストに@samp{Prereq:}で始まる行が含ま
 5301: れている場合,@command{patch}はその行の次の単語(通常はバージョンナンバー) 
 5302: を受けとり,次の入力ファイルに空白や改行が前後にある単語が含まれているか
 5303: どうか調査します.そうでない場合は,@command{patch}は処理する前に確認す
 5304: るためのプロンプトを出します.これで間違った順序でパッチを偶然にも適用す
 5305: ることが難しくなります.
 5306: 
 5307: @node Generating Smaller Patches
 5308: @c @section Generating Smaller Patches
 5309: @section より小さいパッチを生成する
 5310: @cindex patches, shrinking
 5311: 
 5312: @c The simplest way to generate a patch is to use @samp{diff -Naur}
 5313: @c (@pxref{Tips for Patch Producers}), but you might be able to reduce
 5314: @c the size of the patch by renaming or removing some files before making
 5315: @c the patch.  If the older version of the package contains any files
 5316: @c that the newer version does not, or if any files have been renamed
 5317: @c between the two versions, make a list of @command{rm} and @command{mv}
 5318: @c commands for the user to execute in the old version directory before
 5319: @c applying the patch.  Then run those commands yourself in the scratch
 5320: @c directory.
 5321: @c 
 5322: パッチを生成する最も単純な方法は@samp{diff -Naur}を使用することですが
 5323: (@pxref{Tips for Patch Producers}),パッチを作成する前にファイルの名前を
 5324: 変更したり削除したりすることで,パッチの大きさを小さくすることも可能かも
 5325: しれません.古いバージョンのパッケージに新しいバージョンにはないファイル
 5326: が含まれている場合や,二つのバージョン間で名前が変更されている場合,パッ
 5327: チを適用する前に,古いバージョンのディレクトリでユーザが実行する
 5328: @command{rm}と@command{mv}のリストを作成してください.そしてこれらのコマ
 5329: ンドをスクラッチのディレクトリで実行してください.
 5330: 
 5331: @c If there are any files that you don't need to include in the patch
 5332: @c because they can easily be rebuilt from other files (for example,
 5333: @c @file{TAGS} and output from @command{yacc} and @command{makeinfo}),
 5334: @c exclude them from the patch by giving @command{diff} the @option{-x
 5335: @c @var{pattern}} option (@pxref{Comparing Directories}).  If you want
 5336: @c your patch to modify a derived file because your recipients lack tools
 5337: @c to build it, make sure that the patch for the derived file follows any
 5338: @c patches for files that it depends on, so that the recipients' time
 5339: @c stamps will not confuse @command{make}.
 5340: @c 
 5341: 他のファイルから容易に再構成可能だという理由から(例えば,@file{TAGS}と
 5342: @command{yacc}と@command{makeinfo}からの出力),パッチを含める必要がない
 5343: ファイルが存在する場合,@command{diff}に@option{-x @var{pattern}}オプショ
 5344: ン(@pxref{Comparing Directories})で得られるパッチを実行してください.パッ
 5345: チ利用者がビルドするツールが無いため,パッチで派生ファイルを編集したくな
 5346: い場合,パッチ利用者のタイムスタンプで@command{make}が混乱しないように,
 5347: 派生ファイルのパッチがそれに依存するファイルにパッチを当てないことを確か
 5348: めてください.
 5349: 
 5350: @c Now you can create the patch using @samp{diff -Naur}.  Make sure to
 5351: @c specify the scratch directory first and the newer directory second.
 5352: @c 
 5353: さて,@samp{diff -Naur}を使用してパッチを作成することが可能です.スクラッ
 5354: チディレクトリを最初に,新しいディレクトリを二番目に指定していることを確
 5355: かめてください.
 5356: 
 5357: @c Add to the top of the patch a note telling the user any @command{rm} and
 5358: @c @command{mv} commands to run before applying the patch.  Then you can
 5359: @c remove the scratch directory.
 5360: @c 
 5361: パッチの最初に,パッチを適用する前にユーザに@command{rm}と@command{mv}コ
 5362: マンドを実行するように伝えるメモを書いてください.やっと,スクラッチディ
 5363: レクトリを削除できます.
 5364: 
 5365: @c You can also shrink the patch size by using fewer lines of context,
 5366: @c but bear in mind that @command{patch} typically needs at least two
 5367: @c lines for proper operation when patches do not exactly match the input
 5368: @c files.
 5369: @c 
 5370: 周りの文の使用をより小さくすることでパッチの大きさを小さくすることも可能
 5371: ですが,パッチが入力行に正確にマッチしないとき,適切な処理を行なうため,
 5372: @command{patch}は通常,最低二行必要だということを覚えておいてください.
 5373: 
 5374: @node Invoking cmp
 5375: @c @chapter Invoking @command{cmp}
 5376: @chapter @command{cmp}の呼び出し
 5377: @cindex invoking @command{cmp}
 5378: @cindex @command{cmp} invocation
 5379: 
 5380: @c The @command{cmp} command compares two files, and if they differ,
 5381: @c tells the first byte and line number where they differ.  Bytes and
 5382: @c lines are numbered starting with 1.  The arguments of @command{cmp}
 5383: @c are as follows:
 5384: @c 
 5385: @command{cmp}コマンドは二つのファイルを比較し,異なっている場合は異なっ
 5386: ている最初のバイトと行番号を報告します.バイトと行は,1で始まります.
 5387: @command{cmp}の引数は以下のとおりです.
 5388: 
 5389: @example
 5390: cmp @var{options}@dots{} @var{from-file} @r{[}@var{to-file} @r{[}@var{from-skip} @r{[}@var{to-skip}@r{]}@r{]}@r{]}
 5391: @end example
 5392: 
 5393: @c The file name @file{-} is always the standard input.  @command{cmp}
 5394: @c also uses the standard input if one file name is omitted.  The
 5395: @c @var{from-skip} and @var{to-skip} operands specify how many bytes to
 5396: @c ignore at the start of each file; they are equivalent to the
 5397: @c @option{--ignore-initial=@var{from-skip}:@var{to-skip}} option.
 5398: @c 
 5399: ファイル名の@file{-}は,常に標準入力になります.@command{cmp}は,ファイ
 5400: ル名の一つが省略されている場合も標準入力を使用します.@var{from-skip}と
 5401: @var{to-skip}オペランドは,それぞれのファイルの最初で無視するバイト数で
 5402: す.それらは,@option{--ignore-initial=@var{from-skip}:@var{to-skip}}オ
 5403: プションと等価です.
 5404: 
 5405: @c An exit status of 0 means no differences were found, 1 means some
 5406: @c differences were found, and 2 means trouble.
 5407: @c 
 5408: 終了ステータスの0は差異が見つからないこと,1は差異が見つかったこと,そし
 5409: て0は問題が生じたことを意味します.
 5410: 
 5411: @menu
 5412: * cmp Options:: Summary of options to @command{cmp}.
 5413: @end menu
 5414: 
 5415: @node cmp Options
 5416: @c @section Options to @command{cmp}
 5417: @section @command{cmp}のオプション
 5418: @cindex @command{cmp} options
 5419: @cindex options for @command{cmp}
 5420: 
 5421: @c Below is a summary of all of the options that @sc{gnu} @command{cmp} accepts.
 5422: @c Most options have two equivalent names, one of which is a single letter
 5423: @c preceded by @samp{-}, and the other of which is a long name preceded by
 5424: @c @samp{--}.  Multiple single letter options (unless they take an
 5425: @c argument) can be combined into a single command line word: @option{-bl} is
 5426: @c equivalent to @option{-b -l}.
 5427: @c 
 5428: 以下は,@sc{gnu} @command{cmp}が受け入れるオプションすべての概要です.ほ
 5429: とんどのオプションは二つの等価な名前があり,一つは@samp{-}を前置する単一
 5430: 文字でもう一つは@samp{--}を前置する長い名前です.複数の(引数を取らない) 
 5431: 単一文字のオプションを,単一のコマンドラインの単語に組み合わせることが可
 5432: 能です.@option{-bl}は@option{-b -l}と等価です.
 5433: 
 5434: @table @option
 5435: @item -b
 5436: @itemx --print-bytes
 5437: @c Print the differing bytes.  Display control bytes as a
 5438: @c @samp{^} followed by a letter of the alphabet and precede bytes
 5439: @c that have the high bit set with @samp{M-} (which stands for ``meta'').
 5440: @c 
 5441: 差異のあるバイトを出力します.制御文字は@samp{^}にアルファベットを続けて
 5442: 表示し,ハイビットセットがあるものについては(``メタ(meta)''を意味する)
 5443: @samp{M-}をバイトに前置します.
 5444: 
 5445: @item --help
 5446: @c Output a summary of usage and then exit.
 5447: @c 
 5448: 使用方の概要を出力し終了します.
 5449: 
 5450: @item -i @var{skip}
 5451: @itemx --ignore-initial=@var{skip}
 5452: @c Ignore any differences in the first @var{skip} bytes of the input
 5453: @c files.  Treat files with fewer than @var{skip} bytes as if they are
 5454: @c empty.  If @var{skip} is of the form
 5455: @c @option{@var{from-skip}:@var{to-skip}}, skip the first @var{from-skip}
 5456: @c bytes of the first input file and the first @var{to-skip} bytes of the
 5457: @c second.
 5458: @c 
 5459: 入力ファイルの最初の@var{skip}バイトにある差異を無視します.@var{skip}バ
 5460: イトより小さいファイルは,空のファイルとして扱います.@var{skip}が
 5461: @option{@var{from-skip}:@var{to-skip}}の形式の場合,最初の入力ファイルの
 5462: 最初の@var{from-skip}バイトと,二番目のものの最初の@var{to-skip}バイトを
 5463: 読み飛ばします.
 5464: 
 5465: @item -l
 5466: @itemx --verbose
 5467: @c Print the (decimal) byte numbers and (octal) values of all differing bytes.
 5468: @c 
 5469: (10進数)のバイト数とすべての差異のあるバイトの(8進数)値を出力します.
 5470: 
 5471: @item -n @var{count}
 5472: @itemx --bytes=@var{count}
 5473: @c Compare at most @var{count} input bytes.
 5474: @c 
 5475: 入力されたバイトの最大@var{count}を比較します.
 5476: 
 5477: @item -s
 5478: @itemx --quiet
 5479: @itemx --silent
 5480: @c Do not print anything; only return an exit status indicating whether
 5481: @c the files differ.
 5482: @c 
 5483: 何も出力しません.ファイルが異なっているかどうかを示す終了ステータスのみ
 5484: 返します.
 5485: 
 5486: @item -v
 5487: @itemx --version
 5488: @c Output version information and then exit.
 5489: @c 
 5490: バージョン情報を出力し終了します.
 5491: @end table
 5492: 
 5493: @c In the above table, operands that are byte counts are normally
 5494: @c decimal, but may be preceded by @samp{0} for octal and @samp{0x} for
 5495: @c hexadecimal.
 5496: @c 
 5497: 上記の表では,バイトを数えるオペランドは通常10進数ですが,8進数に対して
 5498: は@samp{0}を,16進数に対しては@samp{0x}を前置してもかまいません.
 5499: 
 5500: @c A byte count can be followed by a suffix to specify a multiple of that
 5501: @c count; in this case an omitted integer is understood to be 1.  A bare
 5502: @c size letter, or one followed by @samp{iB}, specifies a multiple using
 5503: @c powers of 1024.  A size letter followed by @samp{B} specifies powers
 5504: @c of 1000 instead.  For example, @option{-n 4M} and @option{-n 4MiB} are
 5505: @c equivalent to @option{-n 4194304}, whereas @option{-n 4MB} is
 5506: @c equivalent to @option{-n 4000000}.  This notation is upward compatible
 5507: @c with the @uref{http://www.bipm.fr/enus/3_SI/si-prefixes.html, SI
 5508: @c prefixes} for decimal multiples and with the
 5509: @c @uref{http://physics.nist.gov/cuu/Units/binary.html, IEC 60027-2
 5510: @c prefixes for binary multiples}.
 5511: @c 
 5512: バイトを数えるとき,複数数えるための接尾子指定を後置することが可能です.
 5513: この場合,省略された整数は1として理解されます.サイズを示す文字だけのと
 5514: きや@samp{iB}が続くものは,1024倍を使用して指定します.@samp{B}が続くサ
 5515: イズを示す文字は,その代わりに1000倍を指定します.例えば,@option{-n 4M} 
 5516: と@option{-n 4MiB}は@option{-n 4194304}と等価ですが,@option{-n 4MB}は
 5517: @option{-n 4000000}と等価です.この表記方法は,10進数に対する
 5518: @uref{http://www.bipm.fr/enus/3_SI/si-prefixes.html, SI prefixes}と,
 5519: @uref{http://physics.nist.gov/cuu/Units/binary.html, IEC 60027-2
 5520: prefixes for binary multiples}への上位互換性のためです.
 5521: 
 5522: @c The following suffixes are defined.  Large sizes like @code{1Y} may be
 5523: @c rejected by your computer due to limitations of its arithmetic.
 5524: @c 
 5525: 以下の接尾子が定義されています.@code{1Y}のような大きいサイズは計算の制
 5526: 限のため,コンピュータによっては拒否されるかもしれません.
 5527: 
 5528: @table @samp
 5529: @item kB
 5530: @cindex kilobyte, definition of
 5531: @c kilobyte: @math{10^3 = 1000}.
 5532: @c 
 5533: キロバイト:@math{10^3 = 1000}.
 5534: @item k
 5535: @itemx K
 5536: @itemx KiB
 5537: @cindex kibibyte, definition of
 5538: @c kibibyte: @math{2^10 = 1024}.  @samp{K} is special: the SI prefix is
 5539: @c @samp{k} and the IEC 60027-2 prefix is @samp{Ki}, but tradition and
 5540: @c @sc{posix} use @samp{k} to mean @samp{KiB}.
 5541: @c 
 5542: キビバイト:@math{2^10 = 1024}.@samp{K}は特殊です.SIのプレフィクスは
 5543: @samp{k},IEC 60027-2のプレフィクスは@samp{Ki}ですが,伝統的なものと
 5544: @sc{posix}では,@samp{k}を@samp{KiB}の意味で使用します.
 5545: 
 5546: @item MB
 5547: @cindex megabyte, definition of
 5548: @c megabyte: @math{10^6 = 1,000,000}.
 5549: @c 
 5550: メガバイト:@math{10^6 = 1,000,000}.
 5551: @item M
 5552: @itemx MiB
 5553: @cindex mebibyte, definition of
 5554: @c mebibyte: @math{2^20 = 1,048,576}.
 5555: @c 
 5556: メビバイト:@math{2^20 = 1,048,576}.
 5557: @item GB
 5558: @cindex gigabyte, definition of
 5559: @c gigabyte: @math{10^9 = 1,000,000,000}.
 5560: @c 
 5561: ギガバイト:@math{10^9 = 1,000,000,000}.
 5562: @item G
 5563: @itemx GiB
 5564: @cindex gibibyte, definition of
 5565: @c gibibyte: @math{2^30 = 1,073,741,824}.
 5566: @c 
 5567: ギビバイト:@math{2^30 = 1,073,741,824}.
 5568: @item TB
 5569: @cindex terabyte, definition of
 5570: @c terabyte:  @math{10^12 = 1,000,000,000,000}.
 5571: @c 
 5572: テラバイト:@math{10^12 = 1,000,000,000,000}.
 5573: @item T
 5574: @itemx TiB
 5575: @cindex tebibyte, definition of
 5576: @c tebibyte: @math{2^40 = 1,099,511,627,776}.
 5577: @c 
 5578: テビバイト:@math{2^40 = 1,099,511,627,776}.
 5579: @item PB
 5580: @cindex petabyte, definition of
 5581: @c petabyte: @math{10^15 = 1,000,000,000,000,000}.
 5582: @c 
 5583: ペタバイト:@math{10^15 = 1,000,000,000,000,000}.
 5584: @item P
 5585: @itemx PiB
 5586: @cindex pebibyte, definition of
 5587: @c pebibyte: @math{2^50 = 1,125,899,906,842,624}.
 5588: @c 
 5589: ペビバイト:@math{2^50 = 1,125,899,906,842,624}.
 5590: @item EB
 5591: @cindex exabyte, definition of
 5592: @c exabyte: @math{10^18 = 1,000,000,000,000,000,000}.
 5593: @c 
 5594: エクサバイト:@math{10^18 = 1,000,000,000,000,000,000}.
 5595: @item E
 5596: @itemx EiB
 5597: @cindex exbibyte, definition of
 5598: @c exbibyte: @math{2^60 = 1,152,921,504,606,846,976}.
 5599: @c 
 5600: エクシビバイト:@math{2^60 = 1,152,921,504,606,846,976}.
 5601: @item ZB
 5602: @cindex zettabyte, definition of
 5603: @c zettabyte: @math{10^21 = 1,000,000,000,000,000,000,000}.
 5604: @c 
 5605: ゼータバイト:@math{10^21 = 1,000,000,000,000,000,000,000}.
 5606: @item Z
 5607: @itemx ZiB
 5608: @c @math{2^70 = 1,180,591,620,717,411,303,424}.
 5609: @c (@samp{Zi} is a @sc{gnu} extension to IEC 60027-2.)
 5610: @c 
 5611: @math{2^70 = 1,180,591,620,717,411,303,424}.(@samp{Zi}はIEC 60027-2への
 5612: @sc{gnu}拡張です.)
 5613: @item YB
 5614: @cindex yottabyte, definition of
 5615: @c yottabyte: @math{10^24 = 1,000,000,000,000,000,000,000,000}.
 5616: @c 
 5617: ヨットバイト:@math{10^24 = 1,000,000,000,000,000,000,000,000}.
 5618: @item Y
 5619: @itemx YiB
 5620: @c @math{2^80 = 1,208,925,819,614,629,174,706,176}.
 5621: @c (@samp{Yi} is a @sc{gnu} extension to IEC 60027-2.)
 5622: @c 
 5623: @math{2^80 = 1,208,925,819,614,629,174,706,176}.(@samp{Yi}はIEC 60027-2
 5624: への@sc{gnu}拡張です.)
 5625: @end table
 5626: 
 5627: @node Invoking diff
 5628: @c @chapter Invoking @command{diff}
 5629: @chapter @command{diff}の呼び出し
 5630: @cindex invoking @command{diff}
 5631: @cindex @command{diff} invocation
 5632: 
 5633: @c The format for running the @command{diff} command is:
 5634: @c 
 5635: @command{diff}コマンドの実行書式は以下のとおりです.
 5636: 
 5637: @example
 5638: diff @var{options}@dots{} @var{files}@dots{}
 5639: @end example
 5640: 
 5641: @c In the simplest case, two file names @var{from-file} and
 5642: @c @var{to-file} are given, and @command{diff} compares the contents of
 5643: @c @var{from-file} and @var{to-file}.  A file name of @file{-} stands for
 5644: @c text read from the standard input.  As a special case, @samp{diff - -}
 5645: @c compares a copy of standard input to itself.
 5646: @c 
 5647: 最も単純な場合,二つのファイル名@var{from-file}と@var{to-file}が与えられ
 5648: ていて,@command{diff}は@var{from-file}と@var{to-file}の内容を比較します.
 5649: ファイル名@file{-}は標準入力から読み込まれたテキストを意味します.特別な
 5650: 場合として,@samp{diff - -}は,標準入力のコピーと標準入力自身を比較しま
 5651: す.
 5652: 
 5653: @c If one file is a directory and the other is not, @command{diff} compares
 5654: @c the file in the directory whose name is that of the non-directory.
 5655: @c The non-directory file must not be @file{-}.
 5656: @c 
 5657: 一つのファイルがディレクトリで,もう一方はディレクトリではない場合,
 5658: @command{diff}はディレクトリではないファイルの名前を持つもう一つのディレ
 5659: クトリのファイルと比較します.ディレクトリではないファイルを,@file{-}に
 5660: してはいけません.
 5661: 
 5662: @c If two file names are given and both are directories,
 5663: @c @command{diff} compares corresponding files in both directories, in
 5664: @c alphabetical order; this comparison is not recursive unless the
 5665: @c @option{-r} or @option{--recursive} option is given.  @command{diff} never
 5666: @c compares the actual contents of a directory as if it were a file.  The
 5667: @c file that is fully specified may not be standard input, because standard
 5668: @c input is nameless and the notion of ``file with the same name'' does not
 5669: @c apply.
 5670: @c 
 5671: 二つのファイル名が与えられ両方ともディレクトリの場合,@command{diff}は両
 5672: 方のディレクトリの対応するファイルを,アルファベット順に比較します.この
 5673: 比較は,@option{-r}や@option{--recursive}オプションが与えられていない限
 5674: り再帰的ではありません.@command{diff}は,ディレクトリの実際の内容をファ
 5675: イルであるかのように比較しません.標準入力には名前が無く``同じ名前のファ
 5676: イル''という概念が適用できないので,完全に指定されているファイルを標準入
 5677: 力にしてはいけません.
 5678: 
 5679: @c If the @option{--from-file=@var{file}} option is given, the number of
 5680: @c file names is arbitrary, and @var{file} is compared to each named file.
 5681: @c Similarly, if the @option{--to-file=@var{file}} option is given, each
 5682: @c named file is compared to @var{file}.
 5683: @c 
 5684: @option{--from-file=@var{file}}オプションが与えられている場合,ファイル
 5685: 名の数は任意で,@var{file}それぞれ指名されたファイルで比較されます.同様
 5686: に,@option{--to-file=@var{file}}オプションが与えられている場合,それぞ
 5687: れ指名されたファイルが,@var{file}と比較されます.
 5688: 
 5689: @c @command{diff} options begin with @samp{-}, so normally file names
 5690: @c may not begin with @samp{-}.  However, @option{--} as an
 5691: @c argument by itself treats the remaining arguments as file names even if
 5692: @c they begin with @samp{-}.
 5693: @c 
 5694: @command{diff}のオプションは@samp{-}で始まっているので,@samp{-}で始まる
 5695: ファイル名は通常利用不可能です.しかし,引数として@option{--}自身をを与
 5696: えることで,残りのファイル名が@samp{-}で始まる場合でもそれをファイル名と
 5697: して扱います.
 5698: 
 5699: @c An exit status of 0 means no differences were found, 1 means some
 5700: @c differences were found, and 2 means trouble.
 5701: @c 
 5702: 終了ステータス0は差異が無いことを意味し,1は差異が見つかったことを意味し,
 5703: そして2は問題があったことを意味します.
 5704: 
 5705: @menu
 5706: * diff Options:: Summary of options to @command{diff}.
 5707: @end menu
 5708: 
 5709: @node diff Options
 5710: @c @section Options to @command{diff}
 5711: @section @command{diff}へのオプション
 5712: @cindex @command{diff} options
 5713: @cindex options for @command{diff}
 5714: 
 5715: @c Below is a summary of all of the options that @sc{gnu} @command{diff} accepts.
 5716: @c Most options have two equivalent names, one of which is a single letter
 5717: @c preceded by @samp{-}, and the other of which is a long name preceded by
 5718: @c @samp{--}.  Multiple single letter options (unless they take an
 5719: @c argument) can be combined into a single command line word: @option{-ac} is
 5720: @c equivalent to @option{-a -c}.  Long named options can be abbreviated to
 5721: @c any unique prefix of their name.  Brackets ([ and ]) indicate that an
 5722: @c option takes an optional argument.
 5723: @c 
 5724: 以下は,@sc{gnu} @command{diff}が受け入れるすべてのオプションの概要です.
 5725: ほとんどのオプションは二つの等価な名前があり,一つは@samp{-}が前置された
 5726: 単一文字で,もう一つは@samp{--}が前置されている長い名前です.複数の(引数
 5727: を取らない) 単一文字のオプションを,単一のコマンドラインの単語に組み合わ
 5728: せることが可能です.@option{-ac}は@option{-a -c}と等価です.長い名前のオ
 5729: プションは,その名前のユニークな前方部分で省略することが可能です.カッコ
 5730: ([と])は,オプションで引数を取るオプションを示します.
 5731: 
 5732: @table @option
 5733: @item -a
 5734: @itemx --text
 5735: @c Treat all files as text and compare them line-by-line, even if they
 5736: @c do not seem to be text.  @xref{Binary}.
 5737: @c 
 5738: ファイルがテキストのようには見えない場合でも,すべてのファイルをテキスト
 5739: として扱い,行単位で比較します.@xref{Binary}.
 5740: 
 5741: @item -b
 5742: @itemx --ignore-space-change
 5743: @c Ignore changes in amount of white space.  @xref{White Space}.
 5744: @c 
 5745: 空白の量による変更を無視します.@xref{White Space}.
 5746: 
 5747: @item -B
 5748: @itemx --ignore-blank-lines
 5749: @c Ignore changes that just insert or delete blank lines.  @xref{Blank
 5750: @c Lines}.
 5751: @c 
 5752: 空白行の挿入や削除のみの変更を無視します.@xref{Blank Lines}.
 5753: 
 5754: @item --binary
 5755: @c Read and write data in binary mode.  @xref{Binary}.
 5756: @c 
 5757: バイナリモードでデータを読み書きします.@xref{Binary}.
 5758: 
 5759: @item -c
 5760: @c Use the context output format, showing three lines of context.
 5761: @c @xref{Context Format}.
 5762: @c 
 5763: 周りの三行を表示しながら,周りの文を使用した出力書式を使用します.
 5764: @xref{Context Format}.
 5765: 
 5766: @item -C @var{lines}
 5767: @itemx --context@r{[}=@var{lines}@r{]}
 5768: @c Use the context output format, showing @var{lines} (an integer) lines of
 5769: @c context, or three if @var{lines} is not given.  @xref{Context Format}.
 5770: @c For proper operation, @command{patch} typically needs at least two lines of
 5771: @c context.
 5772: @c 
 5773: 周りの@var{lines}行(整数),または@var{lines}が与えられていない場合は三行
 5774: を表示しながら周りの文を使用した出力書式を使用します.@xref{Context
 5775: Format}.  適切に処理するため,通常@command{patch}は少なくとも二行必要で
 5776: す.
 5777: 
 5778: @c On older systems, @command{diff} supports an obsolete option
 5779: @c @option{-@var{lines}} that has effect when combined with @option{-c}
 5780: @c or @option{-p}.  @sc{posix} 1003.1-2001 (@pxref{Standards
 5781: @c conformance}) does not allow this; use @option{-C @var{lines}}
 5782: @c instead.
 5783: @c 
 5784: 古いシステムでは,@command{diff}は,時代遅れの@option{-c}や@option{-p}と
 5785: 組み合わせたとき効果がある@option{-@var{lines}}をサポートしています.
 5786: @sc{posix} 1003.1-2001 (@pxref{Standards conformance})では,これを許可し
 5787: ていません.代わりに@option{-C @var{lines}}を使用してください.
 5788: 
 5789: @item --changed-group-format=@var{format}
 5790: @c Use @var{format} to output a line group containing differing lines from
 5791: @c both files in if-then-else format.  @xref{Line Group Formats}.
 5792: @c 
 5793: if-then-else書式で,両方のファイルの異なっている部分の行グループを出力す
 5794: るため@var{format}を使用します.@xref{Line Group Formats}.
 5795: 
 5796: @item -d
 5797: @itemx --minimal
 5798: @c Change the algorithm perhaps find a smaller set of changes.  This makes
 5799: @c @command{diff} slower (sometimes much slower).  @xref{diff Performance}.
 5800: @c 
 5801: 変更の組がより小さくなるように探すアルゴリズムに変更します.これで
 5802: @command{diff}はより遅く(時には非常に遅く)なります.@xref{diff
 5803: Performance}.
 5804: 
 5805: @item -D @var{name}
 5806: @itemx --ifdef=@var{name}
 5807: @c Make merged @samp{#ifdef} format output, conditional on the preprocessor
 5808: @c macro @var{name}.  @xref{If-then-else}.
 5809: @c 
 5810: マクロ名のポリプロセッサの条件式となる,マージされた@samp{#ifdef}書式の
 5811: 出力を生成します.@xref{If-then-else}.
 5812: 
 5813: @item -e
 5814: @itemx --ed
 5815: @c Make output that is a valid @command{ed} script.  @xref{ed Scripts}.
 5816: @c 
 5817: 有効な@command{ed}スクリプトとなる出力を生成します.@xref{ed Scripts}.
 5818: 
 5819: @item -E
 5820: @itemx --ignore-tab-expansion
 5821: @c Ignore changes due to tab expansion.
 5822: @c @xref{White Space}.
 5823: @c 
 5824: タブの展開による変更を無視します.@xref{White Space}.
 5825: 
 5826: @item -f
 5827: @itemx --forward-ed
 5828: @c Make output that looks vaguely like an @command{ed} script but has changes
 5829: @c in the order they appear in the file.  @xref{Forward ed}.
 5830: @c 
 5831: @command{ed}スクリプトのように見える出力を生成しますが,ファイルでの順序
 5832: は変更されています.@xref{Forward ed}.
 5833: 
 5834: @item -F @var{regexp}
 5835: @itemx --show-function-line=@var{regexp}
 5836: @c In context and unified format, for each hunk of differences, show some
 5837: @c of the last preceding line that matches @var{regexp}.  @xref{Specified
 5838: @c Headings}.
 5839: @c 
 5840: 周りの文を使用したり一体化した書式で,それぞれの差異のhunkに対し,
 5841: @var{regexp}にマッチしたそれ以前にある最後の行を表示します.
 5842: 
 5843: @item --from-file=@var{file}
 5844: @c Compare @var{file} to each operand; @var{file} may be a directory.
 5845: @c 
 5846: @var{file}をそれぞれのオペランドと比較します.@var{file}はディレクトリで
 5847: もかまいません.
 5848: 
 5849: @item --help
 5850: @c Output a summary of usage and then exit.
 5851: @c 
 5852: 使用方法の概要を出力し終了します.
 5853: 
 5854: @item --horizon-lines=@var{lines}
 5855: @c Do not discard the last @var{lines} lines of the common prefix
 5856: @c and the first @var{lines} lines of the common suffix.
 5857: @c @xref{diff Performance}.
 5858: @c 
 5859: 共通の最初の部分の最後の@var{lines}行と共通の終りの部分の最初の
 5860: @var{lines}行を削除しません.@xref{diff Performance}.
 5861: 
 5862: @item -i
 5863: @itemx --ignore-case
 5864: @c Ignore changes in case; consider upper- and lower-case letters
 5865: @c equivalent.  @xref{Case Folding}.
 5866: @c 
 5867: 大文字小文字の変更を無視します.大文字と小文字は等価だと考えます.
 5868: @xref{Case Folding}.
 5869: 
 5870: @item -I @var{regexp}
 5871: @itemx --ignore-matching-lines=@var{regexp}
 5872: @c Ignore changes that just insert or delete lines that match @var{regexp}.
 5873: @c @xref{Specified Folding}.
 5874: @c 
 5875: @var{regexp}にマッチする行の挿入と削除だけの変更を無視します.
 5876: @xref{Specified Folding}.
 5877: 
 5878: @item --ignore-file-name-case
 5879: @c Ignore case when comparing file names during recursive comparison.
 5880: @c @xref{Comparing Directories}.
 5881: @c 
 5882: 再帰的な比較でファイル名を比較している時,大文字小文字を無視します.
 5883: @xref{Comparing Directories}.
 5884: 
 5885: @item -l
 5886: @itemx --paginate
 5887: @c Pass the output through @command{pr} to paginate it.  @xref{Pagination}.
 5888: @c 
 5889: ページ付けするために出力を@command{pr}に渡します.@xref{Pagination}.
 5890: 
 5891: @item -L @var{label}
 5892: @itemx --label=@var{label}
 5893: @c Use @var{label} instead of the file name in the context format
 5894: @c (@pxref{Context Format}) and unified format (@pxref{Unified Format})
 5895: @c headers.  @xref{RCS}.
 5896: @c 
 5897: 周りの文を使用した書式(@pxref{Context Format})と一体化した書式
 5898: (@pxref{Unified Format})のヘッダで,ファイル名の代わりにラベルを使用しま
 5899: す.@xref{RCS}.
 5900: 
 5901: @item --left-column
 5902: @c Print only the left column of two common lines in side by side format.
 5903: @c @xref{Side by Side Format}.
 5904: @c 
 5905: 横に並べた書式で,二つに共通な行を左の列だけに出力します.@xref{Side by
 5906: Side Format}.
 5907: 
 5908: @item --line-format=@var{format}
 5909: @c Use @var{format} to output all input lines in if-then-else format.
 5910: @c @xref{Line Formats}.
 5911: @c 
 5912: if-then-else書式で,すべての入力行を出力するため@var{format}を使用します.
 5913: @xref{Line Formats}.
 5914: 
 5915: @item -n
 5916: @itemx --rcs
 5917: @c Output @sc{rcs}-format diffs; like @option{-f} except that each command
 5918: @c specifies the number of lines affected.  @xref{RCS}.
 5919: @c 
 5920: @sc{rcs}書式の差分を出力します.@option{-f}に似ていますがそれぞれのコマ
 5921: ンドは作用する行番号を指定します.@xref{RCS}.
 5922: 
 5923: @item -N
 5924: @itemx --new-file
 5925: @c In directory comparison, if a file is found in only one directory,
 5926: @c treat it as present but empty in the other directory.  @xref{Comparing
 5927: @c Directories}.
 5928: @c 
 5929: ディレクトリの比較で,ファイルが一方のディレクトリだけで見つかった場合,
 5930: もう一方には空のものが存在しているかのように処理します.@xref{Comparing
 5931: Directories}.
 5932: 
 5933: @item --new-group-format=@var{format}
 5934: @c Use @var{format} to output a group of lines taken from just the second
 5935: @c file in if-then-else format.  @xref{Line Group Formats}.
 5936: @c 
 5937: if-then-else書式で,二番目のファイルからの行のグループを出力するために,
 5938: @var{format}を使用します.@xref{Line Group Formats}.
 5939: 
 5940: @item --new-line-format=@var{format}
 5941: @c Use @var{format} to output a line taken from just the second file in
 5942: @c if-then-else format.  @xref{Line Formats}.
 5943: @c 
 5944: if-then-else書式で,二番目のファイルからの行を出力するために,
 5945: @var{format}を使用します.@xref{Line Formats}.
 5946: 
 5947: @item --old-group-format=@var{format}
 5948: @c Use @var{format} to output a group of lines taken from just the first
 5949: @c file in if-then-else format.  @xref{Line Group Formats}.
 5950: @c 
 5951: if-then-else書式で,最初のファイルからの行のグループを出力するために,
 5952: @var{format}を使用します.@xref{Line Group Formats}.
 5953: 
 5954: @item --old-line-format=@var{format}
 5955: @c Use @var{format} to output a line taken from just the first file in
 5956: @c if-then-else format.  @xref{Line Formats}.
 5957: @c 
 5958: if-then-else書式で,最初のファイルからの行を出力するために,@var{format} 
 5959: を使用します.@xref{Line Formats}.
 5960: 
 5961: @item -p
 5962: @itemx --show-c-function
 5963: @c Show which C function each change is in.  @xref{C Function Headings}.
 5964: @c 
 5965: 変更があったそれぞれのC関数を表示します.@xref{C Function Headings}.
 5966: 
 5967: @item -q
 5968: @itemx --brief
 5969: @c Report only whether the files differ, not the details of the
 5970: @c differences.  @xref{Brief}.
 5971: @c 
 5972: ファイルに差異があるかどうかを報告するだけで,差異を詳述しません.
 5973: @xref{Brief}.
 5974: 
 5975: @item -r
 5976: @itemx --recursive
 5977: @c When comparing directories, recursively compare any subdirectories
 5978: @c found.  @xref{Comparing Directories}.
 5979: @c 
 5980: ディレクトリの比較時に,見つかったすべてのサブディレクトリを再帰的に比較
 5981: します.@xref{Comparing Directories}.
 5982: 
 5983: @item -s
 5984: @itemx --report-identical-files
 5985: @c Report when two files are the same.  @xref{Comparing Directories}.
 5986: @c 
 5987: 二つのファイルが同じとき報告します.@xref{Comparing Directories}.
 5988: 
 5989: @item -S @var{file}
 5990: @itemx --starting-file=@var{file}
 5991: @c When comparing directories, start with the file @var{file}.  This is
 5992: @c used for resuming an aborted comparison.  @xref{Comparing Directories}.
 5993: @c 
 5994: ディレクトリの比較時に,ファイル@var{file}から開始します.これは,中止さ
 5995: れた比較を再開するために使用します.@xref{Comparing Directories}.
 5996: 
 5997: @item -H
 5998: @itemx --speed-large-files
 5999: @c Use heuristics to speed handling of large files that have numerous
 6000: @c scattered small changes.  @xref{diff Performance}.
 6001: @c 
 6002: 小さな変更が大量にある大きなファイルの処理を高速化するため,発見的手法を
 6003: 使用します.@xref{diff Performance}.
 6004: 
 6005: @item --strip-trailing-cr
 6006: @c Strip any trailing carriage return at the end of an input line.
 6007: @c @xref{Binary}.
 6008: @c 
 6009: 入力行の最後に後置される改行を削除します.@xref{Binary}.
 6010: 
 6011: @item --suppress-common-lines
 6012: @c Do not print common lines in side by side format.
 6013: @c @xref{Side by Side Format}.
 6014: @c 
 6015: 横に並べた書式で,共通の行を出力しません.@xref{Side by Side Format}.
 6016: 
 6017: @item -t
 6018: @itemx --expand-tabs
 6019: @c Expand tabs to spaces in the output, to preserve the alignment of tabs
 6020: @c in the input files.  @xref{Tabs}.
 6021: @c 
 6022: 入力ファイルのタブによる位置合わせ保持するため,出力のタブをスペースに展
 6023: 開します.@xref{Tabs}.
 6024: 
 6025: @item -T
 6026: @itemx --initial-tab
 6027: @c Output a tab rather than a space before the text of a line in normal or
 6028: @c context format.  This causes the alignment of tabs in the line to look
 6029: @c normal.  @xref{Tabs}.
 6030: @c 
 6031: 通常または周りの文を使用する書式で,行のテキストの前にスペースではなくタ
 6032: ブを出力します.これで行のタブでの位置合わせが通常通りに見えます.
 6033: @xref{Tabs}.
 6034: 
 6035: @item --to-file=@var{file}
 6036: @c Compare each operand to @var{file}; @var{file} may be a directory.
 6037: @c 
 6038: それぞれのオペランドを@var{file}と比較します.@var{file}はディレクトリで
 6039: もかまいません.
 6040: 
 6041: @item -u
 6042: @c Use the unified output format, showing three lines of context.
 6043: @c @xref{Unified Format}.
 6044: @c 
 6045: 一体化した出力書式を使用し,周りの文を三行表示します.@xref{Unified
 6046: Format}.
 6047: 
 6048: @item --unchanged-group-format=@var{format}
 6049: @c Use @var{format} to output a group of common lines taken from both files
 6050: @c in if-then-else format.  @xref{Line Group Formats}.
 6051: @c 
 6052: if-then-else書式で,両方のファイルからの共通の行のグループを出力するため
 6053: に,@var{format}を使用します.@xref{Line Group Formats}.
 6054: 
 6055: @item --unchanged-line-format=@var{format}
 6056: @c Use @var{format} to output a line common to both files in if-then-else
 6057: @c format.  @xref{Line Formats}.
 6058: @c 
 6059: if-then-else書式で,両方のファイルに共通な行を出力するために,
 6060: @var{format} を使用します.@xref{Line Formats}.
 6061: 
 6062: @item -P
 6063: @itemx --unidirectional-new-file
 6064: @c When comparing directories, if a file appears only in the second
 6065: @c directory of the two, treat it as present but empty in the other.
 6066: @c @xref{Comparing Directories}.
 6067: @c 
 6068: ディレクトリの比較時に,二つのうち二番目のディレクトリだけにファイルがあ
 6069: る場合,もう一方には空のファイルが存在しているかのように扱います.
 6070: @xref{Comparing Directories}.
 6071: 
 6072: @item -U @var{lines}
 6073: @itemx --unified@r{[}=@var{lines}@r{]}
 6074: @c Use the unified output format, showing @var{lines} (an integer) lines of
 6075: @c context, or three if @var{lines} is not given.  @xref{Unified Format}.
 6076: @c For proper operation, @command{patch} typically needs at least two lines of
 6077: @c context.
 6078: @c 
 6079: 周りの@var{lines}行(整数),または@var{lines}が与えられていない場合は三行
 6080: を表示しながら一体化した出力書式を使用します.@xref{Unified Format}.  適
 6081: 切に処理するため,通常@command{patch}は少なくとも二行必要です.
 6082: 
 6083: @c On older systems, @command{diff} supports an obsolete option
 6084: @c @option{-@var{lines}} that has effect when combined with @option{-u}.
 6085: @c @sc{posix} 1003.1-2001 (@pxref{Standards conformance}) does not allow
 6086: @c this; use @option{-U @var{lines}} instead.
 6087: @c 
 6088: 古いシステムでは,@command{diff}は,時代遅れの@option{-u}と組み合わせた
 6089: とき効果がある@option{-@var{lines}}をサポートしています.@sc{posix}
 6090: 1003.1-2001 (@pxref{Standards conformance})では,これを許可していません.
 6091: 代わりに@option{-U @var{lines}}を使用してください.
 6092: 
 6093: @item -v
 6094: @itemx --version
 6095: @c Output version information and then exit.
 6096: @c 
 6097: バージョン情報を出力し終了します.
 6098: 
 6099: @item -w
 6100: @itemx --ignore-all-space
 6101: @c Ignore white space when comparing lines.  @xref{White Space}.
 6102: @c 
 6103: 行の比較時に空白を無視します.@xref{White Space}.
 6104: 
 6105: @item -W @var{columns}
 6106: @itemx --width=@var{columns}
 6107: @c Output at most @var{columns} (default 130) print columns per line in
 6108: @c side by side format.  @xref{Side by Side Format}.
 6109: @c 
 6110: 横に並べた書式で,行ごとに最大@var{columns}行(デフォルトは130)出力します.
 6111: @xref{Side by Side Format}.
 6112: 
 6113: @item -x @var{pattern}
 6114: @itemx --exclude=@var{pattern}
 6115: @c When comparing directories, ignore files and subdirectories whose basenames
 6116: @c match @var{pattern}.  @xref{Comparing Directories}.
 6117: @c 
 6118: ディレクトリの比較時に,ベース名が@var{pattern}にマッチするファイルとサ
 6119: ブディレクトリを無視します.@xref{Comparing Directories}.
 6120: 
 6121: @item -X @var{file}
 6122: @itemx --exclude-from=@var{file}
 6123: @c When comparing directories, ignore files and subdirectories whose basenames
 6124: @c match any pattern contained in @var{file}.  @xref{Comparing Directories}.
 6125: @c 
 6126: ディレクトリの比較時に,ベース名が@var{file}に含まれているパターンにマッ
 6127: チするファイルとサブディレクトリを無視します.@xref{Comparing
 6128: Directories}.
 6129: 
 6130: @item -y
 6131: @itemx --side-by-side
 6132: @c Use the side by side output format.  @xref{Side by Side Format}.
 6133: @c 
 6134: 横に並べた書式を使用します.@xref{Side by Side Format}.
 6135: @end table
 6136: 
 6137: @node Invoking diff3
 6138: @c @chapter Invoking @command{diff3}
 6139: @chapter @command{diff3}の呼び出し
 6140: @cindex invoking @command{diff3}
 6141: @cindex @command{diff3} invocation
 6142: 
 6143: @c The @command{diff3} command compares three files and outputs descriptions
 6144: @c of their differences.  Its arguments are as follows:
 6145: @c 
 6146: @command{diff3}コマンドは三つのファイルを比較し,それらの差異の記述を出
 6147: 力します.その引数は以下のとおりです.
 6148: 
 6149: @example
 6150: diff3 @var{options}@dots{} @var{mine} @var{older} @var{yours}
 6151: @end example
 6152: 
 6153: @c The files to compare are @var{mine}, @var{older}, and @var{yours}.
 6154: @c At most one of these three file names may be @file{-},
 6155: @c which tells @command{diff3} to read the standard input for that file.
 6156: @c 
 6157: 比較するファイルは,@var{mine},@var{older},そして@var{yours}です.これ
 6158: らの三つのファイルの一つは@file{-}が可能で,それは@command{diff3}にファ
 6159: イルを標準入力から読み込むように伝えます.
 6160: 
 6161: @c An exit status of 0 means @command{diff3} was successful, 1 means some
 6162: @c conflicts were found, and 2 means trouble.
 6163: @c 
 6164: 終了ステータスの0は@command{diff3}が成功したことを意味し,1は衝突が見つ
 6165: かったことを意味し,2は問題があったことを意味します.
 6166: 
 6167: @menu
 6168: * diff3 Options:: Summary of options to @command{diff3}.
 6169: @end menu
 6170: 
 6171: @node diff3 Options
 6172: @section Options to @command{diff3}
 6173: @section @command{diff3}のオプション
 6174: @cindex @command{diff3} options
 6175: @cindex options for @command{diff3}
 6176: 
 6177: @c Below is a summary of all of the options that @sc{gnu} @command{diff3}
 6178: @c accepts.  Multiple single letter options (unless they take an argument)
 6179: @c can be combined into a single command line argument.
 6180: @c 
 6181: 以下は,@sc{gnu} @command{diff3}が受け入れるすべてのオプションの概要です.
 6182: 複数の(引数を取らない)単一文字のオプションを,単一のコマンドラインの単語
 6183: に組み合わせることが可能です.
 6184: 
 6185: @table @option
 6186: @item -a
 6187: @itemx --text
 6188: @c Treat all files as text and compare them line-by-line, even if they
 6189: @c do not appear to be text.  @xref{Binary}.
 6190: @c 
 6191: ファイルがテキストのように見えない場合でも,すべてのファイルをテキストと
 6192: して扱い,行ごとに比較します.@xref{Binary}.
 6193: 
 6194: @item -A
 6195: @itemx --show-all
 6196: @c Incorporate all unmerged changes from @var{older} to @var{yours} into
 6197: @c @var{mine}, surrounding conflicts with bracket lines.
 6198: @c @xref{Marking Conflicts}.
 6199: @c 
 6200: @var{older}から@var{yours}へのマージされていないすべての変更を,衝突した
 6201: 部分の周りをカッコ付の行で囲んで@var{mine}に取り込みます.@xref{Marking
 6202: Conflicts}.
 6203: 
 6204: @item --diff-program=@var{program}
 6205: @c Use the compatible comparison program @var{program} to compare files
 6206: @c instead of @command{diff}.
 6207: @c 
 6208: ファイルの比較で,@command{diff}の代わりにプログラム@var{program}に互換
 6209: 性のある比較を使用します.
 6210: 
 6211: @item -e
 6212: @itemx --ed
 6213: @c Generate an @command{ed} script that incorporates all the changes from
 6214: @c @var{older} to @var{yours} into @var{mine}.  @xref{Which Changes}.
 6215: @c 
 6216: @var{older}から@var{yours}へのすべての変更を@var{mine}に取り込む
 6217: @command{ed}スクリプトを生成します.@xref{Which Changes}.
 6218: 
 6219: @item -E
 6220: @itemx --show-overlap
 6221: @c Like @option{-e}, except bracket lines from overlapping changes' first
 6222: @c and third files.
 6223: @c @xref{Marking Conflicts}.
 6224: @c With @option{-E}, an overlapping change looks like this:
 6225: @c 
 6226: @option{-e}に似ていますが,オーバーラップしている変更部分の最初と三番目
 6227: のファイルの行をカッコで囲みます.@xref{Marking Conflicts}.  @option{-E} 
 6228: を用いると,オーバーラップしている変更は以下のようになります.
 6229: 
 6230: @example
 6231: <<<<<<< @var{mine}
 6232: @r{lines from @var{mine}}
 6233: =======
 6234: @r{lines from @var{yours}}
 6235: >>>>>>> @var{yours}
 6236: @end example
 6237: 
 6238: @item --help
 6239: @c Output a summary of usage and then exit.
 6240: @c 
 6241: 使用方法の概要を出力し終了します.
 6242: 
 6243: @item -i
 6244: @c Generate @samp{w} and @samp{q} commands at the end of the @command{ed}
 6245: @c script for System V compatibility.  This option must be combined with
 6246: @c one of the @option{-AeExX3} options, and may not be combined with @option{-m}.
 6247: @c @xref{Saving the Changed File}.
 6248: @c 
 6249: System V互換のため,@command{ed}スクリプトの終りに@samp{w}と@samp{q}コマ
 6250: ンドを生成します.このオプションは,@option{-AeExX3}オプションの一つと組
 6251: み合わせる必要があり,@option{-m}と組み合わせてはいけません.
 6252: @xref{Saving the Changed File}.
 6253: 
 6254: @item -L @var{label}
 6255: @itemx --label=@var{label}
 6256: @c Use the label @var{label} for the brackets output by the @option{-A},
 6257: @c @option{-E} and @option{-X} options.  This option may be given up to three
 6258: @c times, one for each input file.  The default labels are the names of
 6259: @c the input files.  Thus @samp{diff3 -L X -L Y -L Z -m A B C} acts like
 6260: @c @samp{diff3 -m A B C}, except that the output looks like it came from
 6261: @c files named @samp{X}, @samp{Y} and @samp{Z} rather than from files
 6262: @c named @samp{A}, @samp{B} and @samp{C}.  @xref{Marking Conflicts}.
 6263: @c 
 6264: @option{-A},@option{-E},そして@option{-X}オプションで出力されるカッコ
 6265: に対して,ラベル@var{label}を使用します.このオプションはそれぞれの入力
 6266: ファイルに対して一つ,三回まで与えてもかまいません.デフォルトのラベルは
 6267: 入力ファイルの名前です.このため,@samp{diff3 -L X -L Y -L Z -m A B C}は
 6268: @samp{diff3 -m A B C}ように動作しますが,出力は,ファイル名@samp{A},
 6269: @samp{B},そして@samp{C}からではなく,ファイル名@samp{X},@samp{Y},そし
 6270: て@samp{Z}からのように見えます.@xref{Marking Conflicts}.
 6271: 
 6272: @item -m
 6273: @itemx --merge
 6274: @c Apply the edit script to the first file and send the result to standard
 6275: @c output.  Unlike piping the output from @command{diff3} to @command{ed}, this
 6276: @c works even for binary files and incomplete lines.  @option{-A} is assumed
 6277: @c if no edit script option is specified.  @xref{Bypassing ed}.
 6278: @c 
 6279: 最初のファイルに編集スクリプトを適用し,結果を標準出力に送ります.
 6280: @command{diff3}の出力を@command{ed}にパイプで送るのとは異なり,これはバ
 6281: イナリファイルや不完全なファイルに対しても動作します.編集スクリプトのオ
 6282: プションが指定されていない場合,@option{-A}が仮定されます.
 6283: @xref{Bypassing ed}.
 6284: 
 6285: @item -T
 6286: @itemx --initial-tab
 6287: @c Output a tab rather than two spaces before the text of a line in normal format.
 6288: @c This causes the alignment of tabs in the line to look normal.  @xref{Tabs}.
 6289: @c 
 6290: 通常の書式の行の前のテキストに,二つのスペースの代わりにタブを出力します.
 6291: これで,行中のタブによる位置合わせが普通になります.@xref{Tabs}.
 6292: 
 6293: @item -v
 6294: @itemx --version
 6295: @c Output version information and then exit.
 6296: @c 
 6297: バージョン情報を出力し終了します.
 6298: 
 6299: @item -x
 6300: @itemx --overlap-only
 6301: @c Like @option{-e}, except output only the overlapping changes.
 6302: @c @xref{Which Changes}.
 6303: @c 
 6304: @option{-e}に似ていますが,オーバーラップしている変更だけ出力します.
 6305: @xref{Which Changes}.
 6306: 
 6307: @item -X
 6308: @c Like @option{-E}, except output only the overlapping changes.
 6309: @c In other words, like @option{-x}, except bracket changes as in @option{-E}.
 6310: @c @xref{Marking Conflicts}.
 6311: @c 
 6312: @option{-E}に似ていますが,オーバーラップしている変更だけ出力します.言
 6313: い替えると,@option{-x}に似ていますが,@option{-E}のようにカッコを変更し
 6314: ます.@xref{Marking Conflicts}.
 6315: 
 6316: @item -3
 6317: @itemx --easy-only
 6318: @c Like @option{-e}, except output only the nonoverlapping changes.
 6319: @c @xref{Which Changes}.
 6320: @c 
 6321: @option{-e}に似ていますが,オーバーラップしていない変更だけ出力します.
 6322: @xref{Which Changes}.
 6323: @end table
 6324: 
 6325: @node Invoking patch
 6326: @c @chapter Invoking @command{patch}
 6327: @chapter @command{patch}の呼び出し
 6328: @cindex invoking @command{patch}
 6329: @cindex @command{patch} invocation
 6330: 
 6331: @c Normally @command{patch} is invoked like this:
 6332: @c 
 6333: 通常@command{patch}は以下のように呼び出します.
 6334: 
 6335: @example
 6336: patch <@var{patchfile}
 6337: @end example
 6338: 
 6339: @c The full format for invoking @command{patch} is:
 6340: @c 
 6341: @command{patch}を呼び出す完全な書式は以下のとおりです.
 6342: 
 6343: @example
 6344: patch @var{options}@dots{} @r{[}@var{origfile} @r{[}@var{patchfile}@r{]}@r{]}
 6345: @end example
 6346: 
 6347: @c You can also specify where to read the patch from with the @option{-i
 6348: @c @var{patchfile}} or @option{--input=@var{patchfile}} option.
 6349: @c If you do not specify @var{patchfile}, or if @var{patchfile} is
 6350: @c @file{-}, @command{patch} reads the patch (that is, the @command{diff} output)
 6351: @c from the standard input.
 6352: @c 
 6353: 読み込むパッチを@option{-i @var{patchfile}}や
 6354: @option{--input=@var{patchfile}}オプションで指定することも可能です.
 6355: @var{patchfile}を指定していない場合や,@var{patchfile}が@file{-}の場合,
 6356: @command{patch}はパッチを標準入力(すなわち@command{diff}の出力)から読み
 6357: 込みます.
 6358: 
 6359: @c If you do not specify an input file on the command line, @command{patch}
 6360: @c tries to intuit from the @dfn{leading text} (any text in the patch
 6361: @c that comes before the @command{diff} output) which file to edit.
 6362: @c @xref{Multiple Patches}.
 6363: @c 
 6364: コマンドラインで入力ファイルを指定していない場合,@command{patch}は
 6365: @dfn{前置されるテキスト(leading text)}(@command{diff}で出力されたパッチ
 6366: 内のテキスト)から編集するファイルを見つけようとします.
 6367: 
 6368: @c By default, @command{patch} replaces the original input file with the
 6369: @c patched version, possibly after renaming the original file into a
 6370: @c backup file (@pxref{Backup Names}, for a description of how
 6371: @c @command{patch} names backup files).  You can also specify where to
 6372: @c put the output with the @option{-o @var{file}} or
 6373: @c @option{--output=@var{file}} option; however, do not use this option
 6374: @c if @var{file} is one of the input files.
 6375: @c 
 6376: デフォルトで,@command{patch}は入力されるオリジナルファイルをパッチを当
 6377: てたバージョンに置換し,オリジナルファイルをバックアップファイルに名前を
 6378: 変えます(@command{patch}がバックアップファイルを命名する方法の説明は,
 6379: @pxref{Backup Names}).@option{-o @var{file}}や
 6380: @option{--output=@var{file}}オプションで出力を書き出す場所を指定すること
 6381: も可能です.しかし,@var{file}が入力ファイルの一つの場合はこのオプション
 6382: を使用しないでください.
 6383: 
 6384: @menu
 6385: * patch Options::     Summary table of options to @command{patch}.
 6386: @end menu
 6387: 
 6388: @node patch Options
 6389: @c @section Options to @command{patch}
 6390: @section @command{patch}のオプション
 6391: @cindex @command{patch} options
 6392: @cindex options for @command{patch}
 6393: 
 6394: @c Here is a summary of all of the options that @sc{gnu} @command{patch}
 6395: @c accepts.  @xref{patch and Tradition}, for which of these options are
 6396: @c safe to use in older versions of @command{patch}.
 6397: @c 
 6398: 以下は,@sc{gnu} @command{patch}が受け入れるすべてのオプションの概要です.
 6399: これらのオプションを@command{patch}の古いバージョンで安全に使用するため,
 6400: @xref{patch and Tradition}.
 6401: 
 6402: @c Multiple single-letter options that do not take an argument can be
 6403: @c combined into a single command line argument with only one dash.
 6404: @c 
 6405: 複数の引数を取らない単一文字のオプションを,一つのダッシュを用いて単一の
 6406: コマンドラインに組み合わせることが可能です.
 6407: 
 6408: @table @option
 6409: @item -b
 6410: @itemx --backup
 6411: @c Back up the original contents of each file, even if backups would
 6412: @c normally not be made.  @xref{Backups}.
 6413: @c 
 6414: バックアップが通常作成されない場合でも,それぞれのファイルのオリジナルの
 6415: 内容をバックアップします.@xref{Backups}.
 6416: 
 6417: @item -B @var{prefix}
 6418: @itemx --prefix=@var{prefix}
 6419: @c Prepend @var{prefix} to backup file names.  @xref{Backup Names}.
 6420: @c 
 6421: バックアップファイル名に@var{prefix}を前置します.@xref{Backup Names}.
 6422: 
 6423: @item --backup-if-mismatch
 6424: @c Back up the original contents of each file if the patch does not
 6425: @c exactly match the file.  This is the default behavior when not
 6426: @c conforming to @sc{posix}.  @xref{Backups}.
 6427: @c 
 6428: パッチがファイルに正確にマッチしない場合,それぞれのファイルのオリジナル
 6429: の内容をバックアップします.これは,@sc{posix}準拠でないときデフォルトの
 6430: 動作です.@xref{Backups}.
 6431: 
 6432: @item --binary
 6433: @c Read and write all files in binary mode, except for standard output
 6434: @c and @file{/dev/tty}.  This option has no effect on
 6435: @c @sc{posix}-conforming systems like @sc{gnu}/Linux.  On systems where
 6436: @c this option makes a difference, the patch should be generated by
 6437: @c @samp{diff -a --binary}.  @xref{Binary}.
 6438: @c 
 6439: 標準出力と@file{/dev/tty}以外,すべてのファイルをバイナリモードで読み書
 6440: きします.このオプションは,@sc{gnu}/Linuxのような@sc{posix}準拠のシステ
 6441: ムでは効果がありません.このオプションで差異があるシステムでは,パッチを
 6442: @samp{diff -a --binary}で生成するべきです.@xref{Binary}.
 6443: 
 6444: @item -c
 6445: @itemx --context
 6446: @c Interpret the patch file as a context diff.  @xref{patch Input}.
 6447: @c 
 6448: パッチファイルを周りの文を使用している差分として解釈します.@xref{patch
 6449: Input}.
 6450: 
 6451: @item -d @var{directory}
 6452: @itemx --directory=@var{directory}
 6453: @c Make directory @var{directory} the current directory for interpreting
 6454: @c both file names in the patch file, and file names given as arguments to
 6455: @c other options.  @xref{patch Directories}.
 6456: @c 
 6457: パッチファイルと,それ以外のオプションの引数として与えられるファイルの両
 6458: 方のファイル名を解釈するため,ディレクトリ@var{directory}をカレントディ
 6459: レクトリにします.@xref{patch Directories}.
 6460: 
 6461: @item -D @var{name}
 6462: @itemx --ifdef=@var{name}
 6463: @c Make merged if-then-else output using @var{name}.  @xref{If-then-else}.
 6464: @c 
 6465: @var{name}を使用してif-then-elseの出力をマージします.
 6466: @xref{If-then-else}.
 6467: 
 6468: @item --dry-run
 6469: @c Print the results of applying the patches without actually changing
 6470: @c any files.  @xref{Dry Runs}.
 6471: @c 
 6472: 実際にファイルを変更せず,パッチを適用した結果を出力します.@xref{Dry
 6473: Runs}.
 6474: 
 6475: @item -e
 6476: @itemx --ed
 6477: @c Interpret the patch file as an @command{ed} script.  @xref{patch Input}.
 6478: @c 
 6479: パッチファイルを@command{ed}スクリプトとして解釈します.@xref{patch
 6480: Input}.
 6481: 
 6482: @item -E
 6483: @itemx --remove-empty-files
 6484: @c Remove output files that are empty after the patches have been applied.
 6485: @c @xref{Creating and Removing}.
 6486: @c 
 6487: パッチを適用した後,空の出力ファイルを削除します.@xref{Creating and
 6488: Removing}.
 6489: 
 6490: @item -f
 6491: @itemx --force
 6492: @c Assume that the user knows exactly what he or she is doing, and do not
 6493: @c ask any questions.  @xref{patch Messages}.
 6494: @c 
 6495: ユーザが自分が行なっていることを正確に知っていると仮定し,質問してきませ
 6496: ん.@xref{patch Messages}.
 6497: 
 6498: @item -F @var{lines}
 6499: @itemx --fuzz=@var{lines}
 6500: @c Set the maximum fuzz factor to @var{lines}.  @xref{Inexact}.
 6501: @c 
 6502: 最大のfuzz要素を@var{lines}に設定します.@xref{Inexact}.
 6503: 
 6504: @item -g @var{num}
 6505: @itemx --get=@var{num}
 6506: @c If @var{num} is positive, get input files from a revision control
 6507: @c system as necessary; if zero, do not get the files; if negative, ask
 6508: @c the user whether to get the files.  @xref{Revision Control}.
 6509: @c 
 6510: @var{num}が正の場合,必要があればリビジョンコントロールシステムから入力
 6511: ファイルを取得します.ゼロの場合はファイルを取得しません.負の場合,ユー
 6512: ザにファイルを取得するかどうか尋ねます.@xref{Revision Control}.
 6513: 
 6514: @item --help
 6515: @c Output a summary of usage and then exit.
 6516: @c 
 6517: 使用方法の概要を出力し,終了します.
 6518: 
 6519: @item -i @var{patchfile}
 6520: @itemx --input=@var{patchfile}
 6521: @c Read the patch from @var{patchfile} rather than from standard input.
 6522: @c @xref{patch Options}.
 6523: @c 
 6524: パッチを標準入力からではなく@var{patchfile}から読み込みます.@xref{patch
 6525: Options}.
 6526: 
 6527: @item -l
 6528: @itemx --ignore-white-space
 6529: @c Let any sequence of blanks (spaces or tabs) in the patch file match
 6530: @c any sequence of blanks in the input file.  @xref{Changed White Space}.
 6531: @c 
 6532: パッチファイルの連続した空白(スペースとタブ)を,入力ファイルのすべての連
 6533: 続した空白にマッチさせます.@xref{Changed White Space}.
 6534: 
 6535: @item -n
 6536: @itemx --normal
 6537: @c Interpret the patch file as a normal diff.  @xref{patch Input}.
 6538: @c 
 6539: パッチファイルを通常の差分として解釈します.@xref{patch Input}.
 6540: 
 6541: @item -N
 6542: @itemx --forward
 6543: @c Ignore patches that @command{patch} thinks are reversed or already applied.
 6544: @c See also @option{-R}.  @xref{Reversed Patches}.
 6545: @c 
 6546: @command{patch}がリバースパッチまたは既に適用しているものと考えられるパッ
 6547: チを無視します.@option{-R}も参照してください.@xref{Reversed Patches}.
 6548: 
 6549: @item --no-backup-if-mismatch
 6550: @c Do not back up the original contents of files.  This is the default
 6551: @c behavior when conforming to @sc{posix}.  @xref{Backups}.
 6552: @c 
 6553: ファイルのオリジナルの内容をバックアップしません.これは,@sc{posix}準拠
 6554: 時のデフォルトの動作です.@xref{Backups}.
 6555: 
 6556: @item -o @var{file}
 6557: @itemx --output=@var{file}
 6558: @c Use @var{file} as the output file name.  @xref{patch Options}.
 6559: @c 
 6560: 出力ファイル名として@var{file}を使用します.@xref{patch Options}.
 6561: 
 6562: @item -p@var{number}
 6563: @itemx --strip=@var{number}
 6564: @c Set the file name strip count to @var{number}.  @xref{patch Directories}.
 6565: @c 
 6566: ファイル名のストリップ数を@var{number}に指定します.@xref{patch
 6567: Directories}.
 6568: 
 6569: @item --posix
 6570: @c Conform to @sc{posix}, as if the @env{POSIXLY_CORRECT} environment
 6571: @c variable had been set.  @xref{patch and POSIX}.
 6572: @c 
 6573: @env{POSIXLY_CORRECT}環境変数が設定されているかのように,@sc{posix}に準
 6574: 拠します.@xref{patch and POSIX}.
 6575: 
 6576: @item --quoting-style=@var{word}
 6577: @c Use style @var{word} to quote names in diagnostics, as if the
 6578: @c @env{QUOTING_STYLE} environment variable had been set to @var{word}.
 6579: @c @xref{patch Quoting Style}.
 6580: @c 
 6581: @env{QUOTING_STYLE}環境変数が@var{word}に設定されているかのように,診断
 6582: 時の名前を囲む引用符を@var{word}形式にします.@xref{patch Quoting
 6583: Style}.
 6584: 
 6585: @item -r @var{reject-file}
 6586: @itemx --reject-file=@var{reject-file}
 6587: @c Use @var{reject-file} as the reject file name.  @xref{Reject Names}.
 6588: @c 
 6589: リジェクトファイル名として@var{reject-file}を使用します.@xref{Reject
 6590: Names}.
 6591: 
 6592: @item -R
 6593: @itemx --reverse
 6594: @c Assume that this patch was created with the old and new files swapped.
 6595: @c @xref{Reversed Patches}.
 6596: @c 
 6597: このパッチが古いファイルから新しいファイルに置き換えるように作成されたと
 6598: 仮定します.@xref{Reversed Patches}.
 6599: 
 6600: @item -s
 6601: @itemx --quiet
 6602: @itemx --silent
 6603: @c Work silently unless an error occurs.  @xref{patch Messages}.
 6604: @c 
 6605: エラーが生じない限り,静かに動作します.@xref{patch Messages}.
 6606: 
 6607: @item -t
 6608: @itemx --batch
 6609: @c Do not ask any questions.  @xref{patch Messages}.
 6610: @c 
 6611: 質問してきません.@xref{patch Messages}.
 6612: 
 6613: @item -T
 6614: @itemx --set-time
 6615: @c Set the modification and access times of patched files from time
 6616: @c stamps given in context diff headers, assuming that the context diff
 6617: @c headers use local time.  @xref{Patching Time Stamps}.
 6618: @c 
 6619: パッチファイルの編集時間とアクセス時間を,周りの文を使用した差分のヘッダ
 6620: がローカル時間を使用していると仮定して,周りの文を使用した差分のヘッダの
 6621: タイムスタンプに設定します.@xref{Patching Time Stamps}.
 6622: 
 6623: @item -u
 6624: @itemx --unified
 6625: @c Interpret the patch file as a unified diff.  @xref{patch Input}.
 6626: @c 
 6627: パッチファイルが一体化した差分だと解釈します.@xref{patch Input}.
 6628: 
 6629: @item -v
 6630: @itemx --version
 6631: @c Output version information and then exit.
 6632: @c 
 6633: バージョン情報を出力し,終了します.
 6634: 
 6635: @item -V @var{backup-style}
 6636: @itemx --version=control=@var{backup-style}
 6637: @c Select the naming convention for backup file names.  @xref{Backup Names}.
 6638: @c 
 6639: バックアップファイル名の名前の変換方法を選択します.@xref{Backup Names}.
 6640: 
 6641: @item --verbose
 6642: @c Print more diagnostics than usual.  @xref{patch Messages}.
 6643: @c 
 6644: 通常より多くの診断メッセージを出力します.@xref{patch Messages}.
 6645: 
 6646: @item -x @var{number}
 6647: @itemx --debug=@var{number}
 6648: @c Set internal debugging flags.  Of interest only to @command{patch}
 6649: @c patchers.
 6650: @c 
 6651: 内部デバッグフラグを設定します.@command{patch}へのパッチだけに意味があ
 6652: ります.
 6653: 
 6654: @item -Y @var{prefix}
 6655: @itemx --basename-prefix=@var{prefix}
 6656: @c Prepend @var{prefix} to base names of backup files.  @xref{Backup Names}.
 6657: @c 
 6658: バックアップファイルのベース名に@var{prefix}を前置します.@xref{Backup
 6659: Names}.
 6660: 
 6661: @item -z @var{suffix}
 6662: @itemx --suffix=@var{suffix}
 6663: @c Use @var{suffix} as the backup extension instead of @samp{.orig} or
 6664: @c @samp{~}.  @xref{Backup Names}.
 6665: @c 
 6666: バックアップの拡張子として,@samp{.orig}や@samp{~}の代わりに@var{suffix} 
 6667: を使用します.@xref{Backup Names}.
 6668: 
 6669: @item -Z
 6670: @itemx --set-utc
 6671: @c Set the modification and access times of patched files from time
 6672: @c stamps given in context diff headers, assuming that the context diff
 6673: @c headers use @sc{utc}.  @xref{Patching Time Stamps}.
 6674: @c 
 6675: パッチファイルの編集時間とアクセス時間を,周りの文を使用した差分のヘッダ
 6676: が@sc{utc}を使用していると仮定して,周りの文を使用した差分のヘッダのタイ
 6677: ムスタンプに設定します.@xref{Patching Time Stamps}.
 6678: @end table
 6679: 
 6680: @node Invoking sdiff
 6681: @c @chapter Invoking @command{sdiff}
 6682: @chapter @command{sdiff}の呼び出し
 6683: @cindex invoking @command{sdiff}
 6684: @cindex @command{sdiff} invocation
 6685: 
 6686: @c The @command{sdiff} command merges two files and interactively outputs the
 6687: @c results.  Its arguments are as follows:
 6688: @c 
 6689: @command{sdiff}コマンドは,二つのファイルをマージし,その結果を対話的に
 6690: 出力します.その引数は以下のようになります.
 6691: 
 6692: @example
 6693: sdiff -o @var{outfile} @var{options}@dots{} @var{from-file} @var{to-file}
 6694: @end example
 6695: 
 6696: @c This merges @var{from-file} with @var{to-file}, with output to @var{outfile}.
 6697: @c If @var{from-file} is a directory and @var{to-file} is not, @command{sdiff}
 6698: @c compares the file in @var{from-file} whose file name is that of @var{to-file},
 6699: @c and vice versa.  @var{from-file} and @var{to-file} may not both be
 6700: @c directories.
 6701: @c 
 6702: これは,@var{from-file}と@var{to-file}をマージし,@var{outfile}に出力し
 6703: ます.@var{from-file}がディレクトリで@var{to-file}がそうではない場合,
 6704: @command{sdiff}は@var{from-file}内のファイル名が@var{to-file}のファイル
 6705: と比較し,逆も同じです.@var{from-file}と@var{to-file}を両方ともディレク
 6706: トリにすることはできません.
 6707: 
 6708: @c @command{sdiff} options begin with @samp{-}, so normally @var{from-file}
 6709: @c and @var{to-file} may not begin with @samp{-}.  However, @option{--} as an
 6710: @c argument by itself treats the remaining arguments as file names even if
 6711: @c they begin with @samp{-}.  You may not use @file{-} as an input file.
 6712: @c 
 6713: @command{sdiff}のオプションは@samp{-}で始まるので,通常は@var{from-file} 
 6714: と@var{to-file}を@samp{-}で始めてはなりません.しかし,@option{--}を引数
 6715: とすることで,それ以降の引数を@samp{-}で始まる場合でもファイル名として扱
 6716: います.@file{-}を入力ファイルとして使用してはいけません.
 6717: 
 6718: @c @command{sdiff} without @option{-o} (or @option{--output}) produces a
 6719: @c side-by-side difference.  This usage is obsolete; use the @option{-y}
 6720: @c or @option{--side-by-side} option of @command{diff} instead.
 6721: @c 
 6722: @option{-o}(または@option{--output})を用いない@command{sdiff}で,横に並
 6723: べた差異を生成します.この使用方法は時代遅れです.代わりに@command{diff} 
 6724: の@option{-y}や@option{--side-by-side}オプションを使用してください.
 6725: 
 6726: @c An exit status of 0 means no differences were found, 1 means some
 6727: @c differences were found, and 2 means trouble.
 6728: @c 
 6729: 0の終了ステータスは差異が見つからなかったことを意味し,1は差異が見つかっ
 6730: たことを意味し,そして2は問題が生じたことを意味します.
 6731: 
 6732: @menu
 6733: * sdiff Options:: Summary of options to @command{diff}.
 6734: @end menu
 6735: 
 6736: @node sdiff Options
 6737: @c @section Options to @command{sdiff}
 6738: @section @command{sdiff}のオプション
 6739: @cindex @command{sdiff} options
 6740: @cindex options for @command{sdiff}
 6741: 
 6742: @c Below is a summary of all of the options that @sc{gnu} @command{sdiff} accepts.
 6743: @c Each option has two equivalent names, one of which is a single
 6744: @c letter preceded by @samp{-}, and the other of which is a long name
 6745: @c preceded by @samp{--}.  Multiple single letter options (unless they take
 6746: @c an argument) can be combined into a single command line argument.  Long
 6747: @c named options can be abbreviated to any unique prefix of their name.
 6748: @c 
 6749: 以下は,@sc{gnu} @command{sdiff}が受け入れるオプションすべての概要です.
 6750: ぞれぞれのオプションは二つの等価な名前があり,一つは@samp{-}を前置する単
 6751: 一文字で,もう一つは@samp{--}を前置する長い名前です.複数の(引数を取らな
 6752: い)単一文字のオプションを,単一のコマンドラインの単語に組み合わせること
 6753: が可能です.長い名前のオプションは,ユニークに決定できる前方部分で省略可
 6754: 能です.
 6755: 
 6756: @table @option
 6757: @item -a
 6758: @itemx --text
 6759: @c Treat all files as text and compare them line-by-line, even if they
 6760: @c do not appear to be text.  @xref{Binary}.
 6761: @c 
 6762: すべてのファイルを,テキストのように見えない場合でもテキストとして扱い,
 6763: 行単位で比較します.@xref{Binary}.
 6764: 
 6765: @item -b
 6766: @itemx --ignore-space-change
 6767: @c Ignore changes in amount of white space.  @xref{White Space}.
 6768: @c 
 6769: 空白の量の変更を無視します.@xref{White Space}.
 6770: 
 6771: @item -B
 6772: @itemx --ignore-blank-lines
 6773: @c Ignore changes that just insert or delete blank lines.  @xref{Blank
 6774: @c Lines}.
 6775: @c 
 6776: 空白行の挿入と削除だけの変更を無視します.@xref{Blank Lines}.
 6777: 
 6778: @item -d
 6779: @itemx --minimal
 6780: @c Change the algorithm to perhaps find a smaller set of changes.  This
 6781: @c makes @command{sdiff} slower (sometimes much slower).  @xref{diff
 6782: @c Performance}.
 6783: @c 
 6784: より小さな変更の組を見つけるアルゴリズムに変更します.これで
 6785: @command{sdiff}はより遅く(時には非常に遅く)なります.@xref{diff
 6786: Performance}.
 6787: 
 6788: @item --diff-program=@var{program}
 6789: @c Use the compatible comparison program @var{program} to compare files
 6790: @c instead of @command{diff}.
 6791: @c 
 6792: ファイルを比較するため,@command{diff}の代わりにプログラム@var{program} 
 6793: と互換性のある比較を使用します.
 6794: 
 6795: @item -E
 6796: @itemx --ignore-tab-expansion
 6797: @c Ignore changes due to tab expansion.
 6798: @c @xref{White Space}.
 6799: @c 
 6800: タブの展開による変更を無視します.@xref{White Space}.
 6801: 
 6802: @item --help
 6803: @c Output a summary of usage and then exit.
 6804: @c 
 6805: 使用方法の概要を出力し終了します.
 6806: 
 6807: @item -i
 6808: @itemx --ignore-case
 6809: @c Ignore changes in case; consider upper- and lower-case to be the same.
 6810: @c @xref{Case Folding}.
 6811: @c 
 6812: 大文字小文字の変更を無視します.大文字と小文字が同じであると考えます.
 6813: @xref{Case Folding}.
 6814: 
 6815: @item -I @var{regexp}
 6816: @itemx --ignore-matching-lines=@var{regexp}
 6817: @c Ignore changes that just insert or delete lines that match @var{regexp}.
 6818: @c @xref{Specified Folding}.
 6819: @c 
 6820: @var{regexp}にマッチした行の挿入や削除だけの変更を無視します.
 6821: @xref{Specified Folding}.
 6822: 
 6823: @item -l
 6824: @itemx --left-column
 6825: @c Print only the left column of two common lines.
 6826: @c @xref{Side by Side Format}.
 6827: @c 
 6828: 二つの共通な行の左の列だけを出力します.@xref{Side by Side Format}.
 6829: 
 6830: @item -o @var{file}
 6831: @itemx --output=@var{file}
 6832: @c Put merged output into @var{file}.  This option is required for merging.
 6833: @c 
 6834: マージされた出力を@var{file}に書き出します.このオプションはマージで必要
 6835: です.
 6836: 
 6837: @item -s
 6838: @itemx --suppress-common-lines
 6839: @c Do not print common lines.  @xref{Side by Side Format}.
 6840: @c 
 6841: 共通の行を出力しません.@xref{Side by Side Format}.
 6842: 
 6843: @item --speed-large-files
 6844: @c Use heuristics to speed handling of large files that have numerous
 6845: @c scattered small changes.  @xref{diff Performance}.
 6846: @c 
 6847: 小さな変更が大量にある大きなファイルの処理を高速化するため,発見的手法を
 6848: 使用します.@xref{diff Performance}.
 6849: 
 6850: @item --strip-trailing-cr
 6851: @c Strip any trailing carriage return at the end of an input line.
 6852: @c @xref{Binary}.
 6853: @c 
 6854: 入力ファイルの終りに後置される改行を削除します.@xref{Binary}.
 6855: 
 6856: @item -t
 6857: @itemx --expand-tabs
 6858: @c Expand tabs to spaces in the output, to preserve the alignment of tabs
 6859: @c in the input files.  @xref{Tabs}.
 6860: @c 
 6861: 入力ファイルのタブによる位置合わせを保持するため,出力のタブをスペースに
 6862: 展開します.@xref{Tabs}.
 6863: 
 6864: @item -v
 6865: @itemx --version
 6866: @c Output version information and then exit.
 6867: @c 
 6868: バージョン情報を出力し終了します.
 6869: 
 6870: @item -w @var{columns}
 6871: @itemx --width=@var{columns}
 6872: @c Output at most @var{columns} (default 130) print columns per line.
 6873: @c @xref{Side by Side Format}.  Note that for historical reasons, this
 6874: @c option is @option{-W} in @command{diff}, @option{-w} in @command{sdiff}.
 6875: @c 
 6876: 行ごとに最大@var{columns}列(デフォルトは130列)出力します.@xref{Side by
 6877: Side Format}.  歴史的な理由から,このオプションは@command{diff}では
 6878: @option{-W}に,@command{sdiff}では@option{-w}になっています.
 6879: 
 6880: @item -W
 6881: @itemx --ignore-all-space
 6882: @c Ignore white space when comparing lines.  @xref{White Space}.
 6883: @c Note that for historical reasons, this option is @option{-w} in @command{diff},
 6884: @c @option{-W} in @command{sdiff}.
 6885: @c 
 6886: 行の比較で空白を無視します.@xref{White Space}.  歴史的な理由から,この
 6887: オプションは@command{diff}では@option{-w}に,@command{sdiff}では
 6888: @option{-W}になっています.
 6889: @end table
 6890: 
 6891: @node Standards conformance
 6892: @c @chapter Standards conformance
 6893: @chapter 標準への準拠
 6894: @cindex @sc{posix}
 6895: 
 6896: @vindex POSIXLY_CORRECT
 6897: @c In a few cases, the @sc{gnu} utilities' default behavior is
 6898: @c incompatible with the @sc{posix} standard.  To suppress these
 6899: @c incompatibilities, define the @env{POSIXLY_CORRECT} environment
 6900: @c variable.  Unless you are checking for @sc{posix} conformance, you
 6901: @c probably do not need to define @env{POSIXLY_CORRECT}.
 6902: @c 
 6903: 状況によっては,@sc{gnu}のユーティリティの動作は@sc{posix}の標準と互換性
 6904: がありません.これらの非互換性を抑制するため,@env{POSIXLY_CORRECT}環境
 6905: 変数を定義してください.@sc{posix}準拠を調査していない限り,
 6906: @env{POSIXLY_CORRECT}を定義する必要はありません.
 6907: 
 6908: @c Normally options and operands can appear in any order, and programs act
 6909: @c as if all the options appear before any operands.  For example,
 6910: @c @samp{diff lao tzu -C 2} acts like @samp{diff -C 2 lao tzu}, since
 6911: @c @samp{2} is an option-argument of @option{-C}.  However, if the
 6912: @c @env{POSIXLY_CORRECT} environment variable is set, options must appear
 6913: @c before operands, unless otherwise specified for a particular command.
 6914: @c 
 6915: 通常,オプションとオペランドは,任意の順序にすることが可能で,プログラム
 6916: はすべてのオプションがオペランドの前にあるかのように動作します.例えば,
 6917: @samp{2}は@option{-C}のオプションの引数なので,@samp{diff lao tzu -C 2} 
 6918: は@samp{diff -C 2 lao tzu}のように動作します.しかし,
 6919: @env{POSIXLY_CORRECT}環境変数が設定されている場合,それ以外のオプション
 6920: が特定のコマンドに対して指定されていない限り,オプションはオペランドの前
 6921: にある必要があります.
 6922: 
 6923: @c Newer versions of @sc{posix} are occasionally incompatible with older
 6924: @c versions.  For example, older versions of @sc{posix} allowed the
 6925: @c command @samp{diff -c -10} to have the same meaning as @samp{diff -C
 6926: @c 10}, but @sc{posix} 1003.1-2001 @samp{diff} no longer allows
 6927: @c digit-string options like @option{-10}.
 6928: @c 
 6929: 新しいバージョンの@sc{posix}は,古いバージョンのものと互換性が無いものも
 6930: あります.例えば,古いバージョンの@sc{posix}では@samp{diff -C 10}と同じ
 6931: 意味を持つコマンド@samp{diff -c -10}が利用可能ですが,@sc{posix}
 6932: 1003.1-2001の@samp{diff}では,@option{-10}のような数字列のオプションを許
 6933: 可していません.
 6934: 
 6935: @vindex _POSIX2_VERSION
 6936: @c The @sc{gnu} utilities normally conform to the version of @sc{posix}
 6937: @c that is standard for your system.  To cause them to conform to a
 6938: @c different version of @sc{posix}, define the @env{_POSIX2_VERSION}
 6939: @c environment variable to a value of the form @var{yyyymm} specifying
 6940: @c the year and month the standard was adopted.  Two values are currently
 6941: @c supported for @env{_POSIX2_VERSION}: @samp{199209} stands for
 6942: @c @sc{posix} 1003.2-1992, and @samp{200112} stands for @sc{posix}
 6943: @c 1003.1-2001.  For example, if you are running older software that
 6944: @c assumes an older version of @sc{posix} and uses @samp{diff -c -10},
 6945: @c you can work around the compatibility problems by setting
 6946: @c @samp{_POSIX2_VERSION=199209} in your environment.
 6947: @c 
 6948: @sc{gnu}のユーティリティは通常,システム標準の@sc{posix}のバージョンに準
 6949: 拠しています.異なる@sc{posix}のバージョンに準拠させるため,
 6950: @env{_POSIX2_VERSION}環境変数を適用させる標準の年月を指定する
 6951: @var{yyyymm}の形式の値に設定してください.現在,@env{_POSIX2_VERSION}に
 6952: 対して二つの値がサポートされています.@samp{199209}は@sc{posix}
 6953: 1003.2-1992を意味し,@samp{200112}は@sc{posix} 1003.1-2001を意味します.
 6954: 例えば,古いバージョンの@sc{posix}を仮定する古いソフトウェアを実行し,
 6955: @samp{diff -c -10}を使用している場合,環境変数で
 6956: @samp{_POSIX2_VERSION=199209}を設定することで,互換性の問題を回避するこ
 6957: とが可能です.
 6958: 
 6959: @node Projects
 6960: @c @chapter Future Projects
 6961: @chapter 将来のプロジェクト
 6962: 
 6963: @c Here are some ideas for improving @sc{gnu} @command{diff} and
 6964: @c @command{patch}.  The @sc{gnu} project has identified some
 6965: @c improvements as potential programming projects for volunteers.  You
 6966: @c can also help by reporting any bugs that you find.
 6967: @c 
 6968: @sc{gnu} @command{diff}と@command{patch}を改良するための考えとして以下の
 6969: ものがあります.@sc{gnu}プロジェクトには,ボランティアのプログラミングプ
 6970: ロジェクトへの潜在能力として,いくつかの改良点を認識しました.見つけたバ
 6971: グを報告することで,我々を助けることも可能です.
 6972: 
 6973: @c If you are a programmer and would like to contribute something to the
 6974: @c @sc{gnu} project, please consider volunteering for one of these
 6975: @c projects.  If you are seriously contemplating work, please write to
 6976: @c @email{gnu@@gnu.org} to coordinate with other volunteers.
 6977: @c 
 6978: プロ グラマであって,@sc{gnu}プロジェクトに何か貢献したい場合,これらの
 6979: プロジェクトのボランティアになることを考えてみてください.真面目に作業を
 6980: 考えている場合,他のボランティアと調整するため@email{gnu@@gnu.org}にメー
 6981: ルを送ってください.
 6982: 
 6983: @menu
 6984: * Shortcomings:: Suggested projects for improvements.
 6985: * Bugs::         Reporting bugs.
 6986: @end menu
 6987: 
 6988: @node Shortcomings
 6989: @c @section Suggested Projects for Improving @sc{gnu} @command{diff} and @command{patch}
 6990: @section @sc{gnu} @command{diff}と@command{patch}を改良するためのプロジェクトへの提案
 6991: @cindex projects for directories
 6992: 
 6993: @c One should be able to use @sc{gnu} @command{diff} to generate a patch from any
 6994: @c pair of directory trees, and given the patch and a copy of one such
 6995: @c tree, use @command{patch} to generate a faithful copy of the other.
 6996: @c Unfortunately, some changes to directory trees cannot be expressed using
 6997: @c current patch formats; also, @command{patch} does not handle some of the
 6998: @c existing formats.  These shortcomings motivate the following suggested
 6999: @c projects.
 7000: @c 
 7001: あらゆるのディレクトリの対からパッチを生成するため,@sc{gnu}
 7002: @command{diff}が使用できるようにし,与えられたパッチとそのようなツリーの
 7003: コピーからもう一方のコピーに忠実なものを生成するため,,@command{patch} 
 7004: を使用できるようにすべきです.残念ながら,ディレクトリツリーの変更には,
 7005: 現在のパッチ書式を使用して表現することが不可能なものもあります.また,既
 7006: 存の書式には@command{patch}で処理しないものもあります.これらの欠点は,
 7007: 以下のプロジェクトに提案されている動機付けにもなります.
 7008: 
 7009: @menu
 7010: * Internationalization:: Handling multibyte and varying-width characters.
 7011: * Changing Structure::   Handling changes to the directory structure.
 7012: * Special Files::        Handling symbolic links, device special files, etc.
 7013: * Unusual File Names::   Handling file names that contain unusual characters.
 7014: * Time Stamp Order::     Outputting diffs in time stamp order.
 7015: * Ignoring Changes::     Ignoring certain changes while showing others.
 7016: * Speedups::             Improving performance.
 7017: @end menu
 7018: 
 7019: @node Internationalization
 7020: @c @subsection Handling Multibyte and Varying-Width Characters
 7021: @subsection マルチバイトと可変幅文字の処理
 7022: @cindex multibyte characters
 7023: @cindex varying-width characters
 7024: 
 7025: @c @command{diff}, @command{diff3} and @command{sdiff} treat each line of
 7026: @c input as a string of unibyte characters.  This can mishandle multibyte
 7027: @c characters in some cases.  For example, when asked to ignore spaces,
 7028: @c @command{diff} does not properly ignore a multibyte space character.
 7029: @c 
 7030: @command{diff},@command{diff3},そして@command{sdiff}は,入力のそれぞれ
 7031: の行を単一バイトの文字による文字列として扱います.これにより,状況によっ
 7032: てはマルチバイト文字を誤って処理するはずです.例えば,スペースを無視する
 7033: ように依頼されているとき,@command{diff}はマルチバイトのスペース文字を適
 7034: 切に無視してくれません.
 7035: 
 7036: @c Also, @command{diff} currently assumes that each byte is one column
 7037: @c wide, and this assumption is incorrect in some locales, e.g., locales
 7038: @c that use UTF-8 encoding.  This causes problems with the @option{-y} or
 7039: @c @option{--side-by-side} option of @command{diff}.
 7040: @c 
 7041: また,@command{diff}は現在,それぞれのバイトが一列の幅だと仮定していて,
 7042: 例えば,UTF-8エンコーディングを使用しているロケールのように,この仮定が
 7043: 正しくないロケールもあります.これは,@command{diff}の@option{-y}や
 7044: @option{--side-by-side}オプションで問題が生じます.
 7045: 
 7046: @c These problems need to be fixed without unduly affecting the
 7047: @c performance of the utilities in unibyte environments.
 7048: @c 
 7049: これらの問題は,単一バイト環境でのユーティリティの性能にあまり影響しない
 7050: ように修正する必要があります.
 7051: 
 7052: @c The IBM GNU/Linux Technology Center Internationalization Team has
 7053: @c proposed some patches to support internationalized @command{diff}
 7054: @c @uref{http://oss.software.ibm.com/developer/opensource/linux/patches/i18n/diffutils-2.7.2-i18n-0.1.patch.gz}.
 7055: @c Unfortunately, these patches are incomplete and are to an older
 7056: @c version of @command{diff}, so more work needs to be done in this area.
 7057: @c 
 7058: IBM GNU/Linux Technology Center Internationalization Teamは,
 7059: @command{diff}の国際化をサポートするパッチ
 7060: @uref{http://oss.software.ibm.com/developer/opensource/linux/patches/i18n/diffutils-2.7.2-i18n-0.1.patch.gz} 
 7061: を提案しています.残念ながら,これらのパッチは不完全で,@command{diff}の
 7062: 古いバージョンへのものなので,この領域でより多くの作業が必要です.
 7063: 
 7064: @node Changing Structure
 7065: @c @subsection Handling Changes to the Directory Structure
 7066: @subsection ディレクトリ構造の変更の処理
 7067: @cindex directory structure changes
 7068: 
 7069: @c @command{diff} and @command{patch} do not handle some changes to
 7070: @c directory structure.  For example, suppose one directory tree contains a
 7071: @c directory named @samp{D} with some subsidiary files, and another
 7072: @c contains a file with the same name @samp{D}.  @samp{diff -r} does not
 7073: @c output enough information for @command{patch} to transform the directory
 7074: @c subtree into the file.
 7075: @c 
 7076: @command{diff}と@command{patch}は,ディレクトリ構造に関する変更で処理し
 7077: ないものもあります.例えば,一つのディレクトリツリーには,補助的なファイ
 7078: ルがある@samp{D}という名前のディレクトリがあり,もう一方には同じ名前の
 7079: @samp{D}というファイルが含まれていると仮定します.@samp{diff -r}は,
 7080: @command{patch}がディレクトリのサブツリーをファイルに変換するための十分
 7081: な情報を出力しません.
 7082: 
 7083: @c There should be a way to specify that a file has been removed without
 7084: @c having to include its entire contents in the patch file.  There should
 7085: @c also be a way to tell @command{patch} that a file was renamed, even if
 7086: @c there is no way for @command{diff} to generate such information.
 7087: @c There should be a way to tell @command{patch} that a file's time stamp
 7088: @c has changed, even if its contents have not changed.
 7089: @c 
 7090: パッチファイルに完全な内容を含める必要がないように,削除されたファイルを
 7091: 指定する方法があるべきです.@command{diff}がそのような情報を生成する方法
 7092: がない場合でも,ファイル名が変更されたことを@command{patch}に伝える方法
 7093: もあるべきです.ファイルの内容が変更されていない場合でも,ファイルのタイ
 7094: ムスタンプを変更するように@command{patch}に伝える方法があるべきです.
 7095: 
 7096: @c These problems can be fixed by extending the @command{diff} output format
 7097: @c to represent changes in directory structure, and extending @command{patch}
 7098: @c to understand these extensions.
 7099: @c 
 7100: これらの問題は,ディレクトリ構造の変更を表現する@command{diff}の出力書式
 7101: を拡張し,これらの拡張を理解するよう@command{patch}を拡張することで修正
 7102: 可能です.
 7103: 
 7104: @node Special Files
 7105: @c @subsection Files that are Neither Directories Nor Regular Files
 7106: @subsection ディレクトリでも通常のファイルでもないファイル
 7107: @cindex special files
 7108: 
 7109: @c Some files are neither directories nor regular files: they are unusual
 7110: @c files like symbolic links, device special files, named pipes, and
 7111: @c sockets.  Currently, @command{diff} treats symbolic links like regular files;
 7112: @c it treats other special files like regular files if they are specified
 7113: @c at the top level, but simply reports their presence when comparing
 7114: @c directories.  This means that @command{patch} cannot represent changes
 7115: @c to such files.  For example, if you change which file a symbolic link
 7116: @c points to, @command{diff} outputs the difference between the two files,
 7117: @c instead of the change to the symbolic link.
 7118: @c 
 7119: ファイルには,ディレクトリでも通常のファイルでもないものもあります.それ
 7120: らはシンボリックリンク,デバイスの特殊ファイル,名前付パイプ,そしてソケッ
 7121: トのような通常ではないファイルです.現在,@command{diff} はシンボリック
 7122: リンクを通常のファイルのように扱います.それ以外のファイルは,トップレベ
 7123: ルで指定されている場合は通常のファイルのように扱いますが,ディレクトリを
 7124: 比較しているときは存在していることを単純に報告するだけです.例えば,シン
 7125: ボリックリンクが示しているファイルを変更している場合,@command{diff}はシ
 7126: ンボリックリンクの変更ではなく,二つのファイルの間の差異を出力します.
 7127: 
 7128: @c This might not be a good idea; is it wise for root to install devices
 7129: @c this way?
 7130: @c
 7131: @c @command{diff} should optionally report changes to special files specially,
 7132: @c and @command{patch} should be extended to understand these extensions.
 7133: @c 
 7134: @command{diff}は,オプションで特別に特殊ファイルの変更を報告するべきで,
 7135: @command{patch}はこれらの拡張を理解するように拡張すべきです.
 7136: 
 7137: @node Unusual File Names
 7138: @c @subsection File Names that Contain Unusual Characters
 7139: @subsection 通常ではない文字を含むファイル名
 7140: @cindex file names with unusual characters
 7141: 
 7142: @c When a file name contains an unusual character like a newline or
 7143: @c white space, @samp{diff -r} generates a patch that @command{patch} cannot
 7144: @c parse.  The problem is with format of @command{diff} output, not just with
 7145: @c @command{patch}, because with odd enough file names one can cause
 7146: @c @command{diff} to generate a patch that is syntactically correct but
 7147: @c patches the wrong files.  The format of @command{diff} output should be
 7148: @c extended to handle all possible file names.
 7149: @c 
 7150: ファイル名に改行や空白のような通常ではない文字が含まれるとき,@samp{diff
 7151: -r}は,@command{patch}が解析不可能なパッチを生成します.@command{diff}の
 7152: 出力書式でのその問題は@command{patch}だけではなく,それは奇妙な完全なファ
 7153: イル名で,@command{diff}は構文的には正しいが間違ったファイルにパッチを当
 7154: てるパッチを生成します.@command{diff}の出力の書式は,可能性のあるすべて
 7155: のファイル名を処理するよう拡張されるべきです.
 7156: 
 7157: @node Time Stamp Order
 7158: @c @subsection Outputting Diffs in Time Stamp Order
 7159: @subsection タイムスタンプの順に差分を出力する
 7160: 
 7161: @c Applying @command{patch} to a multiple-file diff can result in files
 7162: @c whose time stamps are out of order.  @sc{gnu} @command{patch} has
 7163: @c options to restore the time stamps of the updated files
 7164: @c (@pxref{Patching Time Stamps}), but sometimes it is useful to generate
 7165: @c a patch that works even if the recipient does not have @sc{gnu} patch,
 7166: @c or does not use these options.  One way to do this would be to
 7167: @c implement a @command{diff} option to output diffs in time stamp order.
 7168: @c 
 7169: 複数ファイルの差分を@command{patch}で適用する結果としてファイルのタイム
 7170: スタンプの順番が台無しになるはずです.@sc{gnu} @command{patch}には,更新
 7171: されたファイルのタイムスタンプを維持するオプションがありますが
 7172: (@pxref{Patching Time Stamps}),@sc{gnu} @command{patch}がなかったりこれ
 7173: らのオプションを使用しない局面でも動作するパッチを生成することが役に立つ
 7174: こともあります.こうするための一つの方法は,出力する差分をタイムスタンプ
 7175: の順番にする@command{diff}のオプションを実装することです.
 7176: 
 7177: @node Ignoring Changes
 7178: @c @subsection Ignoring Certain Changes
 7179: @subsection 特定の変更を無視する
 7180: 
 7181: @c It would be nice to have a feature for specifying two strings, one in
 7182: @c @var{from-file} and one in @var{to-file}, which should be considered to
 7183: @c match.  Thus, if the two strings are @samp{foo} and @samp{bar}, then if
 7184: @c two lines differ only in that @samp{foo} in file 1 corresponds to
 7185: @c @samp{bar} in file 2, the lines are treated as identical.
 7186: @c 
 7187: @var{from-file}と@var{to-file}でマッチしていると考えられる二つの文字列を
 7188: 指定する機能があれば素晴らしいでしょう.例えば,二つの文字列が@samp{foo} 
 7189: と@samp{bar}で,二つの行がファイル1では@samp{foo}でファイル2の対応する部
 7190: 分が@samp{bar}の場合,その行が同じものとして処理されるということです.
 7191: 
 7192: @c It is not clear how general this feature can or should be, or
 7193: @c what syntax should be used for it.
 7194: @c 
 7195: この機能を一般化させる方法や,そこで使用するべき構文は明確ではありません.
 7196: 
 7197: @c A partial substitute is to filter one or both files before comparing,
 7198: @c e.g.:
 7199: @c 
 7200: 部分的な置換は,比較する前に一つまたは両方のファイルでフィルタを通すこと
 7201: です.例えば以下のようにします.
 7202: 
 7203: @example
 7204: sed 's/foo/bar/g' file1 | diff - file2
 7205: @end example
 7206: 
 7207: @c However, this outputs the filtered text, not the original.
 7208: @c 
 7209: しかし,この出力はフィルタを通したテキストでオリジナルのものではありませ
 7210: ん.
 7211: 
 7212: @node Speedups
 7213: @c @subsection Improving Performance
 7214: @subsection パフォーマンスの改善
 7215: 
 7216: @c When comparing two large directory structures, one of which was
 7217: @c originally copied from the other with time stamps preserved (e.g.,
 7218: @c with @samp{cp -pR}), it would greatly improve performance if an option
 7219: @c told @command{diff} to assume that two files with the same size and
 7220: @c time stamps have the same content.  @xref{diff Performance}.
 7221: @c 
 7222: 二つの大きなディレクトリ構造を比較しているとき,元々は一方がもう一方から
 7223: (例えば,@samp{cp -pR}を用いて) タイムスタンプを維持したままコピーされて
 7224: いれば,サイズが同じでタイムスタンプが同じ二つのファイルの内容は同じだと
 7225: いう仮定を@command{diff}に伝えるオプションがある場合,パフォーマンスが大
 7226: 幅に改善されることでしょう.@xref{diff Performance}.
 7227: 
 7228: @node Bugs
 7229: @c @section Reporting Bugs
 7230: @section バグの報告
 7231: @cindex bug reports
 7232: @cindex reporting bugs
 7233: 
 7234: @c If you think you have found a bug in @sc{gnu} @command{cmp},
 7235: @c @command{diff}, @command{diff3}, or @command{sdiff}, please report it
 7236: @c by electronic mail to the
 7237: @c @uref{http://mail.gnu.org/mailman/listinfo/bug-gnu-utils,GNU utilities
 7238: @c bug report mailing list} @email{bug-gnu-utils@@gnu.org}.  Please send
 7239: @c bug reports for @sc{gnu} @command{patch} to
 7240: @c @email{bug-patch@@gnu.org}.  Send as precise a description of the
 7241: @c problem as you can, including the output of the @option{--version}
 7242: @c option and sample input files that produce the bug, if applicable.  If
 7243: @c you have a nontrivial fix for the bug, please send it as well.  If you
 7244: @c have a patch, please send it too.  It may simplify the maintainer's
 7245: @c job if the patch is relative to a recent test release, which you can
 7246: @c find in the directory @uref{ftp://alpha.gnu.org/gnu/diffutils/}.
 7247: @c 
 7248: @sc{gnu} @command{cmp},@command{diff},@command{diff3},または
 7249: @command{sdiff}にバグを見つけたと思う場合,
 7250: @uref{http://mail.gnu.org/mailman/listinfo/bug-gnu-utils,GNU utilities
 7251: bug report mailing list} @email{bug-gnu-utils@@gnu.org}に電子メールで報
 7252: 告してください.@sc{gnu} @command{patch}のバグの報告は
 7253: @email{bug-patch@@gnu.org}に送ってください.できるだけ問題を明確にし,
 7254: @option{--version}オプションの出力と,できればバグを生成する入力ファイル
 7255: のサンプルを含めて送ってください.些細ではないバグを修正した場合,それも
 7256: 送ってください.パッチがあればそれも送ってください.パッチがディレクトリ
 7257: @uref{ftp://alpha.gnu.org/gnu/diffutils/}で見つけられる最新のテストリリー
 7258: スに関連する場合,管理者の作業が簡単になるかもしれません.
 7259: 
 7260: @node Copying This Manual
 7261: @c @appendix Copying This Manual
 7262: @appendix このマニュアルのコピーに付いて
 7263: 
 7264: @menu
 7265: * GNU Free Documentation License::  License for copying this manual.
 7266: @end menu
 7267: 
 7268: @include fdl.texi
 7269: 
 7270: @node Index
 7271: @c @appendix Index
 7272: @appendix 索引
 7273: 
 7274: @printindex cp
 7275: 
 7276: @bye

FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>