From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.org!not-for-mail From: "Stuart D. Herring" Newsgroups: gmane.emacs.devel Subject: Re: Missing `with' macro? Date: Thu, 27 Jul 2006 19:14:10 -0700 (PDT) Message-ID: <33776.128.165.123.18.1154052850.squirrel@webmail.lanl.gov> References: <7dbe73ed0607240317g1bcdd564g66d075f809bcb7b2@mail.gmail.com> Reply-To: herring@lanl.gov NNTP-Posting-Host: main.gmane.org Mime-Version: 1.0 Content-Type: multipart/mixed;boundary="----=_20060727191410_93913" X-Trace: sea.gmane.org 1154052911 27191 80.91.229.2 (28 Jul 2006 02:15:11 GMT) X-Complaints-To: usenet@sea.gmane.org NNTP-Posting-Date: Fri, 28 Jul 2006 02:15:11 +0000 (UTC) Cc: emacs-devel@gnu.org, Mathias Dahl Original-X-From: emacs-devel-bounces+ged-emacs-devel=m.gmane.org@gnu.org Fri Jul 28 04:15:06 2006 Return-path: Envelope-to: ged-emacs-devel@m.gmane.org Original-Received: from lists.gnu.org ([199.232.76.165]) by ciao.gmane.org with esmtp (Exim 4.43) id 1G6Hrw-0001pw-D9 for ged-emacs-devel@m.gmane.org; Fri, 28 Jul 2006 04:14:28 +0200 Original-Received: from localhost ([127.0.0.1] helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1G6Hrv-0000LE-O0 for ged-emacs-devel@m.gmane.org; Thu, 27 Jul 2006 22:14:27 -0400 Original-Received: from mailman by lists.gnu.org with tmda-scanned (Exim 4.43) id 1G6Hrj-0000Ku-NE for emacs-devel@gnu.org; Thu, 27 Jul 2006 22:14:15 -0400 Original-Received: from exim by lists.gnu.org with spam-scanned (Exim 4.43) id 1G6Hri-0000Ke-Jj for emacs-devel@gnu.org; Thu, 27 Jul 2006 22:14:15 -0400 Original-Received: from [199.232.76.173] (helo=monty-python.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1G6Hri-0000Kb-Et for emacs-devel@gnu.org; Thu, 27 Jul 2006 22:14:14 -0400 Original-Received: from [192.65.95.54] (helo=mailwasher-b.lanl.gov) by monty-python.gnu.org with esmtps (TLS-1.0:DHE_RSA_AES_256_CBC_SHA:32) (Exim 4.52) id 1G6Hta-0007Dm-Lw; Thu, 27 Jul 2006 22:16:11 -0400 Original-Received: from mailrelay3.lanl.gov (mailrelay3.lanl.gov [128.165.4.104]) by mailwasher-b.lanl.gov (8.13.6/8.13.6/(ccn-5)) with ESMTP id k6S2EAWp020095; Thu, 27 Jul 2006 20:14:11 -0600 Original-Received: from webmail1.lanl.gov (webmail1.lanl.gov [128.165.4.106]) by mailrelay3.lanl.gov (8.13.6/8.13.6/(ccn-5)) with ESMTP id k6S2EAsT016765; Thu, 27 Jul 2006 20:14:10 -0600 Original-Received: from webmail1.lanl.gov (localhost.localdomain [127.0.0.1]) by webmail1.lanl.gov (8.12.11.20060308/8.12.11) with ESMTP id k6S2EACo002420; Thu, 27 Jul 2006 20:14:10 -0600 Original-Received: (from apache@localhost) by webmail1.lanl.gov (8.12.11.20060308/8.12.11/Submit) id k6S2EAbR002418; Thu, 27 Jul 2006 19:14:10 -0700 X-Authentication-Warning: webmail1.lanl.gov: apache set sender to herring@lanl.gov using -f Original-Received: from 128.165.123.18 (SquirrelMail authenticated user 196434); by webmail.lanl.gov with HTTP; Thu, 27 Jul 2006 19:14:10 -0700 (PDT) In-Reply-To: Original-To: "Richard M. Stallman" User-Agent: SquirrelMail/1.4.3a-11.EL3 X-Mailer: SquirrelMail/1.4.3a-11.EL3 X-Priority: 3 (Normal) Importance: Normal X-PMX-Version: 4.7.1.128075 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:57708 Archived-At: ------=_20060727191410_93913 Content-Type: text/plain; charset="iso-8859-1" Content-Transfer-Encoding: 8bit > To develop a general macro for this would be useful. It is not a > trivial thing. Please start working on it if you want. The case of > just examining a file without altering it, since that is more common, > and easier. I suspect that we may need two totally different macros > for the read-only case and the case of altering the file. I've implemented a first draft of this, complete with file-writing capacity in the same macro: see the attached file and please comment. (In particular, is there a clean way to silence `save-buffer' or the equivalent?) I still don't quite have papers, but I am led to believe that it will happen Real Soon Now; since this isn't going into this release AFAIK, I hope that's not a problem. Davis -- This product is sold by volume, not by mass. If it appears too dense or too sparse, it is because mass-energy conversion has occurred during shipping. ------=_20060727191410_93913 Content-Type: application/octet-stream; name="with-file.el" Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="with-file.el" KHB1dCAnaGlkZS1tZXNzYWdlICdsaXNwLWluZGVudC1mdW5jdGlvbiAwKQooZGVmbWFjcm8gaGlk ZS1tZXNzYWdlICgmcmVzdCBib2R5KQoJIkV4ZWN1dGUgQk9EWSwgdGhlbiByZXN0b3JlIHRoZSBw cmV2aW91cyBjb250ZW50cyBvZiB0aGUgZWNobyBhcmVhLgpNZXNzYWdlcyBwcm9kdWNlZCBieSBC T0RZIGFyZSBub3QgbG9nZ2VkLiIKCShsZXQgKChwbS1zeW0gKG1ha2Utc3ltYm9sICJwcmV2LW1z ZyIpKSkKCQlgKGxldCAoKCxwbS1zeW0gKGN1cnJlbnQtbWVzc2FnZSkpIG1lc3NhZ2UtbG9nLW1h eCkKCQkJICxAYm9keQoJCQkgKG1lc3NhZ2UgLHBtLXN5bSkpKSkKCihwdXQgJ3dpdGgtZmlsZSAn bGlzcC1pbmRlbnQtZnVuY3Rpb24gNCkKKGRlZm1hY3JvIHdpdGgtZmlsZSAoZmlsZSB2aXNpdCBy ZXVzZSB3cml0ZSAmcmVzdCBib2R5KQoJIkV4ZWN1dGUgdGhlIGZvcm1zIGluIEJPRFkgaW4gYSBi dWZmZXIgd2l0aCBGSUxFJ3MgdGV4dCBsb2FkZWQuClBvaW50IGJlZ2lucyBhdCB0aGUgYmVnaW5u aW5nIG9mIHRoZSBidWZmZXIsIHdoaWNoIGlzIG5vdCBuYXJyb3dlZC4KVGhlIHZhbHVlIHJldHVy bmVkIGlzIHRoZSB2YWx1ZSBvZiB0aGUgbGFzdCBmb3JtIGluIEJPRFkuCgpWSVNJVCB0IG1lYW5z IGFjdHVhbGx5IHZpc2l0IHRoZSBmaWxlLCBsb2FkaW5nIGl0cyBhcHByb3ByaWF0ZSBtYWpvciBt b2RlIGFuZApsb2NhbCB2YXJpYWJsZXMgYW5kIHN1Y2guICBWSVNJVCBuaWwgbWVhbnMgZG8gbm9u ZSBvZiB0aGVzZSB0aGluZ3M7IEJPRFkgd2lsbApiZSBleGVjdXRlZCBpbiBhIGJ1ZmZlciB3aXRo IHRoZSBjb250ZW50cyBvZiBGSUxFIGJ1dCB0aGF0IGlzIHZpc2l0aW5nIG5vCmZpbGUuICBBbnkg b3RoZXIgdmFsdWUgZm9yIFZJU0lUIHdvcmtzIGxpa2UgbmlsIGV4Y2VwdCB0aGF0IHRoZSBmaWxl IGlzIHJlYWQKbGl0ZXJhbGx5IChzZWUgYGluc2VydC1maWxlLWNvbnRlbnRzLWxpdGVyYWxseScp LgoKUkVVU0Ugbm9uLW5pbCBtZWFucyB0byB1c2UgYW4gZXhpc3RpbmcgYnVmZmVyIGlmIGl0IGlz IHZpc2l0aW5nIEZJTEUuICAoVGhlCnZhbHVlIG9mIGBmaW5kLWZpbGUtZXhpc3Rpbmctb3RoZXIt bmFtZScgYWZmZWN0cyB0aGlzIGRldGVybWluYXRpb24uKSAgVGhlCmJ1ZmZlciB3aWxsIG9ubHkg YmUgcmUtdXNlZCBpZiBpdHMgbGl0ZXJhbCBzdGF0dXMgKHNlZSBgZmluZC1maWxlLWxpdGVyYWxs eScpCm1hdGNoZXMgdGhlIGxpdGVyYWwgc3RhdHVzIHJlcXVlc3RlZCBieSBWSVNJVC4gIE5vdGUg dGhhdCByZXVzaW5nIGEgYnVmZmVyIG1heQptZWFuIHRoYXQgdGhlIHRleHQgb24gd2hpY2ggQk9E WSBvcGVyYXRlcyBkaWZmZXJzIGZyb20gdGhlIGFjdHVhbCBjb250ZW50cyBvZgpGSUxFLgoKV1JJ VEUgbm9uLW5pbCBtZWFucyB0byBtb2RpZnkgdGhlIGZpbGU7IGlmIHRoZSBCT0RZIGZpbmlzaGVz IG5vcm1hbGx5LCB0aGVuCnRoZSBidWZmZXIgaXMgc2F2ZWQgaWYgdGhlIGZpbGUgd2FzIHZpc2l0 ZWQgb3Igd3JpdHRlbiBvdGhlcndpc2UuICBJZiBXUklURSBpcwpuZWl0aGVyIHQgbm9yIG5pbCwg c2F2aW5nIG1lc3NhZ2VzIGFyZSBzdXBwcmVzc2VkLiAgVGhlIGJ1ZmZlciB3aWxsIGJlCnJlYWQt b25seSB3aGVuIEJPRFkgaXMgZXhlY3V0ZWQgaWZmIFdSSVRFIGlzIG5pbC4KCklmIGEgYnVmZmVy IGlzIGNyZWF0ZWQgaW4gdGhlIGV4ZWN1dGlvbiBvZiB0aGlzIG1hY3JvLCBpdCBpcyBraWxsZWQg d2hlbiBpdApmaW5pc2hlcyAoZXZlbiBpbiB0aGUgY2FzZSBvZiBhYm5vcm1hbCBleGl0KSwgcmVn YXJkbGVzcyBvZiBhbnkgdW5zYXZlZApjaGFuZ2VzIG1hZGUuIgoJKGxldCAoKGZpbGUtc3ltICht YWtlLXN5bWJvbCAiZmlsZSIpKQoJCQkJKHZpc2l0LXN5bSAobWFrZS1zeW1ib2wgInZpc2l0Iikp CgkJCQkocmF3LXN5bSAobWFrZS1zeW1ib2wgInJhdyIpKQoJCQkJKHJldXNlLXN5bSAobWFrZS1z eW1ib2wgInJldXNlIikpCgkJCQkod3JpdGUtc3ltIChtYWtlLXN5bWJvbCAid3JpdGUiKSkKCQkJ CShxdWlldC1zeW0gKG1ha2Utc3ltYm9sICJxdWlldCIpKQogICAgICAgIChleHRhbnQtc3ltICht YWtlLXN5bWJvbCAiZXh0YW50IikpCiAgICAgICAgKGV4dGFudC1maWxlLXN5bSAobWFrZS1zeW1i b2wgImV4dGFudC1maWxlIikpCiAgICAgICAgKGJ1Zi1zeW0gKG1ha2Utc3ltYm9sICJidWYiKSkK CQkJCShyZXVzZWQtc3ltIChtYWtlLXN5bWJvbCAicmV1c2VkIikpCgkJCQkoYnJvLXN5bSAobWFr ZS1zeW1ib2wgImJ1Zi1yZWFkb25seSIpKSkKCQlgKGxldCogKCgsZmlsZS1zeW0gLGZpbGUpCgkJ CQkJCSgsdmlzaXQtc3ltICx2aXNpdCkKCQkJCQkJKCxyYXctc3ltIChhbmQgLHZpc2l0LXN5bSAo bm90IChlcSAsdmlzaXQtc3ltIHQpKSkpCgkJCQkJCSgscmV1c2Utc3ltICxyZXVzZSkKCQkJCQkJ KCx3cml0ZS1zeW0gLHdyaXRlKQoJCQkJCQkoLHF1aWV0LXN5bSAoYW5kICx3cml0ZS1zeW0gKG5v dCAoZXEgLHdyaXRlLXN5bSB0KSkpKQoJCQkJCQkoLGV4dGFudC1zeW0gKGlmIGZpbmQtZmlsZS1l eGlzdGluZy1vdGhlci1uYW1lCgkJCQkJCQkJCQkJCQkJIChmaW5kLWJ1ZmZlci12aXNpdGluZyAs ZmlsZS1zeW0pCgkJCQkJCQkJCQkJCQkgKGdldC1maWxlLWJ1ZmZlciAsZmlsZS1zeW0pKSkKCQkJ CQkJKCxleHRhbnQtZmlsZS1zeW0gKGFuZCAsZXh0YW50LXN5bSAoYnVmZmVyLWZpbGUtbmFtZSAs ZXh0YW50LXN5bSkpKQoJCQkJCQkoLGJ1Zi1zeW0KCQkJCQkJIChvciAoYW5kICxyZXVzZS1zeW0g LGV4dGFudC1zeW0KCQkJCQkJCQkJCQkoZXEgKG5vdCAod2l0aC1jdXJyZW50LWJ1ZmZlciAsZXh0 YW50LXN5bQoJCQkJCQkJCQkJCQkJCQkJIGZpbmQtZmlsZS1saXRlcmFsbHkpKQoJCQkJCQkJCQkJ CQkJKG5vdCAscmF3LXN5bSkpCgkJCQkJCQkJCQkJLGV4dGFudC1zeW0pCgkJCQkJCQkJIChpZiAo ZXEgLHZpc2l0LXN5bSB0KQoJCQkJCQkJCQkJIChwcm9nbgoJCQkJCQkJCQkJCSA7OyBXZSBuZWVk IHRvIHByZXRlbmQgdGhhdCBhbnkgb3RoZXIgdmlzaXRpbmcgYnVmZmVyCgkJCQkJCQkJCQkJIDs7 IGRvZXNuJ3QgYWN0dWFsbHkgZXhpc3QuCgkJCQkJCQkJCQkJIChpZiAsZXh0YW50LXN5bQoJCQkJ CQkJCQkJCQkJICh3aXRoLWN1cnJlbnQtYnVmZmVyICxleHRhbnQtc3ltCgkJCQkJCQkJCQkJCQkJ IChzZXRxIGJ1ZmZlci1maWxlLW5hbWUgbmlsKSkpCgkJCQkJCQkJCQkJIChmaW5kLWZpbGUtbm9z ZWxlY3QgLGZpbGUtc3ltIHQpKQoJCQkJCQkJCQkgKHdpdGgtY3VycmVudC1idWZmZXIgKGdlbmVy YXRlLW5ldy1idWZmZXIgIip3aXRoLWZpbGUqIikKCQkJCQkJCQkJCSAoaWYgKGVxICx2aXNpdC1z eW0gbmlsKQoJCQkJCQkJCQkJCQkgKGluc2VydC1maWxlLWNvbnRlbnRzICxmaWxlLXN5bSkKCQkJ CQkJCQkJCQkgKGluc2VydC1maWxlLWNvbnRlbnRzLWxpdGVyYWxseSAsZmlsZS1zeW0pKQoJCQkJ CQkJCQkJIChjdXJyZW50LWJ1ZmZlcikpKSkpCgkJCQkJCSgscmV1c2VkLXN5bSAoZXEgLGJ1Zi1z eW0gLGV4dGFudC1zeW0pKQoJCQkJCQkoLGJyby1zeW0gKHdpdGgtY3VycmVudC1idWZmZXIgLGJ1 Zi1zeW0gYnVmZmVyLXJlYWQtb25seSkpKQoJCQkgKHdpdGgtY3VycmVudC1idWZmZXIgLGJ1Zi1z eW0KCQkJCSAodW53aW5kLXByb3RlY3QKCQkJCQkJIChzYXZlLWV4Y3Vyc2lvbgoJCQkJCQkJIChz YXZlLXJlc3RyaWN0aW9uCgkJCQkJCQkJICh3aWRlbikKCQkJCQkJCQkgKGdvdG8tY2hhciAocG9p bnQtbWluKSkKCQkJCQkJCQkgOzsgV2UgZG9uJ3QganVzdCBsZXQtYmluZCBidWZmZXItcmVhZC1v bmx5IGJlY2F1c2UgdGhhdAoJCQkJCQkJCSA7OyBpbnRlcmFjdHMgcG9vcmx5IHdpdGggc3dpdGNo aW5nIGJ1ZmZlcnMuCgkJCQkJCQkJIChzZXRxIGJ1ZmZlci1yZWFkLW9ubHkgKG5vdCAsd3JpdGUt c3ltKSkKCQkJCQkJCQkgKHByb2cxIChzYXZlLWN1cnJlbnQtYnVmZmVyICxAYm9keSkKCQkJCQkJ CQkJIChhbmQgKGJ1ZmZlci1saXZlLXAgLGJ1Zi1zeW0pICx3cml0ZS1zeW0KCQkJCQkJCQkJCQkJ KGlmIChvciAscmV1c2VkLXN5bSAoZXEgLHZpc2l0LXN5bSB0KSkKCQkJCQkJCQkJCQkJCQkoaWYg LHF1aWV0LXN5bSAoaGlkZS1tZXNzYWdlIChzYXZlLWJ1ZmZlcikpCgkJCQkJCQkJCQkJCQkJCShz YXZlLWJ1ZmZlcikpCgkJCQkJCQkJCQkJCQkobGV0ICgoY29kaW5nLXN5c3RlbS1mb3Itd3JpdGUK CQkJCQkJCQkJCQkJCQkJCSAoaWYgLHJhdy1zeW0gJ25vLWNvbnZlcnNpb24KCQkJCQkJCQkJCQkJ CQkJCQkgY29kaW5nLXN5c3RlbS1mb3Itd3JpdGUpKSkKCQkJCQkJCQkJCQkJCQkod2lkZW4pCgkJ CQkJCQkJCQkJCQkJKHdyaXRlLXJlZ2lvbiAocG9pbnQtbWluKSAocG9pbnQtbWF4KSAsZmlsZS1z eW0gbmlsCgkJCQkJCQkJCQkJCQkJCQkJCQkJCShpZiAscXVpZXQtc3ltICdsYW1iZGEpKSkpKSkp KQoJCQkJCSAod2hlbiAoYnVmZmVyLWxpdmUtcCAsYnVmLXN5bSkKCQkJCQkJIChzZXRxIGJ1ZmZl ci1yZWFkLW9ubHkgLGJyby1zeW0pCgkJCQkJCSAodW5sZXNzICxyZXVzZWQtc3ltCgkJCQkJCQkg KHNldC1idWZmZXItbW9kaWZpZWQtcCBuaWwpCgkJCQkJCQkgKGtpbGwtYnVmZmVyIG5pbCkpKQoJ CQkJCSAod2hlbiAoYnVmZmVyLWxpdmUtcCAsZXh0YW50LXN5bSkKCQkJCQkJICh3aXRoLWN1cnJl bnQtYnVmZmVyICxleHRhbnQtc3ltCgkJCQkJCQkgKHNldHEgYnVmZmVyLWZpbGUtbmFtZSAsZXh0 YW50LWZpbGUtc3ltKSkpKSkpKSkKCihkZWZ1biB3aXRoLWZpbGUtdGVzdCAoZmlsZSBhcmcpCgki VGVzdCBgd2l0aC1maWxlJyBieSBpbnNlcnRpbmcgYXQgdGhlIGJlZ2lubmluZyBvZiBGSUxFLgpV c2UgJ3NpbGVudCB3aXRoIHByZWZpeCBBUkcuICBVc2UgJ3JhdyB3aXRoIHR3byBDLXUncy4iCgko aW50ZXJhY3RpdmUgImZcblAiKQoJKHdpdGgtZmlsZSBmaWxlIChpZiAoZXF1YWwgYXJnICcoMTYp KSAncmF3IHQpIG5pbCAoaWYgYXJnICdzaWxlbnQgdCkKCQkoaW5zZXJ0ICJmb29cbiIpCgkJOzsg UHJpbnQgc29tZSBtdWx0aWJ5dGUgc3R1ZmYgdG8gZGVtb25zdHJhdGUgdGhlIGFjdGlvbiBvZiBs aXRlcmFsIG1vZGUuCgkJKG1lc3NhZ2UgIiVTIiAoYW5kIChyZS1zZWFyY2gtZm9yd2FyZCAiW15c MC1cZF0iIG5pbCB0KQoJCQkJCQkJCQkJCSAobWF0Y2gtc3RyaW5nIDApKSkpKQo= ------=_20060727191410_93913 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 ------=_20060727191410_93913--