Article View: comp.text
Article #4316Re: Looking for Boldface/Underline Filter
From: Rob Stampfli
Date: Tue, 19 Jan 1988 03:07
Date: Tue, 19 Jan 1988 03:07
171 lines
10228 bytes
10228 bytes
In article <2941@killer.UUCP> wnp@killer.UUCP (Wolf Paul) writes:
>Nroff by default produces boldface and underlines by means of backspacing.
>My printer does not take to that too kindly, especially in NLQ mode.
>Therefore I am looking for a filter which will convert backspace sequences
>into overstruck lines, like so:
>
> "_^HT_^Hh_^Hi_^Hs _^Hi_^Hs _^Hu_^Hn_^Hd_^He_^Hr_^Hl_^Hi_^Hn_^He_^Hd.\r\n"
>
>should be converted to
>
> "This is underlined.\r____ __ __________ \r\n"
>
>and
>
> "This word is b^Hb^Hbo^Ho^Hol^Hl^Hld^Hd^Hd.\r\n"
>
>should become
>
> "This word is bold.\r bold \r bold \r\n"
>
>Does anybody know of such a filter, in C source?
Try the following, which a friend wrote years ago for an old 11/45 Unix
system. I think it does just what you want, and now that you provoked me
to delve into it, I put it on my system and will use it. I am posting this
to the net, since perhaps others may find it useful, too. BTW, it supports
one command line argument, a single number for tab spacing (defaults to a tab
every 8 spaces). And, please, no flames about the coding style or lack
of comments, etc.
To use:
nroff -mm file.rof | canon >prn
begin 666 canon.arc
M&@A#04Y/3BY# , 1=^00 #(0K:O -8P( ,(]*X&<.F#IDR('C,H4,F
MS1L7:'PT4#!QQ$$S LLD:,(DB9,B"6C R&&CXL6,&XD4@4(%28(;)LM@=*.1
M")4@0A+@F#BQCILY:<[0) -B#)HP<A(P&;.%H\<B778D2/!"1=$W/NF >&.F
MZ%$Y<T (!%$FC%$0<-X I>/0#0@5+WK^##K4*U*E356R1-*E:<>/4:E:12HG
M3)ZM7=ED#$OGS58[9>3 D2-0*UR>"BJ#:,(F[\J6@2$1J J"L&'$(-J$P0/"
MS4.[8%V@C0SB(!PZ:-[&S>Q&ZY ZDM6"Z $"QHZ)FIO8QCV\^''>6JF$$=/<
M)L[GF%4+1('TS!@6I>6<L9-BHE&D;U5TM_-\S\0$<LJ<2;.0MN8QS^'+IT_'
M?F^Q^<4W7WURB/6?&M@ID$ :9G GWA@@^ !"#""88 ((** (7%A-):&@^-M
M$4,7*:0087$57@@A#\3%8$.)[R4@'77$X8<9&V^\ 8<.[YGQAAPHI-&<<6(E
MM%EG,$0EU@HKE*>@4DRET<604@E6%!ME%5C''&40=1Y8NO7X8Y!4%LG#9LNA
ML<.23<;(V1924CD5:01E"8)B--U9AAMGX!96AV29E1N6D+$1)D4**E?&;;D1
M]UMP81%G'&8)W(%&&EAFN"$(9Y1!QQ@H+-20&R6"$ )Q13QAA)/OS7%'&I^B
MH:&)[B&:P!AA< G""5R(<0*/3S*(PJ-IA24A#$XF ,D Q*K50@OY)2!&?&&L
MD>"MN2+$*QV_QMAL6"L0-R,(+6#X+0@E@#!C"M%.6Y:UE.*JZPF[ CO5MTRV
M2RV\MEX41AULT %L0&9<!((123!!11%2Q"CLBL7)@*RR Y"&4<"T3?%$$T5<
MU9L<;[ 1UF4*+NMNM<^-L&=#9CC<( IJ-/>MB3X0Y]1'*<QIE1UA*$9&APB]
M2@9S)%,<LZ/ %=O<S1V7&T.TPI))W%);J$%BA#;KU5+.5O+L,]"U+4KT;A0+
M.3535B^M-1+D3AAM53&^59H8;T#&:1U(A=%;&66$57=D;)SVAEM_RV$&CG?$
M731>4E8]98U2+4N:0%S*H=67ATXE+),Q2_BFE#E+;A6.N!J*)T*JL5;TLI\_
M#@*"+J/ I)">IYDLZVDVET:T5'_K^NXZ@Q#?&#]ZB=5_@.:^^+G$P?[DR?R^
M)Z^V7,C1[9/,.Q<C]-=.ORL79ER/[;Q<N"%^ CX">32:8JM);@N=2[H#K<'/
M@:M;RI.];/I2.V?FD8Y;4QJ8E#/2V$]O=\I(YD0C+*K%24)JH)^5,-<8$(@!
M(9.I3)<66 XU.%3*&""X^#4!?"("BMT8-=[(%$ !W;A6?D131_((K(RK+"#
M'P05O4Y@0H:@4(4E&X"P(D@QTO3,4&+XX)URI973<<I3(!B"%!9( ^"D%?6
MZR$9?ABM/L3(BJ#Z#@A.^$%V!2]P"TE@GCI%A[! :'%G>$,%<:2C_'A10:0I
M@A.( ((I7"$)5!@"VXJ6QSV"X I(2%C'BL:_]2F*46MZ5OR<(T$#WB]LC,H<
M^L9D-O\)Z4QOLIH "6BE [K%B:L38H-<>*((@F /P:.@8RZ(%LKLC2BKJV(.
M0SA"*6F1BRLD@ MAN,(!S+ ,-0PF&%&PPU^6$6H-(J+H2L,&)"H1C4U4(!NC
M.,54+A.+/!RC#Y]Y0])@4XT(86-8G/"$EGCD")F[HW[H !RW3$H!=YP(&@A#
M04Y/3BY$3T, 1=9P, #(0SZF*T28% ,1N2\:0-"C1F"3=ZX :$DS,(8
M.$! U#%#!H@B4ZA(S($#1P,%4MZ(T0$"1!(0=-"D<;/&) @R;T#(*=.&II@R
M<D"@"6-GY1F4,6>.43B'CIPZ8^B &.-0H8LQ(%Q &O"1"IHR(,RDD5,4!(H8
M,5[0J)$"A!V<<](H!%%G3ADR(-BL7/,V;IJB<X"B3(-US$ZN0,^428GSHT.X
M<MV4R4OGC6#"<EB . RB39@\.GEBO5EFX1RY9]#088.YS9N9E6F>QES&C-8Q
M?-W0<?&QJLJ\9[FJ78B"\LF4<UT224*D\ETZ8>BZ(<W6+0@B5((( ;'R99DQ
M;,+(\0FB"9O);N R =&BQ4?"DY/6"?/=#OLZ6.>@>5.'#=R=9T%P7MB$2!$H
M5""Q0@PNW217&6>5!<=,+;#'QAM,T;'89&RP\9%B;]4U!QQAC%&&"R4%-! (
M=^RDU$E,>59&&9(U0489<*1$75YMU=48"'3!B)(<';;TAADH7?51=EVY)Q=<
M1L)''7]L;-&%9)3-M.!BG='!V%4@G/&@&.R9Q=<=(/P8)%8OPK@8'1^A<%IE
M;W3U1FY%'37&&F7YI5V'$N94'7J)?5B2=UNDT06):52XE$+([8FE&W6T<9,<
M'XEI9!IPV<EC4F@M.:9=BDVF%!.!=K&%5 -T 2((3(SAY(R3'5J';&$"2=B%
MC3X::YAP&I4&77E55T:':( 1YMIT+';K7RNQ")U99"4ZA8U#'K7F+0ZBM.M
M5@3!!'%+_85GIM6!JH*HT=*FP$=9T&=<:$KU5 :8Z)$1!G*3Y67&&Q6^<<<<
M.M2F@(LPIM1##S-\!&@7"20 JJ@()S!$'7(,.T<"+ZBP%,0SP=JGL,0:NY8*
M+WR4 "0$\/'1## D#$-4D!3@A+ZLHF=L35FMZ:!4"#2QK1-%M!##1S',D+!4
M!(0AA@LNO&A&:&F,3("Y.0P-"0)JK.&TN2X,/7(!6$N=PD?02>=SPF$+X;._
M(P\@],\**#Q& C!(=0 6<M,-204Z)\'SV>?V?5(8!+GQAE(>RI'H0D;3IQ1Z
M9>"!)PB,6LN59&+4<6*0P>6A[F.;PI&&>C.9^^R@EF%V4Y#TA79K&%=B=<*#
M3'UG&1XGA)E3Y+:*:>FW@"DZ[T<2%[N;N1\=\<8;B"&UAF1*&-&$OQH &@A#
M04Y/3BY%6$4 1=_0X #(0\*RA;W(3 ,3;3(": P ( (0_#O7Y8$
M !!L %6B '@! &A @(L Z0#PL C V@&-_S2FJ[*('2X$ -#9(W#%RB _
M! +XV;#(BX%_=P2@$T=@$#$!B^ ML.<GP2!_$/X02&1#!X 5_]89,%;(Q1T
M1W+X #'@#SVLZQ8L^A9MW+%#9"^&]8$#P)]W*X"-L@%@5-U_#GP P.-@D0<>
M /X90*SH@ IRZQ3@0@P%W1X!1I'" U)G0+I9 189ZP&S<[I, 'I -"TJ=4'3
MOU(S &#Z5NH&M#V;2IW0]"4 H?@F,J*O!P (?!+@^O=@+X#A^GKJ4W3(Z^-%
M^ ;].\ ' 2P#B*K?P2Y]T;%8#*:!&X!-='@7!\Q' U> [")L_X@O(I[C0!\!
MB1QP1"AU[8 /3HG0!8!A?)GWWGC$.9?.#?\,X@-?=GG60D,.\)6."?\$!T F
MBSA@U3WY+!+,"L($8("'$33T(@#I*/#/,3-NE$X (=8%73JD7)75&HIT=<=C
M.Q!GQPZ &3'8!=*A-\TXB@0"GV%$)&9 EH@<L X&N&0)193I46FE8^14]@)F
MQ!#@3R->K4-"DX-! L(6&K))9KK.! F %#@DE!E!;!)P!'2M97#+V3]H<A-
M^@! QYP..(F'G0WDJ=B>C_7Y9Z"X5?9, $81\(\3^N#A&14<6AJ!:)IN"4"7
MCZ6#@#^?6H%.*:2VF8X^_1#X''% "KD.D48BJ223E3Y)YI157NE!EIO.ZB68
M8CYK)GR/559%KV[">8><=%YZ9ZR<0N:GF(("BLX*X"+JA3Z*,EK6HWY$.FFY
MF*)K;:?K HI+J.C4 T"IIZ:ZZC]Y>?'%(N5T,0Q+[-2TB!T$V$.$ 8/088#&
M!@#A\7+_I",, " +X#$@3!@ PCKNL&Q " S4$<+BA!Q ";WM<5>6_8<P@T
M =2A 2X "%!9$$4=E0@1!"P #!T$P(+ .@+ 0@ "&X., !T2Y+QSS^/\[-8A
MWER$&1\$T*:!V#PC,]\ P<R'70'=/ ?U,86DW=$B4"=" -QDF_W/+6G_0S4F
ME>'1M %/"R#U'Q5(3?6=6,," =<&'$.$ !>E,T1#3"#%P3^#H^DPQ!)3/ @[
M-%EQ\<<;=TQ[R'0H(#,()*>3$\A%PR.S ("080!>P$2.72)^^.-U'1,0CHW/
MTX\3]- !T '$(CRLP#;@! AN/34M[4(V@ @$?D"__@AP16*#ZXSX^A@4X!1
MD!OASR)<#&X$ 5U*AR%0MC$"U$$-@?!'ENHP!+A59AILDAPPZA %Q;@B )XC
M@ L&0+ZR5<\80B/:,0CP@@'PK'IF>TO:DN8Y ?PC .LP!=*4AHY@1/!I49L:
M V2& /')STO-D!D!?M&1*S3B?U!P(#J.<#]BY,\?.6@>'3QS#W\HXG^/65W$
MAI$.8 @"XO@Q@JP(0<%[, #5@B ' BPB''\(QPS $8Z/@$ 6L"@&2'@@0#F
MX*>V5883 I $+1* QV: X!?F6) -0+>">R3P.'(8@"^.HP]'7",0Q'#!(?8Q
MAP7$L3*C$,!RF(#'0)##'_^P02),P(4 J-($6@B-,6)! /4@P0:CP$( !G /
MJH".$<-8@3?NL0U:* &/-F"$!YP1 L<@!^_D, <@�ZS@&7&<ARHL\ %T
M< ( W$2'$0: #A008 ;M2"4[>&0#=; 3'0% QQ3T49F/X.(@E<&!*%-2F1L$
M@&)6N,+%","/.))(&ZS@ 0CHL \>)( .]^!!"SA!M>[5(0 )S<$=/L "&,AA
M VV)AC06L8Q%T&L<(@VI- :0C0E<@SV#D 8 UL&-272B#@>X!S9B"H![:.,+
M7F#=,*PP WOD@B\R( <_6"$#<(AC'X"@1Q7H< !<=*0R+?+",.R(QU% (P"[
M:!O2B(#',MI#&("@0P$ \0AJ! (2\B#2P!0 SPFP@.\" C#."+ #C@ T@K
M@2Z"40 \<K-$+!# .$[@" ,PTP2+L $+ % , [A (S0Q@RV88-_>$ % K!!
M966 66WLXB"=_:P N-G8QR(6 ..@@2.",8-_F 0QJ&#"G(Q&U_ (@#S, 4=
M%I"+?_PACO)P11TNL(YR&, #!_C (N[Q"[>R A.18(4_IA8 )*A"'/?@IB\6
M^8M%HJ,+ )A82WPAS6B2$PH \(4)!/ +% CE"#,= ,7&2U_SYB F#_A'+B@
M@,T&S:W9(P M?(#'(8A#'N@XR7X43,H0(%:Q!]@%Z#P+6@\4PP)Y#2P>/S",
M'=QC#@IXPA,6T0#K_2,:ZY"'>MG1DZ+L@P)]B, @]@$ /C#@P&]5JU5G*H X
M"I5B-0;$$_P1FBT"] J[P >I?D";%$ 7%Q9!1RT,6 "#R@D()/#'**0\"GT$
MP!(C[,@@C$$ S_D#E51A\B*<0 !&8,,1P$!'$P8 U".W)*"X2*0CL '=15B!
M +[P@0!:L0-AT $"0+ $'1APB3@6]Q_)G>XZUF&)/D=,&*"C&/PPA@YC_,-R
M%)"$22W=D.3>(QI)T' =@8#'AWTZU"VI,9!5UF4Y H&-3D" H0U BQ_@<0X*
M3L Z7@#DM*(@H/Q8A#Q,N@ADC&,#M&@ *W1 ##IT@ <:P"E;W2J =10 $04X
M@CC681X6 34=_AB 4 >1C^P= ! \4 =SK$.<0!99!D8*Q[O(8S>** 1%A"
M (I=UF? 0@'+-H8!% X A"N<X2&0 R\LIX&;("![(+CT(J)A52'@,1<= 82B
M!:#O \ B4U8PP#H<,>QU,$+E"E= ';*Q#ET\P@ $$( CEMG, _@"$ "X[FU]
M\-4!R*$(4&CL9(V,C%=C)[DFP$$!ZI"/01Q#WE6/QA62ZX5!V/ >V=C"(H9!
MMP(<I 2H7 $X%L$/#QC@ \Z<!RGNI J2?L 7@9AI89!! *$6>YTQ\400+ *
MO:NH[_3@YIBXL0A_L$(!4P,!.FX@*7HXP0J*@2<KT"$# *@"\Y-&QPAH(P]C
M%"$EZ] &Y)>PA!W,8PX(:,4A#O T?\0XC*MTIVV#[E Z"$"AP^ !%^J 'R+
MH#.L6(<&>/!\"R2T 72( /7%S0=_+)\ 3U#%.MH1?6W,N I#9^8,DJ&B1:1C
M$?E(0F0GNQ0Z(, 1QDAN$92KCR)< LS[TP_14 X#\&$?< 6_ !'H, X"\##/
ML C], #XD @NL$[0Y0C>4%1), X3$ @\L -#H%;, P!%4 2L<'H3I _BT Z)
MX 3@] %=X&<TY@49<PANM5!^(@!"L'XC=VR>,5_-9AJ!-V?"%G/0%4?\8#'P
M8%+C4 :XH ! D%QU( -1L C/L +*L($0@$><, #PT G(-DCKD 26\P)&D N@
MHPL31PNT%@)AJ&PTP'%@= WK4 Q5>(7*P(5>"(;))GU24P<6\&_#U1,& @_
M$&X2N X$D ](PP%9( =(80P.DPZ;$!K!M@#)4 <%H"+I\ BA$7-L>&Q]2 Y_
M" Z"J "+H V&B(CXL [/P(@ P 'KD SIP P'DP_N, ?X$ 2 $ [[$Q3\T J5
MAPK9(P1(L /!, <5L C0X(6M0(QT0 ,#( R%LB"]1 2^9PZ5-VD#D ^)P 3^
ML +!H#X%8&[=Z _@*!J9Q0C1L /1H%8FH$P, "!_( ##8 (2!P$*UP.H1 <E
M4'G."(W3Y@_'F(R]P(P!F3WB,(W5.%V]MP[:> 0(8#D$,&CK0 $FX \.H(_9
M9V>,< T[< SP.'0(@!0WL Z\L AW8 !QA YJ [8 QTT D\%9 @ GHX 62
MT@#^T 3^@ X<("D%8 E.X 3KD D>V8[!0#4F, KSN B\=P1%!@R9, Q56 3^
M (T#L +(D 1!$ 2Z8%PFL ,6X "@#'1H YU4 \J,@#&( <5,(URT #W( TC
M( PK8 SH,!O,5Y=I60?E$$=9, Q2$ 7HT &2@@$"M3_P, #RX&9PMI*+8 TK
M< U*D A5X ]8D 5:, Q3 4S( T>( 52$"A7=7?HD P'0PP(, CZ\ \?H 5;
M8'P+( W#( <(8&1;- <&@ ZX03)"E53PE%ZB( T$00YU, (JUW1S27UST *
M)0<% OE> "0(!(38 =9,P&[( $"< V8, K($ ##H C$L [WX#JP4Q.^@!AH
M00$@TS$+H"L>T"L"(#(!< 1KA@ Y8 -4$ !SH(W'H$42@Y &T$IR4 ,Y8 "Z
M- <5\0" $@W8$ L#, WHP C98!C,M ++0#>., SW84QXA 5R $D ](D$L!
M4 F+X *MU$RM!*+'D Z6@ ]/QC%^4!HX\ NM-&P3A@0X)4\ ( <GL Y($%FL
MT%W99V(S"3@ 8@0,H"M6X05S -K1@ )E*3(5IMU8 DDPGKT &I. C#\ #1
ML T4.@WK0 M(4%;I( F"DPA4 " VD*1Q= ">5J!.P #3E0.E,VE7FJ5%(P_Y
ML X_D(H#P %RD .+, VS96)=F@,>T* F0*9FN@TPEJGK *D)P%*AL*%W!@PB
MFG$- *E380&Z) F'P$;1,&.O$SL#A14Y8P D, !Z5 = \#S1,S^%4SW70S1T
M< *+0 K$#A&P ]2LQ-0$#]*% #\@#])P@]4M3N_T!#@(S@M=!'F0:##H!$.
ML'A,D 9B( =A( =Y (M (H, 0I, 1O =Y( =I< 9H0 <@T 1I, 9R\ 9S
M\ 9F8*_N*@=P (QD ,X8 ,?H!$% !,N0!(-VQ&0< " +$&,'$:80"$<!"0
M,'%M PEXT!%)HQ%T0 T .(<+&)! E-T$H7 8)?8 1)P 1%\ 5)X 1&\ 0:
M@0&!L!$! +$MT %$;$)L1$))P 8T )P ;<0 ,L1$2T #>^0^[,!N0X \
MP -.T 13< 0^X ,= ;1E( ?[*@<@( ,P ,QH ,@X 1UP 9L )P\ 9IX 9T
M$+8@$ 9S, ?SZ@9M4 9T"[0:,0!@*[9O0+9FNQ%J.P5T$ 9CL 8@\ 9V$+9F
MP 9O< > >Q"#.[9E>[8SH+9)0+=E< 9V2P9I8 =I0 9E )B<*XP +AMD[F%
MN[DP0 -J2P1/, 5EZP(P\+ADRP9A4+=D*P=E$ =UD ;"2P9 2P( !&P:[AG
HFP-JZP1O8*]^^P9U0*\@, =PP+BI:P:QZ[>FNZ]\Z[<S61#_L!$: !&P
end
Technical Details
Message-ID:
<889@cblpe.ATT.COM>Path:
arc1-ca.pugleaf.net!utzoo!utgpu!water!watmath!clyde!cbosgd!cblpf!cblpe!resReferences:
<2941@killer.UUCP>Show Full Headers
Complete Article Headers
Path: arc1-ca.pugleaf.net!utzoo!utgpu!water!watmath!clyde!cbosgd!cblpf!cblpe!res From: res@cblpe.ATT.COM (Rob Stampfli) Newsgroups: comp.text,comp.unix.questions,comp.sys.ibm.pc Subject: Re: Looking for Boldface/Underline Filter Keywords: boldface underline nroff backspace cr Message-ID: <889@cblpe.ATT.COM> Date: 19 Jan 88 03:07:05 GMT References: <2941@killer.UUCP> Reply-To: res@cblpe.ATT.COM (55216-Rob Stampfli) Organization: AT&T Bell Laboratories - Columbus, Ohio Lines: 171