home *** CD-ROM | disk | FTP | other *** search
- Path: uunet!island!argv
- From: argv@island.uu.net (Dan Heller)
- Newsgroups: comp.sources.x
- Subject: v04i052: xtroff -- troff previewer for X11, Part07/18
- Message-ID: <886@island.uu.net>
- Date: 18 Jul 89 07:25:03 GMT
- Organization: Island Graphics, Marin County, California
- Lines: 2089
- Approved: island!argv@sun.com
-
- Submitted-by: Mark Moraes <moraes@ai.toronto.edu>
- Posting-number: Volume 4, Issue 52
- Archive-name: xtroff/part07
-
-
-
- #! /bin/sh
- # This is a shell archive. Remove anything before this line, then unpack
- # it by saving it into a file and typing "sh file". To overwrite existing
- # files, type "sh file -c". You can also feed this as standard input via
- # unshar, or by typing "sh <file", e.g.. If this archive is complete, you
- # will see the following message at the end:
- # "End of archive 7 (of 18)."
- # Contents: xtroff/NeWS/Makefile xtroff/README.X11 xtroff/arc.c
- # xtroff/devpsc/NB xtroff/devpsc/ND xtroff/devpsc/NI xtroff/devpsc/S
- # xtroff/fontstuff/ch2vft.c xtroff/fontstuff/rst2ch.c
- # xtroff/suntroff.h
- # Wrapped by moraes@neat.ai on Thu Jul 13 20:55:04 1989
- PATH=/bin:/usr/bin:/usr/ucb ; export PATH
- if test -f 'xtroff/NeWS/Makefile' -a "${1}" != "-c" ; then
- echo shar: Will not clobber existing file \"'xtroff/NeWS/Makefile'\"
- else
- echo shar: Extracting \"'xtroff/NeWS/Makefile'\" \(5051 characters\)
- sed "s/^X//" >'xtroff/NeWS/Makefile' <<'END_OF_FILE'
- X# fonts/news/Makefile
- X#
- X# Makefile for NeWS fonts.
- X# D. A. Cahlander 88/12/31.
- X# Copyright (c) 1988 Cray Research, Inc. All Rights Reserved.
- X# PostScript is a trademark of Adobe Systems, Inc.
- X
- X# see README for more information
- X# makedev is the program that builds device descriptions
- X
- XNEWSDIR = /usr/NeWS/fonts
- XFONTDIR = /usr/lib/X11/fonts/misc
- XFONTS = ${TIMES} ${COURIER} ${HELVETICA} ${SYMBOL}
- XOTHERFONTS = ${BOSTON} ${CYRILLIC} ${CURSOR} ${GFONT} \
- X ${HEVETICA_MEDIUM} ${ICON} ${KANJI} ${SCREEN}
- XSHELL = /bin/sh
- X
- XFBFILES = \
- X Btn10.fb Btn12.fb Btn18.fb Btn30.fb Btn35.fb Btn9.fb \
- X Crl11.fb \
- X Crr1.fb Crr10.fb Crr12.fb Crr14.fb Crr16.fb \
- X Crr18.fb Crr24.fb Crr32.fb Crr6.fb Crr7.fb Crr8.fb Crr9.fb \
- X CrrB10.fb CrrB12.fb CrrB14.fb CrrB16.fb CrrB18.fb CrrB24.fb \
- X CrrB32.fb \
- X CrrBO10.fb CrrBO12.fb CrrBO14.fb CrrBO16.fb CrrBO18.fb CrrBO24.fb \
- X CrrBO32.fb \
- X CrrO10.fb CrrO12.fb CrrO14.fb CrrO16.fb CrrO18.fb CrrO24.fb \
- X CrrO32.fb \
- X Cursor12.fb \
- X GFont12.fb \
- X Hlv10.fb Hlv12.fb Hlv14.fb Hlv18.fb Hlv24.fb Hlv32.fb \
- X Hlv7.fb Hlv9.fb \
- X HlvB10.fb HlvB12.fb HlvB14.fb HlvB18.fb HlvB24.fb HlvB32.fb \
- X HlvBO10.fb HlvBO12.fb HlvBO14.fb HlvBO18.fb HlvBO24.fb HlvBO32.fb \
- X HlvO10.fb HlvO12.fb HlvO14.fb HlvO18.fb HlvO24.fb HlvO32.fb \
- X HlvM32.fb \
- X Icon12.fb \
- X Kanji16.fb Kanji24.fb \
- X Scn11.fb Scn13.fb Scn15.fb Scn7.fb \
- X ScnB13.fb ScnB15.fb \
- X Smb10.fb Smb12.fb Smb14.fb Smb18.fb Smb24.fb Smb32.fb \
- X SmbM32.fb \
- X TmsB10.fb TmsB12.fb TmsB14.fb TmsB18.fb TmsB24.fb TmsB25.fb \
- X TmsB27.fb TmsB30.fb TmsB32.fb TmsB34.fb TmsB39.fb TmsB44.fb \
- X TmsB49.fb TmsB54.fb TmsB59.fb TmsB69.fb TmsB89.fb \
- X TmsBI10.fb TmsBI12.fb TmsBI14.fb TmsBI18.fb TmsBI24.fb TmsBI32.fb \
- X TmsI10.fb TmsI12.fb TmsI14.fb TmsI18.fb TmsI24.fb TmsI26.fb \
- X TmsI29.fb TmsI32.fb TmsI33.fb TmsI38.fb TmsI43.fb TmsI47.fb \
- X TmsI53.fb TmsI57.fb TmsI67.fb TmsI86.fb \
- X TmsR10.fb TmsR12.fb TmsR14.fb TmsR16.fb TmsR18.fb TmsR19.fb \
- X TmsR20.fb TmsR23.fb TmsR24.fb TmsR26.fb TmsR28.fb TmsR31.fb \
- X TmsR32.fb TmsR36.fb TmsR41.fb TmsR46.fb TmsR51.fb TmsR56.fb \
- X TmsR62.fb TmsR72.fb TmsR9.fb TmsR92.fb
- X
- XBOSTON = \
- X Btn10.snf Btn12.snf Btn18.snf Btn30.snf Btn35.snf Btn9.snf
- X
- XCYRILLIC = Crl11.snf
- X
- XCOURIER = \
- X Crr1.snf Crr10.snf Crr12.snf Crr14.snf Crr16.snf \
- X Crr18.snf Crr24.snf Crr32.snf Crr6.snf Crr7.snf Crr8.snf Crr9.snf \
- X CrrB10.snf CrrB12.snf CrrB14.snf CrrB16.snf CrrB18.snf CrrB24.snf \
- X CrrB32.snf \
- X CrrBO10.snf CrrBO12.snf CrrBO14.snf CrrBO16.snf CrrBO18.snf CrrBO24.snf \
- X CrrBO32.snf \
- X CrrO10.snf CrrO12.snf CrrO14.snf CrrO16.snf CrrO18.snf CrrO24.snf \
- X CrrO32.snf
- X
- XCURSOR = Cursor12.snf
- X
- XGFONT = GFont12.snf
- X
- XHELVETICAL = \
- X Hlv10.snf Hlv12.snf Hlv14.snf Hlv18.snf Hlv24.snf Hlv32.snf \
- X Hlv7.snf Hlv9.snf \
- X HlvB10.snf HlvB12.snf HlvB14.snf HlvB18.snf HlvB24.snf HlvB32.snf \
- X HlvBO10.snf HlvBO12.snf HlvBO14.snf HlvBO18.snf HlvBO24.snf HlvBO32.snf \
- X HlvO10.snf HlvO12.snf HlvO14.snf HlvO18.snf HlvO24.snf HlvO32.snf
- X
- XHEVETICA_MEDIUM = HlvM32.snf
- X
- XICON = Icon12.snf
- X
- XKANJI = \
- X Kanji16.snf Kanji24.snf
- X
- XSCREEN = \
- X Scn11.snf Scn13.snf Scn15.snf Scn7.snf \
- X ScnB13.snf ScnB15.snf
- X
- XSYMBOL = \
- X Smb10.snf Smb12.snf Smb14.snf Smb18.snf Smb24.snf Smb32.snf \
- X SmbM32.snf
- X
- XTIMES = \
- X TmsB10.snf TmsB12.snf TmsB14.snf TmsB18.snf TmsB24.snf TmsB25.snf \
- X TmsB27.snf TmsB30.snf TmsB32.snf TmsB34.snf TmsB39.snf TmsB44.snf \
- X TmsB49.snf TmsB54.snf TmsB59.snf TmsB69.snf TmsB89.snf \
- X TmsBI10.snf TmsBI12.snf TmsBI14.snf TmsBI18.snf TmsBI24.snf TmsBI32.snf \
- X TmsI10.snf TmsI12.snf TmsI14.snf TmsI18.snf TmsI24.snf TmsI26.snf \
- X TmsI29.snf TmsI32.snf TmsI33.snf TmsI38.snf TmsI43.snf TmsI47.snf \
- X TmsI53.snf TmsI57.snf TmsI67.snf TmsI86.snf \
- X TmsR10.snf TmsR12.snf TmsR14.snf TmsR16.snf TmsR18.snf TmsR19.snf \
- X TmsR20.snf TmsR23.snf TmsR24.snf TmsR26.snf TmsR28.snf TmsR31.snf \
- X TmsR32.snf TmsR36.snf TmsR41.snf TmsR46.snf TmsR51.snf TmsR56.snf \
- X TmsR62.snf TmsR72.snf TmsR9.snf TmsR92.snf
- X
- Xall: ${FONTS}
- X
- Xmore: ${OTHERFONTS}
- X
- Xkanji: ${KANJI}
- X
- Xsymbol: ${SYMBOL}
- X
- Xtimes: ${TIMES}
- X
- Xsample: \
- X Btn10.snf \
- X Crl11.snf \
- X Crr10.snf \
- X CrrB10.snf \
- X CrrBO10.snf \
- X CrrO10.snf \
- X Hlv10.snf \
- X HlvB10.snf \
- X HlvBO10.snf \
- X HlvO10.snf \
- X Smb10.snf \
- X TmsB10.snf \
- X TmsBI10.snf \
- X TmsI10.snf \
- X TmsR10.snf \
- X Cursor12.snf \
- X GFont12.snf \
- X HlvM32.snf \
- X Icon12.snf \
- X Kanji16.snf \
- X Scn11.snf
- X
- Xshar: Makefile README news.awk
- X echo "This is a shar archive. Cut off the header and" > shar.ar
- X echo "execute:" >> shar.ar
- X echo " sh < file" >> shar.ar
- X echo Files: $? >> shar.ar
- X echo "=================== cut here ===================" >> shar.ar
- X shar $? >> shar.ar
- X
- X${FBFILES}:
- X ln -s ${NEWSDIR}/$@ .
- X
- Xinstall:: all
- X cp ${FONTS} ${FONTDIR}
- X cd ${FONTDIR}; mkfontdir
- X
- Xinstallmore: more
- X cp ${OTHERFONTS} ${FONTDIR}
- X cd ${FONTDIR}; mkfontdir
- X
- Xclean::
- X rm -f ${SNFFILES} ${FBFILES} core *.out
- X
- Xclobber: clean
- X
- X.SUFFIXES: .fb .afb .bdf .snf
- X
- X.fb.afb:
- X dumpfont -a -d . ${NEWSDIR}/$<
- X
- X.afb.snf:
- X awk -f news.awk $< | tee $*.bdf | bdftosnf > $*.snf
- X rm $<
- X
- X.fb.snf:
- X dumpfont -a -d . ${NEWSDIR}/$<
- X awk -f news.awk $*.afb | tee $*.bdf | bdftosnf > $*.snf
- X rm $*.afb
- END_OF_FILE
- if test 5051 -ne `wc -c <'xtroff/NeWS/Makefile'`; then
- echo shar: \"'xtroff/NeWS/Makefile'\" unpacked with wrong size!
- fi
- # end of 'xtroff/NeWS/Makefile'
- fi
- if test -f 'xtroff/README.X11' -a "${1}" != "-c" ; then
- echo shar: Will not clobber existing file \"'xtroff/README.X11'\"
- else
- echo shar: Extracting \"'xtroff/README.X11'\" \(5375 characters\)
- sed "s/^X//" >'xtroff/README.X11' <<'END_OF_FILE'
- X X11 Notes:
- X ----------
- X Most of the install details are the same as for Suntroff. The
- Xmajor difference is fonts. The Makefile is hopefully intelligent enough
- Xthat you can just change the few constants at the top and make install.
- XWherever the other README refers to suntools, read 'the X Windows
- XSystem Version 11' and wherever it refers to suntroff, read xtroff.
- X
- X If you are running on a system with dirent.h instead of sys/dir.h,
- Xyou should uncomment the -DDIRENT from the XtStuff Makefile.
- X
- X With X11R3 are included a nice set of Adobe, Bitstream and DEC
- Xfonts at 75dpi and 100dpi resolutions. These are in ISO collating
- Xformat - we use these fonts to create a new set in PostScript collating
- Xsequence. The code and scripts to do this were provided by Dave
- XCahlander <dac@earth.cray.com>. Thanks Dave.
- X
- X For X Windows releases before X11R3, the only fonts I know of that
- Xare widely available and come in a range of sizes useful for documents are
- Xvfonts, they're what this previewer uses. If you haven't got at least the
- Xoriginal R.*, I.*, B.*, and S.* fonts generated from the Hershey fonts for
- Xthe original vcat here at the University of Toronto eons ago, get 'em.
- XThey're not included here to conserve space.
- X
- X Since the X11 server does not load vfonts, the scaled vfonts
- Xgenerated by MakeSunFonts need to be converted to X11 bdf format, and
- Xthence to snf. The Makefile in the fontstuff directory does just that,
- Xusing the program vf2bdf. It can be invoked using the makefile in this
- Xdirectory by 'make fonts'. You then need to put these fonts someplace
- Xuseful, and put that location in the master Makefile. The fonts
- X[RIBS].* are converted to [ribs].*.snf to conform to the sample server
- Xdemands for lower case fontnames only. If you have any other fonts,
- Xyou might want to see font.c!
- X
- X The Makefile is set to generate the xfonts on install if it is not
- Xmaking suntroff. (WARNING: Since Sun has broken 'make' in SunOS4.0 so it
- Xcannot process rules with more than one period in the suffix, you'll have to
- Xget GNU make or some other public domain make, or make from BSD4.[23] if you
- Xhave source, or something to make xfonts under SunOS4.0. Complain to Sun)
- X
- X Most of the X11 code is in the file xwindows.c - chalk up a
- Xpoint for the X Toolkit. There are a few lines added to draw.c for
- Xdrawing functions, and to font.c to load fonts.
- X
- X The directory XtStuff contains the fixed menu widget, based on
- Xfixes made by Dana Chee to a piece of code that was in the R2
- Xcontrib/menus directory. It's the only working popup menu package I
- Xknow of outside the HP widgets. There's a window widget that used to be
- Xwith Chris Peterson's xman.
- X
- X For the record, this is a straight port of the SunTools
- Xpreviewer suntroff which can still be made by simply defining the
- Xpreviewer in the Makefile to be suntroff. Credit goes to the authors
- Xof suntroff for an excellent troff previewer - I only did an X
- Xinterface.
- X
- X xtroff has been tested on Sun3-{50,60,110}s and Sun4-110s with bw2
- Xand cg4 displays, running SunOS3.5 and 4.0. It works reasonably well on
- Xthese. It has also been tested briefly on a monochrome Vaxstation 3200
- Xrunning Ultrix 2.2 and works, but runs *SLOWLY* presumably because of slow
- X'mi' code in the uVax server for dealing with large pixmaps. One day,
- Xsomeone will hopefully fix the server. It has allegedly been seen to compile
- Xand run on Silicon Graphics Iris4d machines and on a Cray running Unicos.
- X
- XNOTE: xwindows.c uses vfprintf() and vsprintf() for the error routines. If
- Xyour machine does not have them, either scream at your manufacturer, or get
- Xa copy from bsd-sources/src/lib/libc/stdio/v*printf.c. They're freely
- Xredistributable.
- X
- XThe following are X Windows specific files:
- X
- X xwindows.c This file contains all the X11 interface.
- X This includes the page movement,
- X and the menu. It provides a large
- X bit map for the troff drawing functions
- X to scribble on then displays the desired
- X part of the page for the user.
- X
- X xtroff.manX The manual page
- X xtroff.tr The ditroff output of the manual page
- X (so you can test the program without
- X ditroff first)
- X arc.c Substitute XDrawArc(s)/XFillArc(s) routines
- X which use XDrawLines to draw fast
- X approximate arcs instead of the much slower
- X server arcs.
- X
- X
- XIn the XtStuff directory:
- X CheckItem.c
- X CheckItem.h
- X CheckItemI.h
- X CheckItemP.h
- X Menu.c
- X Menu.h
- X MenuItem.c
- X MenuItem.h
- X MenuItemI.h
- X MenuItemP.h
- X MenuP.h
- X README.Menu The fixed menu widget
- X
- X README.Window
- X Window.c
- X Window.h
- X WindowP.h The Window widget - untouched.
- X
- X Minibuf.c
- X Minibuf.h
- X MinibufP.h
- X usleep.c A widget that emulates an Emacs-style
- X util.c minibuffer for text interaction and message
- X ask.c display.
- X
- X
- X Mark Moraes
- X Computer Systems Research Institute,
- X University of Toronto,
- X Toronto, Canada M5S 1A4
- X
- X {your favourite backbone}!utcsri!moraes
- X moraes@utcsri.UUCP (new style)
- X moraes@csri.toronto.edu
- X moraes@csri.utoronto.ca
- X moraes@csri.utoronto (bitnet)
- X
- END_OF_FILE
- if test 5375 -ne `wc -c <'xtroff/README.X11'`; then
- echo shar: \"'xtroff/README.X11'\" unpacked with wrong size!
- fi
- # end of 'xtroff/README.X11'
- fi
- if test -f 'xtroff/arc.c' -a "${1}" != "-c" ; then
- echo shar: Will not clobber existing file \"'xtroff/arc.c'\"
- else
- echo shar: Extracting \"'xtroff/arc.c'\" \(4811 characters\)
- sed "s/^X//" >'xtroff/arc.c' <<'END_OF_FILE'
- X#ifndef FASTARCS
- X
- X#include <X11/Xlib.h>
- X#include <math.h>
- X
- X/*
- X * The R3 miarc.c code, which is used to draw arcs in the X server is very
- X * slow, on Suns and uVaxen at least. (It uses iterative solution of
- X * transcendentals to try to be faithful to the protocol) Instead, we use a
- X * fast approximation that computes upto MAXPOINTS points on an arc and draws
- X * a lines between them. Two calls each to sin(), cos(), and some floating
- X * point math (could probably be done in fixed point or integer if you don't
- X * have a math chip). These arcs don't follow the X protocol precisely, but
- X * look reasonable.
- X */
- X/* Author: D. A. Cahlander, <dac@earth.cray.com> 89/02/21 */
- X/*
- X * Last Modified: Mark Moraes, <moraes@csri.toronto.edu> 89/03/23 to
- X * generalize for elliptical arc drawing as a plug compatible
- X * substitute for Xlib XDrawArc()/XFillArc()/XDrawArcs()/XFillArcs()
- X */
- X
- X/* Basic idea: By representing a ellipse as:
- X
- X x = a * cos(t)
- X y = b * sin(t)
- X
- X t can be divided into a small number of lines and represent the arc to
- X "display precision" with 15-20 lines. (More than 20 if it was a large
- X arc.)
- X
- X let dt be the delta angle
- X dc = cos(dt)
- X ds = sin(dt)
- X
- X x1 dc -ds x0
- X = x
- X y1 ds dc y0
- X
- X or
- X x(i+1) = dc*x(i) - ds*y(i)
- X y(i+1) = ds*x(i) + dc*y(i)
- X
- X with the actual (x,y) being:
- X
- X x = xc + x(i)
- X y = yc + y(i)
- X */
- X
- X
- X#define MAXPOINTS 99
- X
- Xstatic drawarc(dpy, d, gc, x1, y1, width, height, angle1, angle2, fill)
- XDisplay *dpy;
- XDrawable d;
- XGC gc;
- Xint x1, y1;
- Xunsigned int width, height;
- Xint angle1, angle2;
- Xint fill;
- X{
- X XPoint points[MAXPOINTS + 2];
- X int npoints;
- X int i;
- X double xc, yc;
- X double ang;
- X#ifdef ELLIPSE_WITHIN_BBOX
- X double delta;
- X#endif /* ELLIPSE_WITHIN_BBOX */
- X double t, xt, yt, dc, ds;
- X double xr, yr;
- X
- X#define DEG_180 (180*64)
- X#define DEG_360 (360*64)
- X#define DEG_720 (720*64)
- X
- X if (angle2 > DEG_360)
- X angle2 = DEG_360;
- X
- X /*
- X * compute number of points needed for "good" display precision
- X */
- X npoints = M_PI * sqrt((double) (width + height) / 2.0);
- X npoints = npoints < 8 ? 8 : npoints;
- X npoints = (npoints * ((angle2 < 0) ? -angle2 : angle2) + DEG_720 - 1)
- X / DEG_360;
- X npoints = npoints > MAXPOINTS ? MAXPOINTS : npoints;
- X /* angle between polygon points */
- X ang = angle2 * M_PI / (DEG_180 * (npoints - 1));
- X dc = cos(ang);
- X ds = - sin(ang);
- X
- X if (angle1 == 0) {
- X xt = 1.0;
- X yt = 0.0;
- X } else {
- X ang = angle1 * M_PI / DEG_180; /* start angle vector */
- X xt = cos(ang);
- X yt = - sin(ang);
- X }
- X
- X#ifdef ELLIPSE_WITHIN_BBOX
- X /*
- X * Warning - possibly non-portable code. Uses internal details of GC
- X * struct
- X */
- X delta = gc->values.line_width / 2.0;
- X#endif /* ELLIPSE_WITHIN_BBOX */
- X
- X /* radius of arc */
- X xr = width / 2.0;
- X yr = height / 2.0;
- X
- X /* center of arc */
- X xc = x1 + xr;
- X yc = y1 + yr;
- X
- X#ifdef ELLIPSE_WITHIN_BBOX
- X xr = (xr > delta) ? xr - delta : delta;
- X yr = (yr > delta) ? yr - delta : delta;
- X#endif /* ELLIPSE_WITHIN_BBOX */
- X
- X i = 0;
- X
- X /*
- X * Warning - possibly non-portable code. Uses internal details of GC
- X * struct
- X */
- X if (fill && angle2 != DEG_360 && gc->values.arc_mode == ArcPieSlice) {
- X points[i].x = xc;
- X points[i].y = yc;
- X i++;
- X }
- X
- X for (; i < npoints; i ++) { /* compute polygon points */
- X points[i].x = xc + xr * xt + (xt >= 0. ? .5 : -.5);
- X points[i].y = yc + yr * yt + (yt >= 0. ? .5 : -.5);
- X t = dc * xt - ds * yt; /* rotate vector */
- X yt = ds * xt + dc * yt;
- X xt = t;
- X }
- X
- X if (fill)
- X XFillPolygon(dpy, d, gc, points, npoints, Convex,
- X CoordModeOrigin);
- X else
- X XDrawLines(dpy, d, gc, points, npoints, CoordModeOrigin);
- X#undef DEG_180
- X#undef DEG_360
- X#undef DEG_720
- X}
- X
- XXDrawArc(dpy, d, gc, x1, y1, width, height, angle1, angle2)
- XDisplay *dpy;
- XDrawable d;
- XGC gc;
- Xint x1, y1;
- Xunsigned int width, height;
- Xint angle1, angle2;
- X{
- X drawarc(dpy, d, gc, x1, y1, width, height, angle1, angle2, 0);
- X}
- X
- XXDrawArcs(dpy, d, gc, arcs, n_arcs)
- XDisplay *dpy;
- XDrawable d;
- XGC gc;
- XXArc *arcs;
- Xint n_arcs;
- X{
- X register XArc *arcp;
- X
- X for(arcp = arcs; n_arcs > 0; n_arcs--)
- X drawarc(dpy, d, gc, (int) (arcp->x), (int) (arcp->y),
- X (unsigned int) (arcp->width), (unsigned int) (arcp->height),
- X (int) (arcp->angle1), (int) (arcp->angle2), 0);
- X}
- X
- XXFillArc(dpy, d, gc, x1, y1, width, height, angle1, angle2)
- XDisplay *dpy;
- XDrawable d;
- XGC gc;
- Xint x1, y1;
- Xunsigned int width, height;
- Xint angle1, angle2;
- X{
- X drawarc(dpy, d, gc, x1, y1, width, height, angle1, angle2, 1);
- X}
- X
- XXFillArcs(dpy, d, gc, arcs, n_arcs)
- XDisplay *dpy;
- XDrawable d;
- XGC gc;
- XXArc *arcs;
- Xint n_arcs;
- X{
- X register XArc *arcp;
- X
- X for(arcp = arcs; n_arcs > 0; n_arcs--)
- X drawarc(dpy, d, gc, (int) (arcp->x), (int) (arcp->y),
- X (unsigned int) (arcp->width), (unsigned int) (arcp->height),
- X (int) (arcp->angle1), (int) (arcp->angle2), 1);
- X}
- X#endif /* FASTARCS */
- END_OF_FILE
- if test 4811 -ne `wc -c <'xtroff/arc.c'`; then
- echo shar: \"'xtroff/arc.c'\" unpacked with wrong size!
- fi
- # end of 'xtroff/arc.c'
- fi
- if test -f 'xtroff/devpsc/NB' -a "${1}" != "-c" ; then
- echo shar: Will not clobber existing file \"'xtroff/devpsc/NB'\"
- else
- echo shar: Extracting \"'xtroff/devpsc/NB'\" \(4611 characters\)
- sed "s/^X//" >'xtroff/devpsc/NB' <<'END_OF_FILE'
- X# STARTFONT 2.1
- X#
- X# Copyright 1984, 1987 Adobe Systems, Inc.
- X# Portions Copyright 1988 Digital Equipment Corporation
- X# New Century Schoolbook is a registered trademark of Linotype.
- X#
- X# Permission to use, copy, modify, and distribute this software and
- X# its documentation for any purpose and without fee is hereby granted,
- X# provided that the above copyright notices appear in all copies and
- X# that both those copyright notices and this permission notice appear
- X# in supporting documentation, and that the names of Adobe Systems and
- X# Digital Equipment Corporation not be used in advertising or
- X# publicity pertaining to distribution of the software without
- X# specific, written prior permission. Adobe Systems and Digital
- X# Equipment Corporation make no representations about the suitability
- X# of this software for any purpose. It is provided "as is" without
- X# express or implied warranty.
- X#
- X# ADOBE SYSTEMS AND DIGITAL EQUIPMENT CORPORATION DISCLAIM ALL
- X# WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING ALL IMPLIED
- X# WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL ADOBE
- X# SYSTEMS AND DIGITAL EQUIPMENT CORPORATION BE LIABLE FOR ANY SPECIAL,
- X# INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER
- X# RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF
- X# CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN
- X# CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
- X#
- X#
- X# FONT -Adobe-New Century Schoolbook-Bold-R-Normal--24-240-75-75-P-149-ISO8859-1
- X# devpsc.NB.24.75
- Xname NB
- Xligatures fl fi 0
- Xspacewidth 57
- Xcharset
- X\| 33 0 000 1/6 em space
- X\^ 17 0 000 1/12 em space
- X\& 00 0 000 no space
- X! 59 2 041 exclam
- X" 67 2 042 quotedbl
- X# 115 2 043 numbersign
- X$ 115 3 044 dollar
- X% 167 2 045 percent
- X& 170 2 046 ampersand
- X' 48 2 047 quoteright
- X( 78 3 050 parenleft
- X) 78 3 051 parenright
- X* 100 2 052 asterisk
- X+ 121 2 053 plus
- X, 56 1 054 comma
- X. 56 0 056 period
- X/ 56 2 057 slash
- Xsl "
- X0 115 2 060 zero
- X1 115 2 061 one
- X2 115 2 062 two
- X3 115 2 063 three
- X4 115 2 064 four
- X5 115 2 065 five
- X6 115 2 066 six
- X7 115 2 067 seven
- X8 115 2 070 eight
- X9 115 2 071 nine
- X: 56 0 072 colon
- X; 56 1 073 semicolon
- X< 121 2 074 less
- X= 121 0 075 equal
- X> 121 2 076 greater
- X? 100 2 077 question
- X@ 149 2 0100 at
- XA 152 2 0101 A
- XB 156 2 0102 B
- XC 156 2 0103 C
- XD 167 2 0104 D
- XE 152 2 0105 E
- XF 144 2 0106 F
- XG 167 2 0107 G
- XH 174 2 0110 H
- XI 89 2 0111 I
- XJ 130 2 0112 J
- XK 163 2 0113 K
- XL 144 2 0114 L
- XM 196 2 0115 M
- XN 167 2 0116 N
- XO 167 2 0117 O
- XP 152 2 0120 P
- XQ 167 3 0121 Q
- XR 163 2 0122 R
- XS 133 2 0123 S
- XT 144 2 0124 T
- XU 167 2 0125 U
- XV 152 2 0126 V
- XW 196 2 0127 W
- XX 144 2 0130 X
- XY 144 2 0131 Y
- XZ 133 2 0132 Z
- X[ 78 3 0133 bracketleft
- X\ 121 2 0134 backslash
- X] 78 3 0135 bracketright
- Xa^ 121 2 0136 asciicircum
- X_ 100 1 0137 underscore
- Xul "
- X\_ "
- X` 48 2 0140 quoteleft
- Xa 122 0 0141 a
- Xb 130 2 0142 b
- Xc 111 0 0143 c
- Xd 133 2 0144 d
- Xe 115 0 0145 e
- Xf 78 2 0146 f
- Xg 122 3 0147 g
- Xh 137 2 0150 h
- Xi 74 2 0151 i
- Xj 70 3 0152 j
- Xk 133 2 0153 k
- Xl 70 2 0154 l
- Xm 193 0 0155 m
- Xn 137 0 0156 n
- Xo 122 0 0157 o
- Xp 133 1 0160 p
- Xq 130 1 0161 q
- Xr 104 0 0162 r
- Xs 100 0 0163 s
- Xt 85 2 0164 t
- Xu 137 0 0165 u
- Xv 122 0 0166 v
- Xw 178 0 0167 w
- Xx 122 0 0170 x
- Xy 122 1 0171 y
- Xz 107 0 0172 z
- X{ 78 3 0173 braceleft
- X| 121 2 0174 bar
- Xor "
- X} 78 3 0175 braceright
- Xa~ 121 0 0176 asciitilde
- X!! 59 3 0241 exclamdown
- XI! "
- Xct 115 3 0242 cent
- Xps 115 2 0243 sterling
- Xpo "
- Xyi 144 2 0245 yen
- Xyn "
- X$J "
- Xsc 100 3 0247 section
- Xum 67 2 0310 dieresis
- X.. "
- Xd< 100 0 0253 guillemotleft
- X- 67 0 055 hyphen
- Xhy "
- Xmc 67 2 0305 macron
- Xma "
- Xaa 67 2 0302 acute
- X\' "
- Xpp 149 2 0266 paragraph
- Xcd 67 1 0313 cedilla
- Xd> 100 0 0273 guillemotright
- X14 172 2 0201 onequarter
- X12 172 2 0202 onehalf
- X34 172 2 0203 threequarters
- X?? 100 3 0277 questiondown
- XI? "
- XAE 196 2 0341 AE
- XO/ 167 2 0351 Oslash
- Xss 122 2 0373 germandbls
- Xae 174 0 0361 ae
- Xo/ 122 3 0371 oslash
- XOE 200 2 0352 OE
- XPL 144 2 0350 Lslash
- Xui 74 0 0365 dotlessi
- Xem 200 0 0320 emdash
- Xhc 67 2 0317 caron
- X'' 67 2 0315 hungarumlaut
- Xdt 67 2 0307 dotaccent
- Xbe 67 2 0306 breve
- XPl 70 2 0370 lslash
- X^ 67 2 0303 circumflex
- Xga 67 2 0301 grave
- X\` "
- Xoe 181 0 0372 oe
- Xbu 121 2 0267 bullet
- Xog 67 1 0316 ogonek
- Xdd 100 3 0263 daggerdbl
- Xdg 100 3 0262 dagger
- Xen 100 0 0261 endash
- Xfl 137 2 0257 fl
- Xfi 137 2 0256 fi
- Xr> 67 0 0255 guilsinglright
- Xl< 67 0 0254 guilsinglleft
- X$D 115 3 0246 florin
- Xpm 200 2 0275 perthousand
- Xbq 96 1 0271 quotedblbase
- Xlq 96 2 0252 quotedblleft
- Xoq "
- Xrq 96 2 0272 quotedblright
- Xcq "
- Xn' 48 2 0251 quotesingle
- Xri 67 2 0312 ring
- X~ 67 2 0304 tilde
- X13 167 0 0210 fudgedproc!
- X23 167 0 0211 fudgedproc!
- X18 167 0 0204 fudgedproc!
- X38 167 0 0205 fudgedproc!
- X58 167 0 0206 fudgedproc!
- X78 167 0 0207 fudgedproc!
- END_OF_FILE
- if test 4611 -ne `wc -c <'xtroff/devpsc/NB'`; then
- echo shar: \"'xtroff/devpsc/NB'\" unpacked with wrong size!
- fi
- # end of 'xtroff/devpsc/NB'
- fi
- if test -f 'xtroff/devpsc/ND' -a "${1}" != "-c" ; then
- echo shar: Will not clobber existing file \"'xtroff/devpsc/ND'\"
- else
- echo shar: Extracting \"'xtroff/devpsc/ND'\" \(4606 characters\)
- sed "s/^X//" >'xtroff/devpsc/ND' <<'END_OF_FILE'
- X# STARTFONT 2.1
- X#
- X# Copyright 1984, 1987 Adobe Systems, Inc.
- X# Portions Copyright 1988 Digital Equipment Corporation
- X# New Century Schoolbook is a registered trademark of Linotype.
- X#
- X# Permission to use, copy, modify, and distribute this software and
- X# its documentation for any purpose and without fee is hereby granted,
- X# provided that the above copyright notices appear in all copies and
- X# that both those copyright notices and this permission notice appear
- X# in supporting documentation, and that the names of Adobe Systems and
- X# Digital Equipment Corporation not be used in advertising or
- X# publicity pertaining to distribution of the software without
- X# specific, written prior permission. Adobe Systems and Digital
- X# Equipment Corporation make no representations about the suitability
- X# of this software for any purpose. It is provided "as is" without
- X# express or implied warranty.
- X#
- X# ADOBE SYSTEMS AND DIGITAL EQUIPMENT CORPORATION DISCLAIM ALL
- X# WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING ALL IMPLIED
- X# WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL ADOBE
- X# SYSTEMS AND DIGITAL EQUIPMENT CORPORATION BE LIABLE FOR ANY SPECIAL,
- X# INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER
- X# RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF
- X# CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN
- X# CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
- X#
- X#
- X# FONT -Adobe-New Century Schoolbook-Bold-I-Normal--24-240-75-75-P-148-ISO8859-1
- X# devpsc.ND.24.75
- Xname ND
- Xligatures fl fi 0
- Xspacewidth 57
- Xcharset
- X\| 33 0 000 1/6 em space
- X\^ 17 0 000 1/12 em space
- X\& 00 0 000 no space
- X! 67 2 041 exclam
- X" 80 2 042 quotedbl
- X# 121 2 043 numbersign
- X$ 115 3 044 dollar
- X% 178 3 045 percent
- X& 178 2 046 ampersand
- X' 52 2 047 quoteright
- X( 81 3 050 parenleft
- X) 81 3 051 parenright
- X* 100 2 052 asterisk
- X+ 121 2 053 plus
- X, 57 1 054 comma
- X. 57 0 056 period
- X/ 56 2 057 slash
- Xsl "
- X0 115 2 060 zero
- X1 115 2 061 one
- X2 115 2 062 two
- X3 115 2 063 three
- X4 115 2 064 four
- X5 115 2 065 five
- X6 115 2 066 six
- X7 115 2 067 seven
- X8 115 2 070 eight
- X9 115 2 071 nine
- X: 57 0 072 colon
- X; 57 1 073 semicolon
- X< 121 2 074 less
- X= 121 0 075 equal
- X> 121 2 076 greater
- X? 96 2 077 question
- X@ 149 2 0100 at
- XA 148 2 0101 A
- XB 152 2 0102 B
- XC 152 2 0103 C
- XD 167 2 0104 D
- XE 148 2 0105 E
- XF 141 2 0106 F
- XG 163 2 0107 G
- XH 174 2 0110 H
- XI 89 2 0111 I
- XJ 133 2 0112 J
- XK 156 2 0113 K
- XL 141 2 0114 L
- XM 189 2 0115 M
- XN 170 2 0116 N
- XO 167 2 0117 O
- XP 148 2 0120 P
- XQ 167 3 0121 Q
- XR 159 2 0122 R
- XS 137 2 0123 S
- XT 144 2 0124 T
- XU 167 2 0125 U
- XV 148 2 0126 V
- XW 189 2 0127 W
- XX 148 2 0130 X
- XY 141 2 0131 Y
- XZ 141 2 0132 Z
- X[ 81 3 0133 bracketleft
- X\ 121 2 0134 backslash
- X] 81 3 0135 bracketright
- Xa^ 121 2 0136 asciicircum
- X_ 100 1 0137 underscore
- Xul "
- X\_ "
- X` 52 2 0140 quoteleft
- Xa 133 0 0141 a
- Xb 122 2 0142 b
- Xc 107 0 0143 c
- Xd 133 2 0144 d
- Xe 104 0 0145 e
- Xf 78 3 0146 f
- Xg 122 3 0147 g
- Xh 137 2 0150 h
- Xi 78 2 0151 i
- Xj 74 3 0152 j
- Xk 130 2 0153 k
- Xl 78 2 0154 l
- Xm 189 0 0155 m
- Xn 137 0 0156 n
- Xo 115 0 0157 o
- Xp 130 1 0160 p
- Xq 126 1 0161 q
- Xr 104 0 0162 r
- Xs 96 0 0163 s
- Xt 81 2 0164 t
- Xu 137 0 0165 u
- Xv 111 0 0166 v
- Xw 167 0 0167 w
- Xx 115 0 0170 x
- Xy 104 1 0171 y
- Xz 104 0 0172 z
- X{ 81 3 0173 braceleft
- X| 121 2 0174 bar
- Xor "
- X} 81 3 0175 braceright
- Xa~ 121 0 0176 asciitilde
- X!! 67 3 0241 exclamdown
- XI! "
- Xct 115 3 0242 cent
- Xps 115 2 0243 sterling
- Xpo "
- Xyi 115 2 0245 yen
- Xyn "
- X$J "
- Xsc 100 3 0247 section
- Xum 67 2 0310 dieresis
- X.. "
- Xd< 96 0 0253 guillemotleft
- X- 67 0 055 hyphen
- Xhy "
- Xmc 67 2 0305 macron
- Xma "
- Xaa 67 2 0302 acute
- X\' "
- Xpp 130 2 0266 paragraph
- Xcd 67 1 0313 cedilla
- Xd> 96 0 0273 guillemotright
- X14 172 2 0201 onequarter
- X12 172 2 0202 onehalf
- X34 172 2 0203 threequarters
- X?? 96 3 0277 questiondown
- XI? "
- XAE 178 2 0341 AE
- XO/ 167 3 0351 Oslash
- Xss 115 3 0373 germandbls
- Xae 163 0 0361 ae
- Xo/ 115 3 0371 oslash
- Xoe 170 0 0372 oe
- XPl 78 2 0370 lslash
- Xui 78 0 0365 dotlessi
- XOE 193 2 0352 OE
- XPL 141 2 0350 Lslash
- Xem 200 0 0320 emdash
- Xhc 67 2 0317 caron
- Xog 67 1 0316 ogonek
- X'' 67 2 0315 hungarumlaut
- Xri 67 2 0312 ring
- Xdt 67 2 0307 dotaccent
- Xbe 67 2 0306 breve
- X~ 67 2 0304 tilde
- X^ 67 2 0303 circumflex
- Xga 67 2 0301 grave
- X\` "
- Xpm 233 3 0275 perthousand
- Xrq 96 2 0272 quotedblright
- Xcq "
- Xbq 96 1 0271 quotedblbase
- Xbu 121 0 0267 bullet
- Xdd 100 3 0263 daggerdbl
- Xdg 100 3 0262 dagger
- Xen 100 0 0261 endash
- Xfl 137 3 0257 fl
- Xfi 137 3 0256 fi
- Xr> 56 0 0255 guilsinglright
- Xl< 56 0 0254 guilsinglleft
- Xlq 96 2 0252 quotedblleft
- Xoq "
- Xn' 45 2 0251 quotesingle
- X$D 115 3 0246 florin
- X13 167 0 0210 fudgedproc!
- X23 167 0 0211 fudgedproc!
- X18 167 0 0204 fudgedproc!
- X38 167 0 0205 fudgedproc!
- X58 167 0 0206 fudgedproc!
- X78 167 0 0207 fudgedproc!
- END_OF_FILE
- if test 4606 -ne `wc -c <'xtroff/devpsc/ND'`; then
- echo shar: \"'xtroff/devpsc/ND'\" unpacked with wrong size!
- fi
- # end of 'xtroff/devpsc/ND'
- fi
- if test -f 'xtroff/devpsc/NI' -a "${1}" != "-c" ; then
- echo shar: Will not clobber existing file \"'xtroff/devpsc/NI'\"
- else
- echo shar: Extracting \"'xtroff/devpsc/NI'\" \(4605 characters\)
- sed "s/^X//" >'xtroff/devpsc/NI' <<'END_OF_FILE'
- X# STARTFONT 2.1
- X#
- X# Copyright 1984, 1987 Adobe Systems, Inc.
- X# Portions Copyright 1988 Digital Equipment Corporation
- X# New Century Schoolbook is a registered trademark of Linotype.
- X#
- X# Permission to use, copy, modify, and distribute this software and
- X# its documentation for any purpose and without fee is hereby granted,
- X# provided that the above copyright notices appear in all copies and
- X# that both those copyright notices and this permission notice appear
- X# in supporting documentation, and that the names of Adobe Systems and
- X# Digital Equipment Corporation not be used in advertising or
- X# publicity pertaining to distribution of the software without
- X# specific, written prior permission. Adobe Systems and Digital
- X# Equipment Corporation make no representations about the suitability
- X# of this software for any purpose. It is provided "as is" without
- X# express or implied warranty.
- X#
- X# ADOBE SYSTEMS AND DIGITAL EQUIPMENT CORPORATION DISCLAIM ALL
- X# WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING ALL IMPLIED
- X# WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL ADOBE
- X# SYSTEMS AND DIGITAL EQUIPMENT CORPORATION BE LIABLE FOR ANY SPECIAL,
- X# INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER
- X# RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF
- X# CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN
- X# CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
- X#
- X#
- X# FONT -Adobe-New Century Schoolbook-Medium-I-Normal--24-240-75-75-P-136-ISO8859-1
- X# devpsc.NI.24.75
- Xname NI
- Xligatures fl fi 0
- Xspacewidth 56
- Xcharset
- X\| 33 0 000 1/6 em space
- X\^ 17 0 000 1/12 em space
- X\& 00 0 000 no space
- X! 67 2 041 exclam
- X" 80 2 042 quotedbl
- X# 121 2 043 numbersign
- X$ 111 3 044 dollar
- X% 167 2 045 percent
- X& 170 2 046 ampersand
- X' 41 2 047 quoteright
- X( 67 3 050 parenleft
- X) 67 3 051 parenright
- X* 100 2 052 asterisk
- X+ 121 2 053 plus
- X, 56 1 054 comma
- X. 56 0 056 period
- X/ 121 3 057 slash
- Xsl "
- X0 111 2 060 zero
- X1 111 2 061 one
- X2 111 2 062 two
- X3 111 2 063 three
- X4 111 2 064 four
- X5 111 2 065 five
- X6 111 2 066 six
- X7 111 2 067 seven
- X8 111 2 070 eight
- X9 111 2 071 nine
- X: 56 0 072 colon
- X; 56 1 073 semicolon
- X< 121 2 074 less
- X= 121 0 075 equal
- X> 121 2 076 greater
- X? 89 2 077 question
- X@ 149 2 0100 at
- XA 141 2 0101 A
- XB 144 2 0102 B
- XC 144 2 0103 C
- XD 156 2 0104 D
- XE 144 2 0105 E
- XF 133 2 0106 F
- XG 156 2 0107 G
- XH 167 2 0110 H
- XI 81 2 0111 I
- XJ 122 2 0112 J
- XK 148 2 0113 K
- XL 133 2 0114 L
- XM 189 2 0115 M
- XN 163 2 0116 N
- XO 156 2 0117 O
- XP 133 2 0120 P
- XQ 156 3 0121 Q
- XR 148 2 0122 R
- XS 133 2 0123 S
- XT 137 2 0124 T
- XU 163 2 0125 U
- XV 141 2 0126 V
- XW 185 2 0127 W
- XX 141 2 0130 X
- XY 137 2 0131 Y
- XZ 133 2 0132 Z
- X[ 67 3 0133 bracketleft
- X\ 121 2 0134 backslash
- X] 67 3 0135 bracketright
- Xa^ 121 2 0136 asciicircum
- X_ 100 1 0137 underscore
- Xul "
- X\_ "
- X` 41 2 0140 quoteleft
- Xa 115 0 0141 a
- Xb 111 2 0142 b
- Xc 89 0 0143 c
- Xd 122 2 0144 d
- Xe 89 0 0145 e
- Xf 67 3 0146 f
- Xg 107 3 0147 g
- Xh 122 2 0150 h
- Xi 67 2 0151 i
- Xj 63 3 0152 j
- Xk 111 2 0153 k
- Xl 67 2 0154 l
- Xm 178 0 0155 m
- Xn 122 0 0156 n
- Xo 100 0 0157 o
- Xp 115 1 0160 p
- Xq 111 1 0161 q
- Xr 89 0 0162 r
- Xs 89 0 0163 s
- Xt 70 2 0164 t
- Xu 122 0 0165 u
- Xv 104 0 0166 v
- Xw 156 0 0167 w
- Xx 100 0 0170 x
- Xy 100 1 0171 y
- Xz 93 0 0172 z
- X{ 67 3 0173 braceleft
- X| 121 2 0174 bar
- Xor "
- X} 67 3 0175 braceright
- Xa~ 121 0 0176 asciitilde
- X!! 67 3 0241 exclamdown
- XI! "
- Xct 111 3 0242 cent
- Xps 111 2 0243 sterling
- Xpo "
- Xyi 111 2 0245 yen
- Xyn "
- X$J "
- Xsc 100 3 0247 section
- Xum 67 2 0310 dieresis
- X.. "
- Xd< 85 0 0253 guillemotleft
- X- 67 0 055 hyphen
- Xhy "
- Xmc 67 2 0305 macron
- Xma "
- Xaa 67 2 0302 acute
- X\' "
- Xpp 130 2 0266 paragraph
- Xcd 67 1 0313 cedilla
- Xd> 85 0 0273 guillemotright
- X14 167 2 0201 onequarter
- X12 167 2 0202 onehalf
- X34 167 2 0203 threequarters
- X?? 89 3 0277 questiondown
- XI? "
- XAE 174 2 0341 AE
- XO/ 156 3 0351 Oslash
- Xss 111 3 0373 germandbls
- Xae 144 0 0361 ae
- Xo/ 100 3 0371 oslash
- Xoe 156 0 0372 oe
- XPl 67 2 0370 lslash
- Xui 67 0 0365 dotlessi
- XOE 196 2 0352 OE
- XPL 133 2 0350 Lslash
- Xem 200 0 0320 emdash
- Xhc 67 2 0317 caron
- Xog 67 1 0316 ogonek
- X'' 67 2 0315 hungarumlaut
- Xri 67 2 0312 ring
- Xdt 67 2 0307 dotaccent
- Xbe 67 2 0306 breve
- X~ 67 2 0304 tilde
- X^ 67 2 0303 circumflex
- Xga 67 2 0301 grave
- X\` "
- Xpm 200 3 0275 perthousand
- Xrq 78 2 0272 quotedblright
- Xcq "
- Xbq 78 1 0271 quotedblbase
- Xbu 121 0 0267 bullet
- Xdd 100 3 0263 daggerdbl
- Xdg 100 3 0262 dagger
- Xen 100 0 0261 endash
- Xfl 122 3 0257 fl
- Xfi 122 3 0256 fi
- Xr> 67 0 0255 guilsinglright
- Xl< 67 0 0254 guilsinglleft
- Xlq 78 2 0252 quotedblleft
- Xoq "
- Xn' 56 2 0251 quotesingle
- X$D 111 3 0246 florin
- X13 167 0 0210 fudgedproc!
- X23 167 0 0211 fudgedproc!
- X18 167 0 0204 fudgedproc!
- X38 167 0 0205 fudgedproc!
- X58 167 0 0206 fudgedproc!
- X78 167 0 0207 fudgedproc!
- END_OF_FILE
- if test 4605 -ne `wc -c <'xtroff/devpsc/NI'`; then
- echo shar: \"'xtroff/devpsc/NI'\" unpacked with wrong size!
- fi
- # end of 'xtroff/devpsc/NI'
- fi
- if test -f 'xtroff/devpsc/S' -a "${1}" != "-c" ; then
- echo shar: Will not clobber existing file \"'xtroff/devpsc/S'\"
- else
- echo shar: Extracting \"'xtroff/devpsc/S'\" \(5257 characters\)
- sed "s/^X//" >'xtroff/devpsc/S' <<'END_OF_FILE'
- X# STARTFONT 2.1
- X#
- X# Copyright 1984, 1987 Adobe Systems, Inc.
- X# Portions Copyright 1988 Digital Equipment Corporation
- X#
- X# Permission to use, copy, modify, and distribute this software and
- X# its documentation for any purpose and without fee is hereby granted,
- X# provided that the above copyright notices appear in all copies and
- X# that both those copyright notices and this permission notice appear
- X# in supporting documentation, and that the names of Adobe Systems and
- X# Digital Equipment Corporation not be used in advertising or
- X# publicity pertaining to distribution of the software without
- X# specific, written prior permission. Adobe Systems and Digital
- X# Equipment Corporation make no representations about the suitability
- X# of this software for any purpose. It is provided "as is" without
- X# express or implied warranty.
- X#
- X# ADOBE SYSTEMS AND DIGITAL EQUIPMENT CORPORATION DISCLAIM ALL
- X# WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING ALL IMPLIED
- X# WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL ADOBE
- X# SYSTEMS AND DIGITAL EQUIPMENT CORPORATION BE LIABLE FOR ANY SPECIAL,
- X# INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER
- X# RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF
- X# CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN
- X# CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
- X#
- X#
- X# FONT -Adobe-Symbol-Medium-R-Normal--24-240-75-75-P-142-ADOBE-FONTSPECIFIC
- X# devpsc.S.24.75
- Xname S
- Xspecial
- Xligatures 0
- Xspacewidth 50
- Xcharset
- X\| 33 0 000 1/6 em space
- X\^ 17 0 000 1/12 em space
- X\& 00 0 000 no space
- X! 67 2 041 exclam
- Xfa 143 2 042 universal
- X# 100 2 043 numbersign
- Xte 110 2 044 existential
- X% 167 2 045 percent
- X& 156 2 046 ampersand
- Xcm 88 0 047 suchthat
- X( 67 3 050 parenleft
- X) 67 3 051 parenright
- X** 100 2 052 asteriskmath
- X+ 110 0 053 plus
- Xpl "
- X, 50 1 054 comma
- X\- 110 0 055 minus
- Xmi "
- X. 50 0 056 period
- X/ 56 2 057 slash
- Xsl "
- X0 100 2 060 zero
- X1 100 2 061 one
- X2 100 2 062 two
- X3 100 2 063 three
- X4 100 2 064 four
- X5 100 2 065 five
- X6 100 2 066 six
- X7 100 2 067 seven
- X8 100 2 070 eight
- X9 100 2 071 nine
- X: 56 0 072 colon
- X; 56 1 073 semicolon
- X< 110 0 074 less
- X= 110 0 075 equal
- Xeq "
- X> 110 0 076 greater
- X? 89 2 077 question
- X=~ 110 0 0100 congruent
- X*A 144 2 0101 Alpha
- X*B 133 2 0102 Beta
- X*X 144 2 0103 Chi
- X*D 122 2 0104 Delta
- X*E 122 2 0105 Epsilon
- X*F 153 2 0106 Phi
- X*G 121 2 0107 Gamma
- X*Y 144 2 0110 Eta
- X*I 67 2 0111 Iota
- X*K 144 2 0113 Kappa
- X*L 137 2 0114 Lambda
- X*M 178 2 0115 Mu
- X*N 144 2 0116 Nu
- X*O 144 2 0117 Omicron
- X*P 154 2 0120 Pi
- X*H 148 2 0121 Theta
- X*R 111 2 0122 Rho
- X*S 118 2 0123 Sigma
- X*T 122 2 0124 Tau
- X*U 138 2 0125 Upsilon
- Xts 88 1 0126 sigma1
- X*W 154 2 0127 Omega
- X*C 129 2 0130 Xi
- X*Q 159 2 0131 Psi
- X*Z 122 2 0132 Zeta
- X[ 67 3 0133 bracketleft
- Xtf 173 0 0134 therefore
- X] 67 3 0135 bracketright
- Xbt 132 2 0136 perpendicular
- X_ 100 1 0137 underscore
- Xul "
- X\_ "
- Xrn 100 2 0140 radicalex
- X*a 126 0 0141 alpha
- X*b 110 3 0142 beta
- X*x 110 1 0143 chi
- X*d 99 2 0144 delta
- X*e 88 0 0145 epsilon
- X*f 104 3 0146 phi
- X*g 82 1 0147 gamma
- X*y 121 1 0150 eta
- X*i 66 0 0151 iota
- X*k 110 0 0153 kappa
- X*l 110 2 0154 lambda
- X*m 115 1 0155 mu
- X*n 104 0 0156 nu
- X*o 110 0 0157 omicron
- X*p 110 0 0160 pi
- X*h 104 2 0161 theta
- X*r 110 1 0162 rho
- X*s 121 0 0163 sigma
- X*t 88 0 0164 tau
- X*u 115 0 0165 upsilon
- X*w 137 0 0167 omega
- X*c 99 3 0170 xi
- X*q 137 1 0171 psi
- X*z 99 3 0172 zeta
- X{ 96 3 0173 braceleft
- X| 40 3 0174 bar
- Xor "
- X} 96 3 0175 braceright
- Xap 110 0 0176 similar
- Xfm 49 2 0242 minute
- Xmt "
- X<= 110 2 0243 lessequal
- Xif 143 0 0245 infinity
- X$D 100 3 0246 florin
- XCc 151 0 0247 club
- XCd 151 0 0250 diamond
- Xbs 151 0 0251 heart
- XCh "
- XCs 151 0 0252 spade
- X<> 208 0 0253 arrowboth
- X<- 197 0 0254 arrowleft
- Xua 121 3 0255 arrowup
- X-> 197 0 0256 arrowright
- Xda 121 3 0257 arrowdown
- Xde 80 2 0260 degree
- X+- 110 2 0261 plusminus
- Xsd 82 2 0262 second
- X>= 110 2 0263 greaterequal
- Xmu 110 0 0264 multiply
- Xpt 143 0 0265 proportional
- Xpd 99 2 0266 partialdiff
- Xbu 92 0 0267 bullet
- Xdi 110 0 0270 divide
- X!= 110 0 0271 notequal
- X== 110 0 0272 equivalence
- X~= 110 0 0273 approxequal
- Xcr 132 2 0277 carriagereturn
- Xal 165 2 0300 aleph
- Xax 154 2 0304 circlemultiply
- Xa+ 154 2 0305 circleplus
- Xes 165 2 0306 emptyset
- Xca 154 0 0307 intersection
- Xcu 154 0 0310 union
- Xsp 143 0 0311 propersuperset
- Xip 143 1 0312 reflexsuperset
- X!s 143 3 0313 notsubset
- Xsb 143 0 0314 propersubset
- Xib 143 1 0315 reflexsubset
- Xmo 143 0 0316 element
- X!m 143 3 0317 notelement
- Xag 154 2 0320 angle
- Xgr 143 2 0321 gradient
- Xrg 158 2 0322 registerserif
- Xco 158 2 0323 copyrightserif
- Xtm 178 2 0324 trademarkserif
- Xsr 110 2 0326 radical
- Xm. 50 0 0327 dotmath
- Xno 143 0 0330 logicalnot
- Xan 121 0 0331 logicaland
- Xla "
- Xlo 121 0 0332 logicalor
- Xio 208 0 0333 arrowdblboth
- X<: 197 0 0334 arrowdblleft
- Xlh "
- Xu= 121 2 0335 arrowdblup
- X:> 197 0 0336 arrowdblright
- Xim "
- Xrh "
- Xd= 121 2 0337 arrowdbldown
- Xdm 99 2 0340 lozenge
- Xl< 66 3 0341 angleleft
- XL< "
- XAL 158 2 0360 apple
- Xr> 66 3 0361 angleright
- XR> "
- Xis 55 3 0362 integral
- Xbx 144 2 0205 box
- Xsq 144 2 0204 square
- Xci 158 2 0206 circle
- Xbr 40 3 0207 boxrule
- Xru 100 0 0211 rule
- Xrc 77 3 0224 rightceiling
- Xbv 77 3 0210 boldvertical
- Xrf 77 3 0222 rightfloor
- Xrt 99 3 0215 righttopcurly
- Xrk 99 3 0220 rightmidcurly
- Xrb 99 3 0216 rightbotcurly
- Xlc 77 3 0223 leftceiling
- Xlf 77 3 0221 leftfloor
- Xlt 99 3 0213 lefttopcurly
- Xlk 99 3 0217 leftmidcurly
- Xlb 99 3 0214 leftbotcurly
- END_OF_FILE
- if test 5257 -ne `wc -c <'xtroff/devpsc/S'`; then
- echo shar: \"'xtroff/devpsc/S'\" unpacked with wrong size!
- fi
- # end of 'xtroff/devpsc/S'
- fi
- if test -f 'xtroff/fontstuff/ch2vft.c' -a "${1}" != "-c" ; then
- echo shar: Will not clobber existing file \"'xtroff/fontstuff/ch2vft.c'\"
- else
- echo shar: Extracting \"'xtroff/fontstuff/ch2vft.c'\" \(6303 characters\)
- sed "s/^X//" >'xtroff/fontstuff/ch2vft.c' <<'END_OF_FILE'
- X/* ch2vft.c 1.4 84/04/07
- X *
- X * Font translation to vfonts (RST format) from character format.
- X *
- X * Use: ch2vft [ -i -s ] charfile > vfontfile
- X *
- X * Takes input from charfile (which must be in the format written
- X * by xxx2ch), converts to rst format and writes to stdout. If charfile
- X * is missing, stdin is read. The -i flag tells ch2rst to ignore the
- X * character codes at the start of each glyph definition, and pack the
- X * glyphs in consecutive code positions starting with 0. The -s flag
- X * forces ch2vft to include the whole bit-map that defines the glyph.
- X * Normally, it is trimmed of white space. This is usefull for making
- X * stipple patterns of fixed size.
- X */
- X
- X#include <stdio.h>
- X#include <ctype.h>
- X#include <vfont.h>
- X
- X
- X#define RES 200 /* for vfont, resolution is 200 */
- X#define MAXLINE 200
- X#define GLYPHSPACE (MAXLINE * MAXLINE)
- X#define MAGICNO 0436
- X#define DIRSIZ 256 /* vfonts MUST have 256 entries */
- X#define DIMLIMIT 128
- X
- X
- Xchar * rdchar();
- Xchar * malloc();
- X
- Xstruct dispatch g[DIRSIZ]; /* directory of glyph definitions */
- Xstruct header head; /* font file header */
- X
- Xint code, codeindex;
- Xint width, length, maxv, minv, maxh, minh, refv, refh;
- Xint fileaddr;
- X
- Xint ignorecode = 0;
- Xint stipple = 0;
- XFILE * filep;
- Xchar ibuff[MAXLINE];
- Xchar ebuff[MAXLINE];
- Xchar * glyphs[DIRSIZ];
- Xchar charbits[GLYPHSPACE]; /* place to store bits for a glyph */
- X
- X
- Xmain(argc,argv)
- Xint argc;
- Xchar **argv;
- X{
- X register int i;
- X register int j;
- X register int k;
- X register char *chp;
- X register char *bitp;
- X float par;
- X
- X head.magic = MAGICNO;
- X head.maxx = head.maxy = head.xtend = 0;
- X while (argc > 1 && argv[1][0] == '-') {
- X switch(argv[1][1]) {
- X case 'i':
- X ignorecode = 1;
- X break;
- X
- X case 's':
- X stipple = 1;
- X break;
- X default:
- X error("%s, unknown option flag", argv[1]);
- X }
- X argc--; argv++;
- X }
- X
- X if (argc == 2) {
- X if ((filep = fopen (argv[1], "r")) == NULL)
- X error("can't open file \"%s\"", argv[1]);
- X } else filep = stdin;
- X
- X codeindex = 0;
- X for (i = 0; i < DIRSIZ; glyphs[i++] = (char *) 0);
- X
- X fgets(ibuff, MAXLINE, filep);
- X if (strcmp(ibuff, "fontheader\n"))
- X error("not a character font file");
- X
- X while (fgets(ibuff, MAXLINE, filep) != NULL) {
- X if (index(ibuff, '\n') == 0)
- X error("input line too long");
- X
- X if (ibuff[0] != ':') {
- X sscanf (ibuff, "%s %f", ebuff, &par);
- X if (strcmp(ebuff, "size") == 0);
- X else if (strcmp(ebuff, "version") == 0) {
- X if ((int) (par + 0.5))
- X error("wrong version (%d) for Font file.", (int)(par+0.5));
- X } else if (strcmp(ebuff, "mag") == 0);
- X else if (strcmp(ebuff, "desiz") == 0); /*des_size = par/FIX + 0.5*/
- X else if (strcmp(ebuff, "linesp") == 0);
- X else if (strcmp(ebuff, "wordsp") == 0);
- X else if (strcmp(ebuff, "rot") == 0);
- X else if (strcmp(ebuff, "cadv") == 0);
- X else if (strcmp(ebuff, "ladv") == 0);
- X else if (strcmp(ebuff, "id") == 0);
- X else if (strcmp(ebuff, "res") == 0) {
- X if (((int) (par + 0.5)) != RES)
- X fprintf(stderr, "ch2vft warning: wrong resolution (%d).\n",
- X (int) (par + 0.5) );
- X } else
- X error("unknown input descriptor, \"%s\"", ebuff);
- X } else {
- X if (sscanf (ibuff, ":%d, width = %f", &code, &par) != 2)
- X error("bad glyph header, %s", ibuff);
- X if (ignorecode) i = codeindex++; else i = code;
- X if (i < 0 || i >= DIRSIZ) error("code (%d) out of range", i);
- X g[i].width = par + 0.5;
- X
- X chp = &charbits[0];
- X if (fgets(chp, MAXLINE, filep) == NULL)
- X error("unexpected end of input");
- X width = strlen(chp) - 1;
- X minh = width;
- X maxh = 0;
- X refv = minv = -1;
- X
- X for (length = 0; *chp != '\n'; length++) {
- X if ((length + 1) * width > GLYPHSPACE)
- X error ("out of glyph space");
- X for (j = 0; j < width; j++, chp++) {
- X switch (*chp) {
- X case '.':
- X break;
- X case 'x':
- X refh = j;
- X refv = length;
- X *chp = '.';
- X break;
- X case 'X':
- X refh = j;
- X refv = length;
- X case '@':
- X case '*':
- X maxv = length;
- X if (minv < 0) minv = length;
- X if (j < minh) minh = j;
- X if (j > maxh) maxh = j;
- X break;
- X default:
- X error("illegal character '%c' in map.", *chp);
- X } /* switch */
- X } /* for j */
- X if (fgets(chp, MAXLINE, filep) == NULL)
- X error("unexpected end of input");
- X } /* for length */
- X
- X if (stipple) { /* force whole box if making stipples */
- X minv = 0;
- X minh = 0;
- X maxv = length - 1;
- X maxh = width - 1;
- X }
- X
- X if (refv < 0) error("no reference point in glyph %d.", code);
- X if (minv < 0) {
- X minv = maxv = refv;
- X minh = maxh = refh;
- X }
- X g[i].up = bound(refv - minv);
- X g[i].down = bound(maxv + 1 - refv);
- X g[i].right = bound(maxh + 1 - refh);
- X g[i].left = bound(refh - minh);
- X g[i].nbytes = (maxv + 1 - minv) * ((maxh + 8 - minh) >> 3);
- X
- X /* convert from characters to bits */
- X bitp = (glyphs[i] = malloc(g[i].nbytes)) - 1;
- X for (k = minv; k <= maxv; k++) {
- X register int bitwidth;
- X
- X chp = &charbits[0] + width * k + minh;
- X bitwidth = 0;
- X for (j = minh; j <= maxh; j++, chp++) {
- X if (--bitwidth < 0) {
- X *++bitp = '\0';
- X bitwidth = 7;
- X }
- X if (*chp != '.') *bitp |= 1 << bitwidth;
- X }
- X } /* for */
- X } /* else */
- X } /* while */
- X
- X fileaddr = 0;
- X for (i = 0; i < DIRSIZ; i++) {
- X if (glyphs[i] == (char *) 0) {
- X g[i].nbytes = 0;
- X } else {
- X g[i].addr = fileaddr;
- X fileaddr += g[i].nbytes;
- X if (g[i].up > head.maxy) head.maxy = g[i].up;
- X if (g[i].down > head.xtend) head.xtend = g[i].down;
- X if (((int) g[i].left + g[i].right) > head.maxx)
- X head.maxx = g[i].left + (int) g[i].right;
- X }
- X }
- X head.size = fileaddr;
- X
- X vwrite((char *) &head, sizeof(head));
- X vwrite((char *) &(g[0]), sizeof(g));
- X for (i = 0; i < DIRSIZ; i++)
- X if (glyphs[i] != (char *) 0)
- X vwrite(glyphs[i], g[i].nbytes);
- X}
- X
- X
- Xvwrite(buf,usize)
- Xchar *buf;
- Xint usize;
- X{
- X int tsize = 0;
- X
- X while (usize) {
- X buf += tsize;
- X tsize = usize > BUFSIZ ? BUFSIZ : usize;
- X if ((tsize = write(1, buf, tsize)) < 0) {
- X perror("ch2vft: write failed");
- X exit(-1);
- X }
- X usize -= tsize;
- X }
- X}
- X
- X
- X/*VARARGS1*/
- Xerror(string, a1, a2, a3, a4)
- Xchar *string;
- X{
- X fprintf(stderr, "ch2vft: ");
- X fprintf(stderr, string, a1, a2, a3, a4);
- X fprintf(stderr, "\n");
- X exit(8);
- X};
- X
- Xbound(i)
- X{
- X if(i < DIMLIMIT && i >= -DIMLIMIT) return i;
- X error ("dimension out of range");
- X}
- END_OF_FILE
- if test 6303 -ne `wc -c <'xtroff/fontstuff/ch2vft.c'`; then
- echo shar: \"'xtroff/fontstuff/ch2vft.c'\" unpacked with wrong size!
- fi
- # end of 'xtroff/fontstuff/ch2vft.c'
- fi
- if test -f 'xtroff/fontstuff/rst2ch.c' -a "${1}" != "-c" ; then
- echo shar: Will not clobber existing file \"'xtroff/fontstuff/rst2ch.c'\"
- else
- echo shar: Extracting \"'xtroff/fontstuff/rst2ch.c'\" \(4968 characters\)
- sed "s/^X//" >'xtroff/fontstuff/rst2ch.c' <<'END_OF_FILE'
- X/* Font translation for Imagen-style fonts (RST format) to character format.
- X *
- X * Use: rst2ch fontfile [ character_list ]
- X *
- X * Reads "fontfile" from current directory (or if not found,
- X * from RSTFONTDIR defined below) and converts it to a character font format
- X * editable by real people, and convertable BACK to rst format by the
- X * ch2rst program. Output goes to stdout.
- X */
- X
- X#include <stdio.h>
- X#include <ctype.h>
- X#include "rst.h"
- X
- X#ifndef RSTFONTDIR
- X#define RSTFONTDIR "/usr/src/local/imagen/fonts/raster"
- X#endif
- X
- Xchar * rdchar();
- Xchar * malloc();
- X
- Xchar defascii[DIRSIZ]; /* list of ascii characters - in order */
- Xchar *charswanted = defascii;/* list of characters to print info for */
- Xglyph_dir g[DIRSIZ]; /* directory of glyph definitions */
- Xpreamble p; /* set of variables for preamble */
- Xdouble fixtowdth; /* "fix" and magnification conversion factor */
- X
- Xchar *fontdir = RSTFONTDIR; /* place to look for fonts */
- Xchar IName[100]; /* input file name put here */
- XFILE * FID; /* input file number */
- X
- Xchar charbits[10000]; /* place to store bits for a glyph */
- Xint gbase; /* base address of glyphs in RST file */
- X /* variables used to print character */
- Xint H, W, WB, base, lbound, rbound;
- X
- X
- Xmain(argc,argv)
- Xint argc;
- Xchar **argv;
- X{
- X register int i;
- X register int j;
- X register int k;
- X register int l;
- X
- X
- X if (argc < 2)
- X error("usage: %s filename <charlist>", argv[0]);
- X
- X for (i=0; i<DIRSIZ; i++)
- X defascii[i] = i;
- X if (argc >= 3)
- X charswanted = argv[2];
- X
- X sprintf(IName, "%s/%s", fontdir, argv[1]);
- X if ((FID = fopen(argv[1], "r")) == NULL)
- X if ((FID = fopen(IName, "r")) == NULL)
- X error("can't find %s", argv[1]);
- X
- X for (i = 0; i < FMARK; i++) filemark[i] = getc(FID);
- X if (strncmp(filemark, "Rast", 4))
- X error("bad File Mark in Font file.");
- X
- X p.p_size = rd2();
- X p.p_version = rd1();
- X if (p.p_version)
- X error("wrong version (%d) of Font file.", p.p_version);
- X p.p_glyph = rd3();
- X p.p_first = rd2();
- X if ((p.p_last = rd2()) >= DIRSIZ)
- X error("too many glyphs (%d) in font.", p.p_last);
- X p.p_mag = rd4();
- X
- X if ((fixtowdth = FIXPIX * p.p_mag / 1000.0) == 0.0)
- X fixtowdth = FIXPIX;
- X
- X p.p_desiz = rd4();
- X p.p_linesp = rd4();
- X p.p_wordsp = rd4();
- X p.p_rot = rd2();
- X p.p_cadv = rd1();
- X p.p_ladv = rd1();
- X p.p_id = rd4();
- X p.p_res = rd2();
- X/* if (p.p_res != RES)
- X error("wrong resolution (%d) in Font file.", p.p_res);
- X */
- X i = p.p_glyph - 44;
- X while (i--) if (getc(FID) == EOF)
- X error("bad preamble in Font file.");
- X
- X for (i = p.p_first; i <= p.p_last; i++) {
- X g[i].g_height = rd2();
- X g[i].g_width = rd2();
- X g[i].g_up = rd2();
- X g[i].g_left = rd2();
- X g[i].g_pwidth = rd4();
- X g[i].g_bitp = rd3();
- X }
- X
- X printf("fontheader\nsize %d\nversion %d\n", p.p_size, p.p_version);
- X printf("mag %d\ndesiz %.2f\n", p.p_mag, p.p_desiz * FIX);
- X printf("linesp %.2f\n", p.p_linesp * fixtowdth);
- X printf("wordsp %.2f\n", p.p_wordsp * fixtowdth);
- X printf("rot %d\ncadv %d\nladv %d\n", p.p_rot, p.p_cadv, p.p_ladv);
- X printf("id %d\nres %d\n", p.p_id, p.p_res);
- X
- X
- X for (l = p.p_first; l<= p.p_last; l++) {
- X j = charswanted[l];
- X if (l>0 && j==0) break;
- X if ((gbase = g[j].g_bitp) != 0) {
- X printf(":%d, width = %.2f\n", j, g[j].g_pwidth * fixtowdth);
- X H = g[j].g_height;
- X W = g[j].g_width;
- X if (H <= 0 || W <= 0) {
- X g[j].g_up = 0;
- X g[j].g_left = 0;
- X }
- X lseek(fileno(FID), (long) gbase, 0);
- X read(fileno(FID), charbits, (WB = (W+7)/8) * H);
- X base = g[j].g_up;
- X if ((lbound = g[j].g_left) > 0) lbound = 0;
- X if ((rbound = g[j].g_left + 1) < W) rbound = W;
- X for (k = g[j].g_up; k < 0; k++) {
- X for (i = lbound; i < rbound; i++)
- X printf("%c", k==g[j].g_up && i==g[j].g_left ? 'x':'.');
- X putchar ('\n');
- X }
- X for (k = 0; k < H; k++) {
- X for (i = g[j].g_left; i < 0; i++)
- X printf("%c", k==g[j].g_up && i==g[j].g_left ? 'x':'.');
- X for (i = 0; i < W; i++)
- X printf("%c", k==g[j].g_up && i==g[j].g_left ?
- X (fbit(k,i) ? 'X':'x') : fbit(k,i) ? '@':'.');
- X while (i < rbound) {
- X printf("%c", k==g[j].g_up && i==g[j].g_left ? 'x':'.');
- X i++;
- X }
- X putchar ('\n');
- X }
- X while (k <= g[j].g_up) {
- X for (i = lbound; i < rbound; i++)
- X printf("%c", k==g[j].g_up && i==g[j].g_left ? 'x':'.');
- X putchar ('\n');
- X k++;
- X }
- X putchar ('\n');
- X }
- X }
- X}
- X
- X/*VARARGS1*/
- Xerror(string, a1, a2, a3, a4)
- Xchar *string;
- X{
- X fprintf(stderr, "rst2ch: ");
- X fprintf(stderr, string, a1, a2, a3, a4);
- X fprintf(stderr, "\n");
- X exit(8);
- X};
- X
- X
- Xfbit(row, col)
- Xint row, col;
- X{
- X int thisbyte, thisbit, ret;
- X
- X if (row<0 || row>=H || col>=W) return(0);
- X thisbyte = charbits[row*WB + (col>>3)] & 0xff;
- X thisbit = 0x80 >> (col&7);
- X ret = thisbyte & thisbit;
- X return (ret != 0);
- X}
- X
- Xrd1()
- X{
- X int i;
- X
- X if((i = getc(FID)) == EOF) error("file read error");
- X return i;
- X}
- X
- Xrd2()
- X{
- X register int i = rd1() << 8;
- X
- X return i + rd1();
- X}
- X
- Xrd3()
- X{
- X register int i = rd2() << 8;
- X
- X return i + rd1();
- X}
- X
- Xrd4()
- X{
- X register int i = rd2() << 16;
- X
- X return i + rd2();
- X}
- END_OF_FILE
- if test 4968 -ne `wc -c <'xtroff/fontstuff/rst2ch.c'`; then
- echo shar: \"'xtroff/fontstuff/rst2ch.c'\" unpacked with wrong size!
- fi
- # end of 'xtroff/fontstuff/rst2ch.c'
- fi
- if test -f 'xtroff/suntroff.h' -a "${1}" != "-c" ; then
- echo shar: Will not clobber existing file \"'xtroff/suntroff.h'\"
- else
- echo shar: Extracting \"'xtroff/suntroff.h'\" \(4834 characters\)
- sed "s/^X//" >'xtroff/suntroff.h' <<'END_OF_FILE'
- X/*
- X * SunTroff - A program to display the output of Device Independent
- X * Troff as a window on a Sun Workstation.
- X *
- X * Suntroff.h - A number of defines and structures that are needed
- X * by the rest of the code.
- X *
- X * Authors - The original version of this program was written by
- X * Richard L. Hyde (Purdue)
- X * David Slattengren (Berkeley)
- X * It was nearly all rewritten, cleaned up and a more elegant
- X * user interface installed by
- X * Malcolm Slaney (Schlumberger Palo Alto Research)
- X *
- X * Legalese - This command was developed as an independent project
- X * to satisfy a need of the author. This program may contain
- X * bugs and the user is cautioned to independently verify that
- X * the program is suitable for the user's intended purpose.
- X * The program is made available on an ``as is'' basis with
- X * all faults and without any implied or expressed warranties
- X * or support from either the author, Malcolm Slaney, or
- X * Schlumberger Palo Alto Research Laboratory.
- X *
- X * I am putting this program in the Unix domain. You are
- X * free to use it as you wish. In return I ask two things.
- X * First, that you do not remove the names of the authors
- X * from this work. Secondly, if you make changes or
- X * improvements to this program that you pass these back to
- X * the author so that everybody can benefit from the
- X * improvements.
- X */
- X
- X#include <ctype.h>
- X#include <stdio.h>
- X#ifndef SUNTOOLS
- X#include <X11/Xlib.h> /* Needed for definition of Font */
- X#include <X11/Xos.h> /* To try and make things more portable */
- X#else /* SUNTOOLS */
- X#include <sys/types.h> /* Xos.h includes it for X */
- X#endif /* SUNTOOLS */
- X
- X#include "dev.h"
- X
- X /* TYPESETTER DEFINES */
- X /* The first four defines are probably
- X * the only ones that need to be
- X * customized for a site.
- X */
- X
- X /* Home of all the troff information */
- X /* Hint: the standard AT&T location is
- X * /usr/dwb/lib/font
- X */
- X#ifndef FONTDIR
- X#define FONTDIR "/usr/lib/font"
- X#endif
- X /* Home of all the font bits */
- X#ifndef BITDIR
- X#define BITDIR "/usr/local/lib/suntroff"
- X#endif
- X
- X /* Note the SunTroff program will
- X * append to the end of this string
- X * the printer name.
- X */
- X#define LPRCOMMAND "/usr/ucb/lpr -n -P"
- X
- X#define FULLPAGE 0 /* Start up the tool with a width
- X * that is as large as a page. */
- X
- X#define NFONTS 60 /* Number of Allowed Fonts */
- X
- X#define MAXNAME 20 /* Length of maximum typesetter name */
- X
- X#define MAXSTATE 10 /* Number of states to remember */
- X
- X /* Needs to be no larger than
- X * than the size of the
- X * intname character string
- X * in the dev.h/struct font
- X * structure.
- X */
- X#define MaxFontName 10
- X
- X#ifndef DEFAULT_TYPESETTER
- X#ifdef SUNTOOLS
- X#define DEFAULT_TYPESETTER "sun"
- X#else /* ! SUNTOOLS */
- X#define DEFAULT_TYPESETTER "psc"
- X#endif /* SUNTOOLS */
- X#endif DEFAULT_TYPESETTER
- X
- X#define WARNING 0 /* Print Message and Return */
- X#define FATAL 1 /* Print Message and Leave */
- X
- X#define PAGE_WIDTH 8.5
- X#define PAGE_HEIGHT 11
- X#define PAGE_PIXEL_WIDTH (int)(SUNRES*PAGE_WIDTH)
- X#define PAGE_PIXEL_HEIGHT (int)(SUNRES*PAGE_HEIGHT)
- X
- X/*
- X * Fast comparison of strings - will often save us a procedure call at the
- X * cost of a few extra instructions. Macro has SIDE-EFFECTS
- X */
- X#define STREQ(a, b) ((*(a) == *(b)) && (strcmp(a, b) == 0))
- X
- Xstruct FontBitStruct {
- X char Name[MaxFontName];
- X int Size;
- X#ifdef SUNTOOLS
- X struct pixfont *Bits;
- X#else SUNTOOLS
- X XFontStruct *Bits;
- X#endif
- X char *FileName;
- X struct FontBitStruct *NextFont;
- X struct FontBitStruct *NextSize;
- X};
- X
- Xstruct Typesetter {
- X char Name[MAXNAME]; /* Name of this typesetter */
- X
- X struct dev Device; /* Ditroff Typesetter description */
- X
- X short *PointSizeTable; /* Map Pointsize number to real # */
- X
- X short *SpecialCharacterNumber;/* Map special character number into
- X an index for Name Array */
- X char *SpecialCharacterName; /* Names of each special character
- X */
- X char **WidthTable; /* Width of each character
- X (indexed by font and character) */
- X char **CodeTable; /* Typesetter code for each char
- X (indexed by font and character) */
- X char **AsciiTable; /* Mapping between ascii (or special
- X character number) and index into
- X width and code tables above. */
- X struct Font *FontInformation[NFONTS];
- X
- X struct FontBitStruct FontBitHead; /* All the bits for all the fonts
- X that are known for this
- X typesetter. */
- X struct Typesetter *NextTypesetter;
- X};
- X
- Xextern int size, font, linmod, linethickness, HorizontalPosition;
- Xextern int VerticalPosition, DeviceResolution, LineNumber;
- Xextern float ditsiz;
- X/*extern int SUNRES /* Dots per inch on Sun Screen */
- X
- Xextern char DeviceName[];
- X
- Xextern struct FontBitStruct *CurrentFont, *VirtualLoadFont();
- X
- Xextern struct Typesetter *UserTypesetter, *OutputTypesetter, *LoadDevice();
- END_OF_FILE
- if test 4834 -ne `wc -c <'xtroff/suntroff.h'`; then
- echo shar: \"'xtroff/suntroff.h'\" unpacked with wrong size!
- fi
- # end of 'xtroff/suntroff.h'
- fi
- echo shar: End of archive 7 \(of 18\).
- cp /dev/null ark7isdone
- MISSING=""
- for I in 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 ; do
- if test ! -f ark${I}isdone ; then
- MISSING="${MISSING} ${I}"
- fi
- done
- if test "${MISSING}" = "" ; then
- echo You have unpacked all 18 archives.
- rm -f ark[1-9]isdone ark[1-9][0-9]isdone
- else
- echo You still need to unpack the following archives:
- echo " " ${MISSING}
- fi
- ## End of shell archive.
- exit 0
-