From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.org!not-for-mail From: "David De La Harpe Golden" Newsgroups: gmane.emacs.devel Subject: Re: Improving X selection? Date: Wed, 17 Oct 2007 00:29:02 +0100 Message-ID: <8e24944a0710161629r1ec1afadj60352dc92c264217@mail.gmail.com> References: NNTP-Posting-Host: lo.gmane.org Mime-Version: 1.0 Content-Type: multipart/mixed; boundary="----=_Part_5332_33510504.1192577342662" X-Trace: ger.gmane.org 1192577358 8574 80.91.229.12 (16 Oct 2007 23:29:18 GMT) X-Complaints-To: usenet@ger.gmane.org NNTP-Posting-Date: Tue, 16 Oct 2007 23:29:18 +0000 (UTC) To: emacs-devel@gnu.org Original-X-From: emacs-devel-bounces+ged-emacs-devel=m.gmane.org@gnu.org Wed Oct 17 01:29:18 2007 Return-path: Envelope-to: ged-emacs-devel@m.gmane.org Original-Received: from lists.gnu.org ([199.232.76.165]) by lo.gmane.org with esmtp (Exim 4.50) id 1Ihvqg-0005eM-6F for ged-emacs-devel@m.gmane.org; Wed, 17 Oct 2007 01:29:18 +0200 Original-Received: from localhost ([127.0.0.1] helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1IhvqY-0003fv-TI for ged-emacs-devel@m.gmane.org; Tue, 16 Oct 2007 19:29:10 -0400 Original-Received: from mailman by lists.gnu.org with tmda-scanned (Exim 4.43) id 1IhvqU-0003du-Sc for emacs-devel@gnu.org; Tue, 16 Oct 2007 19:29:07 -0400 Original-Received: from exim by lists.gnu.org with spam-scanned (Exim 4.43) id 1IhvqT-0003bZ-9H for emacs-devel@gnu.org; Tue, 16 Oct 2007 19:29:06 -0400 Original-Received: from [199.232.76.173] (helo=monty-python.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1IhvqS-0003bJ-W9 for emacs-devel@gnu.org; Tue, 16 Oct 2007 19:29:05 -0400 Original-Received: from el-out-1112.google.com ([209.85.162.179]) by monty-python.gnu.org with esmtp (Exim 4.60) (envelope-from ) id 1IhvqS-00027y-Kb for emacs-devel@gnu.org; Tue, 16 Oct 2007 19:29:04 -0400 Original-Received: by el-out-1112.google.com with SMTP id s27so524264ele for ; Tue, 16 Oct 2007 16:29:03 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=beta; h=domainkey-signature:received:received:message-id:date:from:to:subject:in-reply-to:mime-version:content-type:references; bh=79TA8pN4adjLBzAzkV0SgxLP81d8CkK5qywn8/Fq7p8=; b=QEh6yXdirqAjAylJHsEIqpzPw+kSDhVKY4Nx3l31JtCW6xrfIr30RrNltl5tqK9tQTuKckBzHh1q0tY6sQTjVBof4LPjgV+YWjaDA4K0zXe/1Bfhn+huUekESY5f8dFkvI5F08qtXkk2ztLG7UlU8RfZ20QFuCsw898xz3fnCA8= DomainKey-Signature: a=rsa-sha1; c=nofws; d=gmail.com; s=beta; h=received:message-id:date:from:to:subject:in-reply-to:mime-version:content-type:references; b=RK0Syr2fvIxk1j84YoWriuRuB43IvaKddfsE5epNDzIoLpZ46M6/9ABec5MTUPkOal+N+QjOf6ohvvrFHFABVgkXTcRRqOGzLdsPFrRmg9qKCNSv7B9f9s7S1HG6mlHZA4x+plkoNh3tc3HTupUOtz6zr1CXyGHKzxihrszzrlw= Original-Received: by 10.142.157.15 with SMTP id f15mr2373277wfe.1192577342661; Tue, 16 Oct 2007 16:29:02 -0700 (PDT) Original-Received: by 10.142.163.7 with HTTP; Tue, 16 Oct 2007 16:29:01 -0700 (PDT) In-Reply-To: X-detected-kernel: by monty-python.gnu.org: Linux 2.4-2.6 (Google crawlbot) X-BeenThere: emacs-devel@gnu.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "Emacs development discussions." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Original-Sender: emacs-devel-bounces+ged-emacs-devel=m.gmane.org@gnu.org Errors-To: emacs-devel-bounces+ged-emacs-devel=m.gmane.org@gnu.org Xref: news.gmane.org gmane.emacs.devel:81027 Archived-At: ------=_Part_5332_33510504.1192577342662 Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 7bit Content-Disposition: inline Hi, Attached please find a stab at adjusting emacs selection interactions to be comfy for naive users. Not saying it's the best way for experienced text-processing emacs X11 users, who might well _like_ the fact killing interacts with PRIMARY, but this is how I made emacs "feel" more like other apps, and interact particularly nicely (maybe) with freedesktop.org compliant ones. N.B. I can certainly see the attractions of having more complex/powerful/traditional mouse-highlight and PRIMARY/SECONDARY/CLIPBOARD and kill-ring interactions for more advanced users, this was just a stab at making things act like a naive user might expect, I just present it as one data point - an expanded and cleaned up X11 selections handling system might want to permit something like this as one possible configuration in its configuration space. Explanation: 0. Transient mark mode => t . Of course. 1. mouse-drag-copy-region => nil. You can set this to nil to prevent the mouse highlight operation insta-copying the region to the kill ring. To get to the kill ring with the mouse, you have to highlight with the mouse (setting mark and point and making region active), then press C-w/M-w to kill. This obviously makes kill ring interaction "feel" more like a usual clipboard within emacs, and does away with an (imo confusing) difference between keyboard highlighting and mouse highlighting. 2. However, killing still interacts with PRIMARY unless you nullify interprogram-cut-function and interprogram-paste-function like mouse-sel mode does, or better, adjust the functions to go to CLIPBOARD rather than PRIMARY. So let's do the latter. By analogy with x-select-enable-clipboard, introduce x-select-enable-primary to x-select-text and x-cut-buffer-or-selection-value. When x-select-enable-primary is nil and x-select-enable-clipboard is t, then C-w/M-w go to CLIPBOARD, C-y only pulls from CLIPBOARD (yeah, I'm ignoring cut buffers here). Richard has just said he _likes_ C-y pulling in primary, but anyway, I think it should pull in CLIPBOARD and only clipboard, so adjust too - the option is there, by enabling x-select-enable-primary, to allow pulling from PRIMARY. (Next thought: should the customs be split into incoming and outgoing? :-) ) (BTW, x-select-text has the comment "gildea@stop.mail-abuse.org says it's not desirable to put kills in the clipboard." Well. Um.) 3. But now, the mouse highlighted region is not propagated to PRIMARY, as propagation to selection is currently done by copy-region-to-kill-ring which calls interprogram-cut-function, and if mouse-drag-copy-region is nil, that isn't called. So, to get other-X11-app-like freedesktop.org-like behaviour, you really need to hook, so that when the mark is active, region becomes PRIMARY (whether form the keyboard or from the mouse - Observe what e.g. oowriter or firefox does with keyboard-highlighted (usual shortuct: shift+arrow-keys) regions - they set PRIMARY, just like when you highlight with the mouse in them. Easy enough with a hook calling x-set-selection with activate-mark-hook (which is also called when the region changes shape). 4. But then, what about middle-button yanking? What should that do? Just insert PRIMARY if it exists, IMHO. Not that since PRIMARY is being set by the hook in 3, this also works merrily for emacs-to-emacs mouseing. ------=_Part_5332_33510504.1192577342662 Content-Type: text/x-emacs-lisp; name="dgxselect.el" Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="dgxselect.el"; filename="dgxselect.el"; filename="dgxselect.el" X-Attachment-Id: f_f7v1mavc OyBGSVhNRTogRG8gYXMgYSBtaW5vciBtb2RlIGxpa2UgbW91c2Utc2VsIC8gbW91c2UtY29weSAv IG1vdXNlLWRyYWcgPz8/Cgo7IDAKCihzZXRxIHRyYW5zaWVudC1tYXJrLW1vZGUgdCkKCjsgMQoK KHNldHEgbW91c2UtZHJhZy1jb3B5LXJlZ2lvbiBuaWwpCgo7MiAKCjs7OyBMaWtlIHgtc2VsZWN0 LWVuYWJsZS1jbGlwYm9hcmQKCihkZWZjdXN0b20geC1zZWxlY3QtZW5hYmxlLXByaW1hcnkgdAog ICJOb24tbmlsIG1lYW5zIGN1dHRpbmcgYW5kIHBhc3RpbmcgdXNlcyB0aGUgcHJpbWFyeSBzZWxl Y3Rpb24uIgogIDp0eXBlICdib29sZWFuCiAgOmdyb3VwICdraWxsaW5nKQoKKHNldHEgeC1zZWxl Y3QtZW5hYmxlLWNsaXBib2FyZCB0KQoKKHNldHEgeC1zZWxlY3QtZW5hYmxlLXByaW1hcnkgbmls KQoKCjs7OyBtb2RpZmllZCBmcm9tIHRlcm0veC13aW4uZWwKOzs7IGN1dCBhbmQgcGFzdGVkLCBj aGFuZ2UgaXMgYmFzaWNhbGx5IGp1c3QgYW4gZXh0cmEgKHdoZW4uLi4KCihkZWZ1biB4LXNlbGVj dC10ZXh0KiAodGV4dCAmb3B0aW9uYWwgcHVzaCkKICAiTWFrZSBURVhULCBhIHN0cmluZywgdGhl IHByaW1hcnkgb3IgY2xpcGJvYXJkIG9yIGJvdGggWCBzZWxlY3Rpb24sCmRlcGVuZGluZyBvbiB2 YWx1ZSBvZiB4LXNlbGVjdC1lbmFibGUtY2xpcGJvYXJkIGFuZCB4LXNlbGVjdC1lbmFibGUtcHJp bWFyeQpBbHNvLCBzZXQgdGhlIHZhbHVlIG9mIFggY3V0IGJ1ZmZlciAwLCBmb3IgYmFja3dhcmQg Y29tcGF0aWJpbGl0eQp3aXRoIG9sZGVyIFggYXBwbGljYXRpb25zLiIKICA7OyBEb24ndCBzZW5k IHRoZSBjdXQgYnVmZmVyIHRvbyBtdWNoIHRleHQuCiAgOzsgSXQgYmVjb21lcyBzbG93LCBhbmQg aWYgcmVhbGx5IGJpZyBpdCBjYXVzZXMgZXJyb3JzLgogIChjb25kICgoPj0gKGxlbmd0aCB0ZXh0 KSB4LWN1dC1idWZmZXItbWF4KQoJICh4LXNldC1jdXQtYnVmZmVyICIiIHB1c2gpCgkgKHNldHEg eC1sYXN0LXNlbGVjdGVkLXRleHQtY3V0ICIiCgkgICAgICAgeC1sYXN0LXNlbGVjdGVkLXRleHQt Y3V0LWVuY29kZWQgIiIpKQoJKHQKCSAoc2V0cSB4LWxhc3Qtc2VsZWN0ZWQtdGV4dC1jdXQgdGV4 dAoJICAgICAgIHgtbGFzdC1jdXQtYnVmZmVyLWNvZGluZyAnaXNvLWxhdGluLTEKCSAgICAgICB4 LWxhc3Qtc2VsZWN0ZWQtdGV4dC1jdXQtZW5jb2RlZAoJICAgICAgIDs7IElDQ0NNIHNheXMgY3V0 IGJ1ZmZlciBhbHdheXMgY29udGFpbiBJU08tTGF0aW4tMQoJICAgICAgIChlbmNvZGUtY29kaW5n LXN0cmluZyB0ZXh0ICdpc28tbGF0aW4tMSkpCgkgKHgtc2V0LWN1dC1idWZmZXIgeC1sYXN0LXNl bGVjdGVkLXRleHQtY3V0LWVuY29kZWQgcHVzaCkpKQogICh3aGVuIHgtc2VsZWN0LWVuYWJsZS1w cmltYXJ5CiAgICAoeC1zZXQtc2VsZWN0aW9uICdQUklNQVJZIHRleHQpCiAgICAoc2V0cSB4LWxh c3Qtc2VsZWN0ZWQtdGV4dC1wcmltYXJ5IHRleHQpKQogICh3aGVuIHgtc2VsZWN0LWVuYWJsZS1j bGlwYm9hcmQKICAgICh4LXNldC1zZWxlY3Rpb24gJ0NMSVBCT0FSRCB0ZXh0KQogICAgKHNldHEg eC1sYXN0LXNlbGVjdGVkLXRleHQtY2xpcGJvYXJkIHRleHQpKQogICkKCgo7OzsgbW9kaWZpZWQg ZnJvbSB0ZXJtL3gtd2luLmVsCjs7OyBjdXQgYW5kIHBhc3RlZCwgY2hhbmdlIGlzIGJhc2ljYWxs eSBqdXN0IGFuIGV4dHJhICh3aGVuIC4uLgoKOzsgUmV0dXJuIGEgdmFsdWUgb2Ygb25lIG9mIHRo ZSBjdXJyZW50IFggc2VsZWN0aW9ucy4KOzsgQ29uc3VsdCB0aGUgc2VsZWN0aW9ucywgYW5kIHRo ZSBjdXQgYnVmZmVyLiAgVHJlYXQgZW1wdHkgc3RyaW5ncwo7OyBhcyBpZiB0aGV5IHdlcmUgdW5z ZXQuCjs7IElmIHRoaXMgZnVuY3Rpb24gaXMgY2FsbGVkIHR3aWNlIGFuZCBmaW5kcyB0aGUgc2Ft ZSB0ZXh0LAo7OyBpdCByZXR1cm5zIG5pbCB0aGUgc2Vjb25kIHRpbWUuICBUaGlzIGlzIHNvIHRo YXQgYSBzaW5nbGUKOzsgc2VsZWN0aW9uIHdvbid0IGJlIGFkZGVkIHRvIHRoZSBraWxsIHJpbmcg b3ZlciBhbmQgb3Zlci4KKGRlZnVuIHgtY3V0LWJ1ZmZlci1vci1zZWxlY3Rpb24tdmFsdWUqICgp CiAgKGxldCAoY2xpcC10ZXh0IHByaW1hcnktdGV4dCBjdXQtdGV4dCkKICAgICh3aGVuIHgtc2Vs ZWN0LWVuYWJsZS1jbGlwYm9hcmQKICAgICAgKHNldHEgY2xpcC10ZXh0ICh4LXNlbGVjdGlvbi12 YWx1ZSAnQ0xJUEJPQVJEKSkKICAgICAgKGlmIChzdHJpbmc9IGNsaXAtdGV4dCAiIikgKHNldHEg Y2xpcC10ZXh0IG5pbCkpCgogICAgICA7OyBDaGVjayB0aGUgQ0xJUEJPQVJEIHNlbGVjdGlvbiBm b3IgJ25ld25lc3MnLCBpcyBpdCBkaWZmZXJlbnQKICAgICAgOzsgZnJvbSB3aGF0IHdlIHJlbWVi ZXJlZCB0aGVtIHRvIGJlIGxhc3QgdGltZSB3ZSBkaWQgYQogICAgICA7OyBjdXQvcGFzdGUgb3Bl cmF0aW9uLgogICAgICAoc2V0cSBjbGlwLXRleHQKCSAgICAoY29uZDs7IGNoZWNrIGNsaXBib2Fy ZAoJICAgICAoKG9yIChub3QgY2xpcC10ZXh0KSAoc3RyaW5nPSBjbGlwLXRleHQgIiIpKQoJICAg ICAgKHNldHEgeC1sYXN0LXNlbGVjdGVkLXRleHQtY2xpcGJvYXJkIG5pbCkpCgkgICAgICgoZXEg ICAgICBjbGlwLXRleHQgeC1sYXN0LXNlbGVjdGVkLXRleHQtY2xpcGJvYXJkKSBuaWwpCgkgICAg ICgoc3RyaW5nPSBjbGlwLXRleHQgeC1sYXN0LXNlbGVjdGVkLXRleHQtY2xpcGJvYXJkKQoJICAg ICAgOzsgUmVjb3JkIHRoZSBuZXdlciBzdHJpbmcsCgkgICAgICA7OyBzbyBzdWJzZXF1ZW50IGNh bGxzIGNhbiB1c2UgdGhlIGBlcScgdGVzdC4KCSAgICAgIChzZXRxIHgtbGFzdC1zZWxlY3RlZC10 ZXh0LWNsaXBib2FyZCBjbGlwLXRleHQpCgkgICAgICBuaWwpCgkgICAgICh0CgkgICAgICAoc2V0 cSB4LWxhc3Qtc2VsZWN0ZWQtdGV4dC1jbGlwYm9hcmQgY2xpcC10ZXh0KSkpKQogICAgICApCiAg ICAod2hlbiB4LXNlbGVjdC1lbmFibGUtcHJpbWFyeQogICAgICAoc2V0cSBwcmltYXJ5LXRleHQg KHgtc2VsZWN0aW9uLXZhbHVlICdQUklNQVJZKSkKICAgICAgOzsgQ2hlY2sgdGhlIFBSSU1BUlkg c2VsZWN0aW9uIGZvciAnbmV3bmVzcycsIGlzIGl0IGRpZmZlcmVudAogICAgICA7OyBmcm9tIHdo YXQgd2UgcmVtZWJlcmVkIHRoZW0gdG8gYmUgbGFzdCB0aW1lIHdlIGRpZCBhCiAgICAgIDs7IGN1 dC9wYXN0ZSBvcGVyYXRpb24uCiAgICAgIChzZXRxIHByaW1hcnktdGV4dAoJICAgIChjb25kOzsg Y2hlY2sgcHJpbWFyeSBzZWxlY3Rpb24KCSAgICAgKChvciAobm90IHByaW1hcnktdGV4dCkgKHN0 cmluZz0gcHJpbWFyeS10ZXh0ICIiKSkKCSAgICAgIChzZXRxIHgtbGFzdC1zZWxlY3RlZC10ZXh0 LXByaW1hcnkgbmlsKSkKCSAgICAgKChlcSAgICAgIHByaW1hcnktdGV4dCB4LWxhc3Qtc2VsZWN0 ZWQtdGV4dC1wcmltYXJ5KSBuaWwpCgkgICAgICgoc3RyaW5nPSBwcmltYXJ5LXRleHQgeC1sYXN0 LXNlbGVjdGVkLXRleHQtcHJpbWFyeSkKCSAgICAgIDs7IFJlY29yZCB0aGUgbmV3ZXIgc3RyaW5n LAoJICAgICAgOzsgc28gc3Vic2VxdWVudCBjYWxscyBjYW4gdXNlIHRoZSBgZXEnIHRlc3QuCgkg ICAgICAoc2V0cSB4LWxhc3Qtc2VsZWN0ZWQtdGV4dC1wcmltYXJ5IHByaW1hcnktdGV4dCkKCSAg ICAgIG5pbCkKCSAgICAgKHQKCSAgICAgIChzZXRxIHgtbGFzdC1zZWxlY3RlZC10ZXh0LXByaW1h cnkgcHJpbWFyeS10ZXh0KSkpKQogICAgICApCgogICAgKHNldHEgY3V0LXRleHQgKHgtZ2V0LWN1 dC1idWZmZXIgMCkpCgogICAgOzsgQ2hlY2sgdGhlIHggY3V0IGJ1ZmZlciBmb3IgJ25ld25lc3Mn LCBpcyBpdCBkaWZmZXJlbnQKICAgIDs7IGZyb20gd2hhdCB3ZSByZW1lYmVyZWQgdGhlbSB0byBi ZSBsYXN0IHRpbWUgd2UgZGlkIGEKICAgIDs7IGN1dC9wYXN0ZSBvcGVyYXRpb24uCiAgICAoc2V0 cSBjdXQtdGV4dAoJICAobGV0ICgobmV4dC1jb2RpbmcgKG9yIG5leHQtc2VsZWN0aW9uLWNvZGlu Zy1zeXN0ZW0gJ2lzby1sYXRpbi0xKSkpCgkgICAgKGNvbmQ7OyBjaGVjayBjdXQgYnVmZmVyCgkg ICAgICgob3IgKG5vdCBjdXQtdGV4dCkgKHN0cmluZz0gY3V0LXRleHQgIiIpKQoJICAgICAgKHNl dHEgeC1sYXN0LXNlbGVjdGVkLXRleHQtY3V0IG5pbCkpCgkgICAgIDs7IFRoaXMgc2hvcnQgY3V0 IGRvZXNuJ3Qgd29yayBiZWNhdXNlIHgtZ2V0LWN1dC1idWZmZXIgCSAKCSAgICAgOzsgYWx3YXlz IHJldHVybnMgYSBuZXdseSBjcmVhdGVkIHN0cmluZy4gCSAKCSAgICAgOzsgKChlcSAgICAgIGN1 dC10ZXh0IHgtbGFzdC1zZWxlY3RlZC10ZXh0LWN1dCkgbmlsKSAJIAoJICAgICAoKGFuZCAoc3Ry aW5nPSBjdXQtdGV4dCB4LWxhc3Qtc2VsZWN0ZWQtdGV4dC1jdXQtZW5jb2RlZCkKCQkgICAoZXEg eC1sYXN0LWN1dC1idWZmZXItY29kaW5nIG5leHQtY29kaW5nKSkKCSAgICAgIDs7IFNlZSB0aGUg Y29tbWVudCBhYm92ZS4gIE5vIG5lZWQgb2YgdGhpcyByZWNvcmRpbmcuIAkgCgkgICAgICA7OyBS ZWNvcmQgdGhlIG5ld2VyIHN0cmluZywgCSAKCSAgICAgIDs7IHNvIHN1YnNlcXVlbnQgY2FsbHMg Y2FuIHVzZSB0aGUgYGVxJyB0ZXN0LiAJIAoJICAgICAgOzsgKHNldHEgeC1sYXN0LXNlbGVjdGVk LXRleHQtY3V0IGN1dC10ZXh0KSAJIAoJICAgICAgbmlsKQoJICAgICAodAoJICAgICAgKHNldHEg eC1sYXN0LXNlbGVjdGVkLXRleHQtY3V0LWVuY29kZWQgY3V0LXRleHQKCQkgIHgtbGFzdC1jdXQt YnVmZmVyLWNvZGluZyBuZXh0LWNvZGluZwoJCSAgeC1sYXN0LXNlbGVjdGVkLXRleHQtY3V0CgkJ ICA7OyBJQ0NDTSBzYXlzIGN1dCBidWZmZXIgYWx3YXlzIGNvbnRhaW4gSVNPLUxhdGluLTEsIGJ1 dAoJCSAgOzsgdXNlIG5leHQtc2VsZWN0aW9uLWNvZGluZy1zeXN0ZW0gaWYgbm90IG5pbC4KCQkg IChkZWNvZGUtY29kaW5nLXN0cmluZyAKCQkgICBjdXQtdGV4dCBuZXh0LWNvZGluZykpKSkpKQoK ICAgIDs7IEFzIHdlIGhhdmUgZG9uZSBvbmUgc2VsZWN0aW9uLCBjbGVhciB0aGlzIG5vdy4KICAg IChzZXRxIG5leHQtc2VsZWN0aW9uLWNvZGluZy1zeXN0ZW0gbmlsKQoKICAgIDs7IEF0IHRoaXMg cG9pbnQgd2UgaGF2ZSByZWNvcmRlZCB0aGUgY3VycmVudCB2YWx1ZXMgZm9yIHRoZQogICAgOzsg c2VsZWN0aW9uIGZyb20gY2xpcGJvYXJkIChpZiB3ZSBhcmUgc3VwcG9zZWQgdG8pIHByaW1hcnks CiAgICA7OyBhbmQgY3V0IGJ1ZmZlci4gIFNvIHJldHVybiB0aGUgZmlyc3Qgb25lIHRoYXQgaGFz IGNoYW5nZWQKICAgIDs7ICh3aGljaCBpcyB0aGUgZmlyc3Qgbm9uLW51bGwgb25lKS4KICAgIDs7 CiAgICA7OyBOT1RFOiBUaGVyZSB3aWxsIGJlIGNhc2VzIHdoZXJlIG1vcmUgdGhhbiBvbmUgb2Yg dGhlc2UgaGFzCiAgICA7OyBjaGFuZ2VkIGFuZCB0aGUgbmV3IHZhbHVlcyBkaWZmZXIuICBUaGlz IGluZGljYXRlcyB0aGF0CiAgICA7OyBzb21ldGhpbmcgbGlrZSB0aGUgZm9sbG93aW5nIGhhcyBo YXBwZW5lZCBzaW5jZSB0aGUgbGFzdCB0aW1lCiAgICA7OyB3ZSBsb29rZWQgYXQgdGhlIHNlbGVj dGlvbnM6IEFwcGxpY2F0aW9uIFggc2V0IGFsbCB0aGUKICAgIDs7IHNlbGVjdGlvbnMsIHRoZW4g QXBwbGljYXRpb24gWSBzZXQgb25seSBvbmUgb3IgdHdvIG9mIHRoZW0gKHNheQogICAgOzsganVz dCB0aGUgY3V0LWJ1ZmZlcikuICBJbiB0aGlzIGNhc2Ugc2luY2Ugd2UgZG9uJ3QgaGF2ZQogICAg OzsgdGltZXN0YW1wcyB0aGVyZSBpcyBubyB3YXkgdG8ga25vdyB3aGF0IHRoZSAnY29ycmVjdCcg dmFsdWUgdG8KICAgIDs7IHJldHVybiBpcy4gIFRoZSBuaWNlIHRoaW5nIHRvIGRvIHdvdWxkIGJl IHRvIHRlbGwgdGhlIHVzZXIgd2UKICAgIDs7IHNhdyBtdWx0aXBsZSBwb3NzaWJsZSBzZWxlY3Rp b25zIGFuZCBhc2sgdGhlIHVzZXIgd2hpY2ggd2FzIHRoZQogICAgOzsgb25lIHRoZXkgd2FudGVk LgogICAgOzsgVGhpcyBjb2RlIGlzIHN0aWxsIGEgYmlnIGltcHJvdmVtZW50IGJlY2F1c2Ugbm93 IHRoZSB1c2VyIGNhbgogICAgOzsgZnV0eiB3aXRoIHRoZSBjdXJyZW50IHNlbGVjdGlvbiBhbmQg Z2V0IGVtYWNzIHRvIHBheSBhdHRlbnRpb24KICAgIDs7IHRvIHRoZSBjdXQgYnVmZmVyIGFnYWlu IChwcmV2aW91c2x5IGFzIHNvb24gYXMgY2xpcGJvYXJkIG9yCiAgICA7OyBwcmltYXJ5IGhhZCBi ZWVuIHNldCB0aGUgY3V0IGJ1ZmZlciB3b3VsZCBlc3NlbnRpYWxseSBuZXZlciBiZQogICAgOzsg Y2hlY2tlZCBhZ2FpbikuCiAgICAob3IgY2xpcC10ZXh0IHByaW1hcnktdGV4dCBjdXQtdGV4dCkK ICAgICkpCgoKCihzZXRmIGludGVycHJvZ3JhbS1jdXQtZnVuY3Rpb24gJ3gtc2VsZWN0LXRleHQq KQooc2V0ZiBpbnRlcnByb2dyYW0tcGFzdGUtZnVuY3Rpb24gJ3gtY3V0LWJ1ZmZlci1vci1zZWxl Y3Rpb24tdmFsdWUqKQoKOyAzCgo7IHgtc2V0LXNlbGVjdGlvbiBuaWwgPT0gcHJpbWFyeS4gCihh ZGQtaG9vayAnYWN0aXZhdGUtbWFyay1ob29rIAoJICAoZnVuY3Rpb24gKGxhbWJkYSAoKQoJCSAg ICAgICh4LXNldC1zZWxlY3Rpb24gbmlsIChidWZmZXItc3Vic3RyaW5nIChyZWdpb24tYmVnaW5u aW5nKSAocmVnaW9uLWVuZCkpKSkpKQoKCjsgNAoKOzs7IGJhc2VkIG9uIG1vdXNlLmVsL21vdXNl LXlhbmstc2Vjb25kYXJ5CgooZGVmdW4gbW91c2UteWFuay1wcmltYXJ5IChjbGljaykKICAiSW5z ZXJ0IHRoZSBwcmltYXJ5IHNlbGVjdGlvbiBhdCB0aGUgcG9zaXRpb24gY2xpY2tlZCBvbi4KTW92 ZSBwb2ludCB0byB0aGUgZW5kIG9mIHRoZSBpbnNlcnRlZCB0ZXh0LgpJZiBgbW91c2UteWFuay1h dC1wb2ludCcgaXMgbm9uLW5pbCwgaW5zZXJ0IGF0IHBvaW50CnJlZ2FyZGxlc3Mgb2Ygd2hlcmUg eW91IGNsaWNrLiIKICAoaW50ZXJhY3RpdmUgImUiKQogIDs7IEdpdmUgdGVtcG9yYXJ5IG1vZGVz IHN1Y2ggYXMgaXNlYXJjaCBhIGNoYW5jZSB0byB0dXJuIG9mZi4KICAocnVuLWhvb2tzICdtb3Vz ZS1sZWF2ZS1idWZmZXItaG9vaykKICAob3IgbW91c2UteWFuay1hdC1wb2ludCAobW91c2Utc2V0 LXBvaW50IGNsaWNrKSkKICAobGV0ICgoc2Vjb25kYXJ5ICh4LWdldC1zZWxlY3Rpb24gJ1BSSU1B UlkpKSkKICAgIChpZiBzZWNvbmRhcnkKICAgICAgICAoaW5zZXJ0ICh4LWdldC1zZWxlY3Rpb24g J1BSSU1BUlkpKQogICAgICAoZXJyb3IgIk5vIHByaW1hcnkgc2VsZWN0aW9uIikpKSkKCihnbG9i YWwtc2V0LWtleSBbbW91c2UtMl0gJ21vdXNlLXlhbmstcHJpbWFyeSkK ------=_Part_5332_33510504.1192577342662 Content-Type: text/plain; charset="us-ascii" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Content-Disposition: inline _______________________________________________ Emacs-devel mailing list Emacs-devel@gnu.org http://lists.gnu.org/mailman/listinfo/emacs-devel ------=_Part_5332_33510504.1192577342662--