From mboxrd@z Thu Jan 1 00:00:00 1970 X-Msuck: nntp://news.gmane.io/gmane.comp.tex.context/78336 Path: news.gmane.org!not-for-mail From: Sietse Brouwer Newsgroups: gmane.comp.tex.context Subject: Exploring the Lua innards of ConTeXt: showtable Date: Mon, 17 Sep 2012 17:47:47 +0200 Message-ID: Reply-To: mailing list for ConTeXt users NNTP-Posting-Host: plane.gmane.org Mime-Version: 1.0 Content-Type: multipart/mixed; boundary=14dae9340b453028f004c9e7b3da X-Trace: ger.gmane.org 1347896900 7785 80.91.229.3 (17 Sep 2012 15:48:20 GMT) X-Complaints-To: usenet@ger.gmane.org NNTP-Posting-Date: Mon, 17 Sep 2012 15:48:20 +0000 (UTC) To: mailing list for ConTeXt users Original-X-From: ntg-context-bounces@ntg.nl Mon Sep 17 17:48:24 2012 Return-path: Envelope-to: gctc-ntg-context-518@m.gmane.org Original-Received: from balder.ntg.nl ([195.12.62.10]) by plane.gmane.org with esmtp (Exim 4.69) (envelope-from ) id 1TDdYc-00062H-Ch for gctc-ntg-context-518@m.gmane.org; Mon, 17 Sep 2012 17:48:22 +0200 Original-Received: from localhost (localhost [127.0.0.1]) by balder.ntg.nl (Postfix) with ESMTP id BDD7E101E0; Mon, 17 Sep 2012 17:48:17 +0200 (CEST) X-Virus-Scanned: Debian amavisd-new at balder.ntg.nl Original-Received: from balder.ntg.nl ([127.0.0.1]) by localhost (balder.ntg.nl [127.0.0.1]) (amavisd-new, port 10024) with LMTP id 58ZIcOaKbros; Mon, 17 Sep 2012 17:48:15 +0200 (CEST) Original-Received: from balder.ntg.nl (localhost [IPv6:::1]) by balder.ntg.nl (Postfix) with ESMTP id 6B184101E6; Mon, 17 Sep 2012 17:48:15 +0200 (CEST) Original-Received: from localhost (localhost [127.0.0.1]) by balder.ntg.nl (Postfix) with ESMTP id 1E529101E6 for ; Mon, 17 Sep 2012 17:48:14 +0200 (CEST) X-Virus-Scanned: Debian amavisd-new at balder.ntg.nl Original-Received: from balder.ntg.nl ([127.0.0.1]) by localhost (balder.ntg.nl [127.0.0.1]) (amavisd-new, port 10024) with LMTP id jeZIb6XYKFGG for ; Mon, 17 Sep 2012 17:48:13 +0200 (CEST) Original-Received: from filter4-til.mf.surf.net (filter4-til.mf.surf.net [194.171.167.220]) by balder.ntg.nl (Postfix) with ESMTP id 1FD35101E0 for ; Mon, 17 Sep 2012 17:48:13 +0200 (CEST) Original-Received: from mail-ie0-f169.google.com (mail-ie0-f169.google.com [209.85.223.169]) by filter4-til.mf.surf.net (8.14.3/8.14.3/Debian-9.4) with ESMTP id q8HFm8UV021283 for ; Mon, 17 Sep 2012 17:48:12 +0200 Original-Received: by ied10 with SMTP id 10so2428937ied.14 for ; Mon, 17 Sep 2012 08:48:07 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=mime-version:from:date:message-id:subject:to:content-type; bh=KWx+6wz0tFFL5sXjV/Y8CBFwsEF/xPheYdP7BZYOxks=; b=YiQhqS3lY2xAanlLamK9sy0wGVdx0oijT/8KEifLqrU6Cl8E2eX8sUJf38KWndhE/h vfaT6b5TXqXnjVGZgjvCgzYy9I8tvkZfq8FmrcBv5VfZm0NuCXnj3iLwZjxOTKXM6P3F bzGbYftnQ10lYRw4FuBu96nn0H93kpSOgAOGNoO3Yk0ijVM8HxF4dnJm1Wmto2PBwRYM ijFk90PNHQSR43j73AGHNHiVlDtmL7zSuhbgasgiAd9dgbW1uDYxu5+dxnY7UEuYnHhs vdWXabCiRgal2dga8ZJv3NtUHWIHVIGSVZh6EHs5NQQDTeNt9Ggv1asvWu8kIOLTNutJ hePw== Original-Received: by 10.50.195.134 with SMTP id ie6mr7371625igc.28.1347896887748; Mon, 17 Sep 2012 08:48:07 -0700 (PDT) Original-Received: by 10.64.86.201 with HTTP; Mon, 17 Sep 2012 08:47:47 -0700 (PDT) X-Bayes-Prob: 0.0286 (Score 0, tokens from: @@RPTN) X-CanIt-Geo: ip=209.85.223.169; country=US; region=CA; city=Mountain View; postalcode=94043; latitude=37.4192; longitude=-122.0574; metrocode=807; areacode=650; http://maps.google.com/maps?q=37.4192,-122.0574&z=6 X-CanItPRO-Stream: uu:ntg-context@ntg.nl (inherits from uu:default, base:default) X-Canit-Stats-ID: 0VI0fM8JI - 1649944392b0 - 20120917 (trained as not-spam) X-Scanned-By: CanIt (www . roaringpenguin . com) on 194.171.167.220 X-BeenThere: ntg-context@ntg.nl X-Mailman-Version: 2.1.14 Precedence: list List-Id: mailing list for ConTeXt users List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: ntg-context-bounces@ntg.nl Original-Sender: ntg-context-bounces@ntg.nl Xref: news.gmane.org gmane.comp.tex.context:78336 Archived-At: --14dae9340b453028f004c9e7b3da Content-Type: text/plain; charset=UTF-8 Hi all, ConTeXt mkiv stores all sorts of things in Lua tables, but 'what goes where' does not tend to be documented. So here is a function to print out a table's contents to get something like the following excerpt. The excerpt is from the output of `userdata.showtable(structures.lists)` in a document with three \placefigures and one \placeformula. Note the reference in T.cached.1.references.reference, and the caption in T.cached.1.titledata.title (T stands for the table yone passed to showtables); and note how the tables of figures 2 and 3 are not printed, because they follow the same pattern as table 1. (You can tell showtable to print everything, natch.) T.addto : function: 0xa4c8818 T.analyze : function: 0xb1c27b0 T.cached : table: 0xb1c2240 T.cached.1 : table: 0xc3f7b18 T.cached.1.metadata : table: 0xc3f7d58 T.cached.1.metadata.kind : float T.cached.1.metadata.name : figure T.cached.1.prefixdata : table: 0xc3f7c68 T.cached.1.prefixdata.connector : . T.cached.1.prefixdata.prefix : no T.cached.1.references : table: 0xc3f7ba8 T.cached.1.references.reference : ref:asdf T.cached.1.titledata : table: 0xc3f7b40 T.cached.1.titledata.title : caption 1 T.cached.2 : table: 0xc467bb8 (like T.cached.1) T.cached.3 : table: 0xc4731a8 (like T.cached.1) T.cached.4 : table: 0xc47c988 T.cached.4.metadata : table: 0xc47d628 T.cached.4.metadata.kind : formula T.cached.4.metadata.name : formula (You can't see it in this e-mail, but the colons of entries in the same subtable nicely line up with each other.) Usage: put showtable.lua in your working directory and run the following code: \starttext % \placefigure[][ref:asdf]{caption 1}{picture 1} \startluacode require('showtable') userdata.showtable(structures.lists) \stopluacode \stoptext Extra options can be passed as part of an options table. (This allows overriding one option without respecifying the others.) userdata.showtable( structures.lists, { everything=true, -- descend even into similar-looking siblings tablename='S.L' } ) Output is printed to the terminal, alas, because I couldn't discover how to print to the log. Anybody know anything about this? Hopefully this may be useful to someone, next time they they're hunting for something in the bowels of ConTeXt. Interesting tables to look at: * userdata.showtable(commands) contains a great miscellanea of helper commands * userdata.showtable(context) also contains a great miscellanea of commands * userdata.showtable(tex) seems to show lua access functions to some plain tex stuff * userdata.showtable(lxml) gives a list of lxml-related functions Cheers, Sietse --14dae9340b453028f004c9e7b3da Content-Type: application/octet-stream; name="showtable.lua" Content-Disposition: attachment; filename="showtable.lua" Content-Transfer-Encoding: base64 X-Attachment-Id: f_h77qplo71 LS0tLS0tLS0gR2VuZXJhbCBkZXNjcmlwdGlvbgoKLS0gVXNhZ2U6Ci0tIHUucHJpbnRfdGFibGUo Ci0tICAgICAgdGhldGFibGUsICAgLS0gVGhlIHRhYmxlIHRvIHByaW50LCBvbmUgbGluZSBwZXIg ZW50cnkKLS0gICAgICB7IHRhYmxlbmFtZSwgIC0tIEl0cyBuYW1lLCBpZiB5b3Ugd2FudCB0aGF0 IHByaW50ZWQgYXQgdGhlIHN0YXJ0Ci0tICAgICAgICBldmVyeXRoaW5nLCAtLSBXaGV0aGVyIHRv IGRlc2NlbmQgcmVwZWF0ZWRseSBpbnRvIHNpbWlsYXIgc3VidGFibGVzLgotLSAgICAgICAgICAg ICAgICAgICAgICAgRmFsc2UgYnkgZGVmYXVsdC4KLS0gICAgICAgIHN0YXR0ZXIsICAgIC0tIEEg ZnVuY3Rpb24gd2hpY2ggaXMgY2FsbGVkIG9uIGEgdGFibGUgYmVmb3JlCi0tICAgICAgICAgICAg ICAgICAgICAgICBwcmludGluZyBpdHMgZW50cnkgYW5kIHBvc3NpYmx5IGRlc2NlbmRpbmcgaW50 bwotLSAgICAgICAgICAgICAgICAgICAgICAgaXQuIERlZmF1bHRzIHRvIGBnZXRzdGF0cygpYCwg YnV0IHlvdSBjYW4gc3BlY2lmeQotLSAgICAgICAgICAgICAgICAgICAgICAgeW91ciBvd24gcGx1 Zy1pbiByZXBsYWNlbWVudC4gRXhwZWN0ZWQgdG8gcmV0dXJuCi0tICAgICAgICAgICAgICAgICAg ICAgICBhIHRhYmxlIGNvbnRhaW5pbmcgYXQgbGVhc3QgYG1heGtleWxlbmd0aGAsCi0tICAgICAg ICAgICAgICAgICAgICAgICBgc2lnbmF0dXJlYCwgYW5kIGBvcmRlcnRhYmxlYC4gVGhlIHN0YXRz IHRhYmxlIGlzCi0tICAgICAgICAgICAgICAgICAgICAgICBwYXNzZWQgdG8gdGhlIHByaW50ZXIg ZnVuY3Rpb24sIGFuZCBhbHNvIHRvIHRoZQotLSAgICAgICAgICAgICAgICAgICAgICAgZG9fcHJp bnRfdGFibGUgdGhhdCBkZXNjZW5kcyBpbnRvIHRoZSB0YWJsZS4KLS0gICAgICAgIHByaW50ZXIg ICAgIC0tIERlZmF1bHRzIHRvIGBwcmludGxpbmUoKWAuIFByaW50cyB0aGUgY3VycmVudCBsaW5l LAotLSAgICAgIH0gICAgICAgICAgICAgICAgb24gdGhlIGJhc2lzIG9mIGAoaywgdiwgcGF0aCwg c3RhdHNfb2Zfc2VsZiwKLS0gICAgICAgICAgICAgICAgICAgICAgIHN0YXRzX29mX3YsIGtub3du KWAuIGBrbm93bmAgd2lsbCBiZSB0cnVlIGlmIHYgaXMKLS0gICAgICAgICAgICAgICAgICAgICAg IGEgdGFibGUsIGFuZCB3ZSBoYXZlIHByZXZpb3VzbHkgc2VlbiBhIHNpYmxpbmcKLS0gICAgICAg ICAgICAgICAgICAgICAgIHRhYmxlIHdpdGggdGhlIHNhbWUgc2lnbmF0dXJlLgotLSApCgotLSBP dXRwdXQgaXMgc29tZXRoaW5nIGxpa2UgdGhlIGZvbGxvd2luZzoKLS0gVC5hYXAgICAgICAgICAg ICAgICAgIDogMQotLSBULmZ1bmN0aW9uOiAweDllMzlhNzggOiBuaWwKLS0gVC5rYXJvbHVzICAg ICAgICAgICAgIDogdGFibGU6IDB4OWUzZDIyOAotLSBULmthcm9sdXMuYWFwICAgICAgICAgICAg ICAgIDogZnVuY3Rpb246IDB4OWUzOTk5OAotLSBULmthcm9sdXMubm9vdCAgICAgICAgICAgICAg IDogOAotLSBULmthcm9sdXMud2ltcGpld2ltcGpld2ltcGplIDogampqampqCi0tIFQubm9vdCAg ICAgICAgICAgICAgICA6IDIKLS0gVC53b3J0ZWwgICAgICAgICAgICAgIDogdGFibGU6IDB4OWUz ZDBiMCAobGlrZSBULmthcm9sdXMpCgotLS0tLS0tLSBGdW5jdGlvbnMKCi0tIFRyYXZlcnNlIGEg dGFibGUgb25jZSwgYW5kIHJldHVybiBhIHRhYmxlIHdpdGggdGhlIGZvbGxvd2luZyBmaWVsZHM6 Ci0tICAgICAgYG1heGtleWxlbmd0aGA6IHRoZSBsb25nZXN0IGtleSBuYW1lIGluIHRoZSB0YWJs ZS4KLS0gICAgICBgc2lnbmF0dXJlYDogdXNlZCBieSBkb19wcmludF90YWJsZS4gSWYgdGhlIHNh bWUgc2lnbmF0dXJlIGlzCi0tICAgICAgICAgIGVuY291bnRlcmVkIHR3aWNlLCB0aGVuIHRoZSBz ZWNvbmQgdGltZSB0aGUgZGVmYXVsdAotLSAgICAgICAgICBiZWhhdmlvdXIgb2YgZG9fcHJpbnRf dGFibGUgaXMgdG8gbm90IGRlc2NlbmQuCi0tICAgICAgYG9yZGVydGFibGVgOiB1c2VkIGJ5IGRv X3ByaW50X3RhYmxlIHRvIHRyYXZlcnNlIG92ZXIgdGhlIHRoZSBrZXlzCi0tICAgICAgICAgIG9m IHRoZXRhYmxlIGluIChhbHBoYWJldGljYWwpIG9yZGVyCi0tCi0tIFRoZSB0YWJsZSBpcyBhbHNv IHBhc3NlZCB0byB0aGUgcHJpbnRlciBmdW5jdGlvbi4gKERlZmF1bHQgb25lIGlzCi0tIGBwcmlu dGxpbmVgLikgU28sIHlvdSBtYXkgc3BlY2lmeSBhbiBhbHRlcm5hdGl2ZSBwcmludGluZyBmdW5j dGlvbgotLSB0aGF0IGRlcGVuZHMgb24ga25vd2xlZGdlIG9mIG90aGVyIGZpZWxkcywgYW5kIHdy aXRlIGFuIGFsdGVybmF0aXZlCi0tIHRvIGdldHN0YXRzIHRoYXQgY29sbGVjdHMgdGhhdCBrbm93 bGVkZ2UgYW5kIHJldHVybnMgaXQgaW4gaXRzIHRhYmxlLgoKbG9jYWwgZnVuY3Rpb24gZ2V0c3Rh dHModGhldGFibGUpCiAgICBsb2NhbCBzaWduYXR1cmV0YWJsZSA9IHsgfQogICAgLS0gayBpcyBu b3Qgc29ydGFibGU7IHRvc3RyaW5nKGspIGlzLiBTbzogCiAgICAtLSBzdG9yZSB0aGUgc3RyaW5n IGluIG9yZGVydGFibGU7IAogICAgLS0gc3RvcmUgc3RyaW5nLT5vYmplY3QgbWFwcyBpbiBzdHJp bmdfb3JpZ190YWJsZTsKICAgIC0tIHNvcnQgdGhlIHN0cmluZ3MsIGFuZCBwdXQgYmFjayB0aGUg b2JqZWN0cwogICAgbG9jYWwgb3JkZXJ0YWJsZSA9IHsgfSAtLSBzdG9yZXMgdG9zdHJpbmcoayku IElzIHNvcnRhYmxlLgogICAgbG9jYWwgc3RyaW5nX29yaWdfdGFibGUgPSB7IH0gICAgLS0gbWFw cyB0b3N0cmluZyhrKSB0byBrLgogICAgbG9jYWwgbWF4a2V5bGVuZ3RoID0gMAoKICAgIGZvciBr LCB2IGluIHBhaXJzKHRoZXRhYmxlKSBkbwogICAgICAgIC0tIGdhdGhlciAna2V5OnR5cGUnIGZv ciB0aGUgc2lnbmF0dXJlcwogICAgICAgIHRhYmxlLmluc2VydChzaWduYXR1cmV0YWJsZSwgdG9z dHJpbmcoaykgLi4gJzonIC4uIHR5cGUodikpCiAgICAgICAgLS0gc3RvcmUgc3RyaW5ncyBmb3Ig c29ydGluZywgc3RyaW5nLT5vYmplY3QgZm9yIHJlcGxhY2luZwogICAgICAgIHRhYmxlLmluc2Vy dChvcmRlcnRhYmxlLCB0b3N0cmluZyhrKSkKICAgICAgICBzdHJpbmdfb3JpZ190YWJsZVt0b3N0 cmluZyhrKV0gPSBrCgogICAgICAgIC0tIHVwZGF0ZSBtYXhfa2V5X2xlbmd0aAogICAgICAgIGxv Y2FsIGwgPSBzdHJpbmcubGVuKHRvc3RyaW5nKGspKQogICAgICAgIGlmIG1heGtleWxlbmd0aCA8 IGwgdGhlbiBtYXhrZXlsZW5ndGggPSBsIGVuZAogICAgZW5kCgogICAgLS0gc29ydCB0aGUgc3Ry aW5ncywgdGhlbiBwdXQgYmFjayB0aGUgb2JqZWN0cy4KICAgIHRhYmxlLnNvcnQob3JkZXJ0YWJs ZSkKICAgIGZvciBpLCBrc3RyaW5nIGluIGlwYWlycyhvcmRlcnRhYmxlKSBkbwogICAgICAgIG9y ZGVydGFibGVbaV0gPSBzdHJpbmdfb3JpZ190YWJsZVtrc3RyaW5nXQogICAgZW5kCgogICAgLS0g dHVybiB0aGUgc2lnbmF0dXJlIHRhYmxlIGludG8gYSBwcm9wZXIgc2lnbmF0dXJlCiAgICB0YWJs ZS5zb3J0KHNpZ25hdHVyZXRhYmxlKQogICAgc2lnbmF0dXJlID0gdGFibGUuY29uY2F0KHNpZ25h dHVyZXRhYmxlLCAnLS0nKQoKICAgIC0tIHJldHVybiB0aGUgc3RhdGlzdGljcyB0YWJsZQogICAg cmV0dXJuKHsKICAgICAgICBzaWduYXR1cmUgPSBzaWduYXR1cmUsCiAgICAgICAgb3JkZXJ0YWJs ZSA9IG9yZGVydGFibGUsCiAgICAgICAgbWF4a2V5bGVuZ3RoID0gbWF4a2V5bGVuZ3RoCiAgICB9 KQplbmQKCi0tIEdpdmVuIGEga2V5IGFuZCBhIHZhbHVlLCBwbHVzIHNvbWUgZXh0cmEgaW5mbywg cHJldHR5LXByaW50IHRoZW0uCi0tIGs6IHRoZSBrZXkuIFJlcXVpcmVkLgotLSB2OiB0aGUgdmFs dWUuIFJlcXVpcmVkLgotLSBzdGF0c19vZl9zZWxmOiBSZXF1aXJlZC4gYSB0YWJsZSB0aGF0IGNv bnRhaW5zIHRoZXNlIGVudHJpZXM6IAotLSAgICAgbWF4a2V5bGVuZ3RoOiB0aGUgbGVuZ3RoIG9m IHRoZSBsb25nZXN0IGtleSBpbiB0aGUgdGFibGUgdGhhdAotLSAgICAgICAgICBjb250YWlucyBr IGFuZCBpdHMgc2libGluZ3MKLS0gICAgIGRlcHRoOiByZWN1cnNpb24gbGV2ZWwuIEluaXRpYWxs eSBsZXZlbCAwLgotLSAgICAgcGF0aDogSWYgayBpcyBhdCB0aGUudGFibGUuaywgdGhlIHBhdGgg aXMgInRoZS50YWJsZSIuCi0tIHN0YXRzX29mX3Y6IFJlcXVpcmVkIGlmIGtub3duID09IHRydWUu IE11c3QgY29udGFpbiB0aGVzZSBlbnRyaWVzOgotLSAgICAgIHNpbWlsYXJfc2libGluZwotLSBr bm93bjogd2hldGhlciBhIHNpbWlsYXIgc2libGluZyBleGlzdHMuIElmIHllcywgcHJpbnRsaW5l IHJlZmVycyB0bwotLSAgICAgIHRoYXQgc2liLgpsb2NhbCBmdW5jdGlvbiBwcmludGxpbmUoaywg diwgc3RhdHNfb2Zfc2VsZiwgc3RhdHNfb2Zfdiwga25vd24pCiAgICBwYXRoICAgICAgICAgPSBz dGF0c19vZl9zZWxmLnBhdGggb3IgJycKICAgIG1heGtleWxlbmd0aCA9IHN0YXRzX29mX3NlbGYu bWF4a2V5bGVuZ3RoCiAgICBrICAgICAgICAgICAgPSB0b3N0cmluZyhrKQogICAgdiAgICAgICAg ICAgID0gdG9zdHJpbmcodikKCiAgICBpZiBrbm93biB0aGVuCiAgICAgICAgdiA9IHRvc3RyaW5n KHYpIC4uICcgKGxpa2UgJyAuLiBzdGF0c19vZl92LnNpbWlsYXJfc2libGluZyAuLiAnKScgCiAg ICBlbmQKICAgIC0tIHN0YXRzLm1heGtleWxlbmd0aCA9IGxvbmdlc3Qga2V5IGluIGN1cnJlbnQg dgogICAgLS0gICAgICAgbWF4a2V5bGVuZ3RoID0gbG9uZ2VzdCBrZXkgYW1vbmcgayBhbmQgaXRz IHNpYmxpbmdzCiAgICBwYWRkaW5nID0gc3RyaW5nLnJlcCgnICcsIG1heGtleWxlbmd0aCAtIHN0 cmluZy5sZW4oaykpCiAgICBwcmludChwYXRoIC4uICcuJyAuLiBrIC4uIHBhZGRpbmcgLi4gJyA6 ICcgLi4gdikKZW5kCgotLSBQcmludCBhIHRhYmxlLCBvbmUgbGluZSBwZXIgZW50cnkuIElmIHRo ZSBlbnRyeSBpcyBpdHNlbGYgYSB0YWJsZSwKLS0gcmVjdXJzZSBpbnRvIGl0ICh1bmxlc3MgdGhl IHRhYmxlIGlzIGtub3duLCBhbmQgYGV2ZXJ5dGhpbmdgID0KLS0gYGZhbHNlYC4pCmxvY2FsIGZ1 bmN0aW9uIGRvX3ByaW50X3RhYmxlKHRoZXRhYmxlLCBzdGF0c19vZl9zZWxmLCAKICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgZXZlcnl0aGluZywgc3RhdHRlciwgcHJpbnRlcikKICAgIGxv Y2FsIHNldG9mY2hpbGRzaWdzID0geyB9CgogICAgLS0gVHJhdmVyc2UgdGhlIGVudHJpZXMgb2Yg dGhldGFibGUgaW4gYWxwaGFiZXRpY2FsIG9yZGVyCiAgICAtLSAoYWxwaGFiZXRpY2FsIG9yZGVy IGtpbmRseSBzdXBwbGllZCBieSBvcmRlcnRhYmxlKQogICAgZm9yIGksIGsgaW4gaXBhaXJzKHN0 YXRzX29mX3NlbGYub3JkZXJ0YWJsZSkgZG8KCiAgICAgICAgbG9jYWwgdiA9IHRoZXRhYmxlW2td CiAgICAgICAgLS0gaWYgaXQncyBhIHRhYmxlLCBkZWNpZGUgd2hldGhlciB0byBkZXNjZW5kOwog ICAgICAgIGlmIHR5cGUodikgPT0gInRhYmxlIiB0aGVuCiAgICAgICAgICAgIC0tIGNvbnN0cnVj dCB0aGUgc2lnbmF0dXJlCiAgICAgICAgICAgIGxvY2FsIHN0YXRzX29mX3YgPSBzdGF0dGVyKHYp CiAgICAgICAgICAgIC0tIEF0dGVudGlvbiEgVGhlIHN0YXRzIHRhYmxlIGFsc28gc3RvcmVzIHRo ZSB2YWx1ZXMKICAgICAgICAgICAgLS0gZGVwdGggYW5kIHBhdGgsIGFuZCBub3QganVzdCB3aGF0 IHRoZSBzdGF0dGVyIHJldHVybnMuCiAgICAgICAgICAgIHN0YXRzX29mX3YuZGVwdGggPSBzdGF0 c19vZl9zZWxmLmRlcHRoICsgMQogICAgICAgICAgICBzdGF0c19vZl92LnBhdGggID0gc3RhdHNf b2Zfc2VsZi5wYXRoIC4uICcuJyAuLiBrCgogICAgICAgICAgICAtLSBpZiB0aGUgc2lnIGlzIGtu b3duLCBhbmQgd2UgZG9uJ3QgcHJpbnQgZXZlcnl0aGluZywgCiAgICAgICAgICAgIC0tIHByaW50 ICd0aGUudGFibGUgOiAobGlrZSB0aGUuc2libGluZ3RhYmxlKScKICAgICAgICAgICAgaWYgc2V0 b2ZjaGlsZHNpZ3Nbc3RhdHNfb2Zfdi5zaWduYXR1cmVdIGFuZCAKICAgICAgICAgICAgICAgICAg ICBub3QgZXZlcnl0aGluZyB0aGVuCiAgICAgICAgICAgICAgICBzdGF0c19vZl92LnNpbWlsYXJf c2libGluZyA9IAogICAgICAgICAgICAgICAgICAgIHNldG9mY2hpbGRzaWdzW3N0YXRzX29mX3Yu c2lnbmF0dXJlXQogICAgICAgICAgICAgICAgcHJpbnRlcihrLCB2LCBzdGF0c19vZl9zZWxmLCBz dGF0c19vZl92LCB0cnVlKQoKICAgICAgICAgICAgLS0gZm9yIHVua25vd24gc2lncywgb3IgaWYg d2UgcHJpbnQgZXZlcnl0aGluZzogCiAgICAgICAgICAgIC0tIHJlY29yZCB0aGUgc2lnLCBwcmlu dCB0aGUgbGluZSwgYW5kIGRlc2NlbmQuCiAgICAgICAgICAgIGVsc2UKICAgICAgICAgICAgICAg IHNldG9mY2hpbGRzaWdzW3N0YXRzX29mX3Yuc2lnbmF0dXJlXSA9IAogICAgICAgICAgICAgICAg ICAgIHN0YXRzX29mX3NlbGYucGF0aCAuLiAnLicgLi4gawogICAgICAgICAgICAgICAgcHJpbnRl cihrLCB2LCBzdGF0c19vZl9zZWxmLCBzdGF0c19vZl92LCBmYWxzZSkKICAgICAgICAgICAgICAg IGRvX3ByaW50X3RhYmxlKAogICAgICAgICAgICAgICAgICAgIHYsIHN0YXRzX29mX3YsIAogICAg ICAgICAgICAgICAgICAgIGV2ZXJ5dGhpbmcsIHN0YXR0ZXIsIHByaW50ZXIKICAgICAgICAgICAg ICAgICkKICAgICAgICAgICAgZW5kCiAgICAgICAgLS0gZW5kIG9mIHRoZSAnaWYgaXQncyBhIHRh YmxlJyBibG9jawogICAgICAgIC0tIGlmIGl0J3Mgbm90IGEgdGFibGUsIHNpbXBseSBwcmludCBp dC4KICAgICAgICBlbHNlCiAgICAgICAgICAgIHByaW50ZXIoaywgdiwgc3RhdHNfb2Zfc2VsZiwg c3RhdHNfb2ZfdiwgZmFsc2UpCiAgICAgICAgZW5kCiAgICBlbmQgLS0gZW5kIGZvcgplbmQKCi0t IEZyb250LWVuZCB0aGF0IHRha2VzIGNhcmUgb2YgZGVmYXVsdCBvcHRpb25zLgotLSBzcGVjaWZ5 IGFuIG9wdGlvbiBsaWtlIHNvOgotLSBwcmludF90YWJsZShqYW4sIHtldmVyeXRoaW5nID0gdHJ1 ZX0pCmxvY2FsIGZ1bmN0aW9uIHByaW50X3RhYmxlKHRoZXRhYmxlLCBvcHRzKQogICAgbG9jYWwg b3B0cyA9IG9wdHMgb3IgeyB9CiAgICBsb2NhbCB0YWJsZW5hbWUgID0gb3B0cy50YWJsZW5hbWUg IG9yICdUJwogICAgbG9jYWwgZXZlcnl0aGluZyA9IG9wdHMuZXZlcnl0aGluZyBvciBmYWxzZQog ICAgbG9jYWwgc3RhdHRlciAgICA9IG9wdHMuc3RhdHRlciAgICBvciBnZXRzdGF0cwogICAgbG9j YWwgcHJpbnRlciAgICA9IG9wdHMucHJpbnRlciAgICBvciBwcmludGxpbmUKCiAgICBsb2NhbCBz dGF0cyA9IHN0YXR0ZXIodGhldGFibGUpCiAgICAtLSBBdHRlbnRpb24hIFRoZSBzdGF0cyB0YWJs ZSBhbHNvIHN0b3JlcyB0aGUgdmFsdWVzIGRlcHRoIGFuZCBwYXRoLAogICAgLS0gYW5kIG5vdCBq dXN0IHdoYXQgdGhlIHN0YXR0ZXIgcmV0dXJucy4KICAgIHN0YXRzLmRlcHRoID0gMAogICAgc3Rh dHMucGF0aCA9IHRhYmxlbmFtZQogICAgZG9fcHJpbnRfdGFibGUodGhldGFibGUsIHN0YXRzLCBl dmVyeXRoaW5nLCBzdGF0dGVyLCBwcmludGVyKQplbmQgICAgICAgICAgICAKCi0tLS0tLS0tIE1h a2UgaXQgYXZhaWxhYmxlCgp1c2VyZGF0YSA9IHVzZXJkYXRhIG9yIHsgfQp1c2VyZGF0YS5zaG93 dGFibGUgPSBwcmludF90YWJsZQoKLS0tLS0tLS0gVGVzdGluZyBjb2RlLCBmb3IgdGhlbSB3aGF0 IHdhbnQgaXQuCgotLVtbCiAgICBqYW4gPSB7IAogICAgICAgIGFhcCA9IDEsIAogICAgICAgIG5v b3QgPSAyLCAKICAgICAgICB3b3J0ZWwgPSB7IAogICAgICAgICAgICB3aW1wamV3aW1wamV3aW1w amUgPSAnYXNkZmprbCcsIAogICAgICAgICAgICBhYXAgPSBmdW5jdGlvbiAoeCkKICAgICAgICAg ICAgICBwcmludCAnYXNkZicKICAgICAgICAgICAgZW5kLCAgIAogICAgICAgICAgICBub290ID0g OAogICAgICAgIH0sCiAgICAgICAgWzk5OV0gPSAxMiwKICAgICAgICBrYXJvbHVzID0geyAKICAg ICAgICAgICAgd2ltcGpld2ltcGpld2ltcGplID0gJ2pqampqaicsIAogICAgICAgICAgICBhYXAg PSBmdW5jdGlvbiAoeCkKICAgICAgICAgICAgICAgIHByaW50ICdhc2RmJwogICAgICAgICAgICBl bmQsICAgCiAgICAgICAgICAgIG5vb3QgPSA4CiAgICAgICAgfQogICAgfQoKICAgIC0tIGtleXMg Y2FuIGJlIGZ1bmN0aW9ucyBvciBvYmplY3RzLCB0b28KICAgIHZlbnQgPSBmdW5jdGlvbih4KSBw cmludCgnamsnKSBlbmQKICAgIGphblt2ZW50XSA9IDY2CgogICAgdXNlcmRhdGEuc2hvd3RhYmxl KGphbikKICAgIHByaW50KCdcbj09PT1cbicpCiAgICB1c2VyZGF0YS5zaG93dGFibGUoamFuLCB7 ZXZlcnl0aGluZyA9IHRydWV9KQotLV1dCg== --14dae9340b453028f004c9e7b3da Content-Type: text/plain; charset="us-ascii" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Content-Disposition: inline ___________________________________________________________________________________ If your question is of interest to others as well, please add an entry to the Wiki! maillist : ntg-context@ntg.nl / http://www.ntg.nl/mailman/listinfo/ntg-context webpage : http://www.pragma-ade.nl / http://tex.aanhet.net archive : http://foundry.supelec.fr/projects/contextrev/ wiki : http://contextgarden.net ___________________________________________________________________________________ --14dae9340b453028f004c9e7b3da--