mbrush at codebrainz.ca
Sun Nov 25 23:48:52 UTC 2012
On 12-11-25 02:44 PM, Lex Trotman wrote:
>>> Right, but Geany thinks that since it returned messages on stderr that
>>> something went wrong with the command, so it doesn't do the
>>> substitution. You should have a message along the line "The executed
>>> custom command returned an error. Your selection was not changed." in
>>> the status bar.
>> What's the point about it BTW? Normally a command exit status should be
>> the way to check, I don't see why we should make weird guess at a
>> command not being allowed to output something on stderr?
> Well, I don't know the original argument for doing it this way, but
> I've got two:
> 1. the command is meant to be a filter, stdin to stdout, anything on
> stderr almost certainly indicates a problem.
Filter programs sometimes use stderr as way to output status
information/reports/warnings that shouldn't get piped to the normal
output. IIRC the `tidy` utility does this by default.
> 2. sadly there are still filters that return zero if they fail and
> non-zero if they succeed (especially user written ones :), which means
> that you can't just test the return value.
Checking exit codes is pretty much the only sane way though and is the
exact use for them.
Maybe checking exit code to determine success or failure and just having
a status bar message if stderr is written to that says something to the
effect of "The filter command wrote to the standard error stream, this
might indicate a problem in your output." would be the way to go?
More information about the Users