1 /* 2 * Copyright (c) 1980 Regents of the University of California. 3 * All rights reserved. The Berkeley software License Agreement 4 * specifies the terms and conditions for redistribution. 5 */ 6 7 #ifndef lint 8 static char sccsid[] = "@(#)linemod.c 5.1 (Berkeley) 05/07/85"; 9 #endif not lint 10 11 #include "gigi.h" 12 13 linemod( line ) 14 char *line; 15 { 16 /* 17 * Note that the bit patterns could be compacted using the 18 * repeat field conventions. They aren't for clarity. 19 * Examples of almost identical packed patterns are in the 20 * comments. 21 * If linemod is changed really often, a ~15% savings 22 * could be achieved. 23 */ 24 if ( *(line) == 's' ) { 25 if ( *(++line) == 'o' ) { 26 /* 27 * solid mode 1 28 */ 29 printf( "W(P1)" ); 30 return; 31 } 32 else if ( *(line) == 'h' ) { 33 /* 34 * shortdashed mode 4 35 * printf( "W(P000111)" ); 36 */ 37 printf( "W(P00011100)" ); 38 return; 39 } 40 } 41 else if ( *(line) == 'd' ) { 42 if ( *(++line) == 'o' && *(++line) == 't' ) { 43 if ( *(++line) == 't' ) { 44 /* 45 * dotted mode 2 46 * printf( "W(P00001)" ); 47 */ 48 printf( "W(P10000000)" ); 49 return; 50 } 51 else if ( *(line) == 'd' ) { 52 /* 53 * dotdashed mode 3 54 * printf( "W(P0110010)" ); 55 */ 56 printf( "W(P10001100)" ); 57 return; 58 } 59 } 60 } 61 else if ( *(line) == 'l' ) { 62 /* 63 * longdashed mode 5 64 * printf( "W(P11100)" ); 65 */ 66 printf( "W(P11111100)" ); 67 return; 68 } 69 printf( "W(P1)" ); /* default to solid */ 70 return; 71 } 72