From mboxrd@z Thu Jan 1 00:00:00 1970 X-Msuck: nntp://news.gmane.io/gmane.comp.tex.context/20138 Path: news.gmane.org!not-for-mail From: Nikolai Weibull Newsgroups: gmane.comp.tex.context Subject: Re: typing questions Date: Thu, 28 Apr 2005 13:44:01 +0200 Message-ID: <20050428114401.GB5765@puritan.pcp.ath.cx> References: <4266194B.7000203@elvenkind.com> Reply-To: mailing list for ConTeXt users NNTP-Posting-Host: main.gmane.org Mime-Version: 1.0 Content-Type: multipart/mixed; boundary="azLHFNyN32YCQGCU" Content-Transfer-Encoding: 7bit X-Trace: sea.gmane.org 1114688586 24875 80.91.229.2 (28 Apr 2005 11:43:06 GMT) X-Complaints-To: usenet@sea.gmane.org NNTP-Posting-Date: Thu, 28 Apr 2005 11:43:06 +0000 (UTC) Original-X-From: ntg-context-bounces@ntg.nl Thu Apr 28 13:43:01 2005 Return-path: Original-Received: from ronja.vet.uu.nl ([131.211.172.88] helo=ronja.ntg.nl) by ciao.gmane.org with esmtp (Exim 4.43) id 1DR7PI-0006yd-UC for gctc-ntg-context-518@m.gmane.org; Thu, 28 Apr 2005 13:42:13 +0200 Original-Received: from localhost (localhost.localdomain [127.0.0.1]) by ronja.ntg.nl (Postfix) with ESMTP id ABA94127F8; Thu, 28 Apr 2005 13:47:46 +0200 (CEST) Original-Received: from ronja.ntg.nl ([127.0.0.1]) by localhost (ronja.vet.uu.nl [127.0.0.1]) (amavisd-new, port 10024) with LMTP id 17774-01; Thu, 28 Apr 2005 13:47:46 +0200 (CEST) Original-Received: from ronja.vet.uu.nl (localhost.localdomain [127.0.0.1]) by ronja.ntg.nl (Postfix) with ESMTP id D395712807; Thu, 28 Apr 2005 13:44:02 +0200 (CEST) Original-Received: from localhost (localhost.localdomain [127.0.0.1]) by ronja.ntg.nl (Postfix) with ESMTP id B4E5C12807 for ; Thu, 28 Apr 2005 13:44:01 +0200 (CEST) Original-Received: from ronja.ntg.nl ([127.0.0.1]) by localhost (ronja.vet.uu.nl [127.0.0.1]) (amavisd-new, port 10024) with LMTP id 17347-05 for ; Thu, 28 Apr 2005 13:44:00 +0200 (CEST) Original-Received: from mxfep02.bredband.com (mxfep02.bredband.com [195.54.107.73]) by ronja.ntg.nl (Postfix) with ESMTP id C4A33127F2 for ; Thu, 28 Apr 2005 13:44:00 +0200 (CEST) Original-Received: from puritan.pcp.ath.cx ([213.112.43.228] [213.112.43.228]) by mxfep02.bredband.com with ESMTP id <20050428114400.VQFF3591.mxfep02.bredband.com@puritan.pcp.ath.cx> for ; Thu, 28 Apr 2005 13:44:00 +0200 Original-Received: by puritan.pcp.ath.cx (Postfix, from userid 1000) id 93EC8ADFEA; Thu, 28 Apr 2005 13:44:01 +0200 (CEST) Original-To: ntg-context@ntg.nl Mail-Followup-To: ntg-context@ntg.nl Content-Disposition: inline In-Reply-To: <4266194B.7000203@elvenkind.com> User-Agent: Mutt/1.5.8i X-Virus-Scanned: by amavisd-new at ntg.nl X-BeenThere: ntg-context@ntg.nl X-Mailman-Version: 2.1.5 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 X-Virus-Scanned: by amavisd-new at ntg.nl Xref: news.gmane.org gmane.comp.tex.context:20138 X-Report-Spam: http://spam.gmane.org/gmane.comp.tex.context:20138 --azLHFNyN32YCQGCU Content-Type: text/plain; charset=iso-8859-1 Content-Disposition: inline Content-Transfer-Encoding: quoted-printable Taco Hoekwater, April 20: > Peter M=FCnster wrote: > > Is there a module for pretty-printing C-code? > None that I know of, if anybody has a solution, I am interested myself > as well I wrote one a while ago. It's not great, but it works quite well. It even processes preprocessor directives correctly, albeit a bit hackishly. It's not too fun working with the verbatim code, though. It's a bit restrictive in what can be done. Anyway, I've attached it here. Perhaps we can make something standard of it?, nikolai --=20 Nikolai Weibull: now available free of charge at http://bitwi.se/! Born in Chicago, IL USA; currently residing in Gothenburg, Sweden. main(){printf(&linux["\021%six\012\0"],(linux)["have"]+"fun"-97);} --azLHFNyN32YCQGCU Content-Type: application/x-tex Content-Description: verb-c.tex Content-Disposition: attachment; filename="verb-c.tex" Content-Transfer-Encoding: quoted-printable \writestatus{loading}{Context Support Macros / Pretty C Verbatim}=0A=0A\unp= rotect=0A=0A\doglobal\newif\ifinCsingle=0A\doglobal\newif\ifinCdouble=0A\do= global\newif\ifinCcomment=0A\doglobal\newif\ifinCsinglelinecomment=0A\doglo= bal\newif\ifinCmultilinecomment=0A\doglobal\newif\ifcontinueCsinglelinecomm= ent=0A=0A\gdef\Csetcontrols%=0A {\saveprettycontrols=0A \def\obeyedspace= %=0A {\endCtypesix=0A \oldobeyedspace}%=0A \def\flushrestofverba= timline%=0A {\endCtypesix=0A \ifinCsinglelinecomment=0A \if= continueCsinglelinecomment=0A \continueCsinglelinecommentfalse=0A = \else=0A \egroup%=0A \endofpretty%=0A \gl= obal\inCsinglelinecommentfalse%=0A \global\inCcommentfalse%=0A = \fi=0A \fi}%=0A \def\obeyedline%=0A {\oldobeyedline}%=0A \= let\obeytabs=3D\ignoretabs}=0A=0A\gdef\setupprettyCtype%=0A {\def\prettyid= entifier{C}%=0A \Csetvariables=0A \Csetcontrols=0A \Csethandlers=0A = \Csetspecials=0A \Csetdiagnostics}=0A=0A\gdef\Csetvariables%=0A {\globa= l\inCsinglefalse=0A \global\inCdoublefalse=0A \global\inCcommentfalse= =0A \global\continueCsinglelinecommentfalse=0A \global\naturaltextexttr= ue=0A \global\let\Csequence=3D\empty=0A \global\let\Cprefix=3D\empty}= =0A=0A% TODO: should handle -> as well=0A\gdef\Csetspecials%=0A {\setprett= y`\{=3D10 \setpretty`\}=3D10=0A \setpretty`\$=3D20 \setpretty`\@=3D20=0A = \setpretty`\[=3D30 \setpretty`\]=3D30 \setpretty`\(=3D30 \setpretty`\)=3D= 30=0A \setpretty`\=3D=3D30 \setpretty`\~=3D30 \setpretty`\<=3D30 \setpret= ty`\>=3D30=0A \setpretty`\%=3D30=0A \setpretty`\-=3D41 \setpretty`\+=3D= 41=0A \setpretty`\|=3D41 \setpretty`\`=3D41 \setpretty`\!=3D41 \setpretty= `\?=3D41=0A \setpretty`\^=3D41 \setpretty`\&=3D41=0A \setpretty`\/=3D43= \setpretty`\*=3D44=0A \setpretty`\#=3D45=0A \setpretty`\\=3D50=0A \s= etpretty`\1=3D61 \setpretty`\2=3D61 \setpretty`\3=3D61 \setpretty`\4=3D61 \= setpretty`\5=3D61=0A \setpretty`\6=3D61 \setpretty`\7=3D61 \setpretty`\8= =3D61 \setpretty`\9=3D61 \setpretty`\0=3D61=0A \setpretty`\A=3D62 \setpre= tty`\B=3D62 \setpretty`\C=3D62 \setpretty`\D=3D62 \setpretty`\E=3D62=0A \= setpretty`\F=3D62 \setpretty`\G=3D62 \setpretty`\H=3D62 \setpretty`\I=3D62 = \setpretty`\J=3D62=0A \setpretty`\K=3D62 \setpretty`\L=3D62 \setpretty`\M= =3D62 \setpretty`\N=3D62 \setpretty`\O=3D62=0A \setpretty`\P=3D62 \setpre= tty`\Q=3D62 \setpretty`\R=3D62 \setpretty`\S=3D62 \setpretty`\T=3D62=0A \= setpretty`\U=3D62 \setpretty`\V=3D62 \setpretty`\W=3D62 \setpretty`\X=3D62 = \setpretty`\Y=3D62=0A \setpretty`\Z=3D62=0A \setpretty`\a=3D62 \setpret= ty`\b=3D62 \setpretty`\c=3D62 \setpretty`\d=3D62 \setpretty`\e=3D62=0A \s= etpretty`\f=3D62 \setpretty`\g=3D62 \setpretty`\h=3D62 \setpretty`\i=3D62 \= setpretty`\j=3D62=0A \setpretty`\k=3D62 \setpretty`\l=3D62 \setpretty`\m= =3D62 \setpretty`\n=3D62 \setpretty`\o=3D62=0A \setpretty`\p=3D62 \setpre= tty`\q=3D62 \setpretty`\r=3D62 \setpretty`\s=3D62 \setpretty`\t=3D62=0A \= setpretty`\u=3D62 \setpretty`\v=3D62 \setpretty`\w=3D62 \setpretty`\x=3D62 = \setpretty`\y=3D62=0A \setpretty`\z=3D62=0A \setpretty`\_=3D62=0A \se= tpretty`\;=3D70 \setpretty`\:=3D70 \setpretty`\,=3D70 \setpretty`\.=3D70=0A= \setpretty`\'=3D80=0A \setpretty`\"=3D90 }=0A=0A\gdef\Csethandlers%=0A= {\installprettyhandler 10 \Ctypeone=0A \installprettyhandler 20 \Ctypet= wo=0A \installprettyhandler 30 \Ctypethree=0A \installprettyhandler 41 = \Ctypefourone=0A \installprettyhandler 43 \Ctypefourthree=0A \installpr= ettyhandler 44 \Ctypefourfour=0A \installprettyhandler 45 \Ctypefourfive= =0A \installprettyhandler 50 \Ctypefive=0A \installprettyhandler 61 \Ct= ypesixone=0A \installprettyhandler 62 \Ctypesixtwo=0A \installprettyhan= dler 70 \Ctypeseven=0A \installprettyhandler 80 \Ctypeeight=0A \install= prettyhandler 90 \Ctypenine}=0A=0A\gdef\Ctypeone#1%=0A {\ifinCdouble=0A = \ifinCcomment=0A \endCtypesix=0A \getpretty{#1}%=0A \else= \ifx\Cprefix\empty=0A \endCtypesix=0A \getpretty{#1}%=0A \e= lse=0A \endCtypesix=0A \xdef\Cprefix{\getpretty{#1}}%=0A = \beginofpretty[\!!prettyone]\getpretty{#1}\endofpretty=0A \fi\fi=0A \= else=0A \endCtypesix=0A \ifinCcomment=0A \getpretty{#1}%=0A = \else\ifinCsingle=0A \getpretty{#1}%=0A \else=0A \begino= fpretty[\!!prettyone]\getpretty{#1}\endofpretty=0A \fi\fi=0A \fi}=0A= =0A\gdef\Ctypetwo#1% =0A {\endCtypesix=0A \getpretty{#1}}=0A=0A\gdef\Cty= pethree#1%=0A {\endCtypesix=0A \ifinCcomment=0A \getpretty{#1}%=0A = \else\ifinCsingle=0A \getpretty{#1}%=0A \else\ifinCdouble=0A \ge= tprettydata{#1}%=0A \ifx\Cprefix\empty=0A \getpretty{#1}%=0A = \else=0A \beginofpretty[\!!prettythree]\getpretty{#1}\endofpretty= =0A \fi=0A \else=0A \beginofpretty[\!!prettythree]\getpretty{#1}= \endofpretty=0A \fi\fi\fi}=0A=0A\gdef\Ctypefourone#1%=0A {\endCtypesix= =0A \ifinCcomment=0A \getpretty{#1}%=0A \else\ifinCsingle=0A \g= etpretty{#1}%=0A \else\ifinCdouble=0A \getpretty{#1}%=0A \else=0A = \beginofpretty[\!!prettyfour]\getpretty{#1}\endofpretty=0A \fi\fi\fi}= =0A=0A\gdef\doCtypefourtwo#1#2%=0A {\getprettydata{#2}%=0A \ifnum\pretty= type=3D62=0A \expandafter\Ctypetwo=0A \else=0A \expandafter\Ctype= fourone=0A \fi=0A {#1}#2}=0A=0A\gdef\Ctypefourtwo%=0A {\handlenextnext= pretty\doCtypefourtwo\Ctypefourone}=0A=0A\gdef\Ctypefourthree%=0A {\handle= nextnextpretty\doCtypefourthree\Ctypefourtwo}=0A=0A\gdef\doCtypefourthree#1= #2%=0A {\getprettydata{#2}%=0A \ifnum\prettytype=3D43=0A \let\next= =3D\dodoCtypefourthree=0A \else\ifnum\prettytype=3D44=0A \global\inCc= ommenttrue=0A \global\inCmultilinecommenttrue=0A \let\next=3D\Cstar= tcomment=0A \else=0A \let\next=3D\Ctypefourtwo=0A \fi\fi=0A \next= {#1}#2}=0A=0A\gdef\Cstartcomment#1#2%=0A {\beginofpretty[\!!prettyfourthre= e]\bgroup\ttsl\getpretties{#1}{#2}}=0A=0A\gdef\dodoCtypefourthree% #1%=0A = {\endCtypesix=0A \handlenextnextpretty\dododoCtypefourthree\dodododoCtype= fourthree}=0A=0A\gdef\dododoCtypefourthree%=0A {\ifnewpretty\expandafter\h= andlenewpretty\fi\dodododoCtypefourthree}=0A=0A\gdef\dodododoCtypefourthree= #1#2%=0A {\ifinCcomment=0A \getpretties{#1}{#2}%=0A \else=0A \gl= obal\inCcommenttrue=0A \global\inCsinglelinecommenttrue=0A \def\nex= t{\beginofpretty[\!!prettyfourthree]\bgroup\ttsl\getpretties{#1}{#2}}%=0A = \expandafter\next=0A \fi}=0A=0A\gdef\Ctypefourfour%=0A {\handlenextne= xtpretty\doCtypefourfour\Ctypefourtwo}=0A=0A\gdef\doCtypefourfour#1#2%=0A = {\getprettydata{#2}%=0A \ifnum\prettytype=3D44=0A% \beginofpretty[\!!= prettyfour]\getpretty{#1}\endofpretty=0A \ifinCcomment=0A \getpre= tty{#1}%=0A \else=0A \endCtypesix=0A \beginofpretty[\!!pret= tyfour]\getpretty{#1}\endofpretty=0A \fi=0A \expandafter#2%=0A \e= lse\ifnum\prettytype=3D43=0A \getpretties{#1}{#2}%=0A \egroup=0A = \endofpretty=0A \global\inCcommentfalse=0A \global\inCmultilineco= mmentfalse=0A \else\ifinCcomment=0A \getpretty{#1}%=0A \expandaft= er#2%=0A \else\ifinCsingle=0A \getpretty{#1}%=0A \expandafter#2%= =0A \else\ifinCdouble=0A \getpretty{#1}%=0A \expandafter#2%=0A = \else=0A \endCtypesix=0A \beginofpretty[\!!prettyfour]\getpretty{#1= }\endofpretty=0A \expandafter#2%=0A \fi\fi\fi\fi\fi}=0A=0A\gdef\Ctype= fourfive#1%=0A {\ifinCcomment=0A \getpretty{#1}%=0A \else=0A \en= dCtypesix=0A \global\inCcommenttrue=0A \global\inCsinglelinecomment= true=0A \def\next{\beginofpretty[\!!prettyfourthree]\bgroup\ttsl\getpre= tty{#1}}%=0A \expandafter\next=0A \fi}=0A=0A\gdef\doCtypefiveA#1#2%= =0A {\endCtypesix=0A \ifinCcomment=0A \getpretties{#1}{#2}%=0A \el= se\ifinCsingle=0A \getprettydata{#2}%=0A \ifnum\prettytype=3D50=0A = \beginofpretty[\!!prettyfive]\getpretties{#1}{#2}\endofpretty\beginof= pretty[\!!prettyeight]%=0A \else\ifnum\prettytype=3D80=0A \begino= fpretty[\!!prettyfive]\getpretties{#1}{#2}\endofpretty\beginofpretty[\!!pre= ttyeight]%=0A \else=0A \getpretties{#1}{#2}%=0A \fi\fi=0A \= else\ifinCdouble=0A \beginofpretty[\!!prettyfive]\getpretties{#1}{#2}\e= ndofpretty\beginofpretty[\!!prettynine]%=0A \else=0A \beginofpretty[\= !!prettyfive]\getpretties{#1}{#2}\endofpretty=0A \fi\fi\fi}=0A=0A\gdef\do= CtypefiveB#1%=0A {\endCtypesix=0A \ifinCcomment=0A \ifcat#1\relax=0A= \continueCsinglelinecommenttrue=0A \getpretty{#1}%=0A \els= e=0A \getpretty{#1}%=0A \fi=0A \else\ifinCsingle=0A \getpre= tty{#1}%=0A \else\ifinCdouble=0A \beginofpretty[\!!prettyfive]\getpre= tty{#1}\endofpretty\beginofpretty[\!!prettynine]%=0A \else=0A \begino= fpretty[\!!prettyfive]\getpretty{#1}\endofpretty=0A \fi\fi\fi}=0A=0A\gdef= \Ctypefive%=0A {\expandafter\handlenextnextpretty\expandafter\doCtypefiveA= \expandafter\doCtypefiveB}=0A=0A\gdef\endCtypesix=0A {\ifx\Csequence\empty= \else=0A \ifinCcomment=0A \Csequence=0A \else\ifinCsingle=0A = \Csequence=0A \else\ifinCdouble=0A \Csequence=0A \else\= ifx\Cprefix\empty=0A \doendCtypesix\!!prettytwo=0A \else=0A = \doendCtypesixtype\!!prettytwo=0A \fi\fi\fi\fi=0A \global\let\Cseq= uence\empty=0A \global\let\Cprefix\empty=0A \fi}=0A=0A\gdef\doendCtyp= esix#1% =0A {\doifprettyidentifierelse{\Csequence}{\Ckeywords}=0A {\be= ginofpretty[#1]%=0A {\prettyidentifierfont\Csequence}%=0A \en= dofpretty}=0A {\doifprettyidentifierelse{\Csequence}{\Ctypes}=0A = {\beginofpretty[\!!prettytwoone]%=0A {\prettyvariablefont\Cseque= nce}%=0A \endofpretty}=0A {\Csequence}}}=0A=0A\gdef\doendCty= pesixtype#1% =0A {\doifprettyidentifierelse{\Cprefix\Csequence}{\Ctypes}= =0A {\beginofpretty[#1]%=0A {\prettyvariablefont\Csequence}%=0A = \endofpretty}=0A {\Csequence}}=0A=0A\gdef\Ctypesixone#1%=0A {\ifx= \Csequence\empty=0A \def\next{\beginofpretty[\!!prettyeight]\getpretty{= #1}\endofpretty}%=0A \else=0A \def\next{\Ctypesixtwo{#1}}%=0A \fi= =0A \expandafter\next}=0A=0A\gdef\Ctypesixtwo#1% =0A {\ifinCcomment=0A = \getpretty{#1}%=0A \else\ifinCsingle=0A \getpretty{#1}%=0A \else= \ifinCdouble=0A \ifx\Cprefix\empty=0A \getpretty{#1}%=0A \els= e=0A \xdef\Csequence{\Csequence\getpretty{#1}}%=0A \fi=0A \else= =0A \xdef\Csequence{\Csequence\getpretty{#1}}%=0A \fi\fi\fi}=0A=0A\gd= ef\Ctypeseven#1%=0A {\endCtypesix=0A \getpretty{#1}}=0A=0A\gdef\Ctypeeig= ht#1% single quote=0A {\endCtypesix=0A \ifinCcomment=0A \getpretty{#= 1}%=0A \else\ifinCdouble=0A \getpretty{#1}%=0A \else\ifinCsingle=0A= \global\inCsinglefalse=0A \getpretty{#1}%=0A \endofpretty=0A = \else=0A \global\inCsingletrue=0A \beginofpretty[\!!prettyeight]\g= etpretty{#1}=0A \fi\fi\fi}=0A=0A\gdef\Ctypenine#1% double quote=0A {\end= Ctypesix=0A \ifinCcomment=0A \getpretty{#1}%=0A \else\ifinCsingle= =0A \getpretty{#1}%=0A \else\ifinCdouble=0A \global\inCdoublefals= e=0A \getpretty{#1}%=0A \endofpretty=0A \else=0A \global\inCd= oubletrue=0A \beginofpretty[\!!prettynine]\getpretty{#1}=0A \fi\fi\fi= }=0A=0A\gdef\doreportprettyCtype#1#2#3#4%=0A {#1%=0A [C \string#2 typi= ng conflict, use \string#3 instead]=0A \writestatus=0A {C typing}= =0A {use \string#3 instead of \string#2 to enable propper visualizati= on}%=0A \global#4%=0A \expandafter\doemptyverbatimline=0A \fi}=0A= =0A\gdef\reportprettyCtype%=0A {\doreportprettyCtype\ifinCsingle'\'\inCsin= glefalse=0A \doreportprettyCtype\ifinCdouble"\"\inCdoublefalse}=0A=0A\gde= f\Csetdiagnostics%=0A {\let\normaldoemptyverbatimline=3D\doemptyverbatimli= ne=0A \def\doemptyverbatimline%=0A {\normaldoemptyverbatimline=0A = \reportprettyCtype}}=0A=0A\useprettyidentifiers \Ckeywords \Csetspecials= =0A break case continue default do else for goto if return sizeof switch w= hile=0A=0A\useprettyidentifiers \Ctypes \Csetspecials=0A auto char const d= ouble enum extern float int long register restrict short=0A signed static = struct typedef union unsigned void volatile bool=0A=0A\installprettytype [C= ] [C]=0A=0A\definetyping[C][\c!option=3DC]=0A=0A\def\!!prettytwoone {pretty= twoone}=0A\def\!!prettyfourthree {prettyfourthree}=0A\def\!!prettyfive {pre= ttyfive}=0A\def\!!prettyeight {prettyeight}=0A\def\!!prettynine {prettynine= }=0A=0A\definecolor [colorprettyone] [black]=0A\definecolor [colorpre= ttytwo] [r=3D.46, g=3D.38, b=3D.13]=0A\definecolor [colorprettytwoone= ] [r=3D.38, g=3D.18, b=3D.5]=0A\definecolor [colorprettythree] [blac= k]=0A\definecolor [colorprettyfour] [black]=0A\definecolor [colorprett= yfourthree] [r=3D.15, g=3D.45, r=3D.15]=0A\definecolor [colorprettyfive] = [r=3D.94, g=3D.15, b=3D.15]=0A\definecolor [colorprettyeight] [r=3D.= 58, g=3D.09, b=3D.09]=0A\definecolor [colorprettynine] [r=3D.58, g=3D.= 09, b=3D.09]=0A=0A\definecolor [grayprettyone] [s=3D.30]=0A\defineco= lor [grayprettytwo] [s=3D.45]=0A\definecolor [grayprettythree] = [s=3D.60]=0A\definecolor [grayprettyfour] [s=3D.75]=0A\definecolor [g= rayprettyfourthree] [s=3D.70]=0A=0A\definepalet=0A [colorpretty]=0A [ p= rettyone=3Dcolorprettyone,=0A prettytwo=3Dcolorprettytwo,=0A pretty= twoone=3Dcolorprettytwoone,=0A prettythree=3Dcolorprettythree,=0A pret= tyfour=3Dcolorprettyfour,=0A prettyfourthree=3Dcolorprettyfourthree,=0A = prettyfive=3Dcolorprettyfive,=0A prettyeight=3Dcolorprettyeight,=0A = prettynine=3Dcolorprettynine]=0A=0A\definepalet=0A [graypretty]=0A [ p= rettyone=3Dgrayprettyone,=0A prettytwo=3Dgrayprettytwo,=0A prettythre= e=3Dgrayprettythree,=0A prettyfour=3Dgrayprettyfour,=0A prettyfourthr= ee=3Dgrayprettyfourthree]=0A=0A\definepalet [Ccolorpretty] [colorpretty]= =0A\definepalet [Cgraypretty] [graypretty]=0A=0A\setuptyping=0A [C]=0A = [icommand=3D\tttf]=0A=0A\protect =0A=0A\endinput =0A=0A% arch-tag: 479d747a= -720a-4f17-ae0f-a83f3dffaf89=0A% vim: set et sts=3D2 sw=3D2:=0A --azLHFNyN32YCQGCU Content-Type: text/plain; charset="us-ascii" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Content-Disposition: inline _______________________________________________ ntg-context mailing list ntg-context@ntg.nl http://www.ntg.nl/mailman/listinfo/ntg-context --azLHFNyN32YCQGCU--