xref: /csrg-svn/lib/libplot/hp7221/linemod.c (revision 48518)
1*48518Sbostic /*-
2*48518Sbostic  * Copyright (c) 1980 The Regents of the University of California.
3*48518Sbostic  * All rights reserved.
4*48518Sbostic  *
5*48518Sbostic  * %sccs.include.proprietary.c%
619978Sdist  */
719978Sdist 
815473Sralph #ifndef lint
9*48518Sbostic static char sccsid[] = "@(#)linemod.c	5.2 (Berkeley) 04/22/91";
10*48518Sbostic #endif /* not lint */
1115473Sralph 
1215473Sralph #include "hp7221.h"
1315473Sralph 
1415473Sralph linemod( line )
1515473Sralph char	*line;
1615473Sralph {
1715473Sralph 	/*
1815473Sralph 	 * Note that the bit patterns could be compacted using the
1915473Sralph 	 *  repeat field conventions.  They aren't for clarity.
2015473Sralph 	 *  Examples of almost identical packed patterns are in the
2115473Sralph 	 *  comments.
2215473Sralph 	 *  If linemod is changed really often, a ~15% savings
2315473Sralph 	 *  could be achieved.
2415473Sralph 	 */
2515473Sralph 	if ( *(line) == 's' ) {
2615473Sralph 		if ( *(++line) == 'o' ) {
2715473Sralph 			/*
2815473Sralph 			 * solid mode 1
2915473Sralph 			 */
3015473Sralph 			printf( "vA" );
3115473Sralph 			return;
3215473Sralph 		}
3315473Sralph 		else if ( *(line) == 'h' ) {
3415473Sralph 			/*
3515473Sralph 			 * shortdashed mode 4
3615473Sralph 			 */
3715473Sralph 			printf( "vD" );
3815473Sralph 			return;
3915473Sralph 		}
4015473Sralph 	}
4115473Sralph 	else if ( *(line) == 'd' ) {
4215473Sralph 		if ( *(++line) == 'o' && *(++line) == 't' ) {
4315473Sralph 			if ( *(++line) == 't' ) {
4415473Sralph 				/*
4515473Sralph 				 * dotted mode 2
4615473Sralph 				 *  printf( "W(P00001)" );
4715473Sralph 				 */
4815473Sralph 				printf( "vB" );
4915473Sralph 				return;
5015473Sralph 			}
5115473Sralph 			else if ( *(line) == 'd' ) {
5215473Sralph 				/*
5315473Sralph 				 * dotdashed mode 3
5415473Sralph 				 *  printf( "W(P0110010)" );
5515473Sralph 				 */
5615473Sralph 				printf( "vC" );
5715473Sralph 				return;
5815473Sralph 			}
5915473Sralph 		}
6015473Sralph 	}
6115473Sralph 	else if ( *(line) == 'l' ) {
6215473Sralph 		/*
6315473Sralph 		 * longdashed mode 5
6415473Sralph 		 *  printf( "W(P11100)" );
6515473Sralph 		 */
6615473Sralph 		printf( "vE" );
6715473Sralph 		return;
6815473Sralph 	}
6915473Sralph 	printf( "vA" );
7015473Sralph 	return;
7115473Sralph }
72