# Re: [cogito] paged output for cg-diff

3 messages from 2005-05-20 to 2005-05-29. Participants: Michal Rokos, Junio C Hamano, Petr Baudis.
Thread: https://gitlist.dev/t/670

## Michal Rokos, 2005-05-20 13:17

Subject: Re: [cogito] paged output for cg-diff
Message-ID: <200505201517.05995.michal@rokos.info>
URL: https://gitlist.dev/e/200505201517.05995.michal%40rokos.info

```
Hello,

Junio is right, following is sufficent. Tested with 'more' too.

 Michal

PS: I'm off the list, so please CC me.

Signed-off-by: Michal Rokos <michal@rokos.info>
Idea-from: Junio C Hamano <junkio@cox.net>

Index: cg-Xlib
===================================================================
--- ca5fef50fb68a3afbb35e1a48ac622f7a964f021/cg-Xlib  (mode:100755)
+++ uncommitted/cg-Xlib  (mode:100755)
@@ -91,3 +91,8 @@

 export BROKEN_MKTEMP=1
 del=$($(which mktemp) -t 2>/dev/null) && { rm $del; export BROKEN_MKTEMP=; }
+
+PAGER () {
+       ${PAGER:-less} ${PAGER_FLAGS:--R}
+}
+
Index: cg-diff
===================================================================
--- ca5fef50fb68a3afbb35e1a48ac622f7a964f021/cg-diff  (mode:100755)
+++ uncommitted/cg-diff  (mode:100755)
@@ -71,7 +71,7 @@
        # FIXME: Update ret based on what did we match. And take "$@"
        # to account after all.
        ret=
-       git-diff-cache -r -z $tree | xargs -0 ${COGITO_LIB}cg-Xdiffdo "$tree" uncommitted "$filter"
+       git-diff-cache -r -z $tree | xargs -0 ${COGITO_LIB}cg-Xdiffdo "$tree" uncommitted "$filter" | PAGER

        [ "$filter" ] && rm $filter

@@ -85,7 +85,7 @@

 [ "$id1" = "$id2" ] && die "trying to diff $id1 against itself"

-git-diff-tree -r -z $id1 $id2 | xargs -0 ${COGITO_LIB}cg-Xdiffdo $id1 $id2 "$filter"
+git-diff-tree -r -z $id1 $id2 | xargs -0 ${COGITO_LIB}cg-Xdiffdo $id1 $id2 "$filter" | PAGER

 [ "$filter" ] && rm $filter
 exit 0
Index: cg-log
===================================================================
--- ca5fef50fb68a3afbb35e1a48ac622f7a964f021/cg-log  (mode:100755)
+++ uncommitted/cg-log  (mode:100755)
@@ -181,4 +181,4 @@

                done
        echo
-done | ${PAGER:-less} ${PAGER_FLAGS:--R}
+done | PAGER

```

## Junio C Hamano, 2005-05-20 13:50

Subject: Re: [cogito] paged output for cg-diff
Message-ID: <7vu0kyuhtq.fsf@assigned-by-dhcp.cox.net>
URL: https://gitlist.dev/e/7vu0kyuhtq.fsf%40assigned-by-dhcp.cox.net
In-Reply-To: <200505201517.05995.michal@rokos.info>

```
>>>>> "MR" == Michal Rokos <michal@rokos.info> writes:

MR> Junio is right, following is sufficent. Tested with 'more' too.
MR> Idea-from: Junio C Hamano <junkio@cox.net>

I appreciate the credit, but that is probably not needed in this
case, since this is quite commonly used pattern.  I've seen many
people do just this:

          command | ${PAGER:-less}

And if you think about it, you would realize that the above is
good enough, and probably is a lot better than what you are
doing.

Your PAGER shell function gives "-R" indiscriminately when
$PAGER_FLAGS is not set (or set to empty, which is even worse
because you are not giving the user to override this _bad_
choice) without even checking if the $PAGER is something that
understands "-R" (namely, "less").  I do not think users with
their PAGER set to "more" or "cat" (I do the latter when I am
working in Emacs) would appreciate that behaviour.

On the other hand, if your user is a "less" user, and if the
user wants it to honor ANSI "color" escape sequences, it would
be more helpful to the user if you educate/encourage the user to
have "LESS=R" in the environment and make that in effect
everywhere less is used not just in Cogito.  Giving that support
silently just in Cogito at the first thought may seem to be more
helpful but in reality it is not.

So I would suggest to use the above form without defining your
own PAGER shell function, and add a tip for "less" users to have
"LESS=R" in their environment somewhere in the documentation.


```

## Petr Baudis, 2005-05-29 14:01

Subject: Re: [cogito] paged output for cg-diff
Message-ID: <20050529140127.GI1036@pasky.ji.cz>
URL: https://gitlist.dev/e/20050529140127.GI1036%40pasky.ji.cz
In-Reply-To: <7vu0kyuhtq.fsf@assigned-by-dhcp.cox.net>

```
Dear diary, on Fri, May 20, 2005 at 03:50:57PM CEST, I got a letter
where Junio C Hamano <junkio@cox.net> told me that...
> On the other hand, if your user is a "less" user, and if the
> user wants it to honor ANSI "color" escape sequences, it would
> be more helpful to the user if you educate/encourage the user to
> have "LESS=R" in the environment and make that in effect
> everywhere less is used not just in Cogito.  Giving that support
> silently just in Cogito at the first thought may seem to be more
> helpful but in reality it is not.
> 
> So I would suggest to use the above form without defining your
> own PAGER shell function, and add a tip for "less" users to have
> "LESS=R" in their environment somewhere in the documentation.

Using the $LESS variable didn't occur to me and I like the idea. :-)
I think the most reasonable thing for Cogito will be to set LESS=R$LESS
if the user passed -c to the given command.

-- 
				Petr "Pasky" Baudis
Stuff: http://pasky.or.cz/
C++: an octopus made by nailing extra legs onto a dog. -- Steve Taylor

```
