From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 12143 invoked from network); 14 Mar 2009 21:29:33 -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; 14 Mar 2009 21:29:33 -0000 Received-SPF: none (ns1.primenet.com.au: domain at sunsite.dk does not designate permitted sender hosts) Received: (qmail 90432 invoked from network); 14 Mar 2009 21:27:22 -0000 Received: from sunsite.dk (130.225.247.90) by a.mx.sunsite.dk with SMTP; 14 Mar 2009 21:27:22 -0000 Received: (qmail 13208 invoked by alias); 14 Mar 2009 21:27:15 -0000 Mailing-List: contact zsh-workers-help@sunsite.dk; run by ezmlm Precedence: bulk X-No-Archive: yes X-Seq: 26731 Received: (qmail 13193 invoked from network); 14 Mar 2009 21:27:15 -0000 Received: from bifrost.dotsrc.org (130.225.254.106) by sunsite.dk with SMTP; 14 Mar 2009 21:27:15 -0000 Received: from web37301.mail.mud.yahoo.com (web37301.mail.mud.yahoo.com [209.191.90.244]) by bifrost.dotsrc.org (Postfix) with SMTP id CEACA80307F9 for ; Sat, 14 Mar 2009 22:27:10 +0100 (CET) Received: (qmail 1227 invoked by uid 60001); 14 Mar 2009 21:27:09 -0000 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=yahoo.com; s=s1024; t=1237066029; bh=k8HjwdH++xCTjdBeC5ZPNTwcObyWepfRKXVhsO7JQnQ=; h=Message-ID:X-YMail-OSG:Received:X-Mailer:References:Date:From:Subject:To:MIME-Version:Content-Type; b=jVfRiOFVAXBe+ggptCFJZ+9pWZNsreQGa1hs4FIFKOFfpDb5hwtgwzWk7BSMzjdwDnaeXFVXdn/qdmpg1PlkStHYr7iOaKXxcUIUSzjaXZFn91iB77WClYDYt336dMKW71amIBu+LNaG1njNjXpYxFuPuE4nebr1SuWiZ8KOwmE= DomainKey-Signature:a=rsa-sha1; q=dns; c=nofws; s=s1024; d=yahoo.com; h=Message-ID:X-YMail-OSG:Received:X-Mailer:References:Date:From:Subject:To:MIME-Version:Content-Type; b=yg9Ts/7ei92vfqc+hqU4JOH09fe2F7Sf4ugHEzTHTCNWblTp0WMOsUX5kkf4WWbleJpt+2SlJOZ5AodHY+c/9puvSKojJygWFjdxe+5dcX+iWk8+bhdUSFbRFwWAG/xUWczp5UqoFOX+bk1SwwDtAGmN7QCyPEke0tIUutJEGKw=; Message-ID: <664029.1117.qm@web37301.mail.mud.yahoo.com> X-YMail-OSG: 3cmueaUVM1mXBFrOl3F4roNS68SyUcY0mb3BUUBZr2CPc_SSNm942FXfMPqa4gS7PjvTrPe4g7HyfvQC62sYNCs2.lBKgOC1XfxktU2YKpvb7..oEumNL4CAnPw1ODh6Kcx15lvWQHueq99uXp4t8ZHnk.z8ZbxLvRxGFjC14ut7KDkWJYFyTHib7RpodiQZwPyQkyUzWJuOqBXJcIHB9Fc- Received: from [128.175.185.67] by web37301.mail.mud.yahoo.com via HTTP; Sat, 14 Mar 2009 14:27:09 PDT X-Mailer: YahooMailRC/1155.45 YahooMailWebService/0.7.289.1 References: <18038.70384.qm@web37308.mail.mud.yahoo.com> <20090314181458.007906bc@pws-pc> Date: Sat, 14 Mar 2009 14:27:09 -0700 (PDT) From: Michael Hwang Subject: Re: PATCH: Modifiers that implement realpath-like feature To: zsh-workers@sunsite.dk MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="0-1138779567-1237066029=:1117" X-Virus-Scanned: ClamAV 0.92.1/9108/Sat Mar 14 20:13:38 2009 on bifrost X-Virus-Status: Clean --0-1138779567-1237066029=:1117 Content-Type: text/plain; charset=us-ascii Sorry, here. ----- Original Message ---- From: Peter Stephenson To: Michael Hwang Cc: zsh-workers@sunsite.dk Sent: Saturday, March 14, 2009 2:14:58 PM Subject: Re: PATCH: Modifiers that implement realpath-like feature On Thu, 12 Mar 2009 15:42:25 -0700 (PDT) Michael Hwang wrote: > I'm particularly proud of this patch, as it's my first time > contributing to an open source project. (I'm sure the novelty will wear > off in a while.) It implements two history-style realpath-like modifiers > for getting the absolute path of a file. I chose the letter 'a' for > 'absolute' (r was already taken). Both 'a' and 'A' have different > meanings. The uppercase A will resolve symbolic links. This looks useful but your mailer's screwed it up. Could you send it as an attachment? Thanks -- Peter Stephenson Web page now at http://homepage.ntlworld.com/p.w.stephenson/ --0-1138779567-1237066029=:1117 Content-Type: text/x-diff; name="a_modifiers.patch" Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="a_modifiers.patch" ZGlmZiAtLWdpdCBhL1NyYy9oaXN0LmMgYi9TcmMvaGlzdC5jCmluZGV4IDM4 Y2VhYzMuLjBkZDhjMjEgMTAwNjQ0Ci0tLSBhL1NyYy9oaXN0LmMKKysrIGIv U3JjL2hpc3QuYwpAQCAtNjIzLDYgKzYyMywyMSBAQCBoaXN0c3ViY2hhcihp bnQgYykKIAkgICAgY2FzZSAncCc6CiAJCWhpc3Rkb25lID0gSElTVEZMQUdf RE9ORSB8IEhJU1RGTEFHX05PRVhFQzsKIAkJYnJlYWs7CisJICAgIGNhc2Ug J2EnOgorCQlpZiAoIWNoYWJzcGF0aCgmc2xpbmUpKSB7CisJCSAgICBoZXJy Zmx1c2goKTsKKwkJICAgIHplcnIoIm1vZGlmaWVyIGZhaWxlZDogYSIpOwor CQkgICAgcmV0dXJuIC0xOworCQl9CisJCWJyZWFrOworCisJICAgIGNhc2Ug J0EnOgorCQlpZiAoIWNocmVhbHBhdGgoJnNsaW5lKSkgeworCQkgICAgaGVy cmZsdXNoKCk7CisJCSAgICB6ZXJyKCJtb2RpZmllciBmYWlsZWQ6IEEiKTsK KwkJICAgIHJldHVybiAtMTsKKwkJfQorCQlicmVhazsKIAkgICAgY2FzZSAn aCc6CiAJCWlmICghcmVtdHBhdGgoJnNsaW5lKSkgewogCQkgICAgaGVycmZs dXNoKCk7CkBAIC0xNDg0LDYgKzE0OTksMTE5IEBAIGhjb21zZWFyY2goY2hh ciAqc3RyKQogCiAvKiovCiBpbnQKK2NoYWJzcGF0aChjaGFyICoqanVua3B0 cikKK3sKKyAgICBpZiAoISoqanVua3B0cikKKwlyZXR1cm4gMTsKKworICAg IGlmICgqKmp1bmtwdHIgIT0gJy8nKSB7CisJKmp1bmtwdHIgPSB6aHRyaWNh dCh6Z2V0Y3dkKCksICIvIiwgKmp1bmtwdHIpOworICAgIH0KKworICAgIGNo YXIgKmN1cnJlbnQgPSAqanVua3B0cjsKKyAgICBjaGFyICpkZXN0ID0gKmp1 bmtwdHI7CisKKyNpZmRlZiBIQVZFX1NVUEVSUk9PVAorICAgIHdoaWxlICgq Y3VycmVudCA9PSAnLycgJiYgY3VycmVudFsxXSA9PSAnLicgJiYgY3VycmVu dFsyXSA9PSAnLicgJiYgKCFjdXJyZW50WzNdIHx8IGN1cnJlbnRbM10gPT0g Jy8nKSkgeworCSpkZXN0KysgPSAnLyc7CisJKmRlc3QrKyA9ICcuJzsKKwkq ZGVzdCsrID0gJy4nOworCWN1cnJlbnQgKz0gMzsKKyAgICB9CisjZW5kaWYK KwkKKyAgICBmb3IgKDs7KSB7CisJaWYgKCpjdXJyZW50ID09ICcvJykgewor I2lmZGVmIF9fQ1lHV0lOX18KKwkgICAgaWYgKGN1cnJlbnQgPT0gKmp1bmtw dHIgJiYgY3VycmVudFsxXSA9PSAnLycpCisJCSpkZXN0KysgPSAqY3VycmVu dCsrOworI2VuZGlmCisJICAgICpkZXN0KysgPSAqY3VycmVudCsrOworCSAg ICB3aGlsZSAoKmN1cnJlbnQgPT0gJy8nKQorCQljdXJyZW50Kys7CisJfSBl bHNlIGlmICghKmN1cnJlbnQpIHsKKwkgICAgd2hpbGUgKGRlc3QgPiAqanVu a3B0ciArIDEgJiYgZGVzdFstMV0gPT0gJy8nKQorCQlkZXN0LS07CisJICAg ICpkZXN0ID0gJ1wwJzsKKwkgICAgYnJlYWs7CisJfSBlbHNlIGlmIChjdXJy ZW50WzBdID09ICcuJyAmJiBjdXJyZW50WzFdID09ICcuJyAmJiAoIWN1cnJl bnRbMl0gfHwgY3VycmVudFsyXSA9PSAnLycpKSB7CisJCWlmIChjdXJyZW50 ID09ICpqdW5rcHRyIHx8IGRlc3QgPT0gKmp1bmtwdHIpIHsKKwkJICAgICpk ZXN0KysgPSAnLic7CisJCSAgICAqZGVzdCsrID0gJy4nOworCQkgICAgY3Vy cmVudCArPSAyOworCQl9IGVsc2UgaWYgKGRlc3QgPiAqanVua3B0ciArIDIg JiYgIXN0cm5jbXAoZGVzdCAtIDMsICIuLi8iLCAzKSkgeworCQkgICAgKmRl c3QrKyA9ICcuJzsKKwkJICAgICpkZXN0KysgPSAnLic7CisJCSAgICBjdXJy ZW50ICs9IDI7CisJCX0gZWxzZSBpZiAoZGVzdCA+ICpqdW5rcHRyICsgMSkg eworCQkgICAgKmRlc3QgPSAnXDAnOworCQkgICAgZm9yIChkZXN0LS07IGRl c3QgPiAqanVua3B0ciArIDEgJiYgZGVzdFstMV0gIT0gJy8nOyBkZXN0LS0p OworCQkgICAgaWYgKGRlc3RbLTFdICE9ICcvJykKKwkJCWRlc3QtLTsKKwkJ ICAgIGN1cnJlbnQgKz0gMjsKKwkJfSBlbHNlIGlmIChkZXN0ID09ICpqdW5r cHRyICsgMSkgeyAvKiBUaGlzIG1pZ2h0IGJyZWFrIHdpdGggQ3lnd2luJ3Mg bGVhZGluZyBkb3VibGUgc2xhc2hlcz8gKi8KKwkJICAgIGN1cnJlbnQgKz0g MjsKKwkJfSBlbHNlIHsKKwkJICAgIHJldHVybiAwOworCQl9CisJfSBlbHNl IGlmIChjdXJyZW50WzBdID09ICcuJyAmJiAoY3VycmVudFsxXSA9PSAnLycg fHwgIWN1cnJlbnRbMV0pKSB7CisJICAgICB3aGlsZSAoKisrY3VycmVudCA9 PSAnLycpOworCX0gZWxzZSB7CisJICAgIHdoaWxlICgqY3VycmVudCAhPSAn LycgJiYgKmN1cnJlbnQgIT0gJ1wwJykKKwkJaWYgKCgqZGVzdCsrID0gKmN1 cnJlbnQrKykgPT0gTWV0YSkKKwkJICAgIGRlc3RbLTFdID0gKmN1cnJlbnQr KyBeIDMyOworCX0KKyAgICB9CisgICAgcmV0dXJuIDE7Cit9CisKKy8qKi8K K2ludAorY2hyZWFscGF0aChjaGFyICoqanVua3B0cikKK3sKKyAgICBpZiAo ISoqanVua3B0cikKKwlyZXR1cm4gMTsKKworICAgIC8qIE5vdGljZSB0aGF0 IHRoaXMgbWVhbnMgLi4ncyBhcmUgYXBwbGllZCBiZWZvcmUgc3ltbGlua3Mg YXJlIHJlc29sdmVkISAqLworICAgIGlmICghY2hhYnNwYXRoKGp1bmtwdHIp KQorCXJldHVybiAwOworCisgICAgLyogTm90aWNlIHRoYXQgdGhpcyBtZWFu cyB5b3UgY2Fubm90IHBhc3MgcmVsYXRpdmUgcGF0aHMgaW50byB0aGlzIGZ1 bmN0aW9uISAqLworICAgIGlmICgqKmp1bmtwdHIgIT0gJy8nKQorCXJldHVy biAwOworCisgICAgY2hhciAqbGFzdHBvcyA9IHN0cmVuZCgqanVua3B0cik7 CisgICAgY2hhciAqbm9ucmVhbCA9IGxhc3Rwb3MgKyAxOworICAgIGNoYXIg cmVhbFtQQVRIX01BWF07CisKKyAgICB3aGlsZSAoIXJlYWxwYXRoKCpqdW5r cHRyLCByZWFsKSkgeworCWlmIChlcnJubyA9PSBFSU5WQUwgfHwgZXJybm8g PT0gRUxPT1AgfHwgZXJybm8gPT0gRU5BTUVUT09MT05HIHx8IGVycm5vID09 IEVOT01FTSkKKwkgICAgcmV0dXJuIDA7CisKKwlpZiAobm9ucmVhbCA9PSAq anVua3B0cikgeworCSAgICAqcmVhbCA9ICdcMCc7CisJICAgIGJyZWFrOwor CX0KKworCXdoaWxlICgqbm9ucmVhbCAhPSAnLycgJiYgbm9ucmVhbCA+PSAq anVua3B0cikKKwkgICAgbm9ucmVhbC0tOworCSpub25yZWFsID0gJ1wwJzsK KyAgICB9CisKKyAgICBjaGFyICpzdHIgPSBub25yZWFsOworICAgIHdoaWxl IChzdHIgPD0gbGFzdHBvcykgeworCWlmICgqc3RyID09ICdcMCcpCisJICAg ICpzdHIgPSAnLyc7CisJc3RyKys7CisgICAgfQorCisgICAgKmp1bmtwdHIg PSBiaWNhdChyZWFsLCBub25yZWFsKTsKKworICAgIHJldHVybiAxOworfQor CisvKiovCitpbnQKIHJlbXRwYXRoKGNoYXIgKipqdW5rcHRyKQogewogICAg IGNoYXIgKnN0ciA9IHN0cmVuZCgqanVua3B0cik7CmRpZmYgLS1naXQgYS9T cmMvc3Vic3QuYyBiL1NyYy9zdWJzdC5jCmluZGV4IDllM2YwNmYuLjUwMzNk ZDQgMTAwNjQ0Ci0tLSBhL1NyYy9zdWJzdC5jCisrKyBiL1NyYy9zdWJzdC5j CkBAIC0zMTk5LDYgKzMxOTksOCBAQCBtb2RpZnkoY2hhciAqKnN0ciwgY2hh ciAqKnB0cikKIAogCWZvciAoOyAhYyAmJiAqKnB0cjspIHsKIAkgICAgc3dp dGNoICgqKnB0cikgeworICAgICAgICAgICAgY2FzZSAnYSc6CisgICAgICAg ICAgICBjYXNlICdBJzoKIAkgICAgY2FzZSAnaCc6CiAJICAgIGNhc2UgJ3In OgogCSAgICBjYXNlICdlJzoKQEAgLTMzMzcsNiArMzMzOSwxMiBAQCBtb2Rp ZnkoY2hhciAqKnN0ciwgY2hhciAqKnB0cikKIAkJCWNvcHkgPSBkdXBzdHJp bmcodHQpOwogCQkgICAgKmUgPSB0YzsKIAkJICAgIHN3aXRjaCAoYykgewor ICAgICAgICAgICAgICAgICAgICBjYXNlICdhJzoKKwkJCWNoYWJzcGF0aCgm Y29weSk7CisJCQlicmVhazsKKwkJICAgIGNhc2UgJ0EnOgorCQkJY2hyZWFs cGF0aCgmY29weSk7CisJCQlicmVhazsKIAkJICAgIGNhc2UgJ2gnOgogCQkJ cmVtdHBhdGgoJmNvcHkpOwogCQkJYnJlYWs7CkBAIC0zMzk2LDYgKzM0MDQs MTIgQEAgbW9kaWZ5KGNoYXIgKipzdHIsIGNoYXIgKipwdHIpCiAKIAkgICAg fSBlbHNlIHsKIAkJc3dpdGNoIChjKSB7CisJCWNhc2UgJ2EnOgorCQkgICAg Y2hhYnNwYXRoKHN0cik7CisJCSAgICBicmVhazsKKwkJY2FzZSAnQSc6CisJ CSAgICBjaHJlYWxwYXRoKHN0cik7CisJCSAgICBicmVhazsKIAkJY2FzZSAn aCc6CiAJCSAgICByZW10cGF0aChzdHIpOwogCQkgICAgYnJlYWs7Cg== --0-1138779567-1237066029=:1117--