Previous: Prefixing Commands, Up: More On Commands


4.7.2 Error Handling

From time to time, commands may fail for different reasons. Patcher tracks command failures and lets you know when that happens.

The first thing Patcher does is to check the external processes exit codes. A non-zero exit code will normally trigger a Patcher error. There is however one notable exception: cvs diff has this incredibly stupid idea of returning an exit code of 1 when the diff succeeds, and is non-empty. Because of this, Patcher provides an option named :ignore-diff-status that is set to t in the CVS theme. There should be no reason to use it in any other context.

Next, Patcher looks for specific strings in process output. The :failed-command-regexp project option lets you specify a regular expression to match with the output of an aborted command. In the CVS built-in theme for example (see Themes), the value is ‘"^cvs \\[[^]]* aborted\\]"’.