\unnumbchapentry {Overview}{1} \chapentry {What Comparison Means}{1}{3} \secentry {Hunks}{1}{1}{3} \secentry {Suppressing Differences in Blank and Tab Spacing}{1}{2}{4} \secentry {Suppressing Differences in Blank Lines}{1}{3}{4} \secentry {Suppressing Case Differences}{1}{4}{5} \secentry {Suppressing Lines Matching a Regular Expression}{1}{5}{5} \secentry {Summarizing Which Files Differ}{1}{6}{5} \secentry {Binary Files and Forcing Text Comparisons}{1}{7}{5} \chapentry {\code {diff} Output Formats}{2}{7} \secentry {Two Sample Input Files}{2}{1}{7} \secentry {Showing Differences Without Context}{2}{2}{7} \subsecentry {Detailed Description of Normal Format}{2}{2}{1}{8} \subsecentry {An Example of Normal Format}{2}{2}{2}{8} \secentry {Showing Differences in Their Context}{2}{3}{9} \subsecentry {Context Format}{2}{3}{1}{9} \subsubsecentry {Detailed Description of Context Format} {2}{3}{1}{1} {9} \subsubsecentry {An Example of Context Format} {2}{3}{1}{2} {10} \subsubsecentry {An Example of Context Format with Less Context} {2}{3}{1}{3} {11} \subsecentry {Unified Format}{2}{3}{2}{11} \subsubsecentry {Detailed Description of Unified Format} {2}{3}{2}{1} {11} \subsubsecentry {An Example of Unified Format} {2}{3}{2}{2} {12} \subsecentry {Showing Which Sections Differences Are in}{2}{3}{3}{12} \subsubsecentry {Showing Lines That Match Regular Expressions} {2}{3}{3}{1} {12} \subsubsecentry {Showing C Function Headings} {2}{3}{3}{2} {13} \subsecentry {Showing Alternate File Names}{2}{3}{4}{13} \secentry {Showing Differences Side by Side}{2}{4}{14} \secentry {Controlling Side by Side Format}{2}{5}{14} \subsecentry {An Example of Side by Side Format}{2}{5}{1}{15} \secentry {Making Edit Scripts}{2}{6}{15} \subsecentry {\code {ed} Scripts}{2}{6}{1}{15} \subsubsecentry {Detailed Description of \code {ed} Format} {2}{6}{1}{1} {15} \subsubsecentry {Example \code {ed} Script} {2}{6}{1}{2} {16} \subsecentry {Forward \code {ed} Scripts}{2}{6}{2}{16} \subsecentry {RCS Scripts}{2}{6}{3}{17} \secentry {Merging Files with If-then-else}{2}{7}{17} \subsecentry {Line Group Formats}{2}{7}{1}{18} \subsecentry {Line Formats}{2}{7}{2}{20} \subsecentry {Detailed Description of If-then-else Format}{2}{7}{3}{21} \subsecentry {An Example of If-then-else Format}{2}{7}{4}{22} \chapentry {Comparing Directories}{3}{25} \chapentry {Making \code {diff} Output Prettier}{4}{27} \secentry {Preserving Tabstop Alignment}{4}{1}{27} \secentry {Paginating \code {diff} Output}{4}{2}{27} \chapentry {\code {diff} Performance Tradeoffs}{5}{29} \chapentry {Comparing Three Files}{6}{31} \secentry {A Third Sample Input File}{6}{1}{31} \secentry {Detailed Description of \code {diff3} Normal Format}{6}{2}{31} \secentry {\code {diff3} Hunks}{6}{3}{32} \secentry {An Example of \code {diff3} Normal Format}{6}{4}{32} \chapentry {Merging From a Common Ancestor}{7}{35} \secentry {Selecting Which Changes to Incorporate}{7}{1}{35} \secentry {Marking Conflicts}{7}{2}{36} \secentry {Generating the Merged Output Directly}{7}{3}{37} \secentry {How \code {diff3} Merges Incomplete Lines}{7}{4}{38} \secentry {Saving the Changed File}{7}{5}{38} \chapentry {Interactive Merging with \code {sdiff}}{8}{39} \secentry {Specifying \code {diff} Options to \code {sdiff}}{8}{1}{39} \secentry {Merge Commands}{8}{2}{39} \chapentry {Merging with \code {patch}}{9}{41} \secentry {Selecting the \code {patch} Input Format}{9}{1}{41} \secentry {Applying Imperfect Patches}{9}{2}{42} \subsecentry {Applying Patches with Changed White Space}{9}{2}{1}{42} \subsecentry {Applying Reversed Patches}{9}{2}{2}{42} \subsecentry {Helping \code {patch} Find Inexact Matches}{9}{2}{3}{42} \secentry {Removing Empty Files}{9}{3}{43} \secentry {Multiple Patches in a File}{9}{4}{43} \secentry {Messages and Questions from \code {patch}}{9}{5}{44} \chapentry {Tips for Making Patch Distributions}{10}{45} \chapentry {Invoking \code {cmp}}{11}{47} \secentry {Options to \code {cmp}}{11}{1}{47} \chapentry {Invoking \code {diff}}{12}{49} \secentry {Options to \code {diff}}{12}{1}{49} \chapentry {Invoking \code {diff3}}{13}{55} \secentry {Options to \code {diff3}}{13}{1}{55} \chapentry {Invoking \code {patch}}{14}{57} \secentry {Applying Patches in Other Directories}{14}{1}{57} \secentry {Backup File Names}{14}{2}{58} \secentry {Reject File Names}{14}{3}{59} \secentry {Options to \code {patch}}{14}{4}{59} \chapentry {Invoking \code {sdiff}}{15}{63} \secentry {Options to \code {sdiff}}{15}{1}{63} \chapentry {Incomplete Lines}{16}{67} \chapentry {Future Projects}{17}{69} \secentry {Suggested Projects for Improving GNU \code {diff} and \code {patch}}{17}{1}{69} \subsecentry {Handling Changes to the Directory Structure}{17}{1}{1}{69} \subsecentry {Files that are Neither Directories Nor Regular Files}{17}{1}{2}{69} \subsecentry {File Names that Contain Unusual Characters}{17}{1}{3}{69} \subsecentry {Arbitrary Limits}{17}{1}{4}{70} \subsecentry {Handling Files that Do Not Fit in Memory}{17}{1}{5}{70} \subsecentry {Ignoring Certain Changes}{17}{1}{6}{70} \secentry {Reporting Bugs}{17}{2}{70} \unnumbchapentry {Concept Index}{71} .