From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 29397 invoked from network); 30 Jan 2009 00:07:50 -0000 X-Spam-Checker-Version: SpamAssassin 3.2.5 (2008-06-10) on f.primenet.com.au X-Spam-Level: X-Spam-Status: No, score=-2.6 required=5.0 tests=BAYES_00 autolearn=ham version=3.2.5 Received: from news.dotsrc.org (HELO a.mx.sunsite.dk) (130.225.247.88) by ns1.primenet.com.au with SMTP; 30 Jan 2009 00:07:50 -0000 Received-SPF: none (ns1.primenet.com.au: domain at sunsite.dk does not designate permitted sender hosts) Received: (qmail 77180 invoked from network); 30 Jan 2009 00:07:43 -0000 Received: from sunsite.dk (130.225.247.90) by a.mx.sunsite.dk with SMTP; 30 Jan 2009 00:07:43 -0000 Received: (qmail 4624 invoked by alias); 30 Jan 2009 00:07:37 -0000 Mailing-List: contact zsh-workers-help@sunsite.dk; run by ezmlm Precedence: bulk X-No-Archive: yes X-Seq: 26487 Received: (qmail 4606 invoked from network); 30 Jan 2009 00:07:36 -0000 Received: from bifrost.dotsrc.org (130.225.254.106) by sunsite.dk with SMTP; 30 Jan 2009 00:07:36 -0000 Received: from aa012msr.fastwebnet.it (aa012msr.fastwebnet.it [85.18.95.72]) by bifrost.dotsrc.org (Postfix) with ESMTP id 6864980271F0 for ; Fri, 30 Jan 2009 01:07:33 +0100 (CET) Received: from www.ruska.it (83.103.88.29) by aa012msr.fastwebnet.it (8.0.013.8) id 497EEC61006B259D for zsh-workers@sunsite.dk; Fri, 30 Jan 2009 01:07:33 +0100 Received: from linux2.maruska.tin.it (linux2.maruska.tin.it [192.168.2.2]) by www.ruska.it (Postfix) with ESMTP id A688793ADC8; Fri, 30 Jan 2009 01:07:32 +0100 (CET) To: "Zsh Hackers' List" Subject: kill-region hook From: Michal Maruska Date: Fri, 30 Jan 2009 01:07:32 +0100 Message-ID: <87fxj1psfv.fsf@linux2.maruska.tin.it> User-Agent: Gnus/5.11 (Gnus v5.11) Emacs/22.1.50 (gnu/linux) MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="=-=-=" X-Virus-Scanned: ClamAV 0.92.1/8920/Thu Jan 29 19:30:26 2009 on bifrost X-Virus-Status: Clean --=-=-= Hello, I would like to have a hook (a shell function) run when "kill-buffer" is populated. Motivation: I would use it to promote the string to X selection (via an Escape sequence of rxvt). I changed the cuttext function to call callhookfunc. I made a function to do WideChar->Locale-encoding conversion, but I'm not sure if that is a zsh way to do it. Then I found zlelineasstring, but I don't understand what metafy is about (it's called in zlelineasstring to modify the C string somehow). Can anybody help? Patch enclosed. --=-=-= Content-Type: application/octet-stream Content-Disposition: attachment; filename=selection Content-Transfer-Encoding: base64 SW5kZXg6IHpzaC00LjMuOS9TcmMvWmxlL3psZV91dGlscy5jCj09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIHpzaC00 LjMuOS5vcmlnL1NyYy9abGUvemxlX3V0aWxzLmMJMjAwOS0wMS0yOSAyMToyODozMy4yOTc4ODAz NjMgKzAxMDAKKysrIHpzaC00LjMuOS9TcmMvWmxlL3psZV91dGlscy5jCTIwMDktMDEtMzAgMDA6 NTg6MjMuNDM3MTg2MjIwICswMTAwCkBAIC00OTQsNiArNDk0LDggQEAKICAgY3V0dGV4dCh6bGVs aW5lICsgaSwgY3QsIGZsYWdzKTsKIH0KIAorc3RhdGljIHNpemVfdCB6c3RyaW5nX2FzX2NzdHJp bmcoY29uc3QgWkxFX1NUUklOR19UIHpzLCBjaGFyKiogcmVzLCBzaXplX3QgbGVuKTsKKwogLyoK ICAqIEFzIGN1dCwgYnV0IGV4cGxpY2l0bHkgc3VwcGx5IHRoZSB0ZXh0IHRvZ2V0aGVyIHdpdGgg aXRzIGxlbmd0aC4KICAqLwpAQCAtNTc0LDEyICs1NzYsNjggQEAKIAlaU19tZW1jcHkoY3V0YnVm LmJ1ZiArIGN1dGJ1Zi5sZW4sIGxpbmUsIGN0KTsKIAljdXRidWYubGVuICs9IGN0OwogICAgIH0K KyAgICB7ICAvKiBJbnZva2Uga2lsbF9yZWdpb25faG9vayB3aXRoIHRoZSBjdXRidWYgdGV4dCBh cyB0aGUgb25seSBhcmd1bWVudC4gKi8KKyAgICAgICAgY2hhciogYXJnOworICAgICAgICBzaXpl X3Qgc2l6ZTsKKyAgICAgICAgTGlua0xpc3QgaG9va2FyZ3MgPSBuZXdsaW5rbGlzdCgpOworCisg ICAgICAgIGFyZyA9IHpsZWxpbmVhc3N0cmluZyhjdXRidWYuYnVmLCBjdXRidWYubGVuLCAwLCBO VUxMLCBOVUxMLCAwKTsKKy8qICAgICAgICBzaXplID0genN0cmluZ19hc19jc3RyaW5nKGN1dGJ1 Zi5idWYsICZhcmcsIGN1dGJ1Zi5sZW4pOyAqLworCisgICAgICAgIGlmIChzaXplIDwgMCkgewor ICAgICAgICAgICAgemJlZXAoKTsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIGFkZGxp bmtub2RlKGhvb2thcmdzLCAia2lsbF9yZWdpb25faG9vayIpOworICAgICAgICAgICAgYWRkbGlu a25vZGUoaG9va2FyZ3MsIGFyZyk7CisgICAgICAgICAgICBpbnQgcmV0dmFsOworICAgICAgICAg ICAgY2FsbGhvb2tmdW5jKCJraWxsX3JlZ2lvbl9ob29rIiwgaG9va2FyZ3MsIDAsICZyZXR2YWwp OyAvKiBOVUxMICovCisgICAgICAgICAgICAvKiB6ZnJlZShhcmcsIHNpemUpOyovCisgICAgICAg ICAgICBmcmVlKGFyZyk7CisgICAgICAgIH0KKyAgICB9CiAgICAgaWYodmlsaW5lcmFuZ2UpCiAJ Y3V0YnVmLmZsYWdzIHw9IENVVEJVRkZFUl9MSU5FOwogICAgIGVsc2UKIAljdXRidWYuZmxhZ3Mg Jj0gfkNVVEJVRkZFUl9MSU5FOwogfQogCisvKiBDb252ZXJ0IHRoZSAoc3ViKXpzdHJpbmcgWlMg b2YgbGVuZ2h0IExFTiwgdG8gYSBDLXN0cmluZyBhbGxvY2F0ZWQgaW4gKlJFUzsKKyAqIGZvbGxv d2luZyB0aGUgTG9jYWxlIHNldHRpbmcuCisgKiBSZXR1cm5zIHRoZSBzaXplIChvZiB0aGUgYWxs b2NhdGVkIG1lbW9yeSkgb3IgLTEgaWYgY29udmVyc2lvbiBmYWlsZWQuICovCisKK3N0YXRpYyBz aXplX3QKK3pzdHJpbmdfYXNfY3N0cmluZyhjb25zdCBaTEVfU1RSSU5HX1QgenMsIGNoYXIqKiBy ZXMsIHNpemVfdCBsZW4pCit7CisjaWZkZWYgTVVMVElCWVRFX1NVUFBPUlQKKyAgICAvKiBtbWM6 IHRoZXJlIGlzIGEgZGlmZmVyZW5jZSBiZXR3ZWVuOiAiY29uc3Qgd2NoYXJfdCoiIGFuZCAiY29u c3QgWkxFX1NUUklOR19UIgorICAgICAqICAgICAgc28gSSB1c2UgdGhlIGN1ciB2YXJpYWJsZTog Ki8KKyAgICBjb25zdCB3Y2hhcl90KiBjdXIgPSB6czsKKyAgICBzaXplX3Qgc2l6ZSA9IHdjc25y dG9tYnMoTlVMTCwgJmN1ciwgbGVuLCAwLCBOVUxMKSArIDE7CisgICAgY3VyID0genM7CisgICAg aWYgKHNpemUgPCAwKQorICAgICAgICAgICAgcmV0dXJuIC0xOworI2Vsc2UKKyAgICBzaXplX3Qg c2l6ZSA9IGxlbiArIDE7CisjZW5kaWYgIC8qIE1VTFRJQllURV9TVVBQT1JUICovCisKKyAgICAq cmVzID0gemFsbG9jKHNpemUpOworI2lmZGVmIE1VTFRJQllURV9TVVBQT1JUCisgICAgc2l6ZV90 IHMgPSB3Y3NucnRvbWJzKCpyZXMsICZjdXIsIGxlbiwgc2l6ZSAtMSwgTlVMTCk7CisgICAgaWYg KHM8MCkgICAgICAgICAgICAgICAgICAgIC8qIGltcG9zc2libGUgaGVyZT8gKi8KKyAgICAgICAg eworICAgICAgICAgICAgemZyZWUoKnJlcywgc2l6ZSk7CisgICAgICAgICAgICByZXR1cm4gLTE7 CisgICAgICAgIH0KKyNlbHNlCisgICAgbWVtY3B5KCpyZXMsIHpzLCBzaXplKTsKKyNlbmRpZiAg LyogTVVMVElCWVRFX1NVUFBPUlQgKi8KKyAgICAoKnJlcylbc2l6ZV09MDsKKworICAgIHJldHVy biBzaXplKzE7Cit9CisKKworCiAvKgogICogTm93IHdlJ3JlIGJhY2sgaW4gdGhlIHdvcmxkIG9m IHpsZWNzIHdoZXJlIHdlIG5lZWQgdG8ga2VlcAogICogdHJhY2sgb2Ygd2hldGhlciB3ZSdyZSBv biBhIGNvbWJpbmluZyBjaGFyYWN0ZXIuCg== --=-=-=--