All of lore.kernel.org
 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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.