wnp@killer.UUCP (Wolf Paul) (01/17/88)
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? Please e-mail me at ihnp4!killer!wnp - that's the safest path. Thanks! Wolf Paul ihnp4!killer!wnp -"- !dcs!wnp -"- !doulos!wnp
gwyn@brl-smoke.ARPA (Doug Gwyn ) (01/18/88)
In article <2941@killer.UUCP> wnp@killer.UUCP (Wolf Paul) writes: >Therefore I am looking for a filter which will convert backspace sequences >into overstruck lines, like so: The copyn() module used by the lpserver in BRL's MDQS spooler package performs such operations. I'm mailing wnp a copy..
paul@vixie.UUCP (Paul Vixie Esq) (01/18/88)
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 [...] Does anybody know of such a filter, in C source? I've got just what you're looking for -- I wrote it for my printer's NLQ mode, wherein the printer was shaking back and forth enough to fall off its stand :-(. (All those bidirectional smarts, and they still don't have the backspace in the prefetch scheme...) Anyway, I just posted my quick hack to comp.sources.misc. If it isn't so ugly and unreadable that BSA rejects it, you ought to see it pretty soon. -- Paul A Vixie Esq paul%vixie@uunet.uu.net {uunet,ptsfa,hoptoad}!vixie!paul San Francisco, (415) 647-7023
res@cblpe.ATT.COM (Rob Stampfli) (01/19/88)
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
dave@lsuc.uucp (David Sherman) (01/21/88)
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" We have a utility which does exactly that, called speed(1). It was written by Tom Duff (now alice!td) in 1976 at U of Toronto, and modified by Henry Spencer (now utzoo!henry) in 1978. It ran on v6 UNIX so it should run on anything (though you might get some warnings from your compiler about "old-fashioned" things... I'll mail it to anyone who wants it. David Sherman The Law Society of Upper Canada -- { uunet!mnetor pyramid!utai decvax!utcsri ihnp4!utzoo } !lsuc!dave