From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 1718 invoked by alias); 9 Oct 2017 09:51:03 -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: 41836 Received: (qmail 12114 invoked by uid 1010); 9 Oct 2017 09:51:03 -0000 X-Qmail-Scanner-Diagnostics: from mailout1.w1.samsung.com by f.primenet.com.au (envelope-from , uid 7791) with qmail-scanner-2.11 (clamdscan: 0.99.2/21882. spamassassin: 3.4.1. Clear:RC:0(210.118.77.11):SA:0(-6.9/5.0):. Processed in 3.488966 secs); 09 Oct 2017 09:51:03 -0000 X-Spam-Checker-Version: SpamAssassin 3.4.1 (2015-04-28) on f.primenet.com.au X-Spam-Level: X-Spam-Status: No, score=-6.9 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_HI, RCVD_IN_MSPIKE_H3,RCVD_IN_MSPIKE_WL,RP_MATCHES_RCVD,SPF_HELO_PASS,SPF_PASS autolearn=ham autolearn_force=no version=3.4.1 X-Envelope-From: p.stephenson@samsung.com X-Qmail-Scanner-Mime-Attachments: | X-Qmail-Scanner-Zip-Files: | X-AuditID: cbfec7f5-f79d06d0000031c7-22-59db467da840 Date: Mon, 09 Oct 2017 10:50:49 +0100 From: Peter Stephenson To: Zsh workers Subject: Re: PATCH: handle multibyte chars in compset -p/-s Message-id: <20171009105049.33588962@pwslap01u.europe.root.pri> In-reply-to: <17691.1507542140@thecus.kiddle.eu> 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+NgFnrLIsWRmVeSWpSXmKPExsWy7djPc7q1brcjDaa85rU42PyQyYHRY9XB D0wBjFFcNimpOZllqUX6dglcGQeWz2YseMtR0XzxOGMD4wT2LkZODgkBE4nejQeZIGwxiQv3 1rN1MXJxCAksZZSYMeUEK4TTyyRxuGMzSxcjB1hHzx0eiPgyRonFb7exQzjTmCQmvmplhnBO M0r0nNwDNesMo8T6KVvAFrIIqErM+DaJBcRmEzCUmLppNiOILQIUn3PiFCuILSxgLXHh6yWw el4Be4mvZ3+ygdicAgYSt592g9XzC+hLXP37Cepwe4mZV84wQtQLSvyYfA9sPrOAjsS2bY/Z IWx5ic1r3oJdJyGwhE1ix9GLjBD/uEhcWsULMUdY4tXxLdCAkZG4PLmbBcLuZ5R40u0L0TuD UeL0mR1sEAlrib7bFxkhFvBJTNo2nRliJq9ER5sQRImHxPVzB6DudJQ4deM3WLmQwEpGia1T mCYwKsxCcvYsJGfPQnL2AkbmVYwiqaXFuempxaZ6xYm5xaV56XrJ+bmbGIGJ4PS/4193MC49 ZnWIUYCDUYmH98aMW5FCrIllxZW5hxglOJiVRHiXmd+OFOJNSaysSi3Kjy8qzUktPsQozcGi JM5rG9UWKSSQnliSmp2aWpBaBJNl4uCUamCUkfls2XUhwjovuGXZq/g7GznswysN0/+71v74 xBCceqFhvnLtwr86h+aoSFedMDmSslzAQCyz7JnZd7nVjotfCnsdUuSNMJ51kVWk7sT3El/1 rqjzcdl1a5ZJvGXq7OesWr+B/9Y3geylTM/UPHZ4r/0cPNmZU8+N9cw7swVianYLllof0lJi Kc5INNRiLipOBAAvxdyQAAMAAA== X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFjrPLMWRmVeSWpSXmKPExsVy+t/xa7o1brcjDa5PVrU42PyQyYHRY9XB D0wBjFFcNimpOZllqUX6dglcGQeWz2YseMtR0XzxOGMD4wT2LkYODgkBE4meOzxdjJxAppjE hXvr2boYuTiEBJYwSrzcupkZwpnBJPHh9Ao2kCohgdOMEht7FCESZxgljpxeyQiSYBFQlZjx bRILiM0mYCgxddNssLgIUHzOiVOsILawgLXEha+X2EFsXgF7ia9nf4IN5RQwkLj9tJsRYuhK Romj65eBJfgF9CWu/v3EBHGfvcTMK2cYIZoFJX5Mvge2jFlAS2LztiZWCFteYvOat8wQl6pL 3Li7m30Co/AsJC2zkLTMQtKygJF5FaNIamlxbnpusZFecWJucWleul5yfu4mRmAwbzv2c8sO xq53wYcYBTgYlXh4G6bdihRiTSwrrsw9xCjBwawkwrvM/HakEG9KYmVValF+fFFpTmrxIUZp DhYlcd7ePasjhQTSE0tSs1NTC1KLYLJMHJxSDYzLEme7/rQx9dN7ITHpqeq7VYJbXLIPl7zt Lo35eTrj96OLC8/aLM1nKDiicezy47qSSy/S5vTONSy7qlv5OkxOoVmec92nm6wrnV69aQnf esXEJ+GAb0vIKv9FDe9/CX3NFhX01s+1ZuHzkS47FvvIdP+VrQp33/TULdqtZOBrvU9J8cbv dh0lluKMREMt5qLiRAD53mHRYgIAAA== X-CMS-MailID: 20171009095052eucas1p136eb6a231d13b6f78b6994fd66aa0106 X-Msg-Generator: CA X-Sender-IP: 182.198.249.180 X-Local-Sender: =?UTF-8?B?UGV0ZXIgU3RlcGhlbnNvbhtTQ1NDLURhdGEgUGxhbmUb?= =?UTF-8?B?7IK87ISx7KCE7J6QG1ByaW5jaXBhbCBFbmdpbmVlciwgU29mdHdhcmU=?= X-Global-Sender: =?UTF-8?B?UGV0ZXIgU3RlcGhlbnNvbhtTQ1NDLURhdGEgUGxhbmUbU2Ft?= =?UTF-8?B?c3VuZyBFbGVjdHJvbmljcxtQcmluY2lwYWwgRW5naW5lZXIsIFNvZnR3YXJl?= X-Sender-Code: =?UTF-8?B?QzEwG0VIURtDMTBDRDA1Q0QwNTAwNTg=?= CMS-TYPE: 201P X-CMS-RootMailID: 20171009094333epcas2p2f202b95145a911078618b20c9cdba001 X-RootMTR: 20171009094333epcas2p2f202b95145a911078618b20c9cdba001 References: <22320.1507334630@thecus.kiddle.eu> <17691.1507542140@thecus.kiddle.eu> On Mon, 09 Oct 2017 11:42:20 +0200 Oliver Kiddle wrote: > On 7 Oct, I wrote: > > Incidentally, while pondering such a solution, I noticed that > > compset -p is removing bytes rather than characters to IPREFIX which > > would have been useful in this case but should be corrected. > > Having further checked uses of compset -p, I'm satisfied that compset -p > and -s should be handling multibyte characters so this is a patch to do > that. Is mb_metacharlenconv and backwardmetafiedchar as used here the > best way to do that? Probably --- it certainly doesn't look any more clumsy than the rest of the multibyte handling. Going backwards is a pain so closing your eyes and calling the function is probably correct, and going forward that family of function calls are much more efficient. (BTW the real horror for multibyte characters in completion is matching control --- it's tied to single-character array handling and at a point where conversion from and to wide characters isn't particularly convenient. I gave up on this after looking for some weeks about a decade ago.) pws