### 6.5 Limitations of diff

The `diff` utility may have limits on the lengths of lines that it can process, though the GNU `diff` program has no such limits. This means that if you are using CSSC in combination with a `diff` which has a line length limit, that limit will apply to the operation of the CSSC `delta` and `sccsdiff` programs (though not to any other component of CSSC).

This kind of problem may cause `delta` to fail because the file you are checking in contains an over-length line. However, because SCCS files may be operated on by SCCS implementations that have different upper limits, you might also find that the delta you checked out from the history file already contained a line which is longer than can be coped with by your `delta` utility. GNU CSSC can always be switched back a mode in which there is no line length limit (i.e. the mode which is usually the default) and so can be used to work around such situations.

Bear in mind that implementations of `diff` and SCCS on a given system can have different limits on the sizes of lines that can be handled by `delta`, `get` and `diff`. This is not the case with the GNU system however, which has no such limits.

The `diff` utility will also fail if the last line in one of the files being compared does not end in a newline. To work around this you can either encode the file as a binary file (see admin) or add a terminating newline (which is usually the best course of action).

The `diff` program to be used by the CSSC tools is selected when the `configure` script is run, before CSSC is compiled. Configuration explains how you can determine which diff command is used by CSSC.