From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.org!not-for-mail From: PJ Weisberg Newsgroups: gmane.emacs.devel Subject: Re: Free cursor positioning. Date: Sun, 21 Aug 2011 16:16:06 -0700 Message-ID: References: <201108052115.19994.vvmarko@gmail.com> NNTP-Posting-Host: lo.gmane.org Mime-Version: 1.0 Content-Type: multipart/mixed; boundary=00151747bd56ab42ee04ab0c2554 X-Trace: dough.gmane.org 1313968584 5775 80.91.229.12 (21 Aug 2011 23:16:24 GMT) X-Complaints-To: usenet@dough.gmane.org NNTP-Posting-Date: Sun, 21 Aug 2011 23:16:24 +0000 (UTC) Cc: Emacs-Devel devel To: Stefan Monnier Original-X-From: emacs-devel-bounces+ged-emacs-devel=m.gmane.org@gnu.org Mon Aug 22 01:16:20 2011 Return-path: Envelope-to: ged-emacs-devel@m.gmane.org Original-Received: from lists.gnu.org ([140.186.70.17]) by lo.gmane.org with esmtp (Exim 4.69) (envelope-from ) id 1QvHFc-0005pO-4b for ged-emacs-devel@m.gmane.org; Mon, 22 Aug 2011 01:16:20 +0200 Original-Received: from localhost ([::1]:43160 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1QvHFb-0001Wg-71 for ged-emacs-devel@m.gmane.org; Sun, 21 Aug 2011 19:16:19 -0400 Original-Received: from eggs.gnu.org ([140.186.70.92]:59616) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1QvHFX-0001WQ-ED for emacs-devel@gnu.org; Sun, 21 Aug 2011 19:16:16 -0400 Original-Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1QvHFV-0006de-TO for emacs-devel@gnu.org; Sun, 21 Aug 2011 19:16:15 -0400 Original-Received: from smtpauth19.prod.mesa1.secureserver.net ([64.202.165.30]:52912) by eggs.gnu.org with smtp (Exim 4.71) (envelope-from ) id 1QvHFV-0006dW-Ew for emacs-devel@gnu.org; Sun, 21 Aug 2011 19:16:13 -0400 Original-Received: (qmail 2135 invoked from network); 21 Aug 2011 23:16:10 -0000 Original-Received: from unknown (209.85.161.41) by smtpauth19.prod.mesa1.secureserver.net (64.202.165.30) with ESMTP; 21 Aug 2011 23:16:09 -0000 Original-Received: by fxg9 with SMTP id 9so3665212fxg.0 for ; Sun, 21 Aug 2011 16:16:06 -0700 (PDT) Original-Received: by 10.223.76.202 with SMTP id d10mr2657604fak.106.1313968566780; Sun, 21 Aug 2011 16:16:06 -0700 (PDT) Original-Received: by 10.223.89.133 with HTTP; Sun, 21 Aug 2011 16:16:06 -0700 (PDT) In-Reply-To: X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.4-2.6 X-Received-From: 64.202.165.30 X-BeenThere: emacs-devel@gnu.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: "Emacs development discussions." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: emacs-devel-bounces+ged-emacs-devel=m.gmane.org@gnu.org Original-Sender: emacs-devel-bounces+ged-emacs-devel=m.gmane.org@gnu.org Xref: news.gmane.org gmane.emacs.devel:143485 Archived-At: --00151747bd56ab42ee04ab0c2554 Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: quoted-printable On Fri, Aug 12, 2011 at 7:27 AM, Stefan Monnier wrote: >> IMO, this is something that would make sense as a built-in minor mode, >> something like this. =A0(Excuse the Git patch format; I've never gotten >> around to learning Bazaar.) > > The code looks fine to me. > > If you package it as a separate file, we could install it in the GNU > ELPA (we could also install it as a patch to picture.el, but since > Emacs-24.1 is in feature freeze, this would have to wait for > Emacs-24.2). > > > =A0 =A0 =A0 =A0Stefan > > > PS: You'd also have to sign some copyright paperwork, of course. I emailed assign@gnu.org a week ago. Are they supposed to reply with an acknowledgement that they're sending the papers, or do I just watch my postal mail and wait? I attached the file that would go in Gnu ELPA. This seems like something someone would want to enable globally, so I included a `define-global-minor-mode'. Problems come up, though, when the picture-move-* commands try to insert spaces in read only text, and they don't work well with fields like those in Customize buffers. One thing I could do is make quarter-plane-move-* commands that call either the picture commands or the normal movement commands depending on whether the buffer is read-only, or something similar to handle when only parts of the buffer are read-only. picture-move-down still wouldn't move past a field in the Customize buffer, though. It looks like the problem is that if point is on the same line as a field, but in the text before the start of the field, `end-of-line' takes point to the beginning of the field instead of the end of the line. `picture-newline' then incorrectly assumes that `forward-char' will take it to the next line. Any ideas on how I could get it to work properly as a global minor mode? --00151747bd56ab42ee04ab0c2554 Content-Type: text/x-emacs-lisp; charset=US-ASCII; name="quarter-plane.el" Content-Disposition: attachment; filename="quarter-plane.el" Content-Transfer-Encoding: base64 X-Attachment-Id: f_grml6wl80 Ozs7IHF1YXJ0ZXItcGxhbmUuZWwgLS0tIGVkaXRpbmcgdXNpbmcgcXVhcnRlci1wbGFuZSBzY3Jl ZW4gbW9kZWwKCjs7IENvcHlyaWdodCAoQykgMjAxMSBQZXRlciBKLiBXZWlzYmVyZwoKOzsgQXV0 aG9yOiBQZXRlciBKLiBXZWlzYmVyZwo7OyBWZXJzaW9uOiAwLjEKOzsgS2V5d29yZHM6IGNvbnZl bmllbmNlIHdwCgo7OyBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRp c3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQo7OyBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdO VSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieQo7OyB0aGUgRnJlZSBTb2Z0 d2FyZSBGb3VuZGF0aW9uLCBlaXRoZXIgdmVyc2lvbiAzIG9mIHRoZSBMaWNlbnNlLCBvcgo7OyAo YXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgoKOzsgVGhpcyBwcm9ncmFtIGlzIGRp c3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCjs7IGJ1dCBXSVRI T1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCjs7 IE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNl ZSB0aGUKOzsgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KCjs7 IFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1Ymxp YyBMaWNlbnNlCjs7IGFsb25nIHdpdGggdGhpcyBwcm9ncmFtLiAgSWYgbm90LCBzZWUgPGh0dHA6 Ly93d3cuZ251Lm9yZy9saWNlbnNlcy8+LgoKOzs7IENvbW1lbnRhcnk6Cgo7OyBUaGlzIGNvZGUg cHJvdmlkZXMgYSBtaW5vciBtb2RlIHRvIGVuYWJsZSB0aGUgc29tZSBvZiBwaWN0dXJlLW1vZGUK OzsgY29tbWFuZHMgZG9jdW1lbnRlZCBpbiB0aGUgRW1hY3MgbWFudWFsIGluIG9yZGVyIHRvIHRy ZWF0IHRoZQo7OyBzY3JlZW4gYXMgYSBzZW1pLWluZmluaXRlIHF1YXJ0ZXItcGxhbmUsIHdpdGhv dXQgY2hhbmdpbmcgdGhlCjs7IGJ1ZmZlcidzIG1ham9yIG1vZGUuCgo7OyBLbm93biBpc3N1ZXM6 Cgo7OyBRdWFydGVyLVBsYW5lIG1vZGUgZG9lc24ndCB3b3JrIGluIHJlYWQtb25seSBidWZmZXJz LCB3aGVyZSBpdAo7OyBjYW4ndCBpbnNlcnQgc3BhY2VzLgoKOzsgVGhlIHVzZXIgZG9lc24ndCBy ZWFsbHkgY2FyZSBhYm91dCB0aGUgIm1vZGlmaWNhdGlvbnMiIG9mIGFkZGluZwo7OyB3aGl0ZXNw YWNlIHRoYXQncyBnb2luZyB0byBiZSB0cmltbWVkIHdoZW4gaGUgZXhpdHMgcXVhcnRlci1wbGFu ZQo7OyBtb2RlIG9yIHNhdmVzLCBidXQgaXQncyBzdGlsbCBwYXJ0IG9mIHRoZSB1bmRvIGhpc3Rv cnkuCgo7OyBCb3RoIG9mIHRoZXNlIGFyZSBkdWUgdG8gdGhlIGRpc2Nvbm5lY3QgYmV0d2VlbiB3 aGF0IHRoZSB1c2VyCjs7IHJlYWxseSB3YW50cy0tbW92ZW1lbnQgb2YgdGhlIGN1cnNvciB3aXRo aW4gdGhlIHdpbmRvdywgcmVnYXJkbGVzcwo7OyBvZiB3aGVyZSB0aGUgdGV4dCBpcy0tYW5kIHdo YXQgdGhlIG1vZGUgY2FuIGFjdHVhbGx5IGRvLS1hZGQgZHVtbXkKOzsgdGV4dCB0byBnaXZlIHRo ZSBjdXJzb3IgYSBwbGFjZSB0byBtb3ZlIHRvLgoKOzs7IENvZGU6CgoocmVxdWlyZSAncGljdHVy ZSkKCihkZWZ2YXIgcXVhcnRlci1wbGFuZS1tb2RlLW1hcAogIChsZXQgKChtYXAgKG1ha2Utc3Bh cnNlLWtleW1hcCkpKQogICAgKGRlZmluZS1rZXkgbWFwIFtyZW1hcCByaWdodC1jaGFyXSAncGlj dHVyZS1mb3J3YXJkLWNvbHVtbikKICAgIChkZWZpbmUta2V5IG1hcCBbcmVtYXAgZm9yd2FyZC1j aGFyXSAncGljdHVyZS1mb3J3YXJkLWNvbHVtbikKICAgIChkZWZpbmUta2V5IG1hcCBbcmVtYXAg cHJldmlvdXMtbGluZV0gJ3BpY3R1cmUtbW92ZS11cCkKICAgIChkZWZpbmUta2V5IG1hcCBbcmVt YXAgbmV4dC1saW5lXSAncGljdHVyZS1tb3ZlLWRvd24pCiAgICAoZGVmaW5lLWtleSBtYXAgW3Jl bWFwIG1vdXNlLXNldC1wb2ludF0gJ3BpY3R1cmUtbW91c2Utc2V0LXBvaW50KQogICAgbWFwKSkK Cjs7OyMjI2F1dG9sb2FkCihkZWZpbmUtbWlub3ItbW9kZSBxdWFydGVyLXBsYW5lLW1vZGUKICAi VG9nZ2xlIFF1YXJ0ZXItUGxhbmUgbW9kZSBvbiBvciBvZmYuCkludGVyYWN0aXZlbHksIHdpdGgg bm8gcHJlZml4IGFyZ3VtZW50LCB0b2dnbGUgdGhlIG1vZGUuCldpdGggdW5pdmVyc2FsIHByZWZp eCBBUkcgdHVybiBtb2RlIG9uLgpXaXRoIHplcm8gb3IgbmVnYXRpdmUgQVJHIHR1cm4gbW9kZSBv ZmYuCgpVc2UgcG9pbnQgbW92ZW1lbnQgY29tbWFuZHMgdGhhdCBhY3QgYXMgaWYgdGhlIHRleHQg ZXh0ZW5kZWQKaW5maW5pdGVseSBkb3duIGFuZCB0byB0aGUgcmlnaHQsIGluc2VydGluZyBzcGFj ZXMgYXMgbmVjZXNzYXJ5LgpFeGNlc3Mgd2hpdGVzcGFjZSBpcyB0cmltbWVkIHdoZW4gc2F2aW5n IG9yIGV4aXRpbmcgUXVhcnRlci1QbGFuZSBtb2RlLgoKQmVjYXVzZSBpdCB3b3JrcyBieSBpbnNl cnRpbmcgc3BhY2VzLCBRdWFydGVyLVBsYW5lIG1vZGUgd29uJ3Qgd29yayBpbgpyZWFkLW9ubHkg YnVmZmVycwoKXFx7cXVhcnRlci1wbGFuZS1tb2RlLW1hcH0iCiAgOmxpZ2h0ZXIgIiBQbGFuZSIK ICA6Z3JvdXAgJ3BpY3R1cmUKICA6a2V5bWFwIHF1YXJ0ZXItcGxhbmUtbW9kZS1tYXAKICAoaWYg cXVhcnRlci1wbGFuZS1tb2RlCiAgICAgIChhZGQtaG9vayAnYmVmb3JlLXNhdmUtaG9vayAncXVh cnRlci1wbGFuZS1kZWxldGUtd2hpdGVzcGFjZSBuaWwgdCkKICAgIChyZW1vdmUtaG9vayAnYmVm b3JlLXNhdmUtaG9vayAncXVhcnRlci1wbGFuZS1kZWxldGUtd2hpdGVzcGFjZSB0KSkpCgo7Ozsj IyNhdXRvbG9hZAooZGVmdW4gdHVybi1vbi1xdWFydGVyLXBsYW5lLW1vZGUgKCkKICAiVHVybiBv biBgcXVhcnRlci1wbGFuZS1tb2RlJy4iCiAgKHF1YXJ0ZXItcGxhbmUtbW9kZSAxKSkKCjs7OyMj I2F1dG9sb2FkCihkZWZpbmUtZ2xvYmFsLW1pbm9yLW1vZGUgZ2xvYmFsLXF1YXJ0ZXItcGxhbmUt bW9kZSBxdWFydGVyLXBsYW5lLW1vZGUKICB0dXJuLW9uLXF1YXJ0ZXItcGxhbmUtbW9kZQogIDpn cm91cCAncGljdHVyZSkKCihkZWZ1biBxdWFydGVyLXBsYW5lLWRlbGV0ZS13aGl0ZXNwYWNlICgp CiAgIkNhbGwgYGRlbGV0ZS10cmFpbGluZy13aGl0ZXNwYWNlJyBpZiB0aGUgYnVmZmVyIGlzIG5v dCByZWFkLW9ubHkuIgogIChpZiAobm90IGJ1ZmZlci1yZWFkLW9ubHkpCiAgICAgIChkZWxldGUt dHJhaWxpbmctd2hpdGVzcGFjZSkpKQoKKGFkZC1ob29rICdxdWFydGVyLXBsYW5lLW1vZGUtb2Zm LWhvb2sgJ3F1YXJ0ZXItcGxhbmUtZGVsZXRlLXdoaXRlc3BhY2UpCgoocHJvdmlkZSAncXVhcnRl ci1wbGFuZSkKCjs7OyBxdWFydGVyLXBsYW5lLmVsIGVuZHMgaGVyZQo= --00151747bd56ab42ee04ab0c2554--