Subject: Re: bug#2693: grep-find with camelCase returns error of 123

From: Sven Joachim <[email-masked]>
Date: Tue, 17 Mar 2009 10:15:02 +0100

On 2009-03-17 01:41 +0100, xah lee wrote:

> Summary: when using M-x grep-find, on a search word with camelCase, i
> get this error:
> “Grep exited abnormally with code 123 at Mon Mar 16 17:22:46”.
>
> Reproduce steps:
>
> • start emacs 22.x with -q
> • M-x grep-find
> • Try to search a word with camelCase. e.g. “find . -name "*txt" -
> print0 | xargs -0 -e grep -nH -e pestiLence”
> • Emacs gives the error mentioned above.
>
> This is reproducible in:
>
> • GNU Emacs 22.2.1 (powerpc-apple-darwin8.11.0, Carbon Version 1.6.0)
> of 2008-04-05 on g5.tokyo.stp.isas.jaxa.jp
> • GNU Emacs 22.0.50.1 (powerpc-apple-darwin8.11.0, GTK+ Version
> 2.6.10) of 2009-03-01 on xahg5.local
>
> This problem happens also when called with shell-command. e.g. M-x 
> shell-command, then use
> “find . -name "*txt" -print0 | xargs -0 -e grep -nH -e pestiLence”.

This is not surprising, since 123 is xargs' exit code if any of the
command invocations failed, see the "EXIT STATUS" section in xargs(1).

> However, this does not happen when called in shell, e.g. M-x
> shell. Nor when i simply run it in a Terminal running bash. (so, prob
> not  having to do with the unix's “find”, “grep”, “xargs”  programs on
> my computer.)

Your shell may not report failure, but unless one of your files contains
pestiLence, the above command will still finish with an exit code of
123.  Type "echo $?" to convince yourself.

Maybe it would be possible to special-case an exit code of 123 in
grep-find, but the problem is that this exit code does not tell if there
were matches or not.

Sven