summaryrefslogtreecommitdiff
path: root/usr/src/ucbcmd/plot/libplot/gigi/linemod.c
diff options
context:
space:
mode:
Diffstat (limited to 'usr/src/ucbcmd/plot/libplot/gigi/linemod.c')
-rw-r--r--usr/src/ucbcmd/plot/libplot/gigi/linemod.c79
1 files changed, 79 insertions, 0 deletions
diff --git a/usr/src/ucbcmd/plot/libplot/gigi/linemod.c b/usr/src/ucbcmd/plot/libplot/gigi/linemod.c
new file mode 100644
index 0000000000..dc7b011937
--- /dev/null
+++ b/usr/src/ucbcmd/plot/libplot/gigi/linemod.c
@@ -0,0 +1,79 @@
+/* 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 "gigi.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( "W(P1)" );
+ return;
+ }
+ else if ( *(line) == 'h' ) {
+ /*
+ * shortdashed mode 4
+ * printf( "W(P000111)" );
+ */
+ printf( "W(P00011100)" );
+ return;
+ }
+ }
+ else if ( *(line) == 'd' ) {
+ if ( *(++line) == 'o' && *(++line) == 't' ) {
+ if ( *(++line) == 't' ) {
+ /*
+ * dotted mode 2
+ * printf( "W(P00001)" );
+ */
+ printf( "W(P10000000)" );
+ return;
+ }
+ else if ( *(line) == 'd' ) {
+ /*
+ * dotdashed mode 3
+ * printf( "W(P0110010)" );
+ */
+ printf( "W(P10001100)" );
+ return;
+ }
+ }
+ }
+ else if ( *(line) == 'l' ) {
+ /*
+ * longdashed mode 5
+ * printf( "W(P11100)" );
+ */
+ printf( "W(P11111100)" );
+ return;
+ }
+ printf( "W(P1)" ); /* default to solid */
+ return;
+}