summaryrefslogtreecommitdiff
path: root/usr/src/ucbcmd/plot/libplot/hp7221/linemod.c
diff options
context:
space:
mode:
Diffstat (limited to 'usr/src/ucbcmd/plot/libplot/hp7221/linemod.c')
-rw-r--r--usr/src/ucbcmd/plot/libplot/hp7221/linemod.c78
1 files changed, 78 insertions, 0 deletions
diff --git a/usr/src/ucbcmd/plot/libplot/hp7221/linemod.c b/usr/src/ucbcmd/plot/libplot/hp7221/linemod.c
new file mode 100644
index 0000000000..f950e8d4ef
--- /dev/null
+++ b/usr/src/ucbcmd/plot/libplot/hp7221/linemod.c
@@ -0,0 +1,78 @@
+/* Copyright (c) 1984, 1986, 1987, 1988, 1989 AT&T */
+/* All Rights Reserved */
+
+
+#ident "%Z%%M% %I% %E% SMI" /* SVr4.0 1.1 */
+
+/*
+ * Copyright (c) 1980 Regents of the University of California.
+ * All rights reserved. The Berkeley software License Agreement
+ * specifies the terms and conditions for redistribution.
+ */
+
+/*
+ * Copyright (c) 1983, 1984 1985, 1986, 1987, 1988, Sun Microsystems, Inc.
+ * All Rights Reserved.
+ */
+
+
+#include "hp7221.h"
+
+linemod( line )
+char *line;
+{
+ /*
+ * Note that the bit patterns could be compacted using the
+ * repeat field conventions. They aren't for clarity.
+ * Examples of almost identical packed patterns are in the
+ * comments.
+ * If linemod is changed really often, a ~15% savings
+ * could be achieved.
+ */
+ if ( *(line) == 's' ) {
+ if ( *(++line) == 'o' ) {
+ /*
+ * solid mode 1
+ */
+ printf( "vA" );
+ return;
+ }
+ else if ( *(line) == 'h' ) {
+ /*
+ * shortdashed mode 4
+ */
+ printf( "vD" );
+ return;
+ }
+ }
+ else if ( *(line) == 'd' ) {
+ if ( *(++line) == 'o' && *(++line) == 't' ) {
+ if ( *(++line) == 't' ) {
+ /*
+ * dotted mode 2
+ * printf( "W(P00001)" );
+ */
+ printf( "vB" );
+ return;
+ }
+ else if ( *(line) == 'd' ) {
+ /*
+ * dotdashed mode 3
+ * printf( "W(P0110010)" );
+ */
+ printf( "vC" );
+ return;
+ }
+ }
+ }
+ else if ( *(line) == 'l' ) {
+ /*
+ * longdashed mode 5
+ * printf( "W(P11100)" );
+ */
+ printf( "vE" );
+ return;
+ }
+ printf( "vA" );
+ return;
+}