Zsh Mailing List Archive
Messages sorted by: Reverse Date, Date, Thread, Author

Vi command mode and end-of-line; ZWC('\n') ?



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;



Messages sorted by: Reverse Date, Date, Thread, Author