Path: utzoo!utgpu!news-server.csri.toronto.edu!rpi!zaphod.mps.ohio-state.edu!mips!apple!veritas!amdcad!sun!exodus!twitterpater.eng.sun.com From: koreth@twitterpater.eng.sun.com (Steven Grimm) Newsgroups: comp.binaries.atari.st Subject: v14i067: qroff -- Simple text formatter Keywords: lharc, uue Message-ID: Date: 9 May 91 03:58:33 GMT Sender: news@exodus.Eng.Sun.COM Reply-To: orc@vpnet.chi.il.us (David Parsons) Lines: 215 Approved: koreth@twitterpater.eng.sun.com Submitted-by: orc@vpnet.chi.il.us (David Parsons) Posting-number: Volume 14, Issue 67 Archive-name: qroff [Source in comp.sources.atari.st, volume 5. -sg] This is part one of my Gadgets collection: Qroff Qroff is the dumbest text formatter in the world. It's something I wrote 3BT (3 years before TeX) when I needed something to help me get all the documentation for my BBS into a coherent format. Now that I've got bigger and better formatters available, this is less useful, but there are times where it still comes in handy (for doing quick and dirty formatting of mail messages and the like.) The current incarnation is compiled with Sozobon C and the Orcish C runtime library (which I will be posting as soon as I write documentation for it...) It's public domain. Do what you wish with it. __ .david parsons \/ o / >--------X--snip snip snip------- O \ table !"#$%&'()*+,-./0123456789:;<=>? @ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_ begin 644 qroffbin.lzh M']XM;&@Q+8<& !X#0 >PZ!%B "5%23T9&+D1/0]G)[O>[?2PM9M-[A[7*z MQX DPAFEV2/0C6>?B65GX&EJVO"4Qx M9\)(IV](_IZ>_E&M2:,@5"V7.01HZ.5"_FTD9^EV44,YW\E"IAVM6TDG19NJw MPA5H'L*+ ),P4+.H<=3-$*^1OY^.;]); ^4F1P(,'I%/C6QPCLO:Y(R'7HC%v M!5A >?@4AOS#/^_A(O94>S-#_Q](,KTB9:N]_!7PAODO.P5HU_;2!SI]t MIR#/4,%<(9^"MRKF^KQLRJWG7>,>MM:9Y0GI0NT(/FM/5A_UWZ+6NNEr MDY85$;X8\Z.^2W=1V2H[IW/*++)>=FT!.5%:&TWB[;&:5U)V+PA9PY4Y?4G#q MB-/%UE8KXL<#23*#>G2,XN;]/+78V[3FX[9L9:FE_ [5A>=L26';K>RT/3;@p M_B1>4L\55Z;[[1A=5&@:+XQ(+G?2*-7]LF8$!/N*3\X_1A!.ZEP3?67/PS]PO2&@P2n M21]\*6$18$5;L7Y]U/26'/^I+"E(NAJF(C3))FRSR.7^:,D'$N82*P]Q%*^)m M-+:CA24;6.N:UDE^&23_6D)RB+&G6PN['"J$N3X<\@,C WC]I>6Z.,C/6J]E%/Q5DJ[:EXL#05Z1+ D4I+EZU4+3Pg MQ5F33HJ(5B7+4DUO-ZI #[H<(&=#_\ RA5:E=Q>YF9EK1.U51KH,R.]=8Z].f M>N'V%.J<..G9:E_C;L%K@TP]L69LS3X$4_O/Z$(5+[PG=#"[W_b MW)0T(V^@[BL^4]CCV7'A3D !(=)+@)]0F%,6Z/[.EZ(H9$.?]UKWACY@O-KBa M+[ 9OAUU&?CZ(K=$T8>/H%*GI0 ;/+4:+*JH=)L/7_=^RX1YZ7&AU'7;H=QMOGO[Y()?#7O\Y64Gs MPZ%[FD1<)Z$;U5;Q'ZL>:EE,[OXT_;FKN(Y<=H"C@XS'&J'?K/&_(P7C-/.>r MGEF2X]HI<&3K,NX5@,?WYZ*\"%'UF"@N&4$*;A@5G3%E1!>),/GGA;72EG)5q M"PT7TCJ=6I&/0V.I8'SDX1G$SXSK2)S&$55:I'<1Y!CL5+3CEM/B$;D[G"ONp M/%?U1U=BCN0.O"PB8$X+0$! 0*ZTCA0IP3<)T14$2G/NATNU/JT 'R0M;&@Qo M+509 #!+P > ^!%B "5%23T9&+E144"97]FFQF'LW3!@R6^NNR;!=+ #7n M=O6?N[(:]4K7=8EGM*:1<-*:BP3(P&ZJU"*4VW6EY7YY2CG?OFEX,Q9.'D2Em MG'IP38S54SZNYL+/4BQA%+3?=CG<9L*UHY [!\(T.G?&^@\Z0!KYV'G\M^7685 L06K"_/<#E>FZ)(YG^)&GVA#F6k M@L\9YFB;* -&1(1>#D#-X2AD=7J("_"Y:! T'XOT)<8#<.66V95Z:8);FPGZj M$?7?%8P[_$!%&0Y&V(EJ^E:TB7KRJG\(RG_/ZU6/H7=8,WI;A$'[D*$@/!0?i M1<<#]18'ZI8 ZX\S*FXLZ15ZTW(MCJT9(]\F!2.:N(37@_\?': =O#0$]?'Sh M\@)BQ)3W1RWF7L^Q-&Z_8U_/A3Q+32?\$1!"+9TY.SO==>A\VM4>9=>PGR@:g M2)_5O_&>SW>TP>+P.O 3P7#42[\+=WDA"J:1%[ >YE_%^/?B%WQ7OO=JXH Yf MHJ]U)4=A&P=X 2%+-:^KML[NFNLN%)CG!/KD?T#X9!%Z&@#!CU<#'W*7:d M_L3G\^>0?R]0RPJQ3AEGC91JQV.c M\8/Z=+A]GB$'37*1F88)42Z)=F$L]0/1H"&KGYJ;KGR=1$JZ"%Y+_P],M\CZb MR!1>LR&^X! C<2@A$JE@&PO7)H?\&MC<\9-%5C[?UQ' AS>@!R+(OFX*.PD)a M!!)V3S^4#CVB;_X>"BUW>G%WY?N=^H7LIGE!'H>DF-Z97S>5,X;TMMW%QIWVz MX)\ [=C57R]I@Q1^E$JO*HG>8O"],[FW8-0'Q*">B;D[2U*4OC-8JOE!C'E/y M;[*'PC^0F>EC/RVW%'+NQ L2WF!LI<^^DVD3""''<<"7E!)Z!%=P'TD9]UR)x M""8@]JYVA_W3+5]N7(.M"$=(7B!:H/Z"RQKQ/_.M%.E#ES6.1;u MB;PGD^U.O9O$$.'B:G>=?95I-N^M4YR'47;,%]t MCC'^%*Z(PK702@UXW:3BA6X!/;J#6C5"#F4JK(4;M[!]T/BT]^+8[]s MMK!WC40TOQ3JN4/*>!YF$WDYIYU?1HDAM\CPUP?FS?YKWQE_B"2;/H:_P7F$r M,B;$2< $2%C8-=/^@)?'M[P1\PM((IWNQH@O64C/YZRZ2AR,\R SWKKDG:X"q M=*Y;7Z0="X_@6JPQ:OMT!6)=L[Y"86<,%E+'#:NY6+/I^(^_*I+=M8I;25X:p M8K]F\K_&<&%+]4F27V(7C(A"YO5U_QWV*'W;PGB*'/V*/@64?H6H=<2QV.0:o M,KW8T;QYX/SN4;,0=-\X[@Q:RX3^(=U"]Z"H5,[MJ%8]:H7"/OH3#MSL#:@Vn M5*T+--\??>V _>)6U>Z:7^RV,EIB0HQU21B.N2(:;=[4^H=0L#IH=1H\*@N>m MX-^.X8>I=_%@#'.8$/82O._3Z'5$ILR&!%@_A)A_#C$U6#@!+FSSNI$:>O?"l MO+#$7G#?P)B-C=V,UY]2;(KUW+S/'.0:&YW:W%\?59\>PM_.PM[V(M"H4X('k M9]D'&4MDGM]+3Z2-RF;)BW1!WJ;>W]R;Q[[OVK=57U97$V447I'3%' 3I\K6j MWVF@%\C?=1#?T26QRAWNACUQG8BO]LW4N;NSD$>7O[;;*N-MSS;;X-ZMP,1Zi MZ8.]=I=,Q_1I"O(\L:;A5&8\H,J\Z%[%[+/KLK'U5I\?%>4PZA.YB3EKU.12h MVJB_+OG?1;,YRT]4'S'FD)(.:[04:"I4.T,5/NQ35].WAH;2I$Q*.(?C-K&Tg M_(L[4NM<\/;/0;$'ETM+/7JTLB+F2:CC'"T(XNI\AM("&X%-[A>N1+OG^=.7-.0LV*'1[#8DQ4&E_3_X&:21S#,.9/'H%&-[WQ6/U*Q3-Y]A5FF9X8Q%:LC.9,:;c M@7FO:\M:E4?/[K:R]R,RL$A[[H_/M=D1XD^6*@"AJ M=8%NQY'K'*FL4[b MBP"WU 6Q('( 4TQLW?G]U$H+P&782-^P&?MZ\/]1!Z>Z_Q"#OD\R9=8*GS32a MT".$#[#-SS?*"+'Z(N. NT!X EHE%*"9\YE,y MII>JX\G_S(=OT6](%<=09BL3M#KN4T5T2;\[)DWHM2"0M:(.I$E2@1Q\_)'%x M]+Z2W*NU\8P3.KE.%'I'?X5BO:'RJM8J!90NC%#^PAN!68EA^UV-_1BY)1FMw M*EYF*CR5)]H'KXP7]35*;%C0/*>WM=5IT6>UHX2&XFX)6v M#KB3NZ/#JB\CGFC;4OU](DZ;.A+W7_AAI&7VYNNE.?!L_>#+G?89=!>.OM5:u MR@M$6!-CM'H>_1X0[OOZ?U[NCI!^S]M(?;UW]6LNMC9<]_HNP'">6T$Y @0$LJ+S#-J]4V'SSr MS8EG*K-%KEK:6<^EMUT=O;O2T)[RRM_L"9K/7I@568_(39JUOG5SBW_P4KJB.'(;:(Y&3o M[%2?H.,GZ*/EDO%F(/^PI6Z&]9\V7%94_CYP]*=[I _&Pn M5''NZ-A]O+ LOW>UC6YP]6](;1 $2LE<6&F!J"'?Y#>_=?'=DK&E'<($CS=1m M;4HZ,.ZJ3?CH4M^#TH2QQ8\:%$#I(HW@C^]0C/7F&(FI0'KHQY)W)G4)$9]Nl M9RL^^Z,$CBMS(;;]!7"M6T=ZVVA^2=BT:I_PB;JK4&JFANFHU$0HSJ^,6L*Xk M*1WAM+A1\7) /LH/4*_Z);;T%D1X#-2;\8?_?M$U+?S0H.\,?(F]7\^XR"DKj MXP-CGP".]OGCYA./FIMD3$?8-W6[VT$S\J_Z %*7\9U+_S>^ 2/\P=5@FR+Ri MQEJZ7_GWF#_<4YI\T8A?9.3F=UCDI>G()>A)YD].O5D]%3->)A"L;1+IVU4/V"GQ^T/Y$Q48'3_ZKGg M2KM(GC0=-PJFPD@]K'%F$E*U#WHB.=;J3TB)9>,%7%_f M."978JZJ],AJ"65Q^K;-C;DL8ZFES=%%Q+FV;D_3*R&'U,_NOe MG]WAS]2M.\5V.9(/3!T_(1JL_W6/&=/>>29GR%ZZ[Z,Y!(7-+W3I<-WAZ'*K>VWB;MR">JVMU$YWc M;4UJ4RWZUHV[;62\6F-(T:/MA%?_5J?T,R,9WLX[!)(A/U&8)TJW$BEWN)SFb MX6";.A7>9-OL&\0)#$S+:_?I17L'BUG^G2&V)^!4S;J+N42S@1IF%78? R-Ga MXC/_4H+9QKI56=? JE[D!_6!"5U2TL5\ABD4DX_0&K$4* B.P[^APH(\_1>Bz M#HP,;:GE?6CSO)<5]AUZF"!T LK#!537O]Q0F.Z]'DCV]5.F%5/%_FJ6WR2:y M"2302!SQ4V&%S%'H;@[3X-O>K-6]6=?$/@O>MEL"J_U@Z.# "BJY5BWHL0JJ)BI)@)t MGB_SS+O'79QRKD7L#_.U7C/V0XI2=&4[\,N^#)]9G-E-: 1/I= <6L"J\9E@s M45B[_9=JJ-BG9)K9UL/&U+8B%^WG,);E-%KW&$,A_:&M\N[>S\WK[%7;354;r M=RXO970B.Y))9])\IT0:3>7!KV-MT"RN!&LI[_";\05>V9E/_@%+%>VP"\T+q MV& 7Q]FP&;5?Y@*T\QN+GB0K2Y,Y0^GWQIP'S^FO=KIp M_>1J1K4W&O69"J[[SCZ.2NJ;\2'HM#^Y3F:/7H2XC;]ZT\'5HR'O=N(>_*&Ho M/]VBR'RS2)\D]9HUD_Q'UKK5=[&RINH)[m M*AF;<8:9;KYA+/PU$.NI45L!/M/6/L?*RCGBW@#'.GGD?9 9EWR0$JID!1RUl MP*<]BS?E%\1I76P$:.7.C=71?&=-,4#&*)]N@8EA74.N+1PC:/=>D.2L7Z!Fk M.$G9$A-JK_G159X]9$R=P/,B<#NN!4T'D'[3U.>]D%9SN%F;_!j MWFT?9N:*XN90X_<*L(IC3E"GBB004^!4\#PZ;T%6\32)HG]_RPFAMZ)OV-JAXY961AG]I]"87&S>!TK?RF-_33.V2V1XSKX1;Q6AQ*$Z_3^WG*'e M^MI1PYQ>;9&F^0,K'.Q1+4@M 44&J_.M[6LDBZOU;,TMYM<"\=[MU.ZJAGOA24*"'^G-$>(SQ\Lc M@'D!X@O2SK4G!2AS*V:B@-IK09TIKOW3\KM37CM-2EIb MB]TBQ3!8;SW]Z7N_RZ3J+^\R-]$Ya M_.9]V?ER=!>>YTO=,>A\AT,\'?\-BIX/2/T+Y?)=L&C[WJU^-(FC&, &7\5@z MS%![2M;6Y(ZE^M):%#EI*:]K)[27,6_@W.[AZ[?YA_>TOP>'6_?1O4+N#G$^y M'TULU@=?.PKH;UBM?"JS= [4G#,B]DA_JIEDC+^\D)&+$NF+I0VK"F=<^8DZx MR]FP5OI]I]5O!>:.B.(E';2[1>=,EOS@[50F(AXXPJ]NN'(:L!_:KU,M=(O4_TQ9K_X-=V[]YLR6^R5O!]9CZ>-,D.)DS4J3@&#S#P%#3N[+'P+IVp M18?3+S??-%7;U.RN$-N,6HUL%J,V!DG5NI7D7K*'M.9*>IGD::OJ9]7XYUVZo M4;/4V<^?=D- :\(E1E'VWF%$=IE/5l M&[(L()9:+5&Wk M/A@R]*"2F\)9)4UZLJ9*!,-=SH#(\")N.D[ B\G]+#V[&+V2'<+]T#[U5Z2,j MR!ISPV%"CE\;5'.+E1"FS]VT0#CD,!i M/M1:MY;H^-_Y. N_++=>\[ 5]ABA[B?4(CCQM=>O[;#<"=L7K,? 1T[\,9Q%h M#1O=WP33[SSE93I]8R5W>POOI^WC2+G78'];#-^%QO^ \B[-[.7P^W[A)? 'g MZ $EV+^TOBI!YHEWWC+9;&%JMWPM!L_2U3UWQ-f M\ WW<7Ne MIA:TZ@R['2_53@OU5XZ>[_S1MBSQS\O;8L^.W/^SA\J^OI>SVG7_T#WIG[U5d MJ+)BX]D/,[W5WBWESS[_#5X%7JV1_>:/G0""?_)[3MYWC[CX.[P].c M\\3^&,7IYF ES6#]_G:Y_JOM?P#S?D#6?864_ -SZ%\=U0*.M?YY^N=$K@=]b M&3/OGGM2:K"K$BZ9S?@GL=K#Z><<P,4%1.DCa M84Y=MF$B)\2I\HIXQGI\I W3QC;BG1RZ>/??V9+7#:$X+Z&X9.QZK6Z"O6T7\\\SO6P2!ZSR*:OV _/NZ$U3;>%T#VJ9.L\#5y M*!%T%\S+,:H&>;[SIH=T2AH[_/FM=EGAK>N7"3OGF)ZN5WAEVMJZQ^@XSW*+x M.3;UC,B_:36H4+7?L=92O!HB[P7;?+5>VD]I\9Z=[4H]VMHEHA2\M8C1AY.Iw M'Y.=V?O+?T,U^_@RL)%#^W.?8"^K$LW^QERF,[2?D'Z5]&"*:-JSXQMO9T.Ev MZ?.7=['2AP^#]^ZXU<^_CYQ%"[H.Q%+>^__'O.)IE]F\F7CGGS>2\AU6_Z$^u M-'WI"-=>E-,WPC_T]S?S/B!RB^!WLGWJ?L_F\,]0-.\KFFB^^!@$478Z9R=KU7,@?VR *,O%%7Q%P9,Q3s M!#:X"\O;\&VFI_JGQJSB,\?7F.)27=^8FIRR(3SW =B_&Z?(-MNDRK;>X(Y,r MPN'/W&-80^F=?ZZ/G7EZA"AR PT#!)1AL&$[?S#^_E7<,R XY@UPPG'H/B*\q MCAZTACR6G+'8-J.(\B7B&L3,$IE&N3-VQ.U#B.67$!V-)R06\34=/RWY>4I

YC?[2VQH=C+B%Z*Q\6SWNK^Y?=3O'L[Uo MS3\1><=4"CD%:6@CL!QQXZ@+LON<"*BGSPE2T4W$$\34PLH$S4MD.1!3C][,n MNVWU5U(+;&\>@N'Y3[SP;?Q\]'2H>I%!\N_H M5F7DO-=LD0J#P9WR^2P)R4m MS&))[L]4BTSC^+E6!B6DE7';WFAV.XCL? ($X 838$0^/?ZQVJS_KJK3PO&IC3L]3%%X I$ 60 YL@ HP %J#;< '[R< +Xk MX T!"=J /UW@"8/NJ@"CC8 F0E#I/*:A\ QQP#VN :GP#*"96LS#\ ^!\TGj M. [6X#X;X#P^ Y?\-[SA?=/ ;YX#_Z,3'\=JGCLD>/[Y./[21^ ^]X'I_ =Zi M^ ]V\'W;P6Q/"\=(@^ML>MD&(#_B-^ V(B15]PLZ]?@OZ0\=H^"X>@K$+S2Dh M\@ I1S$.].%V*U!A>5=?1-1F-POY/Z\ .+ "X $$ $? %F &* !X,*?:X8M,;R"_T!5O OCNZ N'T5KX";F)ORQ8^#-;NAN-2.0"[>9Rd MQL\Y/%O#KH6KW&J2'BM< 'X)!548IQ4&A3W;WKM2D5L/04%.$3PF^8\BG>#W@N7&O#W<%,=I_S$)MQED@CKS8)HY6M#a MV@O5(Z^YM6'J&[WP!'JAP97%OZGX8BI4G6U+L5.1 !_F+6QH,"T? 'P z M $L#,1$@ E35%E,12Y11DWZ]"1L969T(#0-"B1R:6=H=" W, T*)&EN9&5Ny &=" P#0H x w end