From mboxrd@z Thu Jan 1 00:00:00 1970 X-Msuck: nntp://news.gmane.io/gmane.comp.tex.context/62261 Path: news.gmane.org!not-for-mail From: =?ISO-8859-1?Q?Stefan_M=FCller?= Newsgroups: gmane.comp.tex.context Subject: Verbatim: Pascal pretty printer Date: Sat, 02 Oct 2010 23:10:59 +0200 Message-ID: <4CA79FE3.1090504@gmx.de> Reply-To: mailing list for ConTeXt users NNTP-Posting-Host: lo.gmane.org Mime-Version: 1.0 Content-Type: multipart/mixed; boundary="------------020106000500080205000804" X-Trace: dough.gmane.org 1286053939 7795 80.91.229.12 (2 Oct 2010 21:12:19 GMT) X-Complaints-To: usenet@dough.gmane.org NNTP-Posting-Date: Sat, 2 Oct 2010 21:12:19 +0000 (UTC) To: mailing list for ConTeXt users Original-X-From: ntg-context-bounces@ntg.nl Sat Oct 02 23:12:17 2010 Return-path: Envelope-to: gctc-ntg-context-518@m.gmane.org Original-Received: from balder.ntg.nl ([195.12.62.10]) by lo.gmane.org with esmtp (Exim 4.69) (envelope-from ) id 1P29NP-0007TD-P6 for gctc-ntg-context-518@m.gmane.org; Sat, 02 Oct 2010 23:12:15 +0200 Original-Received: from localhost (localhost [127.0.0.1]) by balder.ntg.nl (Postfix) with ESMTP id 77902CA6D1; Sat, 2 Oct 2010 23:12: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 UsLiyV1TBppc; Sat, 2 Oct 2010 23:12:11 +0200 (CEST) Original-Received: from balder.ntg.nl (localhost [127.0.0.1]) by balder.ntg.nl (Postfix) with ESMTP id 654E2CA6B0; Sat, 2 Oct 2010 23:12:11 +0200 (CEST) Original-Received: from localhost (localhost [127.0.0.1]) by balder.ntg.nl (Postfix) with ESMTP id 9829ECA6BB for ; Sat, 2 Oct 2010 23:12:08 +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 k3XwHVEzUq1f for ; Sat, 2 Oct 2010 23:11:56 +0200 (CEST) Original-Received: from filter4-ams.mf.surf.net (filter4-ams.mf.surf.net [192.87.102.72]) by balder.ntg.nl (Postfix) with ESMTP id DA258CA6B0 for ; Sat, 2 Oct 2010 23:11:56 +0200 (CEST) Original-Received: from mail.gmx.net (mailout-de.gmx.net [213.165.64.22]) by filter4-ams.mf.surf.net (8.14.3/8.14.3/Debian-5+lenny1) with SMTP id o92LBtCg016743 for ; Sat, 2 Oct 2010 23:11:56 +0200 Original-Received: (qmail invoked by alias); 02 Oct 2010 21:11:55 -0000 Original-Received: from 77-64-199-171.dynamic.primacom.net (EHLO [192.168.100.108]) [77.64.199.171] by mail.gmx.net (mp030) with SMTP; 02 Oct 2010 23:11:55 +0200 X-Authenticated: #11064435 X-Provags-ID: V01U2FsdGVkX19LCJhg9i5LoAVeGfgZHWDz8rAW5eTFwpsyOzWlVn aOjbhszXxJI3+e User-Agent: Mozilla/5.0 (Windows; U; Windows NT 6.0; en-US; rv:1.9.2.9) Gecko/20100915 Thunderbird/3.1.4 X-Y-GMX-Trusted: 0 X-Bayes-Prob: 0.0001 (Score 0, tokens from: @@RPTN) X-CanIt-Geo: ip=213.165.64.22; country=DE; latitude=51.0000; longitude=9.0000; http://maps.google.com/maps?q=51.0000,9.0000&z=6 X-CanItPRO-Stream: uu:ntg-context@ntg.nl (inherits from uu:default, base:default) X-Canit-Stats-ID: 03DdVbUC4 - 0db12d7ebf3d - 20101002 X-Scanned-By: CanIt (www . roaringpenguin . com) on 192.87.102.72 X-BeenThere: ntg-context@ntg.nl X-Mailman-Version: 2.1.12 Precedence: list List-Id: mailing list for ConTeXt users List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Original-Sender: ntg-context-bounces@ntg.nl Errors-To: ntg-context-bounces@ntg.nl Xref: news.gmane.org gmane.comp.tex.context:62261 Archived-At: This is a multi-part message in MIME format. --------------020106000500080205000804 Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit Hi list, I wrote a custom pretty printer (verbatim) for Free Pascal/Turbo Pascal/Delphi source files. It's attached to this mail together with a ConTeXt test files that shows the features and some special cases. The pretty printer can handle: reserved words (bold) {...}-, (*...*)- and //...-style comments {$...} compiler directives '...' strings embedded assembler code (asm ... end) It's based on the Lazarus IDE syntax highlighter (Free Pascal IDE), which should be pretty Delphi-like. The main difference to Lazarus highlighting is that comments are not bold, but slanted. That looks much better when no colors are used. I'm not experienced in Lua programming, but I hope there are no major issues. I'd really appreciate any feedback: comments, suggestions and corrections (if necessary). I hope that eventually the Pascal pretty printer can make it's way into the ConTeXt distribution. Best wishes, Stefan. PS: Thanks for the Lua pretty printer, which served as a good starting point. --------------020106000500080205000804 Content-Type: text/plain; name="pret-pas.lua" Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="pret-pas.lua" aWYgbm90IG1vZHVsZXMgdGhlbiBtb2R1bGVzID0geyB9IGVuZCBtb2R1bGVzIFsncHJldC1w YXMnXSA9IHsNCiAgICB2ZXJzaW9uICAgPSAxLjAsDQogICAgY29tbWVudCAgID0gImN1c3Rv bSBwcmV0dHkgcHJpbnRlciBmb3IgUGFzY2FsIGNvZGUiLA0KICAgIGF1dGhvciAgICA9ICJT dGVmYW4gTcO8bGxlciwgQ2hlbW5pdHogREUiLA0KICAgIGNvcHlyaWdodCA9ICJTdGVmYW4g TcO8bGxlciIsDQogICAgbGljZW5zZSAgID0gInNlZSBjb250ZXh0IHJlbGF0ZWQgcmVhZG1l IGZpbGVzIg0KfQ0KDQotLSBUaGUgY29kZSBmb3JtYXR0aW5nIGlzIGFkYXB0ZWQgZnJvbSBM YXphcnVzLCBhIEZyZWUgUGFzY2FsIFJBRCBJREUsIHdoaWNoDQotLSBzaG91bGQgYmUgcXVp dGUgc2ltaWxhciB0byB0aGUgRGVscGhpIHN0eWxlLiBQbGVhc2Ugbm90ZSB0aGF0IGNvbW1l bnRzIGFyZQ0KLS0gbm90IHR5cGVzZXQgd2l0aCBib2xkIGZvbnRmYWNlIGJ1dCBzbGFudGVk LCB3aGljaCBpbXByb3ZlcyBvdXRwdXQgd2hlbiBub3QNCi0tIHVzaW5nIGNvbG9ycy4NCi0t IGh0dHA6Ly9sYXphcnVzLmZyZWVwYXNjYWwub3JnLw0KDQpsb2NhbCB2aXN1YWxpemVyID0g YnVmZmVycy5uZXd2aXN1YWxpemVyKCJwYXMiKQ0KDQotLSBUaGUgbGlzdCBvZiByZXNlcnZl ZCB3b3JkcyBpcyB0YWtlbiBmcm9tIA0KLS0gaHR0cDovL3d3dy5mcmVlcGFzY2FsLm9yZy9k b2NzLWh0bWwvcmVmL3JlZnNlMy5odG1sDQp2aXN1YWxpemVyLnJlc2VydmVkd29yZHMgPSB7 DQoJLS0gVHVyYm8gUGFzY2FsDQoJImFic29sdXRlIiwgImFuZCIsICJhcnJheSIsICJhc20i LCAiYmVnaW4iLCAiY2FzZSIsICJjb25zdCIsICJjb25zdHJ1Y3RvciIsDQoJImRlc3RydWN0 b3IiLCAiZGl2IiwgImRvIiwgImRvd250byIsICJlbHNlIiwgImVuZCIsICJmaWxlIiwgImZv ciIsDQoJImZ1bmN0aW9uIiwgImdvdG8iLCAiaWYiLCAiaW1wbGVtZW50YXRpb24iLCAiaW4i LCAiaW5oZXJpdGVkIiwgImlubGluZSIsDQoJImludGVyZmFjZSIsICJsYWJlbCIsICJtb2Qi LCAibmlsIiwgIm5vdCIsICJvYmplY3QiLCAib2YiLCAib24iLCAib3BlcmF0b3IiLA0KCSJv ciIsICJwYWNrZWQiLCAicHJvY2VkdXJlIiwgInByb2dyYW0iLCAicmVjb3JkIiwgInJlaW50 cm9kdWNlIiwgInJlcGVhdCIsDQoJInNlbGYiLCAic2V0IiwgInNobCIsICJzaHIiLCAic3Ry aW5nIiwgInRoZW4iLCAidG8iLCAidHlwZSIsICJ1bml0IiwNCgkidW50aWwiLCAidXNlcyIs ICJ2YXIiLCAid2hpbGUiLCAid2l0aCIsICJ4b3IiLA0KDQoJLS0gRnJlZSBQYXNjYWwNCgkt LSB0aGVzZSBhcmUgbm90IGJvbGQgdHlwZSAoa2VlcGluZyB0aGVtLCBqdXN0IGluIGNhc2Up DQoJLS0gImRpc3Bvc2UiLCAiZXhpdCIsICJmYWxzZSIsICJuZXciLCAidHJ1ZSIsDQoNCgkt LSBPYmplY3QgUGFzY2FsDQogICAgImFzIiwgImNsYXNzIiwgImRpc3BpbnRlcmZhY2UiLCAi ZXhjZXB0IiwgImV4cG9ydHMiLCAiZmluYWxpemF0aW9uIiwNCgkiZmluYWxseSIsICJpbml0 aWFsaXphdGlvbiIsICJpbmxpbmUiLCAiaXMiLCAibGlicmFyeSIsICJvbiIsICJvdXQiLA0K CSJwYWNrZWQiLCAicHJvcGVydHkiLCAicmFpc2UiLCAicmVzb3VyY2VzdHJpbmciLCAidGhy ZWFkdmFyIiwgInRyeSIsDQoNCgktLSBNb2RpZmllcnMNCgktLSBzb21lIG9mIHRoZXNlIGFy ZSBvbmx5IGJvbGQgaW4gc3BlY2lmaWMgcGxhY2VzIChpbiB0aGUgZm9sbG93aW5nLCB0aGlz IGlzDQoJLS0gZGVsaWJlcmF0ZWx5IGlnbm9yZWQpDQoJImFic29sdXRlIiwgImFic3RyYWN0 IiwgImFsaWFzIiwgImFzc2VtYmxlciIsICJjZGVjbCIsICJjcHBkZWNsIiwgImRlZmF1bHQi LA0KCSJleHBvcnQiLCAiZXh0ZXJuYWwiLCAiZmFyIiwgImZhcjE2IiwgImZvcndhcmQiLCAi aW5kZXgiLCAibG9jYWwiLCAibmFtZSIsIA0KCSJuZWFyIiwgIm5vc3RhY2tmcmFtZSIsICJv bGRmcGNjYWxsIiwgIm92ZXJyaWRlIiwgInBhc2NhbCIsICJwcml2YXRlIiwNCgkicHJvdGVj dGVkIiwgInB1YmxpYyIsICJwdWJsaXNoZWQiLCAicmVhZCIsICJyZWdpc3RlciIsICJyZWlu dHJvZHVjZSIsDQoJInNhZmVjYWxsIiwgInNvZnRmbG9hdCIsICJzdGRjYWxsIiwgInZpcnR1 YWwiLCAid3JpdGUiDQp9DQoNCmxvY2FsIGtub3duX3dvcmRzID0geyB9DQoNCmZvciBrLHYg aW4gbmV4dCwgdmlzdWFsaXplci5yZXNlcnZlZHdvcmRzIGRvDQogICAga25vd25fd29yZHNb dl0gPSBrDQplbmQNCg0KbG9jYWwgY29sb3JzID0gew0KICAgICJwcmV0dHlvbmUiLCAtLSBy ZWQ6IGNvbXBpbGVyIGRpcmVjdGl2ZSwgc3ltYm9sDQogICAgInByZXR0eXR3byIsIC0tIGdy ZWVuOiBhc3NlbWJsZXIgKGRhcmsgZ3JlZW4pDQogICAgInByZXR0eXRocmVlIiwgLS0gYmx1 ZTogY29tbWVudCwgbnVtYmVyIChkYXJrIGJsdWUpDQogICAgInByZXR0eWZvdXIiLCAtLSB5 ZWxsb3cNCn0NCg0KbG9jYWwgcmVzZXJ2ZWRfc3R5bGUgPSAiXHtcXGJmICINCmxvY2FsIGNv bW1lbnRfc3R5bGUgPSAiXHtcXHNsICINCg0KbG9jYWwgaW5sb25nY29tbWVudCwgaW5sb25n Y29tbWVudF9hbHQsIGluY29tcGRpcmVjLCBpbmFzbSA9IGZhbHNlLCAwLCBmYWxzZSwgZmFs c2UNCg0KbG9jYWwgZnVuY3Rpb24gZmx1c2hfcGFzX3dvcmQod29yZCwgc3RhdGUpDQogICAg aWYgd29yZCB0aGVuDQoJCWxvY2FsIGx3b3JkID0gc3RyaW5nLmxvd2VyKHdvcmQpDQogICAg ICAgIGxvY2FsIGlkID0ga25vd25fd29yZHNbbHdvcmRdDQogICAgICAgIGlmIGlkIHRoZW4N CgkJCWlmIGluYXNtIGFuZCAobHdvcmQgPT0gImVuZCIpIHRoZW4NCgkJCQktLSBhc20gbW9k ZSBlbmRzDQoJCQkJc3RhdGUgPSBidWZmZXJzLmZpbmlzaHN0YXRlKHN0YXRlKQ0KCQkJCWlu YXNtID0gZmFsc2UNCgkJCQlwcmludCgibGVhdmUgYXNtIikNCgkJCWVuZA0KCQkJaWYgbm90 IGluYXNtIHRoZW4NCgkJCQl0ZXguc3ByaW50KHRleC5jdHhjYXRjb2RlcywgcmVzZXJ2ZWRf c3R5bGUpDQoJCQkJdGV4LndyaXRlKHdvcmQpDQoJCQkJdGV4LnNwcmludCh0ZXguY3R4Y2F0 Y29kZXMsICJcfSIpDQoJCQkJaWYgbHdvcmQgPT0gImFzbSIgdGhlbg0KCQkJCQktLSBhc20g bW9kZSBiZWdpbnMNCgkJCQkJcHJpbnQoImVudGVyIGFzbSIpDQoJCQkJCWluYXNtID0gdHJ1 ZQ0KCQkJCQlzdGF0ZSA9IGJ1ZmZlcnMuY2hhbmdlc3RhdGUoMiwgc3RhdGUpDQoJCQkJZW5k DQoJCQllbHNlDQoJCQkJdGV4LndyaXRlKHdvcmQpDQoJCQllbmQNCiAgICAgICAgZWxzZQ0K ICAgICAgICAgICAgdGV4LndyaXRlKHdvcmQpDQogICAgICAgIGVuZA0KICAgIGVuZA0KCXJl dHVybiBzdGF0ZQ0KZW5kDQoNCmxvY2FsIGZ1bmN0aW9uIGZsdXNoX3doYXRldmVyKHN0cikN CglpZiBzdHIgdGhlbg0KCQlmb3IgYyBpbiBzdHJpbmcudXRmY2hhcmFjdGVycyhzdHIpIGRv DQoJCQlpZiBjID09ICIgIiB0aGVuDQoJCQkJdGV4LnNwcmludCh0ZXguY3R4Y2F0Y29kZXMs ICJcXG9icyIpDQoJCQllbHNlaWYgYyA9PSAiXHQiIHRoZW4NCgkJCQl0ZXguc3ByaW50KHRl eC5jdHhjYXRjb2RlcywgIlxcb2JzIikNCgkJCQlpZiBidWZmZXJzLnZpc3VhbGl6ZXJzLmVu YWJsZXRhYiB0aGVuDQoJCQkJCXRleC5zcHJpbnQodGV4LmN0eGNhdGNvZGVzLHJlcCgiXFxv YnMgIiwgYnVmZmVycy52aXN1YWxpemVycy50YWJsZW5ndGgpKQ0KCQkJCWVuZA0KCQkJZWxz ZQ0KCQkJCXRleC53cml0ZShjKTsNCgkJCWVuZA0KCQllbmQNCgllbmQNCmVuZA0KDQpmdW5j dGlvbiB2aXN1YWxpemVyLnJlc2V0KCkNCiAgICBpbmxvbmdjb21tZW50LCBpbmxvbmdjb21t ZW50X2FsdCwgaW5jb21wZGlyZWMsIGluYXNtID0gZmFsc2UsIDAsIGZhbHNlLCBmYWxzZQ0K ZW5kDQoNCmZ1bmN0aW9uIHZpc3VhbGl6ZXIuZmx1c2hfbGluZShzdHIsIG5lc3RlZCkNCiAg ICBsb2NhbCBzdGF0ZSA9IDAKCWxvY2FsIGluY29tbWVudCwgaW5zdHJpbmcgPSBmYWxzZSwg ZmFsc2UNCgktLWxvY2FsIGNvZGUsIGNvbW1lbnQgPSBuaWwsIG5pbA0KICAgIGJ1ZmZlcnMu Y3VycmVudGNvbG9ycyA9IGNvbG9ycw0KDQoJaWYgaW5sb25nY29tbWVudCBvciAoaW5sb25n Y29tbWVudF9hbHQgPT0gMikgb3IgaW5jb21wZGlyZWMgdGhlbg0KCQlpbmNvbW1lbnQgPSB0 cnVlDQoJCWlmIGluY29tcGRpcmVjIHRoZW4NCgkJCXN0YXRlID0gYnVmZmVycy5jaGFuZ2Vz dGF0ZSgxLCBzdGF0ZSkNCgkJZWxzZQ0KCQkJc3RhdGUgPSBidWZmZXJzLmNoYW5nZXN0YXRl KDMsIHN0YXRlKQ0KCQllbmQNCgkJdGV4LnNwcmludCh0ZXguY3R4Y2F0Y29kZXMsIGNvbW1l bnRfc3R5bGUpDQoJZWxzZWlmIGluYXNtIHRoZW4NCgkJc3RhdGUgPSBidWZmZXJzLmNoYW5n ZXN0YXRlKDIsIHN0YXRlKQ0KCWVuZA0KCQ0KCWxvY2FsIGMsIHdvcmQgPSBuaWwsIG5pbA0K CWZvciBuZXh0YyBpbiBzdHJpbmcudXRmY2hhcmFjdGVycyhzdHIgLi4gIiAiKSBkbw0KCQlp ZiBjIHRoZW4NCgkJCWlmIGluc3RyaW5nIHRoZW4NCgkJCQlpZiBjID09ICInIiB0aGVuDQoJ CQkJCS0tIHN0cmluZyBlbmRzDQoJCQkJCXRleC53cml0ZShjKQ0KCQkJCQlzdGF0ZSA9IGJ1 ZmZlcnMuZmluaXNoc3RhdGUoc3RhdGUpDQoJCQkJCWluc3RyaW5nID0gZmFsc2UNCgkJCQll bHNlDQoJCQkJCS0tIGluc2lkZSB0aGUgc3RyaW5nDQoJCQkJCWZsdXNoX3doYXRldmVyKGMp DQoJCQkJZW5kDQoJCQllbHNlaWYgaW5jb21tZW50IHRoZW4NCgkJCQlpZiAoKGlubG9uZ2Nv bW1lbnQgb3IgaW5jb21wZGlyZWMpIGFuZCAoYyA9PSAifSIpKQ0KCQkJCW9yIChpbmxvbmdj b21tZW50X2FsdCA9PSAxKSB0aGVuDQoJCQkJCS0tIGxvbmcgY29tbWVudC8oYWx0ZXJuYXRp dmUpL2NvbXBpbGVyIGRpcmVjdGl2ZSBlbmRzDQoJCQkJCXRleC53cml0ZShjKQ0KCQkJCQl0 ZXguc3ByaW50KHRleC5jdHhjYXRjb2RlcywgIlx9IikNCgkJCQkJaWYgaW5hc20gdGhlbg0K CQkJCQkJLS0gcmVzdW1lIHRvIGFzbSBtb2RlDQoJCQkJCQlzdGF0ZSA9IGJ1ZmZlcnMuY2hh bmdlc3RhdGUoMiwgc3RhdGUpDQoJCQkJCWVsc2UNCgkJCQkJCXN0YXRlID0gYnVmZmVycy5m aW5pc2hzdGF0ZShzdGF0ZSkNCgkJCQkJZW5kDQoJCQkJCWluY29tcGRpcmVjID0gZmFsc2UN CgkJCQkJaW5sb25nY29tbWVudCA9IGZhbHNlDQoJCQkJCWlubG9uZ2NvbW1lbnRfYWx0ID0g MA0KCQkJCQlpbmNvbW1lbnQgPSBmYWxzZQ0KCQkJCWVsc2VpZiAoaW5sb25nY29tbWVudF9h bHQgPT0gMikgYW5kIChjID09ICIqIikgYW5kIChuZXh0YyA9PSAiKSIpIHRoZW4NCgkJCQkJ LS0gbG9uZyBjb21tZW50IChhbHRlcm5hdGl2ZSkgZW5kcyBhZnRlciBuZXh0Yw0KCQkJCQl0 ZXgud3JpdGUoYykNCgkJCQkJaW5sb25nY29tbWVudF9hbHQgPSAxDQoJCQkJZWxzZQ0KCQkJ CQktLSBpbnNpZGUgdGhlIGNvbW1lbnQNCgkJCQkJZmx1c2hfd2hhdGV2ZXIoYykNCgkJCQll bmQNCgkJCWVsc2VpZiBzdHJpbmcuZmluZChjLCAiXlslYV9dJCIpIHRoZW4NCgkJCQktLSBj aGFyIGJlbG9uZ3MgdG8gaWRlbnRpZmllcg0KCQkJCWlmIHdvcmQgdGhlbg0KCQkJCQl3b3Jk ID0gd29yZCAuLiBjDQoJCQkJZWxzZQ0KCQkJCQl3b3JkID0gYw0KCQkJCWVuZA0KCQkJZWxz ZWlmIHN0cmluZy5maW5kKGMsICJeWyVkXSQiKSB0aGVuDQoJCQkJaWYgd29yZCBhbmQgKCN3 b3JkID4gMSkgdGhlbg0KCQkJCQktLSBudW1iZXIsIHRoYXQgYmVsb25ncyB0byBpZGVudGlm aWVyDQoJCQkJCXdvcmQgPSB3b3JkIC4uIGMNCgkJCQllbHNlDQoJCQkJCWlmIG5vdCBpbmFz bSB0aGVuDQoJCQkJCQktLSBudW1iZXIKCQkJCQkJc3RhdGUgPSBidWZmZXJzLmNoYW5nZXN0 YXRlKDMsIHN0YXRlKQ0KCQkJCQllbmQKCQkJCQl0ZXgud3JpdGUoYykNCgkJCQllbmQNCgkJ CWVsc2UNCgkJCQlpZiBub3QgaW5hc20gdGhlbgoJCQkJCXN0YXRlID0gYnVmZmVycy5maW5p c2hzdGF0ZShzdGF0ZSkNCgkJCQllbmQKCQkJCS0tIGlkZW50aWZpZXIgY29tcGxldGUsIGNo ZWNrIGlmIGl0J3MgYSByZXNlcnZlZCB3b3JkIGFuZCBmbHVzaAoJCQkJc3RhdGUgPSBmbHVz aF9wYXNfd29yZCh3b3JkLCBzdGF0ZSkNCgkJCQl3b3JkID0gbmlsDQoJCQkJaWYgYyA9PSAi ICIgdGhlbg0KCQkJCQl0ZXguc3ByaW50KHRleC5jdHhjYXRjb2RlcywgIlxcb2JzIikNCgkJ CQllbHNlaWYgYyA9PSAiXHQiIHRoZW4NCgkJCQkJdGV4LnNwcmludCh0ZXguY3R4Y2F0Y29k ZXMsICJcXG9icyIpDQoJCQkJCWlmIGJ1ZmZlcnMudmlzdWFsaXplcnMuZW5hYmxldGFiIHRo ZW4NCgkJCQkJCXRleC5zcHJpbnQodGV4LmN0eGNhdGNvZGVzLHJlcCgiXFxvYnMgIiwgYnVm ZmVycy52aXN1YWxpemVycy50YWJsZW5ndGgpKQ0KCQkJCQllbmQNCgkJCQllbHNlaWYgYyA9 PSAiJyIgdGhlbg0KCQkJCQlpZiBub3QgaW5hc20gdGhlbg0KCQkJCQkJLS0gc3RyaW5nIGJl Z2lucw0KCQkJCQkJaW5zdHJpbmcgPSB0cnVlDQoJCQkJCQlzdGF0ZSA9IGJ1ZmZlcnMuY2hh bmdlc3RhdGUoMywgc3RhdGUpDQoJCQkJCWVuZA0KCQkJCQl0ZXgud3JpdGUoYykNCgkJCQll bHNlaWYgKGMgPT0gIi8iKSBhbmQgKG5leHRjID09ICIvIikgdGhlbgoJCQkJCS0tIG9uZS1s aW5lIGNvbW1lbnQgYmVnaW5zCgkJCQkJaW5jb21tZW50ID0gdHJ1ZQoJCQkJCXN0YXRlID0g YnVmZmVycy5jaGFuZ2VzdGF0ZSgzLCBzdGF0ZSkKCQkJCQl0ZXguc3ByaW50KHRleC5jdHhj YXRjb2RlcywgY29tbWVudF9zdHlsZSkKCQkJCQl0ZXgud3JpdGUoYykNCgkJCQllbHNlaWYg YyA9PSAieyIgdGhlbg0KCQkJCQlpbmNvbW1lbnQgPSB0cnVlDQoJCQkJCWlmIG5leHRjID09 ICIkIiB0aGVuDQoJCQkJCQktLSBjb21waWxlciBkaXJlY3RpdmUgYmVnaW5zDQoJCQkJCQlp bmNvbXBkaXJlYyA9IHRydWUNCgkJCQkJCXN0YXRlID0gYnVmZmVycy5jaGFuZ2VzdGF0ZSgx LCBzdGF0ZSkNCgkJCQkJZWxzZQoJCQkJCQktLSBsb25nIGNvbW1lbnQgYmVnaW5zCgkJCQkJ CWlubG9uZ2NvbW1lbnQgPSB0cnVlCgkJCQkJCXN0YXRlID0gYnVmZmVycy5jaGFuZ2VzdGF0 ZSgzLCBzdGF0ZSkKCQkJCQllbmQKCQkJCQl0ZXguc3ByaW50KHRleC5jdHhjYXRjb2Rlcywg Y29tbWVudF9zdHlsZSkNCgkJCQkJdGV4LndyaXRlKGMpDQoJCQkJZWxzZWlmIChjID09ICIo IikgYW5kIChuZXh0YyA9PSAiKiIpIHRoZW4gDQoJCQkJCS0tIGxvbmcgY29tbWVudCAoYWx0 ZXJuYXRpdmUpIGJlZ2lucw0KCQkJCQlpbmNvbW1lbnQgPSB0cnVlDQoJCQkJCWlubG9uZ2Nv bW1lbnRfYWx0ID0gMg0KCQkJCQlzdGF0ZSA9IGJ1ZmZlcnMuY2hhbmdlc3RhdGUoMywgc3Rh dGUpDQoJCQkJCXRleC5zcHJpbnQodGV4LmN0eGNhdGNvZGVzLCBjb21tZW50X3N0eWxlKQ0K CQkJCQl0ZXgud3JpdGUoYykNCgkJCQllbHNlDQoJCQkJCWlmIG5vdCBpbmFzbSB0aGVuDQoJ CQkJCQktLSBzeW1ib2wKCQkJCQkJc3RhdGUgPSBidWZmZXJzLmNoYW5nZXN0YXRlKDEsIHN0 YXRlKQ0KCQkJCQllbmQKCQkJCQl0ZXgud3JpdGUoYykNCgkJCQllbmQNCgkJCWVuZA0KCQll bmQNCgkJYyA9IG5leHRjDQoJZW5kCglpZiBub3QgaW5jb21tZW50IGFuZCBub3QgaW5hc20g dGhlbg0KCQlzdGF0ZSA9IGJ1ZmZlcnMuZmluaXNoc3RhdGUoc3RhdGUpCgllbmQKCS0tIG1h eWJlIHNvbWV0aGluZyBsZWZ0LCBjaGVjayBpZiBpdCdzIGEgcmVzZXJ2ZWQgd29yZCBhbmQg Zmx1c2gNCglzdGF0ZSA9IGZsdXNoX3Bhc193b3JkKHdvcmQsIHN0YXRlKQ0KCWlmIGluY29t bWVudCB0aGVuDQoJCS0tIGVuZCB0aGUgY29tbWVudC1saW5lCgkJdGV4LnNwcmludCh0ZXgu Y3R4Y2F0Y29kZXMsICJcfSIpCgllbmQNCglzdGF0ZSA9IGJ1ZmZlcnMuZmluaXNoc3RhdGUo c3RhdGUpCQ0KZW5k --------------020106000500080205000804 Content-Type: application/x-tex; name="pret-pas_test.tex" Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="pret-pas_test.tex" XGluc3RhbGxwcmV0dHl0eXBlW1BBU11bUEFTXQ0KXGRlZmluZXR5cGluZ1tQQVNdW29wdGlv bj1QQVMsIGVzY2FwZT15ZXMsIHRhYj00LCBudW1iZXJpbmc9bGluZV0NCiVcZGVmaW5ldHlw aW5nW1BBU11bb3B0aW9uPVBBUywgZXNjYXBlPXllcywgdGFiPTQsIG51bWJlcmluZz1saW5l LCBwYWxldD1dDQpcc2V0dXBsaW5lbnVtYmVyaW5nW2xvY2F0aW9uPXRleHRdDQoNClxzdGFy dHRleHQNCg0KVGhlIGZpcnN0IGJsb2NrIHNob3dzIGFsbCBmZWF0dXJlcyBvZiB0aGUgUGFz Y2FsIHByZXR0eSBwcmludGVyDQoNClxzdGFydFBBUw0KeyBDb21tZW50IH0NCigqIEFuIGFs dGVybmF0aXZlIGNvbW1lbnQgKikNCnskUi0gY29tcGlsZXIgZGlyZWN0aXZlIH0NCnByb2Nl ZHVyZSBURm9ybTEuQnV0dG9uMS5DbGljayhTZW5kZXI6IFRPYmplY3QpOw0KdmFyICAvLyBE ZWxwaGkgQ29tbWVudA0KCU51bWJlciwgSSwgWDogSW50ZWdlcjsNCmJlZ2luDQoJTnVtYmVy IDo9IDEyMzQ1ICogKDIgKyA5KTsNCglDYXB0aW9uIDo9ICdUaGUgbnVtYmVyIGlzICcgKyBJ bnRUb1N0cihOdW1iZXIpOw0KCWFzbQ0KCQlNT1YgQVgsMTIzNGgNCgkJTU9WIE51bWJlcixB WA0KCWVuZDsNCglYIDo9IDEwOw0KZW5kOw0KXHN0b3BQQVMNCg0KVGhlIG5leHQgYmxvY2sg c2hvd3Mgc29tZSAobW9yZSBvciBsZXNzIHVzZWZ1bGwpIHNwZWNpYWwgY2FzZXMuDQoNClxz dGFydFBBUw0KTXlfVmFyaWFibGUgOj0gX2ZvcjsNCjQ1TXlfVmFyaWFibGUgOj0gX1Zhcmlh YmxlNDU7DQpub3JtYWwgYXNtIGdyZWVuIGZvciBlbmQgbm9ybWFsIEZvciBFTkQNCm5vcm1h bCBhU00gZ3JlZW4gZm9SIGVOZCBub3JtYWwgRm9yIEVORA0KJmZvciBhc20gZ3JlZW4NCmVu ZCBub3JtYWwgLyBub3JtYWwNCntibHVlIHNsYW50ZWQnc2xhbnRlZH1ub3JtYWwnYmx1ZQ0K bm9ybWFsJ2JsdWV7Ymx1ZX1ibHVlJ05vcm1hbCdibHVlDQphc20gZ3JlZW4nZ3J7ZWV9bid7 Ymx1ZSBzbGFudGVkfWdyZWVuIGVuZA0Ke2FzbSBzbGFudGVkIGVuZH0NCm5vcm1hbCdibHVl J05vcm1hbCdCbHVlJ25Pcm1hbCdiTHVlJ25vUm1hbA0Kbm9ybWFsIHtzbGFudGVkKikgc3Rp bGwgc2xhbnRlZA0Kc3RpbGwgY29tbWVudA0KY29tbWVudCAoKiBlbmRzfSBub3JtYWwNCm5v cm1hbCAoKnNsYW50ZWR9IHN0aWxsIHNsYW50ZWQNCnN0aWxsIGNvbW1lbnQNCmNvbW1lbnQg eyBlbmRzKikgbm9ybWFsDQpub3JtYWwge3NsYW50ZWQgYmx1ZX0gbm9ybWFsIHskc2xhbnRl ZCByZWR9IG5vcm1hbA0KXHN0b3BQQVMNClxzdG9wdGV4dA== --------------020106000500080205000804 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 ___________________________________________________________________________________ --------------020106000500080205000804--