bring in most up to date code; removes hardcoded printer resolution;
[unix-history] / usr / src / lib / libplot / hp7221 / linemod.c
CommitLineData
dca25f5a
DF
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
d3025be0 7#ifndef lint
dca25f5a
DF
8static char sccsid[] = "@(#)linemod.c 5.1 (Berkeley) %G%";
9#endif not lint
d3025be0
RC
10
11#include "hp7221.h"
12
13linemod( line )
14char *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( "vA" );
30 return;
31 }
32 else if ( *(line) == 'h' ) {
33 /*
34 * shortdashed mode 4
35 */
36 printf( "vD" );
37 return;
38 }
39 }
40 else if ( *(line) == 'd' ) {
41 if ( *(++line) == 'o' && *(++line) == 't' ) {
42 if ( *(++line) == 't' ) {
43 /*
44 * dotted mode 2
45 * printf( "W(P00001)" );
46 */
47 printf( "vB" );
48 return;
49 }
50 else if ( *(line) == 'd' ) {
51 /*
52 * dotdashed mode 3
53 * printf( "W(P0110010)" );
54 */
55 printf( "vC" );
56 return;
57 }
58 }
59 }
60 else if ( *(line) == 'l' ) {
61 /*
62 * longdashed mode 5
63 * printf( "W(P11100)" );
64 */
65 printf( "vE" );
66 return;
67 }
68 printf( "vA" );
69 return;
70}