[...]
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.
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.
Cheers Lex
[...]