git.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Jeff King <peff@peff.net>
To: Junio C Hamano <gitster@pobox.com>
Cc: David Kastrup <dak@gnu.org>, d9ba@mailtor.net, git@vger.kernel.org
Subject: Re: Harmful LESS flags
Date: Thu, 24 Apr 2014 17:35:29 -0400	[thread overview]
Message-ID: <20140424213529.GB7815@sigill.intra.peff.net> (raw)
In-Reply-To: <xmqq8uquv84u.fsf@gitster.dls.corp.google.com>

On Thu, Apr 24, 2014 at 12:29:21PM -0700, Junio C Hamano wrote:

> David Kastrup <dak@gnu.org> writes:
> 
> > Junio C Hamano <gitster@pobox.com> writes:
> >
> >> Traditionally, because the tool grew in a context of being used in a
> >> project whose participants are at least not malicious, always having
> >> to be on the lookout for fear of middle-of-line tabs hiding bad
> >> contents near the right edges of lines has never been an issue.
> >
> > My beef is not with "hiding bad contents" but with "hiding contents".
> > It makes the output useless for seeing what is actually happening as
> > soon as the option starts having an effect.
> 
> My suspicion is that one of the reasons why S was chosen to be in
> the default was to mildly discourage people from busting the usual
> line-length limit, but I am not Linus ;-)

I would think it's the opposite. Long lines look _horrible_ without
"-S", as they get wrapped at awkward points. Using "-S" means that long
lines don't bug you, unless you really want to scroll over and see the
content.

I really think the right solution here is to teach less to make it more
obvious that there is something worth scrolling over to. Here's a very
rough patch for less, if you want to see what I'm thinking of.

diff --git a/input.c b/input.c
index b211323..01aa411 100755
--- a/input.c
+++ b/input.c
@@ -178,6 +178,7 @@ get_forw_line:
 			 */
 			if (chopline || hshift > 0)
 			{
+				set_chopped_marker(ch_tell()-1);
 				do
 				{
 					if (ABORT_SIGS())
diff --git a/line.c b/line.c
index 1eb3914..b3358a0 100755
--- a/line.c
+++ b/line.c
@@ -1080,6 +1080,20 @@ set_status_col(c)
 	attr[0] = AT_NORMAL|AT_HILITE;
 }
 
+	public void
+set_chopped_marker(pos)
+	    POSITION pos;
+{
+	/*
+	 * Roll back output by one character; probably
+	 * we need to actually walk curr back further
+	 * for multibyte characters?
+	 */
+	column--;
+	curr--;
+	store_char('>', AT_NORMAL|AT_HILITE, NULL, pos);
+}
+
 /*
  * Get a character from the current line.
  * Return the character as the function return value,

-Peff

  parent reply	other threads:[~2014-04-24 21:35 UTC|newest]

Thread overview: 41+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2014-04-23 23:46 Harmful LESS flags d9ba
2014-04-24  0:11 ` Jonathan Nieder
2014-04-28 21:38   ` Mark Nudelman
2014-04-24  5:06 ` David Kastrup
2014-04-24 19:02   ` Junio C Hamano
2014-04-24 19:21     ` David Kastrup
2014-04-24 19:29       ` Junio C Hamano
2014-04-24 19:50         ` David Kastrup
2014-04-24 21:35         ` Jeff King [this message]
2014-04-24 21:47           ` Junio C Hamano
2014-04-24 22:02             ` Jeff King
2014-04-24 21:48           ` David Kastrup
2014-04-24 22:13             ` Jeff King
2014-04-24 22:44               ` David Kastrup
2014-04-24 23:08                 ` Jonathan Nieder
2014-04-25  6:56     ` Matthieu Moy
2014-04-25 15:11       ` Jonathan Nieder
2014-04-25 15:32         ` David Kastrup
2014-04-25 15:47           ` Jonathan Nieder
2014-04-28  8:34             ` [PATCH] PAGER_ENV: remove 'S' from $LESS by default Matthieu Moy
2014-04-28  8:43               ` David Kastrup
2014-04-28  8:59                 ` Matthieu Moy
2014-04-28  9:14                   ` David Kastrup
2014-04-28 12:22                     ` Matthieu Moy
2014-04-28 16:24                       ` Jeff King
2014-04-28 18:48                         ` Junio C Hamano
2014-04-29 12:29                           ` Matthieu Moy
2014-04-29 17:01                             ` Junio C Hamano
2014-04-30  7:35                               ` [PATCH v2] pager: " Matthieu Moy
2014-04-30 15:38                                 ` Junio C Hamano
2014-04-30 15:49                                   ` Matthieu Moy
2014-04-30 17:34                                     ` Junio C Hamano
2014-05-05 18:44                                 ` Jonathan Nieder
2014-05-05 20:10                                   ` Matthieu Moy
2014-05-06 17:34                                     ` Junio C Hamano
2014-05-06 18:00                                       ` David Kastrup
2014-05-06 18:49                                         ` Matthieu Moy
2014-05-06 21:55                                           ` Jeff King
2014-05-07 17:07                                             ` Junio C Hamano
2014-05-07 17:54                                               ` Matthieu Moy
2014-05-07 20:42                                                 ` Junio C Hamano

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20140424213529.GB7815@sigill.intra.peff.net \
    --to=peff@peff.net \
    --cc=d9ba@mailtor.net \
    --cc=dak@gnu.org \
    --cc=git@vger.kernel.org \
    --cc=gitster@pobox.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).