From mboxrd@z Thu Jan 1 00:00:00 1970 From: Seth Burleigh Subject: [babel] Painless integration of source blocks with language Date: Sat, 8 Jan 2011 16:29:44 -0600 Message-ID: Mime-Version: 1.0 Content-Type: multipart/mixed; boundary=0003255752528f5a2c04995d459e Return-path: Received: from [140.186.70.92] (port=60759 helo=eggs.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1PbhIC-0002X7-Ad for emacs-orgmode@gnu.org; Sat, 08 Jan 2011 17:29:49 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1PbhIA-0000cu-Qw for emacs-orgmode@gnu.org; Sat, 08 Jan 2011 17:29:48 -0500 Received: from mail-iw0-f169.google.com ([209.85.214.169]:58493) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1PbhIA-0000cP-Bo for emacs-orgmode@gnu.org; Sat, 08 Jan 2011 17:29:46 -0500 Received: by iwn40 with SMTP id 40so20289629iwn.0 for ; Sat, 08 Jan 2011 14:29:44 -0800 (PST) List-Id: "General discussions about Org-mode." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: emacs-orgmode-bounces+geo-emacs-orgmode=m.gmane.org@gnu.org Errors-To: emacs-orgmode-bounces+geo-emacs-orgmode=m.gmane.org@gnu.org To: emacs-orgmode@gnu.org --0003255752528f5a2c04995d459e Content-Type: multipart/alternative; boundary=0003255752528f5a2304995d459c --0003255752528f5a2304995d459c Content-Type: text/plain; charset=ISO-8859-1 Preface: I hope attachments show up, i dont know if they are allowed .... Im currently interested in using babel for a medium size clojure project. I think the below propositions would greatly benefit babel in accomplishing literate programming. First part of the proposal to make this painless: In a literate document, you might very well have small chunks of code for one ns scattered around and then finally combined using noweb into one file and tangle the output. Currently, keys like compile-file (C-c C-k), goto function definition (M-.), do not work at all in the source blocks. This is unfortunate, and makes life very painful. So, first we need to get these keys to work. Heres how it can possibly be done. Lets say we want to compile the code in block A. Block B uses noweb syntax to import block A, and then tangles to file src/B.clj. So we need to search for the presence of <> in a tangled code chunk , tangle the chunk to a file, go to the file buffer and position the cursor at the correct relative position, and then invoke the appropriate function (in this case, slime-compile-and-load-file). Ive attached two files which do this, the first one is an example org file in which you can use the compile keystrokes on (after opening a slime server for clojure). However, it doesnt position the cursor in the tangled file correctly, but this is not needed for compile/load file. Its not a very good implementation, but it works for this case. Also, it doesn't work when the indirect buffer created by C-c ' is open. The advantage of this method is that it can easily be generalized to any language, since the compiler gets what it expects - a file of code to operate on. Second part of proposal: Literate documents are good for documentation, but if you're the author, you dont need the documentation and it will certainly get in the way of you writing code to keep having to type C-c ' to open various chunks of code. Ideally, we would like to have our file of code (that is, the tangled file output for one ns in clojure) as the top buffer, and our documentation at the bottom. Changes to the code will automatically reflect itself in the documentation (after a save). In order to accomplish this, there has to be a method to map from tangled file line number, to the correct chunk name and line number in the .org file. This might be accomplished by tangling code like this: ;;#chunk-name ..code ;;# I think this would be much more natural than editing each chunk separately. Of course, the ;;# might become an annoyance, but im sure there might be a better way. With this mapping , we can develop the code until we get it right. Then we can hit a keystroke and have our documentation jump to the correct line number in the .org file, and then do all the documentation for that. With the line mapping ability also comes the ability to map errors in the line number to numbers in the org file. Although, this probably wouldn't be necessary, since we would be looking at the combined chunk file. Any thoughts/ideas how to implement this? --0003255752528f5a2304995d459c Content-Type: text/html; charset=ISO-8859-1 Content-Transfer-Encoding: quoted-printable
Preface: I hope attachments show up, i dont know if they are allowed .= ...

Im currently interested in using babel for a medium= size clojure project. I think the below propositions would greatly benefit= babel in accomplishing literate programming.

First part of the proposal to make this painless:

In a literate document, you might very well have small chunks of code fo= r one ns scattered around and then finally combined using noweb into one fi= le and tangle the output. Currently, keys like
compile-file (C-c C-k), goto function definition (M-.), do not work at= all in the source blocks. This is unfortunate, and makes life very painful= . So, first we need to get these keys to work. =A0
Heres how it can possibly be done.

Lets say = we want to compile the code in block A. Block B uses noweb syntax to import= block A, and then tangles to file src/B.clj. So we need to search for =A0t= he presence of <<A>> in a tangled code chunk , tangle the chunk= to a file, go to the file buffer and position the cursor at the correct re= lative position, and then invoke the appropriate function (in this case, sl= ime-compile-and-load-file).=A0

Ive attached two files which do this, the first on= e is an example org file in which you can use the compile keystrokes on (af= ter opening a slime server for clojure). However, it doesnt position the cu= rsor in the tangled file correctly, but this is not needed for compile/load= file. Its not a very good implementation, but it works for this case.=A0Al= so, it doesn't work when the indirect buffer created by C-c ' =A0is= open.=A0The advantage of this method is that it can easily be generalized = to any language, since the compiler gets what it expects - a file of code t= o operate on. =A0

Second part of proposal:

=
Literate documents are good for documentation, but if you're= the author, you dont need the documentation and it will certainly get in t= he way of you writing code to keep having to type C-c ' to open various= chunks=A0of code. Ideally, we would like to have our file of code (that is= , the tangled file output for one ns in clojure) as the top buffer, and our= documentation at the bottom. Changes to the code will automatically reflec= t itself in the documentation (after a save). In order to accomplish this, = there has to be a method to map from tangled file line number, to the corre= ct chunk name and line number in the .org file. This might be accomplished = by tangling code like this:
;;#chunk-name
..code
;;#

= I think this would be much more natural than editing each chunk separately.= Of course, the ;;# might become an annoyance, but im sure there might =A0b= e a better way.
With this mapping , we can develop the code until we get it right. The= n we can hit a keystroke and have our documentation jump to the correct lin= e number in the .org file, and then do all the documentation for that.=A0

With the line mapping ability also comes the ability to= map errors in the line number to numbers in the org file. Although, this p= robably wouldn't be necessary, since we would be looking at the combine= d chunk file.=A0


Any thoughts/ideas how to implement this= ?
--0003255752528f5a2304995d459c-- --0003255752528f5a2c04995d459e Content-Type: application/octet-stream; name="test.org" Content-Disposition: attachment; filename="test.org" Content-Transfer-Encoding: base64 X-Attachment-Id: f_gip35ozq0 IytyZXN1bHRzOnNpbGVudAojK25vd2ViOnllcyAKCiogRnVuY3Rpb25zCioqIEFkZApUaGlzIGlz IGEgZnVuY3Rpb24gd2hpY2ggYWRkcyBudW1iZXJzIHRvZ2V0aGVyIAojK3NyY25hbWU6YWRkCiMr YmVnaW5fc3JjIGNsb2p1cmUKICAoZGVmbiBhZGQgW2EgYl0KICAgICgrIGEgYikpCiMrZW5kX3Ny YwoqKiogVE9ETyBtYWtlIHdvcmsgd2l0aCBjb21wbGV4IG51bWJlcnMKKiogU3VidHJhY3QKVGhp cyBzdWJ0cmFjdHMgbnVtYmVycwojK3NyY25hbWU6c3VidHJhY3QKIytiZWdpbl9zcmMgY2xvanVy ZQogIChkZWZuIHN1YnRyYWN0IFthIGJdCiAgICAoLSBhIGIpKQojK2VuZF9zcmMKKioqIFRPRE8g Y29tcGxleCBudW1iZXJzCioqIE11bHRpcGx5CiMrc3JjbmFtZTptdWx0aXBseQojK2JlZ2luX3Ny YyBjbG9qdXJlCiAgKGRlZm4gbXVsdGlwbHkgW2EgYl0KICAgICgqIGEgYikpCiMrZW5kX3NyYwoq KiogVE9ETyBjb21wbGV4IG51bWJlcnMKKiogRGl2aWRlCiMrc3JjbmFtZTpkaXZpZGUKIytiZWdp bl9zcmMgY2xvanVyZQogIChkZWZuIGRpdmlkZSBbYSBiXSAgIAogICAgKC8gYSBiKSkKIytlbmRf c3JjCioqIEFsbCAKIytzcmNuYW1lOmFsbAojK2JlZ2luX3NyYyBjbG9qdXJlIDp0YW5nbGUgc3Jj L2Z1bmN0aW9ucy5jbGoKICAobnMgZnVuY3Rpb25zKSAKICA8PGFkZD4+IAogIDw8c3VidHJhY3Q+ PgogIDw8bXVsdGlwbHk+PiAgCiAgPDxkaXZpZGU+PgojK2VuZF9zcmMKIAoKCg== --0003255752528f5a2c04995d459e Content-Type: application/octet-stream; name="seth-obj-clj.el" Content-Disposition: attachment; filename="seth-obj-clj.el" Content-Transfer-Encoding: base64 X-Attachment-Id: f_gip35ros1 KHJlcXVpcmUgJ2NsKQoKOztVVElMUwooZGVmdW4gY2hhciAoaSBzdHIpCiAgImdldCBjaGFyIGF0 IGluZGV4IgogIChzdWJzdHJpbmcgc3RyIGkgKCsgaSAxKSkpCjs7Y2FudCBnZXQgbXVsdGlsaW5l IHJlZ2V4IHRvIHdvcmsgZm9yIHNvbWUgcmVhc29uLiBncnIKKGRlZnVuIHN0cmluZy10cmltLXJp Z2h0ICh0ZXN0LXN0cikKICAidHJpbSBhbGwgcmlnaHQgaGFuZCB3aGl0ZXNwYWNlLG5ld2xpbmVz IgogIChsZXQgKChwbGFjZSAoLSAobGVuZ3RoIHRlc3Qtc3RyKSAxKSkgKGNvbnRpbnVlIHQpKQog ICAgKHdoaWxlIGNvbnRpbnVlCiAgICAgIChsZXQgKChjIChjaGFyIHBsYWNlIHRlc3Qtc3RyKSkp IAoJKGlmIChvciAoZXF1YWxwIGMgIlxuIikKCQkoZXF1YWxwIGMgIlxyIikKCQkoZXF1YWxwIGMg IiAiKSkKCSAgICAoZGVjZiBwbGFjZSkKCSAgKHByb2duIChzZXRxIGNvbnRpbnVlIG5pbCkgKGlu Y2YgcGxhY2UpKSkgCgkoaWYgKD0gcGxhY2UgMCkgKHNldHEgY29udGludWUgbmlsKSkpKQogICAg KHN1YnN0cmluZyB0ZXN0LXN0ciAwIHBsYWNlKSkpCihkZWZtYWNybyB3aXRoLWZpbGUgKGZpbGUg JnJlc3QgYm9keSkKICAib3BlbiB1cCBmaWxlIGluIGEgYnVmZmVyLCBhbmQgc2V0IGN1cnJlbnQg YnVmZmVyIHRvIGl0IgogIGAod2l0aC1jdXJyZW50LWJ1ZmZlciAoZmluZC1maWxlLW5vc2VsZWN0 ICxmaWxlIHQpICxAYm9keSkpCihkZWZ1biBpbmZvICgmcmVzdCBhcmdzKQogICJtZXNzYWdlIHdo aWNoIHJldHVybnMgbmlsIgogIChhcHBseSAjJ21lc3NhZ2UgYXJncykKICBuaWwpCihkZWZtYWNy byBjb21tZW50ICgmcmVzdCBib2R5KSBuaWwpCihkZWZ1biBta2RpciAoZmlsZSkKICAiZ2l2ZW4g ZmlsZSBuYW1lLCBtYWtlIGEgZGlyZWN0b3J5IGlmIG5lZWRlZCIKICAgKGxldCAoKGRpciAoZmls ZS1uYW1lLWRpcmVjdG9yeSBmaWxlLW5hbWUpKSkKICAgICAoaWYgZGlyIChtYWtlLWRpcmVjdG9y eSBkaXIgdCkpKSkKOzs7CgooZGVmdW4gb2ItZXhwYW5kICgmb3B0aW9uYWwgYXJnIGluZm8gcGFy YW1zKQogICJFeHBhbmQgdGhlIGN1cnJlbnQgc291cmNlIGNvZGUgYmxvY2suCkV4cGFuZCBhY2Nv cmRpbmcgdG8gdGhlIHNvdXJjZSBjb2RlIGJsb2NrJ3MgaGVhZGVyCmFyZ3VtZW50cyBhbmQgcG9w IG9wZW4gdGhlIHJlc3VsdHMgaW4gYSBwcmV2aWV3IGJ1ZmZlci4KVHJpbXMgd2hpdGVzcGFjZXMg YXQgdGhlIHZlcnkgcmlnaHQgb2YgdGV4dCIKICAoaW50ZXJhY3RpdmUpIAogIChsZXQqICgoaW5m byAob3IgaW5mbyAob3JnLWJhYmVsLWdldC1zcmMtYmxvY2staW5mbykpKQogICAgICAgICAobGFu ZyAobnRoIDAgaW5mbykpCgkgKHBhcmFtcyAoc2V0ZiAobnRoIDIgaW5mbykKICAgICAgICAgICAg ICAgICAgICAgICAoc29ydCAob3JnLWJhYmVsLW1lcmdlLXBhcmFtcyAobnRoIDIgaW5mbykgcGFy YW1zKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgIChsYW1iZGEgKGVsMSBlbDIpIChzdHJp bmc8IChzeW1ib2wtbmFtZSAoY2FyIGVsMSkpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIChzeW1ib2wtbmFtZSAoY2FyIGVsMikpKSkpKSkKICAgICAg ICAgKGJvZHkgKHNldGYgKG50aCAxIGluZm8pCgkJICAgICAoaWYgKGFuZCAoY2RyIChhc3NvYyA6 bm93ZWIgcGFyYW1zKSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHN0cmluZz0gInll cyIgKGNkciAoYXNzb2MgOm5vd2ViIHBhcmFtcykpKSkKCQkJIChvcmctYmFiZWwtZXhwYW5kLW5v d2ViLXJlZmVyZW5jZXMgaW5mbykgKG50aCAxIGluZm8pKSkpCiAgICAgICAgIChjbWQgKGludGVy biAoY29uY2F0ICJvcmctYmFiZWwtZXhwYW5kLWJvZHk6IiBsYW5nKSkpCiAgICAgICAgIChleHBh bmRlZCAoZnVuY2FsbCAoaWYgKGZib3VuZHAgY21kKSBjbWQgJ29yZy1iYWJlbC1leHBhbmQtYm9k eTpnZW5lcmljKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgYm9keSBwYXJhbXMpKSkKICAg IChzdHJpbmctdHJpbS1yaWdodCBleHBhbmRlZCkpKQoKOztUT0RPOiBtb3JlIGVmZmljaWVudAoo ZGVmdW4gb2ItbmFtZSAoKQogIChudGggNCAob2ItaW5mbykpKQooZGVmdW4gb2ItaW5mbyAoKQog ICJyZXR1cm4gaW5mbywgbWFraW5nIHN1cmUgdG8gdHJpbSByaWdodCBoYW5kIHdoaXRlc3BhY2Vz LiBUaGUgcmVhc29uIHRvIHRyaW0gaXMgc28gdGhhdCAsIGluIHRoZSBpbmRpcmVjdCBtYWNybywg d2UgY2FuIHNlYXJjaCBmb3IgdGhlIGJlZ2lubmluZyBhbmQgZW5kCm9mIHRoZSBjaHVuay4gaSB3 YXMgZ2V0dGluZyBzb21lIHByb2JsZW1zIHdpdGggbmV3bGluZXMgYXQgdGhlIHZlcnkgZW5kIG1l c3NpbmcgdGhpbmdzIHVwIC0gc28gaSB0cmltbWVkIHRoZW0gYXdheS4gaW0gc3VyZSB0aGVyZXMg YSBiZXR0ZXIgd2F5LiIKICAobGV0ICgoaW5mbyAob3JnLWJhYmVsLWdldC1zcmMtYmxvY2staW5m bykpKQogICAgKGlmIGluZm8gYCgsKGZpcnN0IGluZm8pICwoc3RyaW5nLXRyaW0tcmlnaHQgKHNl Y29uZCBpbmZvKSkgLEAoY2RkciBpbmZvKSkpKSkKOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7 Ozs7Cjs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Cjs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7 Ozs7Ozs7CgooZGVmdW4gdGFuZ2xlLWNodW5rICh0YWcpCiAgImZpbmQgY29kZSBibG9jayB3aXRo IHRoZSB0YWc6IGlmIGZvdW5kLCB0YW5nbGUgaXQgdG8gZmlsZSIKICAobGV0KiAoKGNodW5rIChm aW5kLWNodW5rIHRhZykpCgkgKGZpbGUtbmFtZSAoZmlyc3QgY2h1bmspKSkKICAgICh3aGVuIGNo dW5rCiAgICAgIChpZiAoZmlsZS1leGlzdHMtcCBmaWxlLW5hbWUpIAoJICAoZGVsZXRlLWZpbGUg ZmlsZS1uYW1lKSkKICAgICAgKG1rZGlyIGZpbGUtbmFtZSkKICAgICAgKHdpdGgtdGVtcC1idWZm ZXIKCShpbnNlcnQgKHNlY29uZCBjaHVuaykpCgk7OyBXZSBhdm9pZCBhcHBlbmQtdG8tZmlsZSBh cyBpdCBkb2VzIG5vdCB3b3JrIHdpdGggdHJhbXAuCgkobGV0ICgoY29udGVudCAoYnVmZmVyLXN0 cmluZykpKQoJICAod2l0aC10ZW1wLWJ1ZmZlcgoJICAgIChnb3RvLWNoYXIgKHBvaW50LW1heCkp CgkgICAgKGluc2VydCBjb250ZW50KQoJICAgICh3cml0ZS1yZWdpb24gbmlsIG5pbCBmaWxlLW5h bWUpKSkpCiAgICAgIGNodW5rKSkpCgooZGVmdW4gZmluZC1jaHVuayAodGFnKQogICJmaW5kIHRo ZSBzcmMgYmxvY2sgd2l0aCB0aGUgYXBwcm9wcmlhdGUgdGFnIChpLmUuIHNyY25hbWUpIgogICh3 aGVuIHRhZwogICAgKGZsZXQgKChjaHVuayEgCgkgICAgKHRhZyBwcmV2KQoJICAgIChzYXZlLWV4 Y3Vyc2lvbgoJICAgICAgKGdvdG8tY2hhciAocG9pbnQtbWluKSkKCSAgICAgIChsZXQgKGNodW5r cykKCQkoaWYgKHJlLXNlYXJjaC1mb3J3YXJkIChmb3JtYXQgIjw8WyBcdF0qJXNbIFx0XSo+PiIg dGFnKSBuaWwgdCkKCQkgICAgKGxldCAoKGluZm8gKG9iLWluZm8pKSkKCQkgICAgICAoaWYgKG1l bWJlciBpbmZvIHByZXYpCgkJCSAgKG1lc3NhZ2UgIndoZW4gZmluZGluZyBjaHVuaywgaW5maW5p dGUgbG9vcCBkZXRlY3RlZCIpCgkJCShpZiAoYW5kIChlcXVhbHAgKGZpcnN0IGluZm8pICJjbG9q dXJlIikKCQkJCSBpbmZvIChub3QgKGVxdWFscCAibm8iCgkJCQkJCSAgIChjZHIgKGFzc29jIDp0 YW5nbGUgKHRoaXJkIGluZm8pKSkpKSkKCQkJICAgIChsaXN0IChjZHIgKGFzc29jIDp0YW5nbGUg KHRoaXJkIGluZm8pKSkKCQkJCSAgKG9iLWV4cGFuZCAoc2Vjb25kIGluZm8pKQoJCQkJICAocG9p bnQpKQoJCQkgIChjaHVuayEgKG9iLW5hbWUpIChhcHBlbmQgcHJldiAobGlzdCBpbmZvKSkpKSkp KSkpKSkKICAgICAgKGxldCAoKGluZm8gKG9iLWluZm8pKSkKCShpZiAobm90IChlcXVhbHAgIm5v IiAoY2RyIChhc3NvYyA6dGFuZ2xlICh0aGlyZCBpbmZvKSkpKSkKCSAgICAobGlzdCAoY2RyIChh c3NvYyA6dGFuZ2xlICh0aGlyZCBpbmZvKSkpCgkJICAob2ItZXhwYW5kIChzZWNvbmQgaW5mbykp CgkJICAocG9pbnQpKQkgIAoJICAoY2h1bmshIHRhZyBuaWwpKSkpKSkKCgoKKGRlZnVuIGluZGly ZWN0LWhlbHBlciAob3BlcmF0aW9uIHR5cGUpCiAgIkdpdmVuIHRoZSBvcGVyYXRpb24gYW5kIGxh bmd1YWdlIHR5cGUsIHJldHVybiBhIGxpc3Qgb2YgdGhlIGluZm8gZm9yIHRoZSB0YW5nbGVkIGNo dW5rLCB0aGUgdGFuZ2xlZCBjaHVuaywgYW5kIHRoZSBvcmlnaW5hbCB1bnRhbmdsZWQgc291cmNl IgogIChsZXQgKChpbmZvIChvYi1pbmZvKSkpCiAgICAod2hlbiAoZXF1YWxwIChmaXJzdCBpbmZv KSB0eXBlKQogICAgICAobGV0ICgoc3JjbmFtZSAob2ItbmFtZSkpCgkgICAgKHNyYy11bnRhbmds ZSAob2ItZXhwYW5kKSkpCgkoaWYgc3JjbmFtZQoJICAgIChsZXQgKChjaHVuayAodGFuZ2xlLWNo dW5rIHNyY25hbWUpKSkgCgkgICAgICAoaWYgY2h1bmsKCQkgIChsaXN0IGluZm8gY2h1bmsgc3Jj LXVudGFuZ2xlKQoJCShpbmZvICJjYW50ICVzIC0gY2h1bmsgbm90IGFzc29jaWF0ZWQgd2l0aCBm aWxlIiBvcGVyYXRpb24pIG5pbCkpCgkgIChpbmZvICJjYW50ICVzIC0gbm8gc3JjbmFtZSIgb3Bl cmF0aW9uKSkpKSkpCgooZGVmbWFjcm8qIGluZGlyZWN0ICgodHlwZSBvcGVyYXRpb24gY2h1bmsg IHN0YXJ0IGVuZCkgJnJlc3QgYm9keSkKICAobGV0ICgobHN0LWdlbiAoZ2Vuc3ltKSkgKG9yaWct c3RyIChnZW5zeW0pKSkKICAgIGAobGV0KiAoKCxsc3QtZ2VuIChpbmRpcmVjdC1oZWxwZXIgLG9w ZXJhdGlvbiAsdHlwZSkpCgkgICAgKCxvcmlnLXN0ciAoc2Vjb25kIChjZHIgLGxzdC1nZW4pKSkK CSAgICAoLGNodW5rIChzZWNvbmQgLGxzdC1nZW4pKSkKICAgICAgIChpZiAsY2h1bmsKCSAgICh3 aXRoLWZpbGUgKGZpcnN0ICxjaHVuaykKCQkgICAgICAoc2F2ZS1leGN1cnNpb24gKGdvdG8tY2hh ciAocG9pbnQtbWluKSkgKHNlYXJjaC1mb3J3YXJkICAsb3JpZy1zdHIpKQoJCSAgICAgIChsZXQg KCgsc3RhcnQgKG1hdGNoLWJlZ2lubmluZyAwKSkgKCxlbmQgKG1hdGNoLWVuZCAwKSkpCgkJCShw cm9nbiAsQGJvZHkpKSkpKSkpCihkZWZ1biBvYi1jbGotY29tcGlsZSAoKQogIChpbnRlcmFjdGl2 ZSkgCiAgKGluZGlyZWN0ICgiY2xvanVyZSIgImNvbXBpbGUiIGNodW5rIHN0YXJ0IGVuZCkKCSAg ICAoc2xpbWUtY29tcGlsZS1hbmQtbG9hZC1maWxlKSkpCgooZGVmdW4gb2ItY2xqLWxvYWQgKCkK ICAoaW50ZXJhY3RpdmUpCiAgKGluZGlyZWN0ICgiY2xvanVyZSIgImNvbXBpbGUiIGNodW5rIHN0 YXJ0IGVuZCkKCSAgICAoc2xpbWUtbG9hZC1maWxlIChidWZmZXItZmlsZS1uYW1lKSkpKQoKKGNv bW1lbnQKIChkZWZ1biBvYmotY2xqLXNsaW1lLWVkaXQtZGVmaW5pdGlvbiAoKSAKICAgKGludGVy YWN0aXZlKQogICAoaW5kaXJlY3QgKCJjbG9qdXJlIiAiZWRpdCBkZWZpbml0aW9uIiBjaHVuayBz dGFydCBlbmQgb2Zmc2V0KSA7O29uY2UgaSBjYW4gZ2V0IHRoZSBvZmZzZXQgb2YgdGhlIGN1cnNv ciB3aXRoaW4gdGhlIG9yaWdpbmFsIHNyYyBjaHVuawoJICAgICAoZ290by1jaGFyIG9mZnNldCkK CSAgICAgKHNsaW1lLWVkaXQtZGVmaW5pdGlvbikpKSkKCjs7VE9ETzogaWYgYmxvY2sgaXMgaW4g bGFuZ3VhZ2UgeCwgdXNlIHRoZSBiaW5kaW5ncyBmb3IgdGhhdCBsYW5ndWFnZSBhdXRvbWF0aWNh bGx5CihkZWZpbmUta2V5IG9yZy1tb2RlLW1hcCAoa2JkICJDLWMgQy1rIikgJ29iLWNsai1jb21w aWxlKQooZGVmaW5lLWtleSBvcmctbW9kZS1tYXAgKGtiZCAiQy1jIEMtbCIpICdvYi1jbGotbG9h ZCkK --0003255752528f5a2c04995d459e Content-Type: text/plain; charset="us-ascii" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Content-Disposition: inline _______________________________________________ Emacs-orgmode mailing list Please use `Reply All' to send replies to the list. Emacs-orgmode@gnu.org http://lists.gnu.org/mailman/listinfo/emacs-orgmode --0003255752528f5a2c04995d459e--