PD plot(4) librarys (and hercules driver for interactive 386) part 3 of 9

Roland van Hout hot at integow.uucp
Sun Oct 28 14:53:10 AEST 1990


#!/bin/sh
# This is part 03 of a multipart archive
if touch 2>&1 | fgrep '[-amc]' > /dev/null
 then TOUCH=touch
 else TOUCH=true
fi
# ============= libplot/lp/charset.0 ==============
echo "x - extracting libplot/lp/charset.0 (Text)"
sed 's/^X//' << 'SHAR_EOF' > libplot/lp/charset.0 &&
X   2,0, 100, 0,0, -100, 0,2, 100, 0,6, -200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200 /* ! */
X   1,6, 100, 1,2, -100, 1,-2, 100, 1,2, -200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200 /* " */
X   1,1, 100, 0,6, -100, 2,0, 100, 0,-6, -100, 1,2, 100, -4,0, -100, 0,2, 100, 4,0, -200,-200,-200,-200,-200 /* # */
X   0,2, 100, 1,-1, 2,0, 1,1, 0,1, -4,2, 0,1, 1,1, 2,0, 1,-1, -100, -2,2, 100, 0,-8, -200 /* $ */
X   0,2, 100, 3,4, -100, -2,0, 100, -1,-1, 0,1, 1,0, -100, 2,-3, 100, 0,-1, -1,0, 1,1, -200,-200,-200 /* % */
X   4,0, 100, -3,5, 0,2, 1,1, 1,-1, 0,-2, -3,-2, 0,-2, 1,-1, 2,0, 1,2, -200,-200,-200,-200,-200 /* & */
X   1,6, 100, 1,2, -200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200 /* ' */
X   3,0, 100, -1,2, 0,4, 1,2, -200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200 /* ( */
X   1,0, 100, 1,2, 0,4, -1,2, -200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200 /* ) */
X   0,2, 100, 4,4, -100, -4,0, 100, 4,-4, -100, -2,0, 100, 0,4, -200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200 /* * */
X   2,2, 100, 0,4, -100, -2,-2, 100, 4,0, -200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200 /* + */
X   2,0, 100, -1,0, 0,1, 1,0, 0,-1, -1,-1, -200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200 /* , */
X   0,4, 100, 4,0, -200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200 /* - */
X   1,0, 100, 0,1, 1,0, 0,-1, -1,0, -200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200 /* . */
X   0,1, 100, 3,6, -200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200 /* / */
X   1,0, 100, -1,3, 0,2, 1,3, 2,0, 1,-3, 0,-2, -1,-3, -2,0, -200,-200,-200,-200,-200,-200,-200,-200,-200 /* 0 */
X   1,0, 100, 2,0, -1,0, 0,8, -1,-1, -200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200 /* 1 */
X   4,0, 100, -4,0, 0,1, 1,2, 2,1, 1,1, 0,2, -1,1, -2,0, -1,-1, 0,-1, -200,-200,-200,-200,-200 /* 2 */
X   0,1, 100, 1,-1, 2,0, 1,1, 0,2, -1,1, -2,0, 2,0, 1,1, 0,2, -1,1, -2,0, -1,-1, -200 /* 3 */
X   4,0, 100, 0,8, 0,-4, -4,0, 1,4, -200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200 /* 4 */
X   0,1, 100, 1,-1, 2,0, 1,1, 0,2, -1,1, -3,0, 0,4, 4,0, -200,-200,-200,-200,-200,-200,-200,-200,-200 /* 5 */
X   0,4, 100, 3,0, 1,-1, 0,-2, -1,-1, -2,0, -1,1, 0,6, 1,1, 2,0, 1,-1, -200,-200,-200,-200,-200 /* 6 */
X   1,0, 100, 3,8, -4,0, -200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200 /* 7 */
X   0,1, 100, 0,2, 4,2, 0,2, -1,1, -2,0, -1,-1, 0,-2, 4,-2, 0,-2, -1,-1, -2,0, -1,1, -200 /* 8 */
X   4,0, 100, 0,8, -3,0, -1,-1, 0,-2, 1,-1, 2,0, 1,1, -200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200 /* 9 */
X   1,0, 100, 0,1, 1,0, 0,-1, -1,0, -100, 0,4, 100, 0,1, 1,0, 0,-1, -1,0, -200,-200,-200,-200,-200 /* : */
X   2,0, 100, -1,0, 0,1, 1,0, 0,-1, -1,-1, -100, 0,5, 100, 0,1, 1,0, 0,-1, -1,0, -200,-200,-200 /* ; */
X   4,1, 100, -3,3, 3,3, -200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200 /* < */
X   0,3, 100, 4,0, -100, 0,2, 100, -4,0, -200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200 /* = */
X   0,1, 100, 3,3, -3,3, -200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200 /* > */
X   2,0, 100, 0,0, -100, 0,2, 100, 0,1, 2,2, 0,2, -1,1, -2,0, -1-1, -200,-200,-200,-200,-200,-200,-200 /* ? */
X   4,1, 100, -3,0, -1,1, 0,4, 1,1, 2,0, 1,-1, 0,-2, -1,-1, -1,0, 0,2, 2,1, -200, -200, -200 /* @ */
X   100, 0,5, 2,3, 2,-3, 0,-5, -100, 0,4, 100, -4,0, -200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200 /* A */
X   0,4, 100, 3,0, 1,-1, 0,-2, -1,-1, -3,0, 0,8, 3,0, 1,-1, 0,-2, -1,-1, -200,-200,-200,-200,-200 /* B */
X   4,1, 100, -1,-1, -2,0, -1,1, 0,6, 1,1, 2,0, 1,-1, -200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200 /* C */
X   100, 0,8, 3,0, 1,-1, 0,-6, -1,-1, -3,0, -200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200 /* D */
X   4,0, 100, -4,0, 0,4, 3,0, -3,0, 0,4, 4,0, -200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200 /* E */
X   100, 0,4, 3,0, -3,0, 0,4, 4,0, -200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200 /* F */
X   2,3, 100, 2,0, 0,-2, -1,-1, -2,0, -1,1, 0,6, 1,1, 2,0, 1,-1, -200,-200,-200,-200,-200,-200,-200 /* G */
X   100, 0,8, 0,-4, 4,0, 0,4, 0,-8, -200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200 /* H */
X   1,0, 100, 2,0, -1,0, 0,8, 1,0, -2,0, -200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200 /* I */
X   0,2, 100, 0,-1, 1,-1, 2,0, 1,1, 0,7, -1,0, -200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200 /* J */
X   100, 0,8, 0,-4, 4,4, -4,-4, 4,-4, -200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200 /* K */
X   4,0, 100, -4,0, 0,8, -200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200 /* L */
X   100, 0,8, 2,-3, 2,3, 0,-8, -200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200 /* M */
X   100, 0,8, 4,-8, 0,8, -200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200 /* N */
X   0,1, 100, 0,6, 1,1, 2,0, 1,-1, 0,-6, -1,-1, -2,0, -1,1, -200,-200,-200,-200,-200,-200,-200,-200,-200 /* O */
X   100, 0,8, 3,0, 1,-1, 0,-2, -1,-1, -3,0, -200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200 /* P */
X   0,1, 100, 0,6, 1,1, 2,0, 1,-1, 0,-6, -1,-1, -2,0, -1,1, -100, 2,1, 100, 2,-2, -200,-200,-200 /* Q */
X   100, 0,8, 3,0, 1,-1, 0,-2, -1,-1, -3,0, 2,0, 2,-4, -200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200 /* R */
X   0,1, 100, 1,-1, 2,0, 1,1, 0,2, -1,1, -2,0, -1,1, 0,2, 1,1, 2,0, 1,-1, -200,-200,-200 /* S */
X   2,0, 100, 0,8, -2,0, 4,0, -200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200 /* T */
X   0,8, 100, 0,-7, 1,-1, 2,0, 1,1, 0,-1, 0,8, -200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200 /* U */
X   0,8, 100, 1,-5, 1,-3, 1,3, 1,5, -200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200 /* V */
X   0,8, 100, 0,-6, 1,-2, 1,3, 0,1, 0,-1, 1,-3, 1,2, 0,6, -200,-200,-200,-200,-200,-200,-200,-200,-200 /* W */
X   100, 4,8, -100, -4,0, 100, 4,-8, -200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200 /* X */
X   2,0, 100, 0,5, -2,3, 2,-3, 2,3, -200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200 /* Y */
X   0,8, 100, 4,0, -4,-8, 4,0, -200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200 /* Z */
X   3,0, 100, -1,0, 0,8, 1,0, -200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200 /* [ */
X   0,7, 100, 3,-6, -200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200 /* \ */
X   1,0, 100, 1,0, 0,8, -1,0, -200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200 /* ] */
X   0,6, 100, 2,2, 2,-2, -200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200 /* ^ */
X   100, 4,0, -200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200 /* _ */
X   2,8, 100, 1,-2, -200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200 /* ` */
X   4,1, 100, -1,-1, -2,0, -1,1, 0,2, 1,2, 3,0, 0,-5, -200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200 /* a */
X   0,8, 100, 0,-8, 0,1, 1,-1, 2,0, 1,1, 0,3, -1,1, -3,0, -200,-200,-200,-200,-200,-200,-200,-200,-200 /* b */
X   4,1, 100, -1,-1, -2,0, -1,1, 0,3, 1,1, 2,0, 1,-1, -200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200 /* c */
X   4,8, 100, 0,-8, 0,1, -1,-1, -2,0, -1,1, 0,3, 1,1, 3,0, -200,-200,-200,-200,-200,-200,-200,-200,-200 /* d */
X   4,1, 100, -1,-1, -2,0, -1,1, 0,3, 1,1, 2,0, 1,-1, 0,-1, -4,0, -200,-200,-200,-200,-200,-200,-200 /* e */
X   1,0, 100, 0,7, 1,1, 1,0, 1,-1, -100, -2,-3, 100, -2,0, -200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200 /* f */
X   4,1, 100, -1,-1, -2,0, -1,1, 0,3, 1,1, 3,0, 0,-7, -1,-1, -2,0, -1,1, -200,-200,-200,-200,-200 /* g */
X   100, 0,8, 0,-4, 1,1, 2,0, 1,-1, 0,-4, -200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200 /* h */
X   1,0, 100, 2,0, -1,0, 0,5, -100, 0,2, 100, 0,0, -200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200 /* i */
X   0,-2, 100, 1,-1, 1,0, 1,1, 0,7, -100, 0,2, 100, 0,0, -200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200 /* j */
X   100, 0,8, 0,-5, 4,2, -2,-1, 2,-4, -200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200 /* k */
X   1,0, 100, 2,0, -1,0, 0,8, -1,0, -200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200 /* l */
X   100, 0,5, 0,-1, 1,1, 1,0, 0,-5, 0,4, 1,1, 1,0, 0,-5, -200,-200,-200,-200,-200,-200,-200,-200,-200 /* m */
X   100, 0,5, 0,-1, 1,1, 2,0, 1,-1, 0,-4, -200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200 /* n */
X   1,0, 100, -1,1, 0,3, 1,1, 2,0, 1,-1, 0,-3, -1,-1, -2,0, -200,-200,-200,-200,-200,-200,-200,-200,-200 /* o */
X   0,-3, 100, 0,8, 3,0, 1,-1, 0,-3, -1,-1, -2,0, -1,1, -200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200 /* p */
X   4,1, 100, -1,-1, -2,0, -1,1, 0,3, 1,1, 3,0, 0,-8, -1,0, 2,0, -200,-200,-200,-200,-200,-200,-200 /* q */
X   100, 0,5, 0,-2, 2,2, 2,0, -200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200 /* r */
X   0,1, 100, 1,-1, 2,0, 1,1, 0,1, -4,1, 0,1, 1,1, 2,0, 1,-1, -200,-200,-200,-200,-200,-200,-200 /* s */
X   2,0, 100, 0,8, -100, -2,-3, 100, 4,0, -200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200 /* t */
X   0,5, 100, 0,-4, 1,-1, 2,0, 1,1, 0,-1, 0,5, -200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200 /* u */
X   0,5, 100, 2,-5, 2,5, -200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200 /* v */
X   0,5, 100, 0,-3, 1,-2, 1,3, 0,2, 0,-2, 1,-3, 1,2, 0,3, -200,-200,-200,-200,-200,-200,-200,-200,-200 /* w */
X   100, 4,5, -100, -4,0, 100, 4,-5, -200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200 /* x */
X   0,5, 100, 2,-5, -2,-3, 2,3, 2,5, -200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200 /* y */
X   4,0, 100, -4,0, 4,5, -4,0, -200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200 /* z */
X   3,0, 100, -1,1, 0,2, -1,1, 1,1, 0,2, 1,1, -200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200 /* { */
X   2,0, 100, 0,8, -200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200 /* | */
X   1,0, 100, 1,1, 0,2, 1,1, -1,1, 0,2, -1,1, -200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200 /* } */
X   1,6, 100, 1,1, 1,-1, 1,1, -200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200 /* ~ */
SHAR_EOF
$TOUCH -am 0706211890 libplot/lp/charset.0 &&
chmod 0644 libplot/lp/charset.0 ||
echo "restore of libplot/lp/charset.0 failed"
set `wc -c libplot/lp/charset.0`;Wc_c=$1
if test "$Wc_c" != "11475"; then
	echo original size 11475, current size $Wc_c
fi
# ============= libplot/lp/circle.c ==============
echo "x - extracting libplot/lp/circle.c (Text)"
sed 's/^X//' << 'SHAR_EOF' > libplot/lp/circle.c &&
X/*
X * do_ci.c
X *
X * Copyright (c) 1988 Environmental Defense Fund, Inc.
X */
X
X#include <stdio.h>
X#include <math.h>
X#include "plotlp.h"
X#ifdef TESTVER
X#include "dbgvars.h"
X#endif
X
X#define DEGREES_TO_RADIANS 3.1415926535898 / 180.0
X
Xcircle(x,y,r)
Xint x,y,r;
X{
X    POINT   t,
X            t0,
X            t1;
X    float   radius;
X    int     i_radius,
X            chordangle;
X    int     i;
X
X#ifdef TESTVER
X    int     xwas_on;		/* for debugging */
X
X    /* turn debug2 off, if necessary, for the duration of do_CI() */
X    if (debug2x) {
X	xwas_on = TRUE;
X	debug2x = FALSE;
X    } else {
X	xwas_on = FALSE;
X    }
X#endif
X
X
X	radius=r*gxscrunch;
X
X    if (scaling) {
X	i_radius = (int) (radius * x_scaler);
X	if (i_radius < 0)
X	    i_radius -= 1;
X    } else
X	i_radius = (int) radius;
X	current.x=x*gxscrunch;current.y=y*gyscrunch;
X        current.x += offx; current.y += offy;
X    t.x = t0.x = i_radius + current.x;
X    t.y = t0.y = current.y;
X    chordangle=1;
X    for (i = chordangle; i < 360; i += chordangle) {
X	t1.x = (double) radius *cos((double) i
X	    *       DEGREES_TO_RADIANS) + current.x;
X	t1.y = (double) radius *sin((double) i
X	    *       DEGREES_TO_RADIANS) + current.y;
X
X	put_seg(t, t1);
X	t = t1;
X    }
X    /* plot last full or partial chord; chordangle may not be a factor of 360 */
X    put_seg(t, t0);
X
X#ifdef TESTVER			/* reset debug2x if necessary */
X    if (xwas_on) {
X	debug2x = TRUE;
X    }
X#endif
X}
SHAR_EOF
$TOUCH -am 1010212988 libplot/lp/circle.c &&
chmod 0644 libplot/lp/circle.c ||
echo "restore of libplot/lp/circle.c failed"
set `wc -c libplot/lp/circle.c`;Wc_c=$1
if test "$Wc_c" != "1407"; then
	echo original size 1407, current size $Wc_c
fi
# ============= libplot/lp/const.h ==============
echo "x - extracting libplot/lp/const.h (Text)"
sed 's/^X//' << 'SHAR_EOF' > libplot/lp/const.h &&
X/*
X * const.h
X *
X * Copyright (c) 1988 Environmental Defense Fund, Inc.
X */
X
Xtypedef struct {
X    int     x,
X            y;
X} POINT;
X
X#define PA 0
X#define PR 1
X#define PD 2
X#define PU 3
X
X#define ESC 27
X
X#define TRUE 1
X#define FALSE 0
X
X/* LINE TYPES */
X#define DOTS 0
X#define SHORT_DASH 1
X#define BROKN_1 2
X#define BROKN_2 3
X#define BROKN_DOT 4
X#define BROKN_DASH 5
X#define BROKN_2DASH 6
X#define SOLID 7
X
X/* FILL TYPES: values assigned to var fill_type */
X#define BI_SOLID 1
X#define UNI_SOLID 2
X#define PARALLEL 3
X#define CROSS_HATCH 4
X
X/* Charater set defines */
X#define CHAR_ELEM 28
X#define NUM_CHAR 94
X
X/* Printer model: values of global var 'printer' */
X#define EPSON    1		/* Epson LQ 1500 */
X#define LASERLOW 2		/* HP LaserJet Plus low sized 5" x 6" */
X#define IBM_PRO  3		/* IBM Proprinter */
X#define LASERMED 4		/* HP LaserJet Plus med sized 8" x 6" */
X#define LASERHIGH 5		/* HP LaserJet Plus extra large 8" x 11"*/
X
X#define BITMAPSIZE 935000
SHAR_EOF
$TOUCH -am 1007125888 libplot/lp/const.h &&
chmod 0644 libplot/lp/const.h ||
echo "restore of libplot/lp/const.h failed"
set `wc -c libplot/lp/const.h`;Wc_c=$1
if test "$Wc_c" != "951"; then
	echo original size 951, current size $Wc_c
fi
# ============= libplot/lp/dbgvars.h ==============
echo "x - extracting libplot/lp/dbgvars.h (Text)"
sed 's/^X//' << 'SHAR_EOF' > libplot/lp/dbgvars.h &&
X/*
X * dbgvars.h
X *
X * Copyright (c) 1988 Environmental Defense Fund, Inc.
X *
X * the home for these vars is set_dbgs.c
X */
X
X#include <stdio.h>
X
Xextern FILE *errfp;
X
Xextern int debug1c,
X        debug1f,
X        debug2,
X        debug2x,
X        debug3,
X        debug4,
X        debug5,
X        debug6,
X        debug7,
X        debug8,
X        debug9;
SHAR_EOF
$TOUCH -am 1007125888 libplot/lp/dbgvars.h &&
chmod 0644 libplot/lp/dbgvars.h ||
echo "restore of libplot/lp/dbgvars.h failed"
set `wc -c libplot/lp/dbgvars.h`;Wc_c=$1
if test "$Wc_c" != "346"; then
	echo original size 346, current size $Wc_c
fi
# ============= libplot/lp/ep_map.c ==============
echo "x - extracting libplot/lp/ep_map.c (Text)"
sed 's/^X//' << 'SHAR_EOF' > libplot/lp/ep_map.c &&
X/*
X * ep_map.c
X *
X * Copyright (c) 1988 Environmental Defense Fund, Inc.
X */
X
X#include <stdio.h>
X#include "const.h"
X#include "fillcnst.h"
X
X#ifdef TESTVER
X#include <signal.h>
X#include "dbgvars.h"
X#endif
X
X/* Constants */
X/* SCALEX = 10.15 (inches) / 10366 (plotter units) * 180 (dots/inch) */
X#define SCALEX 0.1762492
X/* SCALEY = 7.8 (inches) / 7963 (plotter units) * 180 (dots/inch) */
X#define SCALEY 0.1763154
X
X#define YLIM 1404
X#define XLIM 231
X
X#define ROUNDER 0.0
X
X#ifdef TESTVER
X#define PUT_BIT(x, y) map[(tempindex = (tempy = y) + YLIM * ((tempx = x) >> 3))] |= BITS[x & 7];
X#else
X#define PUT_BIT(x, y) map[y + YLIM * (x >> 3)] |= BITS[x & 7]
X#endif
X
X#define ABS(x) ( (x) > 0.0 ? (x) : -(x) )
X
Xstatic char BITS[] = {0x80, 0x40, 0x20, 0x10, 0x08, 0x04, 0x02, 0x01};
X
X/* move bit map to maps.c for combined printer version --- */
X/* char   map[XLIM * YLIM]; */
Xextern char map[];
X
X#ifdef TESTVER
Xstatic int tempindex,
X        tempx,
X        tempy;
Xstatic POINT tempp1,
X        tempp2;
X
Xep_catch()
X{
X    fprintf(stderr, "Segmentation violation\n");
X    fprintf(stderr, "tempindex = %d x = %d y = %d p1 = %d,%d p2 = %d,%d\n", tempindex, tempx, tempy, tempp1.x, tempp1.y, tempp2.x, tempp2.y);
X    ep_dump_map(FALSE);
X    exit(1);
X}
X
Xepcatchi()
X{
X    ep_dump_map(FALSE);
X    exit(1);
X}
X
X#endif
X
X
Xep_put_seg(p1, p2)
X    POINT   p1,
X            p2;
X{
X    double  diffx,
X            diffy,
X            change_ratio;
X    register int x,
X            y;
X    register int inc;
X
X#ifdef TESTVER
X    if (debug2 || debug2x) {
X	fprintf(errfp, "p1 ( %d, %d );   p2 ( %d, %d )\n",
X	    p1.x, p1.y, p2.x, p2.y);
X    }
X#if 0
X    signal(SIGSEGV, ep_catch);
X    signal(SIGINT, epcatchi);
X#endif
X    tempp1 = p1;
X    tempp2 = p2;
X#endif
X
X    p1.x = SCALEX * (double) p1.x + ROUNDER;
X    p2.x = SCALEX * (double) p2.x + ROUNDER;
X    p1.y = SCALEY * (double) p1.y + ROUNDER;
X    p2.y = SCALEY * (double) p2.y + ROUNDER;
X
X    diffx = p2.x - p1.x;
X    diffy = p2.y - p1.y;
X
X    if (diffx != 0.0 && diffy != 0.0) {
X	if (ABS(diffx) > ABS(diffy)) {
X	    inc = (diffx < 0) ? -1 : 1;
X	    change_ratio = diffy / diffx;
X	    for (x = p1.x; x != p2.x; x += inc) {
X		y = (x - p1.x) * change_ratio + p1.y + ROUNDER;
X		PUT_BIT(x, y);
X	    }
X	    PUT_BIT(p2.x, p2.y);
X	} else {
X	    inc = (diffy < 0) ? -1 : 1;
X	    change_ratio = diffx / diffy;
X	    for (y = p1.y; y != p2.y; y += inc) {
X		x = (y - p1.y) * change_ratio + p1.x + ROUNDER;
X		PUT_BIT(x, y);
X	    }
X	    PUT_BIT(p2.x, p2.y);
X	}
X    } else {
X	if (diffx) {		/* horizontal line */
X	    y = p1.y;
X	    inc = (diffx < 0) ? -1 : 1;
X	    for (x = p1.x; x != p2.x; x += inc) {
X		PUT_BIT(x, y);
X	    }
X	    PUT_BIT(p2.x, y);
X	} else {
X	    x = p1.x;
X	    inc = (diffy < 0) ? -1 : 1;
X	    for (y = p1.y; y != p2.y; y += inc) {
X		PUT_BIT(x, y);
X	    }
X	    PUT_BIT(x, p2.y);
X	}
X    }
X}
X
X
X/* LEFT_CUTOFF is the number of dot rows along left edge of page to skip over.
X *    shifts image to the left by that many dot rows on the hardcopy page */
X#define LEFT_CUTOFF  72
X
Xep_dump_map(to_printer)
X    int     to_printer;
X{
X    register int k;
X    int     map_max = XLIM * YLIM;
X    int     i,
X            j;
X    char    hdr[5];
X    register char *pm0,
X           *pm1,
X           *pm2,
X           *pb;
X    char    buf[180];
X    int     non_blank;
X    short int lim;
X
X#ifndef TESTVER
X    to_printer = TRUE;
X#endif
X
X    if (to_printer) {
X	hdr[0] = ESC;
X	hdr[1] = '3';
X	hdr[2] = 24;		/* Spacing at 24/180 inch per line */
X	write(1, hdr, 3);
X	hdr[1] = '*';
X	hdr[2] = 39;		/* Triple density, 24 pins */
X	hdr[3] = (YLIM - LEFT_CUTOFF) & 0x0ff;
X	hdr[4] = ((YLIM - LEFT_CUTOFF) >> 8) & 0x0ff;
X	for (k = 0; k < map_max; k += 3 * YLIM) {
X	    write(1, hdr, 5);
X	    pm0 = &map[k + LEFT_CUTOFF];
X	    pm1 = &map[k + YLIM + LEFT_CUTOFF];
X	    pm2 = &map[k + (2 * YLIM) + LEFT_CUTOFF];
X	    lim = YLIM - LEFT_CUTOFF;
X	    while ((lim -= 60) >= 0) {
X		pb = buf;
X		for (i = 0; i < 60; i++) {
X		    *pb++ = *pm0++;
X		    *pb++ = *pm1++;
X		    *pb++ = *pm2++;
X		}
X		write(1, buf, 180);
X		fflush(stdout);
X	    }
X
X	    if (lim < 0)
X		for (lim += 60; lim > 0; lim--) {
X		    pb = buf;
X		    *pb++ = *pm0++;
X		    *pb++ = *pm1++;
X		    *pb++ = *pm2++;
X		    write(1, buf, 3);
X		    fflush(stdout);
X		}
X	    write(1, "\n\r", 2);/* LF and CR to end line */
X	}
X	hdr[0] = '\f';		/* Initialize the printer */
X	write(1, hdr, 1);
X	fflush(stdout);
X	hdr[0] = ESC;		/* Initialize the printer */
X	hdr[1] = '@';
X	write(1, hdr, 2);
X	fflush(stdout);
X#ifdef TESTVER
X	fclose(errfp);
X#endif
X
X    }
X#ifdef TESTVER
X    else {
X	FILE   *tty,
X	       *ttyout;
X	int     dump_start,
X	        dump_stop;
X
X	if ((tty = fopen(TTY, "r")) == NULL) {
X	    perror(TTY);
X	    exit(10);
X	}
X	if ((ttyout = fopen(TTY, "w")) == NULL) {
X	    perror(TTY);
X	    exit(10);
X	}
X	fprintf(ttyout, "Enter start bit:");
X	fflush(ttyout);
X	fscanf(tty, "%d", &dump_start);
X	dump_stop = dump_start + 79;
X	non_blank = 0;
X	pb = buf;
X	for (k = 0; k < XLIM * YLIM; k += YLIM) {
X	    for (i = 0; i < 8; i++) {
X		for (j = k + dump_start; j < k + dump_stop; j++) {
X		    if (map[j] & BITS[i]) {
X			sprintf(pb, ".");
X			non_blank = 1;
X		    } else {
X			sprintf(pb, " ");
X		    }
X		    pb++;
X		}
X		if (non_blank) {
X		    sprintf(pb, "\n\000");
X		    printf("%s", buf);
X		}
X		non_blank = 0;
X		pb = buf;
X	    }
X	}
X    }
X#endif
X
X}
X
X
Xep_init_map()
X{
X    register int k;
X    int     map_max = XLIM * YLIM;
X    register char *mp;
X
X#ifdef TRUESOLID
X    extern double PUs_per_dot;	/* declared in file filltype.c */
X
X    PUs_per_dot = 1.0 / SCALEX;	/* used by fix_fill() in file filltype.c */
X#endif
X
X    mp = map;
X    for (k = 0; k < map_max; k++) {
X	*mp++ = 0;
X    }
X}
SHAR_EOF
$TOUCH -am 1007125888 libplot/lp/ep_map.c &&
chmod 0644 libplot/lp/ep_map.c ||
echo "restore of libplot/lp/ep_map.c failed"
set `wc -c libplot/lp/ep_map.c`;Wc_c=$1
if test "$Wc_c" != "5595"; then
	echo original size 5595, current size $Wc_c
fi
# ============= libplot/lp/fillcnst.h ==============
echo "x - extracting libplot/lp/fillcnst.h (Text)"
sed 's/^X//' << 'SHAR_EOF' > libplot/lp/fillcnst.h &&
X/*
X * fillcnst.h
X *
X * Copyright (c) 1988 Environmental Defense Fund, Inc.
X */
X
X#define DEG_TO_RAD  0.017453292	/* pi/180  */
X#define PI          3.1415926535898
X#define PI_2        1.5707962	/* pi/2; approx 180 deg  */
X#define PI_4        0.7853981	/* pi/4; approx  90 deg  */
X#define PI_9        0.3490658	/* pi/9; approx  20 deg  */
X
X/* values stored in global vars C_A, C_B, A_B  */
X#define GENR        0		/* non-special angle relationship */
X#define PARL        1		/* segment & hatch line parallel */
X#define VERT        2		/* segment is vertical */
X#define HORZ        3		/* segment is horizontal */
X
Xtypedef struct {
X    double  xx,
X            yy;
X} FPOINT;
X
X/*
X * fill_type / fill_angle combos: values for hatching and filler
X *    these are values assigned to vars fill and fixed_fill
X */
X#define SOLIDFILL   0
X#define CROSS_0     4
X#define CROSS_45    1
X#define PARLL_0     2
X#define PARLL_45    5
X#define PARLL_90    6
X#define PARLL_135   3
X#define OTHER      -1
SHAR_EOF
$TOUCH -am 1007125888 libplot/lp/fillcnst.h &&
chmod 0644 libplot/lp/fillcnst.h ||
echo "restore of libplot/lp/fillcnst.h failed"
set `wc -c libplot/lp/fillcnst.h`;Wc_c=$1
if test "$Wc_c" != "975"; then
	echo original size 975, current size $Wc_c
fi
# ============= libplot/lp/fillvars.h ==============
echo "x - extracting libplot/lp/fillvars.h (Text)"
sed 's/^X//' << 'SHAR_EOF' > libplot/lp/fillvars.h &&
X/*
X * fillvars.h
X *
X * Copyright (c) 1988 Environmental Defense Fund, Inc.
X *
X * the home for these vars is hatch.c
X */
X
Xextern int hatch_degs;		/* hatch angle in degrees */
Xextern double hatch_rads;	/* hatch angle in radians */
Xextern double x_shift;
Xextern double chg_x_CA,
X        chg_y_CA,
X        chg_x_CB,
X        chg_y_CB,
X        chg_x_AB,
X        chg_y_AB;
X
X/*
X * status of line segment: vertical (VERT), horizontal (HORZ), 
X * parallel to the hatch lines (PARL), or generic (GENR) -- non-special
X */
Xextern int C_A,
X        C_B,
X        A_B;
X
X/* variables used by fix_fill(), which is called from do_FT and do_SP */
Xextern int fill,
X        fixed_fill,
X        pen_number,
X        spacing;
SHAR_EOF
$TOUCH -am 1007125888 libplot/lp/fillvars.h &&
chmod 0644 libplot/lp/fillvars.h ||
echo "restore of libplot/lp/fillvars.h failed"
set `wc -c libplot/lp/fillvars.h`;Wc_c=$1
if test "$Wc_c" != "700"; then
	echo original size 700, current size $Wc_c
fi
echo "End of part 3, continue with part 4"
exit 0





-- 
UUCP: ..!uunet!mcsun!hp4nl!integow!hot	or  hot at integow.UUCP or hot at hot.mug
Roland van Hout, Sr. software engineer, Integrity software consultants, 
         Pelmolenlaan 16, 3447 GW Woerden, Netherlands,
            tel +31 3480-30131, fax +31 3480-30182



More information about the Alt.sources mailing list