# SRCCOM
> [HTML Version](srccom_lit.htm)
_Updated March 2025; see History_
**SRCCOM \{listfile=\} oldfile, newfile \{switches\}**
SRCCOM compares two source files, reporting the differences. This is useful, for example, when comparing two versions of a program to see what has changed between them. It is most useful when the differences between the files are few; when they are substantial, it becomes both overwhelmed and overwhelming.
| **Switch** | **Effect ** |
|------|------|
| /B | Brief listing: same as /Q but without line numbers |
| /Q | Quick listing: list only the lines that differ between the two files |
| /S | Silent: ignores blank lines and whitespace differences |
| /? | Writes switch listing and usage info to the screen |
Under Unix, there is a much more powerful file comparison utility call _diff_, and in some cases, _diff3_, which can compare three files at a time. See the notes on [DIFF](diff_lit.htm.md), an A-Shell front-end to _diff_.
Note also that SRCCOM.LIT includes the list file name and switches in the listing header, matching the format of the AMOS version.
**History**
2025 March, A-Shell 7.0.1774, SRCCOM.LIT 2.0(205): optimization improvements, both in terms of performance and minimizing the amount of difference reported. Also, add lifesigns.
2021 December, A-Shell 6.5.1709, SRCCOM.LIT 2.0(201): routine rewritten to implement various improvements/fixes:
• No longer requires a memory partition of 1MB or more.
• Supports a new switch /S which ignores whitespace differences.
• Removed limit on line length, which previously was 512 characters.
• Supports inserted blocks of up to 10000 lines, up from 750.
• Reduces tendency for single-line "premature matches". For example, when a block of new code is inserted, SRCCOM previously would re-sync on a single line match (even a blank line) between the original code and the new code, causing the inserted block to appear like a fragmented series of multiple insertions instead of a single block.
• Is now able to recognize "parallel differences" of up to 100 lines. These result from line changes rather than insertions/deletions.
• The /Q mode now outputs the matching pair both before and after a set of differences.