xref: /csrg-svn/lib/libplot/hp7221/linemod.c (revision 15473)
1*15473Sralph #ifndef lint
2*15473Sralph static char sccsid[] = "@(#)linemod.c	4.1 (Berkeley) 11/10/83";
3*15473Sralph #endif
4*15473Sralph 
5*15473Sralph #include "hp7221.h"
6*15473Sralph 
7*15473Sralph linemod( line )
8*15473Sralph char	*line;
9*15473Sralph {
10*15473Sralph 	/*
11*15473Sralph 	 * Note that the bit patterns could be compacted using the
12*15473Sralph 	 *  repeat field conventions.  They aren't for clarity.
13*15473Sralph 	 *  Examples of almost identical packed patterns are in the
14*15473Sralph 	 *  comments.
15*15473Sralph 	 *  If linemod is changed really often, a ~15% savings
16*15473Sralph 	 *  could be achieved.
17*15473Sralph 	 */
18*15473Sralph 	if ( *(line) == 's' ) {
19*15473Sralph 		if ( *(++line) == 'o' ) {
20*15473Sralph 			/*
21*15473Sralph 			 * solid mode 1
22*15473Sralph 			 */
23*15473Sralph 			printf( "vA" );
24*15473Sralph 			return;
25*15473Sralph 		}
26*15473Sralph 		else if ( *(line) == 'h' ) {
27*15473Sralph 			/*
28*15473Sralph 			 * shortdashed mode 4
29*15473Sralph 			 */
30*15473Sralph 			printf( "vD" );
31*15473Sralph 			return;
32*15473Sralph 		}
33*15473Sralph 	}
34*15473Sralph 	else if ( *(line) == 'd' ) {
35*15473Sralph 		if ( *(++line) == 'o' && *(++line) == 't' ) {
36*15473Sralph 			if ( *(++line) == 't' ) {
37*15473Sralph 				/*
38*15473Sralph 				 * dotted mode 2
39*15473Sralph 				 *  printf( "W(P00001)" );
40*15473Sralph 				 */
41*15473Sralph 				printf( "vB" );
42*15473Sralph 				return;
43*15473Sralph 			}
44*15473Sralph 			else if ( *(line) == 'd' ) {
45*15473Sralph 				/*
46*15473Sralph 				 * dotdashed mode 3
47*15473Sralph 				 *  printf( "W(P0110010)" );
48*15473Sralph 				 */
49*15473Sralph 				printf( "vC" );
50*15473Sralph 				return;
51*15473Sralph 			}
52*15473Sralph 		}
53*15473Sralph 	}
54*15473Sralph 	else if ( *(line) == 'l' ) {
55*15473Sralph 		/*
56*15473Sralph 		 * longdashed mode 5
57*15473Sralph 		 *  printf( "W(P11100)" );
58*15473Sralph 		 */
59*15473Sralph 		printf( "vE" );
60*15473Sralph 		return;
61*15473Sralph 	}
62*15473Sralph 	printf( "vA" );
63*15473Sralph 	return;
64*15473Sralph }
65