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