zsh-workers
 help / color / mirror / code / Atom feed
* Vi command mode and end-of-line; ZWC('\n') ?
@ 2015-08-23  1:19 Bart Schaefer
  2015-08-24  8:33 ` Peter Stephenson
  0 siblings, 1 reply; 2+ messages in thread
From: Bart Schaefer @ 2015-08-23  1:19 UTC (permalink / raw)
  To: zsh-workers

That thread about end-of-line not working as a "bindkey -a" widget annoys
me for some reason.  I started looking through zle_move.c and discovered
that in a few places we compare

	zleline[zlecs] == ZWC('\n')

but in more places we simply do

	zleline[pos] == '\n'
	zleline[zlecs - 1] != '\n'

There's even one comment about the latter

	/* works OK with combining chars since '\n' must be on its own */

So which is it?  Should we be using ZWC() or not?

Meanwhile, any objection to this?

diff --git a/Src/Zle/zle_move.c b/Src/Zle/zle_move.c
index f49df86..155fda8 100644
--- a/Src/Zle/zle_move.c
+++ b/Src/Zle/zle_move.c
@@ -344,6 +344,8 @@ endofline(char **args)
 	    zlecs = zlell;
 	    return 0;
 	}
+	if ((zlecs += invicmdmode()) == zlell)
+	    break;
 	if (zleline[zlecs] == '\n')
 	    if (++zlecs == zlell)
 		return 0;
@@ -414,6 +416,8 @@ endoflinehist(char **args)
 	    zlecs = zlell;
 	    break;
 	}
+	if ((zlecs += invicmdmode()) == zlell)
+	    break;
 	if (zleline[zlecs] == '\n')
 	    if (++zlecs == zlell)
 		break;


^ permalink raw reply	[flat|nested] 2+ messages in thread

end of thread, other threads:[~2015-08-24  8:33 UTC | newest]

Thread overview: 2+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2015-08-23  1:19 Vi command mode and end-of-line; ZWC('\n') ? Bart Schaefer
2015-08-24  8:33 ` Peter Stephenson

Code repositories for project(s) associated with this public inbox

	https://git.vuxu.org/mirror/zsh/

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).