# [COGITO PATCH] Fixing "cg-help typo" again

3 messages from 2005-06-14 to 2005-06-15. Participants: Pavel Roskin, Jonas Fonseca.
Thread: https://gitlist.dev/t/940

## Pavel Roskin, 2005-06-14 23:32

Subject: [COGITO PATCH] Fixing "cg-help typo" again
Message-ID: <1118791967.3890.11.camel@dv>
URL: https://gitlist.dev/e/1118791967.3890.11.camel%40dv

```
Hello!

"cg-help typo" is broken again (same symptom - no output) because the
print_help() output is piped through colorize(), which never fails.

I don't know any way to get return status of the first command in a
pipeline, so I changed to code to put print_help() output in a variable,
check status and then pipe the variable contents through colorize().

GNU bash can hold indefinitely much data in variables, and we need a few
kilobytes at most.

Signed-off-by: Pavel Roskin <proski@gnu.org>

diff --git a/cg-help b/cg-help
--- a/cg-help
+++ b/cg-help
@@ -59,7 +59,8 @@ colorize() {
 
 if [ "$ARGS" ]; then
 	cmd=$(echo "${ARGS[0]}" | sed 's/^cg-//')
-	( print_help $cmd | colorize ) && exit
+	helpdata="$(print_help $cmd)"
+	[ "$?" = 0 ] && { echo "$helpdata" | colorize; exit 0; }
 	echo "cg-help: no help available for command \"${ARGS[0]}\""
 	echo "Call cg-help without any arguments for the list of available commands"
 	exit 1


-- 
Regards,
Pavel Roskin


```

## Jonas Fonseca, 2005-06-14 23:43

Subject: Re: [COGITO PATCH] Fixing "cg-help typo" again
Message-ID: <20050614234333.GA17152@diku.dk>
URL: https://gitlist.dev/e/20050614234333.GA17152%40diku.dk
In-Reply-To: <1118791967.3890.11.camel@dv>

```
Pavel Roskin <proski@gnu.org> wrote Tue, Jun 14, 2005:
> Hello!

Hi,

> "cg-help typo" is broken again (same symptom - no output) because the
> print_help() output is piped through colorize(), which never fails.

Sorry, I broke it in the cg-help colorization patch, and has already
sent a patch to pasky, off-list I am afraid ...
> 
> I don't know any way to get return status of the first command in a
> pipeline, so I changed to code to put print_help() output in a variable,
> check status and then pipe the variable contents through colorize().

Use the PIPESTATUS aray as in the patch I sent:

@@ -59,7 +59,8 @@ colorize() {
 
 if [ "$ARGS" ]; then
 	cmd=$(echo "${ARGS[0]}" | sed 's/^cg-//')
-	( print_help $cmd | colorize ) && exit
+	print_help $cmd | colorize
+	[ "${PIPESTATUS[0]}" -eq 0 ] && exit
 	echo "cg-help: no help available for command \"${ARGS[0]}\""
 	echo "Call cg-help without any arguments for the list of available commands"
 	exit 1

-- 
Jonas Fonseca

```

## Pavel Roskin, 2005-06-15 00:17

Subject: Re: [COGITO PATCH] Fixing "cg-help typo" again
Message-ID: <1118794665.3890.16.camel@dv>
URL: https://gitlist.dev/e/1118794665.3890.16.camel%40dv
In-Reply-To: <20050614234333.GA17152@diku.dk>

```
Hi, Jonas!

On Wed, 2005-06-15 at 01:43 +0200, Jonas Fonseca wrote:
> Pavel Roskin <proski@gnu.org> wrote Tue, Jun 14, 2005:
> > I don't know any way to get return status of the first command in a
> > pipeline, so I changed to code to put print_help() output in a variable,
> > check status and then pipe the variable contents through colorize().
> 
> Use the PIPESTATUS aray as in the patch I sent:

OK, your patch is better.

Acked-by: Pavel Roskin <proski@gnu.org>

-- 
Regards,
Pavel Roskin


```
