From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 22275 invoked by alias); 24 Aug 2015 08:33:35 -0000 Mailing-List: contact zsh-workers-help@zsh.org; run by ezmlm Precedence: bulk X-No-Archive: yes List-Id: Zsh Workers List List-Post: List-Help: X-Seq: 36278 Received: (qmail 8191 invoked from network); 24 Aug 2015 08:33:33 -0000 X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on f.primenet.com.au X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham autolearn_force=no version=3.4.0 X-AuditID: cbfec7f4-f79c56d0000012ee-9c-55dad6d6f70b Date: Mon, 24 Aug 2015 09:33:27 +0100 From: Peter Stephenson To: zsh-workers@zsh.org Subject: Re: Vi command mode and end-of-line; ZWC('\n') ? Message-id: <20150824093327.6e6295eb@pwslap01u.europe.root.pri> In-reply-to: <150822181911.ZM31586@torch.brasslantern.com> References: <150822181911.ZM31586@torch.brasslantern.com> Organization: Samsung Cambridge Solution Centre X-Mailer: Claws Mail 3.7.9 (GTK+ 2.22.0; i386-redhat-linux-gnu) MIME-version: 1.0 Content-type: text/plain; charset=US-ASCII Content-transfer-encoding: 7bit X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFjrILMWRmVeSWpSXmKPExsVy+t/xK7rXrt0KNZj9SMTiYPNDJgdGj1UH PzAFMEZx2aSk5mSWpRbp2yVwZRw8dJWtYAZ7xYYTG5kaGM+wdjFyckgImEhsbnjKBmGLSVy4 tx7I5uIQEljKKHHvynVWCGcGk8Sij/0sEM42RonZB34BORwcLAKqEks+iIN0swkYSkzdNJsR xBYREJc4u/Y8C4gtLGApcbRhJitIOa+AvcSkycogYU4BK4mJS76DhYWASvZtZwIJ8wvoS1z9 +4kJ4h57iZlXzoBN5BUQlPgx+R7YRGYBLYnN25pYIWx5ic1r3jKD2EIC6hI37u5mn8AoNAtJ yywkLbOQtCxgZF7FKJpamlxQnJSea6hXnJhbXJqXrpecn7uJERKwX3YwLj5mdYhRgINRiYeX wfJWqBBrYllxZe4hRgkOZiURXqWXN0OFeFMSK6tSi/Lji0pzUosPMUpzsCiJ887d9T5ESCA9 sSQ1OzW1ILUIJsvEwSnVwNhc/yKbP2FpS9aVWX1p4Z8Md+1cc+F50zEBbecyp3NBdlqhNxL2 2bXv6WIO0uIrS9e5tC56wXzG7L7QGSyfo7NT392xXBcmLLLRYVZw1RwWvwpVp9X8Mczxakt2 5cvea9dxt9xu2dt4WzaoxWCZ9S/9O8yTXSqc/rtLH+pmf7Eocbc664y7SizFGYmGWsxFxYkA Xp4+D1QCAAA= On Sat, 22 Aug 2015 18:19:11 -0700 Bart Schaefer wrote: > 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? ZWC is basically a glorified standards-compliant cast --- '\n' is a char while zleline takes wchar_t. So the sole effect is to ensure we assign a wide character. So ideally we should be using it everywhere for consistency; however, I can't think of a practical effect for a 7-bit ASCII character on a modern system. pws