v05i038: cxpr -- color xpr program, Part01/01
Dan Heller
argv at island.uu.net
Wed Dec 6 06:44:43 AEST 1989
Submitted-by: uunet!relay.EU.net!sgzh!root (Bruno Pape)
Posting-number: Volume 5, Issue 38
Archive-name: cxpr/part01
[ From the README ]
These are the routines to cxpr. This version of cxpr is based on the xpr
program provided in the MIT X core distribution. It uses the output of
xwd to produce a postscript program and image data that when printed
on a color postscript printer generate an image of the window dumped with
xwd. This cxpr uses the XY format of xwd as opposed to the Z format used
by the orignal xpr, only outputs for color postscript printers, only
outputs compressed color images, and has only been tested on a Sun 3/60 C/G.
#! /bin/sh
# This is a shell archive. Remove anything before this line, then feed it
# into a shell via "sh file" or similar. To overwrite existing files,
# type "sh file -c".
# The tool that generated this appeared in the comp.sources.unix newsgroup;
# send mail to comp-sources-unix at uunet.uu.net if you want that tool.
# If this archive is complete, you will see the following message at the end:
# "End of shell archive."
# Contents: cxpr cxpr/Makefile cxpr/README cxpr/cxpr.c cxpr/cxpr.h
# cxpr/dump_prolog.c cxpr/epilog.h cxpr/escape.c cxpr/fullread.c
# cxpr/hex.h cxpr/invbits.c cxpr/parse_args.c cxpr/points.c
# cxpr/print_header.c cxpr/prolog.h cxpr/ps_finish.c
# cxpr/ps_output.c cxpr/ps_putbuf.c cxpr/ps_setup.c
# cxpr/read_colormaps.c cxpr/read_header.c cxpr/read_window_name.c
# cxpr/reverse_byte.h cxpr/setup_layout.c cxpr/swapbits.c
# cxpr/swaplong.c cxpr/swapshort.c
# Wrapped by argv at island on Tue Dec 5 11:40:44 1989
PATH=/bin:/usr/bin:/usr/ucb ; export PATH
if test ! -d 'cxpr' ; then
echo shar: Creating directory \"'cxpr'\"
mkdir 'cxpr'
fi
if test -f 'cxpr/Makefile' -a "${1}" != "-c" ; then
echo shar: Will not clobber existing file \"'cxpr/Makefile'\"
else
echo shar: Extracting \"'cxpr/Makefile'\" \(1298 characters\)
sed "s/^X//" >'cxpr/Makefile' <<'END_OF_FILE'
X###########################################################################
X# start of Imakefile
X
X OBJS = dump_prolog.o \
X escape.o \
X fullread.o \
X invbits.o \
X parse_args.o \
X points.o \
X print_header.o \
X ps_finish.o \
X ps_output.o \
X ps_putbuf.o \
X ps_setup.o \
X read_colormaps.o \
X read_header.o \
X read_window_name.o \
X setup_layout.o \
X swapbits.o \
X swaplong.o \
X swapshort.o \
X cxpr.o
X
X SRCS = dump_prolog.c \
X escape.c \
X fullread.c \
X invbits.c \
X parse_args.c \
X points.c \
X print_header.c \
X ps_finish.c \
X ps_output.c \
X ps_putbuf.c \
X ps_setup.c \
X read_colormaps.c \
X read_header.c \
X read_window_name.c \
X setup_layout.c \
X swapbits.c \
X swaplong.c \
X swapshort.c \
X cxpr.c
X
X PROGRAM = cxpr
X
Xall:: cxpr
X
Xcxpr: $(OBJS) $(LOCAL_LIBRARIES)
X $(RM) $@
X $(CC) -g -o $@ $(OBJS) $(LOCAL_LIBRARIES) $(LDFLAGS) $(SYSLAST_LIBRARIES)
X
Xrelink::
X $(RM) $(PROGRAM)
X $(MAKE) $(MFLAGS) $(PROGRAM)
X
Xdepend:: $(DEPEND)
X
Xdepend::
X $(DEPEND) -s "# DO NOT DELETE" -- $(CFLAGS) -- $(SRCS)
X
X$(DEPEND):
X @echo "making $@"; \
X cd $(DEPENDSRC); $(MAKE)
X
Xclean::
X $(RM) $(PROGRAM)
X
X###########################################################################
X# Imake.tmpl common rules for all Makefiles - do not edit
X
Xemptyrule::
X
Xclean::
X $(RM_CMD) \#*
X
XMakefile:: $(IMAKE)
X
END_OF_FILE
if test 1298 -ne `wc -c <'cxpr/Makefile'`; then
echo shar: \"'cxpr/Makefile'\" unpacked with wrong size!
fi
# end of 'cxpr/Makefile'
fi
if test -f 'cxpr/README' -a "${1}" != "-c" ; then
echo shar: Will not clobber existing file \"'cxpr/README'\"
else
echo shar: Extracting \"'cxpr/README'\" \(3654 characters\)
sed "s/^X//" >'cxpr/README' <<'END_OF_FILE'
X/*
X * Author: G. Bruno Pape, Computer Consultant, B.S. Computer Engineering
X *
X * Address: P.O. Box 368, Thomaston, Connecticut, 06787, USA.
X *
X * Copyright (c) G. Bruno Pape 1989.
X * All rights reserved.
X *
X * Permission is granted to anyone to use this software for any purpose on
X * any computer system, and to alter it and redistribute it freely, subject
X * to the following restrictions:
X *
X * 1. The author is not responsible for the consequences of use or
X * redistribution of this software, no matter how awful.
X *
X * 2. The origin of this software must not be misrepresented, either by
X * explicit claim or by omission.
X *
X * 3. Altered versions must be plainly marked as such, and must not be
X * misrepresented as being the original software.
X *
X * 4. This notice may not be removed or altered.
X *
X *
X * First distribution, November 30, 1989.
X *
X * This software was developed while on holiday in Switzerland which
X * is why some things are in centimeters, pages are A4.
X *
X * I also do systems programming and administration in BSD and System V
X * UNIX environments, network and network application development,
X * X-Windows application development, 3D graphic and graphic animation
X * program development, computational fluid dynamics, expert systems,
X * and almost anything else you might want done with a computer.
X * My favorite computer is a MAC, but I only do development work on Suns,
X * Silicon Graphics, DECs, Crays, and of course IBM mainframes.
X */
X
XCXPR:
X
XThese are the routines to cxpr. This version of cxpr is based on the xpr
Xprogram provided in the MIT X core distribution. It uses the output of
Xxwd to produce a postscript program and image data that when printed
Xon a color postscript printer generate an image of the window dumped with
Xxwd. This cxpr uses the XY format of xwd as opposed to the Z format used
Xby the orignal xpr, only outputs for color postscript printers, only
Xoutputs compressed color images, and has only been tested on a Sun 3/60 C/G.
X
Xcxpr:
Xtotal 38
X-rw-r--r-- 1 bruno users 1287 Jul 7 14:30 Makefile
X-rw-r--r-- 1 bruno users 106 Jul 7 13:50 dump_prolog.c
X-rw-r--r-- 1 bruno users 60 Jul 7 13:50 epilog.h
X-rw-r--r-- 1 bruno users 380 Jul 7 13:50 escape.c
X-rw-r--r-- 1 bruno users 508 Jul 7 13:50 fullread.c
X-rw-r--r-- 1 bruno users 649 Jul 7 13:50 hex.h
X-rw-r--r-- 1 bruno users 115 Jul 7 13:50 invbits.c
X-rw-r--r-- 1 bruno users 3611 Jul 7 14:05 parse_args.c
X-rw-r--r-- 1 bruno users 114 Jul 7 13:50 points.c
X-rw-r--r-- 1 bruno users 2142 Jul 7 14:09 print_header.c
X-rw-r--r-- 1 bruno users 1936 Jul 7 15:36 prolog.h
X-rw-r--r-- 1 bruno users 94 Jul 7 13:50 ps_finish.c
X-rw-r--r-- 1 bruno users 1303 Jul 7 15:21 ps_output.c
X-rw-r--r-- 1 bruno users 1253 Jul 7 13:50 ps_putbuf.c
X-rw-r--r-- 1 bruno users 3345 Jul 7 13:50 ps_setup.c
X-rw-r--r-- 1 bruno users 509 Jul 7 14:25 read_colormaps.c
X-rw-r--r-- 1 bruno users 604 Jul 7 13:50 read_header.c
X-rw-r--r-- 1 bruno users 251 Jul 7 13:51 read_window_name.c
X-rw-r--r-- 1 bruno users 1600 Jul 7 13:51 reverse_byte.h
X-rw-r--r-- 1 bruno users 918 Jul 7 13:51 setup_layout.c
X-rw-r--r-- 1 bruno users 196 Jul 7 13:51 swapbits.c
X-rw-r--r-- 1 bruno users 279 Jul 7 13:51 swaplong.c
X-rw-r--r-- 1 bruno users 200 Jul 7 13:51 swapshort.c
X-rw-r--r-- 1 bruno users 291 Jul 7 13:51 xpr.c
X-rw-r--r-- 1 bruno users 1003 Jul 7 14:04 xpr.h
X
END_OF_FILE
if test 3654 -ne `wc -c <'cxpr/README'`; then
echo shar: \"'cxpr/README'\" unpacked with wrong size!
fi
# end of 'cxpr/README'
fi
if test -f 'cxpr/cxpr.c' -a "${1}" != "-c" ; then
echo shar: Will not clobber existing file \"'cxpr/cxpr.c'\"
else
echo shar: Extracting \"'cxpr/cxpr.c'\" \(292 characters\)
sed "s/^X//" >'cxpr/cxpr.c' <<'END_OF_FILE'
X#include "cxpr.h"
X#include "hex.h"
X
Xmain(argc, argv)
Xchar **argv;
X{
X parse_args (argc, argv);
X
X if ( read_header() ) exit(1);
X
X read_window_name();
X
X if ( win.ncolors ) read_colormaps();
X
X setup_layout();
X
X if ( flags & F_DEBUG ) print_header();
X
X ps_setup();
X
X ps_output();
X
X ps_finish();
X}
END_OF_FILE
if test 292 -ne `wc -c <'cxpr/cxpr.c'`; then
echo shar: \"'cxpr/cxpr.c'\" unpacked with wrong size!
fi
# end of 'cxpr/cxpr.c'
fi
if test -f 'cxpr/cxpr.h' -a "${1}" != "-c" ; then
echo shar: Will not clobber existing file \"'cxpr/cxpr.h'\"
else
echo shar: Extracting \"'cxpr/cxpr.h'\" \(1003 characters\)
sed "s/^X//" >'cxpr/cxpr.h' <<'END_OF_FILE'
X#include <X11/Xlib.h>
X#include <sys/uio.h>
X#include <stdio.h>
X#include <fcntl.h>
X#include <pwd.h>
X#include <X11/XWDFile.h>
X
X#define W_MAX 2400
X#define H_MAX 3150
X
X#define US_PAPER_WIDTH 2550 /* 8.5 inches * 300 DPI */
X#define US_PAPER_LENGTH 3300 /* 11 inches * 300 DPI */
X
X#define PAPER_WIDTH 2430 /* 21.0 cm / 2.54 cm/inch * 300 DPI */
X#define PAPER_LENGTH 3480 /* 29.5 cm / 2.54 cm/inch * 300 DPI */
X
X#define COMMENTVERSION "PS-Adobe-1.0"
X
X#define min(x,y) (((x)<(y))?(x):(y))
X
X#define F_PORTRAIT 1
X#define F_LANDSCAPE 2
X#define F_DEBUG 4
X#define F_APPEND 16
X#define F_NOFF 32
X#define F_COMPACT 128
X#define F_INVERT 256
X
X#define LINELEN 72 /* number of CHARS (bytes*2) per line of bitmap output*/
X
XXWDFileHeader win;
XXColor *colors;
X
Xchar *infilename = "stdin",
X *header = NULL,
X *trailer = NULL,
X *window_name,
X *escape();
X
Xint top_margin,
X left_margin,
X scale = 0,
X split = 1,
X top = -1,
X left = -1,
X width = -1,
X height = -1,
X flags = F_PORTRAIT,
X points();
END_OF_FILE
if test 1003 -ne `wc -c <'cxpr/cxpr.h'`; then
echo shar: \"'cxpr/cxpr.h'\" unpacked with wrong size!
fi
# end of 'cxpr/cxpr.h'
fi
if test -f 'cxpr/dump_prolog.c' -a "${1}" != "-c" ; then
echo shar: Will not clobber existing file \"'cxpr/dump_prolog.c'\"
else
echo shar: Extracting \"'cxpr/dump_prolog.c'\" \(106 characters\)
sed "s/^X//" >'cxpr/dump_prolog.c' <<'END_OF_FILE'
X#include "prolog.h"
X
Xdump_prolog(flags) {
X char **p = ps_prolog;
X while (*p) printf("%s\n",*p++);
X}
END_OF_FILE
if test 106 -ne `wc -c <'cxpr/dump_prolog.c'`; then
echo shar: \"'cxpr/dump_prolog.c'\" unpacked with wrong size!
fi
# end of 'cxpr/dump_prolog.c'
fi
if test -f 'cxpr/epilog.h' -a "${1}" != "-c" ; then
echo shar: Will not clobber existing file \"'cxpr/epilog.h'\"
else
echo shar: Extracting \"'cxpr/epilog.h'\" \(60 characters\)
sed "s/^X//" >'cxpr/epilog.h' <<'END_OF_FILE'
Xchar *ps_epilog[] = {
X "",
X "showpage",
X "%%Trailer",
X 0
X};
END_OF_FILE
if test 60 -ne `wc -c <'cxpr/epilog.h'`; then
echo shar: \"'cxpr/epilog.h'\" unpacked with wrong size!
fi
# end of 'cxpr/epilog.h'
fi
if test -f 'cxpr/escape.c' -a "${1}" != "-c" ; then
echo shar: Will not clobber existing file \"'cxpr/escape.c'\"
else
echo shar: Extracting \"'cxpr/escape.c'\" \(380 characters\)
sed "s/^X//" >'cxpr/escape.c' <<'END_OF_FILE'
X/*
X * make a version of s in which control characters are deleted and
X * special characters are escaped.
X */
X
Xchar *escape(s)
Xchar *s;
X{
X static char buf[200];
X char *p = buf;
X
X for (;*s;s++) {
X if (*s < ' ' || *s > 0176) continue;
X if (*s==')' || *s=='(' || *s == '\\') {
X sprintf(p,"\\%03o",*s);
X p += 4;
X }
X else *p++ = *s;
X }
X *p = 0;
X return buf;
X}
END_OF_FILE
if test 380 -ne `wc -c <'cxpr/escape.c'`; then
echo shar: \"'cxpr/escape.c'\" unpacked with wrong size!
fi
# end of 'cxpr/escape.c'
fi
if test -f 'cxpr/fullread.c' -a "${1}" != "-c" ; then
echo shar: Will not clobber existing file \"'cxpr/fullread.c'\"
else
echo shar: Extracting \"'cxpr/fullread.c'\" \(508 characters\)
sed "s/^X//" >'cxpr/fullread.c' <<'END_OF_FILE'
X#include <stdio.h>
X
X/*
X * fullread() is the same as read(), except that it guarantees to
X * read all the bytes requested.
X */
X
Xfullread (file, data, nbytes)
Xint file;
Xchar *data;
Xint nbytes;
X{
X int bytes_read;
X while ((bytes_read = read(file, data, nbytes)) != nbytes) {
X if (bytes_read < 0) {
X perror ("error while reading standard input");
X return;
X } else if (bytes_read == 0) {
X fprintf (stderr, "xpr: premature end of file\n");
X return;
X }
X nbytes -= bytes_read;
X data += bytes_read;
X }
X}
END_OF_FILE
if test 508 -ne `wc -c <'cxpr/fullread.c'`; then
echo shar: \"'cxpr/fullread.c'\" unpacked with wrong size!
fi
# end of 'cxpr/fullread.c'
fi
if test -f 'cxpr/hex.h' -a "${1}" != "-c" ; then
echo shar: Will not clobber existing file \"'cxpr/hex.h'\"
else
echo shar: Extracting \"'cxpr/hex.h'\" \(649 characters\)
sed "s/^X//" >'cxpr/hex.h' <<'END_OF_FILE'
X/*
X * mapping tables to map a byte in to the hex representation of its
X * bit-reversal
X */
X
Xchar hex1[]="084c2a6e195d3b7f084c2a6e195d3b7f084c2a6e195d3b7f084c2a6e195d3b7f\
X084c2a6e195d3b7f084c2a6e195d3b7f084c2a6e195d3b7f084c2a6e195d3b7f\
X084c2a6e195d3b7f084c2a6e195d3b7f084c2a6e195d3b7f084c2a6e195d3b7f\
X084c2a6e195d3b7f084c2a6e195d3b7f084c2a6e195d3b7f084c2a6e195d3b7f";
X
Xchar hex2[]="000000000000000088888888888888884444444444444444cccccccccccccccc\
X2222222222222222aaaaaaaaaaaaaaaa6666666666666666eeeeeeeeeeeeeeee\
X111111111111111199999999999999995555555555555555dddddddddddddddd\
X3333333333333333bbbbbbbbbbbbbbbb7777777777777777ffffffffffffffff";
END_OF_FILE
if test 649 -ne `wc -c <'cxpr/hex.h'`; then
echo shar: \"'cxpr/hex.h'\" unpacked with wrong size!
fi
# end of 'cxpr/hex.h'
fi
if test -f 'cxpr/invbits.c' -a "${1}" != "-c" ; then
echo shar: Will not clobber existing file \"'cxpr/invbits.c'\"
else
echo shar: Extracting \"'cxpr/invbits.c'\" \(115 characters\)
sed "s/^X//" >'cxpr/invbits.c' <<'END_OF_FILE'
X_invbits (b, n)
Xregister unsigned char *b;
Xregister long n;
X{
X do {
X *b = ~*b;
X b++;
X } while (--n > 0);
X
X}
END_OF_FILE
if test 115 -ne `wc -c <'cxpr/invbits.c'`; then
echo shar: \"'cxpr/invbits.c'\" unpacked with wrong size!
fi
# end of 'cxpr/invbits.c'
fi
if test -f 'cxpr/parse_args.c' -a "${1}" != "-c" ; then
echo shar: Will not clobber existing file \"'cxpr/parse_args.c'\"
else
echo shar: Extracting \"'cxpr/parse_args.c'\" \(3611 characters\)
sed "s/^X//" >'cxpr/parse_args.c' <<'END_OF_FILE'
X#include <stdio.h>
X#include <fcntl.h>
X#include <X11/XWDFile.h>
X
X#define F_PORTRAIT 1
X#define F_DEBUG 4
X#define F_APPEND 16
X#define F_NOFF 32
X#define F_COMPACT 128
X#define F_INVERT 256
X
Xextern XWDFileHeader win;
Xextern char *infilename, *header, *trailer, *window_name;
Xextern int top_margin, left_margin, scale, split,
X top, left, width, height, flags;
X
Xparse_args(argc, argv)
X
Xregister int argc;
Xregister char **argv;
X
X{
X
X char *output_filename = NULL;
X register int f, len, pos;
X double atof();
X int atoi();
X
X argc--;
X argv++;
X
X while ( argc > 0 && argv[0][0] == '-' ) {
X len = strlen(*argv);
X switch (argv[0][1]) {
X case 'a': /* -append <filename> */
X if (!bcmp(*argv, "-append", len)) {
X argc--; argv++;
X output_filename = *argv;
X flags |= F_APPEND;
X }
X break;
X
X case 'd':
X if (!bcmp(*argv, "-debug", len)) flags |= F_DEBUG;
X break;
X
X case 'h': /* -height <inches> */
X if (len <= 3) {
X fprintf(stderr, "xpr: ambiguous option: \"%s\"\n", *argv);
X exit(1);
X }
X if (!bcmp(*argv, "-height", len)) {
X argc--; argv++;
X height = (int)(300.0 * atof(*argv));
X } else if (!bcmp(*argv, "-header", len)) {
X argc--; argv++;
X header = *argv;
X }
X break;
X
X case 'l': /* -landscape | -left <inches> */
X if (!bcmp(*argv, "-landscape", len)) {
X flags &= ~F_PORTRAIT;
X } else if (!bcmp(*argv, "-left", len)) {
X argc--; argv++;
X left = (int)(300.0 * atof(*argv));
X }
X break;
X
X case 'n': /* -noff */
X if (!bcmp(*argv, "-noff", len)) {
X flags |= F_NOFF;
X }
X break;
X
X case 'o': /* -output <filename> */
X if (!bcmp(*argv, "-output", len)) {
X argc--; argv++;
X output_filename = *argv;
X }
X break;
X
X case 'p': /* -portrait */
X if (!bcmp(*argv, "-portrait", len)) {
X flags |= F_PORTRAIT;
X }
X break;
X
X case 'c': /* -compact */
X if (!bcmp(*argv, "-compact", len)) {
X flags |= F_COMPACT;
X }
X break;
X
X case 'r': /* -rv */
X if (!bcmp(*argv, "-rv", len)) {
X flags |= F_INVERT;
X }
X break;
X
X case 's': /* -scale <scale> | -split <n-pages> */
X if (!bcmp(*argv, "-scale", len)) {
X argc--; argv++;
X scale = atoi(*argv);
X } else if (!bcmp(*argv, "-split", len)) {
X argc--; argv++;
X split = atoi(*argv);
X }
X break;
X
X case 't': /* -top <inches> */
X if (len <= 2) {
X fprintf(stderr, "xpr: ambigous option: \"%s\"\n", *argv);
X exit(1);
X }
X if (!bcmp(*argv, "-top", len)) {
X argc--; argv++;
X top = (int)(300.0 * atof(*argv));
X } else if (!bcmp(*argv, "-trailer", len)) {
X argc--; argv++;
X trailer = *argv;
X }
X break;
X
X case 'w': /* -width <inches> */
X if (!bcmp(*argv, "-width", len)) {
X argc--; argv++;
X width = (int)(300.0 * atof(*argv));
X }
X break;
X
X }
X argc--; argv++;
X }
X
X if (argc > 0) {
X f = open(*argv, O_RDONLY, 0);
X if (f < 0) {
X fprintf(stderr, "xpr: error opening \"%s\" for input\n", *argv);
X perror("");
X exit(1);
X }
X dup2(f, 0);
X close(f);
X infilename = *argv;
X }
X
X if (output_filename != NULL) {
X if (!(flags & F_APPEND)) {
X f = open(output_filename, O_CREAT|O_WRONLY|O_TRUNC, 0664);
X } else {
X f = open(output_filename, O_WRONLY, 0);
X }
X if (f < 0) {
X fprintf(stderr, "xpr: error opening \"%s\" for output\n",
X output_filename);
X perror("xpr");
X exit(1);
X }
X if (flags & F_APPEND) {
X pos = lseek(f, 0, 2); /* get eof position */
X if (flags & F_NOFF) pos -= 3; /* set position before trailing */
X /* formfeed and reset */
X lseek(f, pos, 0); /* set pointer */
X }
X dup2(f, 1);
X close(f);
X }
X}
END_OF_FILE
if test 3611 -ne `wc -c <'cxpr/parse_args.c'`; then
echo shar: \"'cxpr/parse_args.c'\" unpacked with wrong size!
fi
# end of 'cxpr/parse_args.c'
fi
if test -f 'cxpr/points.c' -a "${1}" != "-c" ; then
echo shar: Will not clobber existing file \"'cxpr/points.c'\"
else
echo shar: Extracting \"'cxpr/points.c'\" \(114 characters\)
sed "s/^X//" >'cxpr/points.c' <<'END_OF_FILE'
Xint points(n)
X{
X /* scale n from pixels (1/300 inch) to points (1/72 inch) */
X n *= 72;
X return n/300;
X}
END_OF_FILE
if test 114 -ne `wc -c <'cxpr/points.c'`; then
echo shar: \"'cxpr/points.c'\" unpacked with wrong size!
fi
# end of 'cxpr/points.c'
fi
if test -f 'cxpr/print_header.c' -a "${1}" != "-c" ; then
echo shar: Will not clobber existing file \"'cxpr/print_header.c'\"
else
echo shar: Extracting \"'cxpr/print_header.c'\" \(2142 characters\)
sed "s/^X//" >'cxpr/print_header.c' <<'END_OF_FILE'
X#include <stdio.h>
X#include <X11/Xlib.h>
X#include <X11/XWDFile.h>
X
X#define F_PORTRAIT 1
X
Xextern XWDFileHeader win;
Xextern XColor *colors;
Xextern int flags, scale;
X
Xprint_header()
X{
X register i;
X fprintf(stderr, "header size = %d\n", win.header_size);
X fprintf(stderr, "file version = %d\n", win.file_version);
X fprintf(stderr, "pixmap format = %s\n",
X (win.pixmap_format==XYPixmap) ? "XYPixmap" : "ZPixmap" );
X fprintf(stderr, "pixmap depth = %d\n", win.pixmap_depth);
X fprintf(stderr, "pixmap width = %d\n", win.pixmap_width);
X fprintf(stderr, "pixmap height = %d\n", win.pixmap_height);
X fprintf(stderr, "xoffset = %d\n", win.xoffset);
X fprintf(stderr, "byte order = %d\n", win.byte_order);
X fprintf(stderr, "bitmap unit = %d\n", win.bitmap_unit);
X fprintf(stderr, "bitmap order = %d\n", win.bitmap_bit_order);
X fprintf(stderr, "bitmap pad = %d\n", win.bitmap_pad);
X fprintf(stderr, "bits per pixel = %d\n", win.bits_per_pixel);
X fprintf(stderr, "bytes per line = %d\n", win.bytes_per_line);
X fprintf(stderr, "visual class = %d\n", win.visual_class);
X fprintf(stderr, "red mask = %d\n", win.red_mask);
X fprintf(stderr, "green mask = %d\n", win.green_mask);
X fprintf(stderr, "blue mask = %d\n", win.blue_mask);
X fprintf(stderr, "bits per rgb = %d\n", win.bits_per_rgb);
X fprintf(stderr, "colormap entrs = %d\n", win.colormap_entries);
X fprintf(stderr, "ncolors = %d\n", win.ncolors);
X fprintf(stderr, "window width = %d\n", win.window_width);
X fprintf(stderr, "window height = %d\n", win.window_height);
X fprintf(stderr, "window x = %d\n", win.window_x);
X fprintf(stderr, "window y = %d\n", win.window_y);
X fprintf(stderr, "window brd wid = %d\n", win.window_bdrwidth);
X fprintf(stderr, "Orientation: %s, Scale: %d\n",
X ( flags & F_PORTRAIT ) ? "Portrait" : "Landscape", scale);
X for ( i = 0; i < 6; i++ ) {
X fprintf(stderr, "colors[%d].pixel = %d\n", i, colors[i].pixel );
X fprintf(stderr, "colors[%d].red = %d\n", i, colors[i].red );
X fprintf(stderr, "colors[%d].green = %d\n", i, colors[i].green );
X fprintf(stderr, "colors[%d].blue = %d\n", i, colors[i].blue );
X }
X}
END_OF_FILE
if test 2142 -ne `wc -c <'cxpr/print_header.c'`; then
echo shar: \"'cxpr/print_header.c'\" unpacked with wrong size!
fi
# end of 'cxpr/print_header.c'
fi
if test -f 'cxpr/prolog.h' -a "${1}" != "-c" ; then
echo shar: Will not clobber existing file \"'cxpr/prolog.h'\"
else
echo shar: Extracting \"'cxpr/prolog.h'\" \(1936 characters\)
sed "s/^X//" >'cxpr/prolog.h' <<'END_OF_FILE'
X/*
X * postscript "program" to unpack and print the bitmaps being sent
X */
X
Xchar *ps_prolog[] = {
X
X"%%Pages: 1",
X"%%EndProlog",
X"%%Page: 1 1",
X"",
X"/bitgen",
X" {",
X" /out_buff exch def",
X" {",
X" in_buff_index in_buff_len eq {",
X" currentfile in_buff readhexstring pop pop",
X" /in_buff_index 0 def",
X" } if",
X"",
X" /leng in_buff in_buff_index get def",
X" /in_buff_index in_buff_index 1 add def",
X" /byte in_buff in_buff_index get def",
X" /in_buff_index in_buff_index 1 add def",
X" /bytes leng out_buff_index add def",
X"",
X" bytes width lt {",
X" out_buff_index 1 bytes 1 sub",
X" { out_buff exch byte put } for",
X" /out_buff_index out_buff_index leng add def",
X" } if",
X" bytes width eq {",
X" out_buff_index 1 width 1 sub",
X" { out_buff exch byte put } for",
X" /out_buff_index 0 def",
X" out_buff",
X" exit",
X" } if",
X" bytes width gt {",
X" out_buff_index 1 width 1 sub",
X" { out_buff exch byte put } for",
X" /in_buff_index in_buff_index 1 sub def",
X" /in_buff_index in_buff_index 1 sub def",
X" in_buff in_buff_index",
X" out_buff_index leng add width sub put",
X" /out_buff_index 0 def",
X" out_buff",
X" exit",
X" } if",
X" } loop",
X" } def",
X"",
X"",
X"/bitdump % stack: width, height, scale",
X" % dump a bit image with lower left corner at origin",
X" {",
X" % read arguments",
X" /iscale exch def",
X" /height exch def",
X" /width exch def",
X"",
X" /in_buff_len 40 def",
X" /in_buff in_buff_len string def",
X" /in_buff_index in_buff_len def",
X" /red_buff width string def",
X" /grn_buff width string def",
X" /blu_buff width string def",
X" /out_buff_index 0 def",
X"",
X" % scale appropriately",
X" width iscale mul height iscale mul scale",
X"",
X" % read and dump the image",
X" width height 8 [width 0 0 height neg 0 height]",
X" { red_buff bitgen }",
X" { grn_buff bitgen }",
X" { blu_buff bitgen } true 3 colorimage",
X" } def",
X"gsave",
X0
X};
END_OF_FILE
if test 1936 -ne `wc -c <'cxpr/prolog.h'`; then
echo shar: \"'cxpr/prolog.h'\" unpacked with wrong size!
fi
# end of 'cxpr/prolog.h'
fi
if test -f 'cxpr/ps_finish.c' -a "${1}" != "-c" ; then
echo shar: Will not clobber existing file \"'cxpr/ps_finish.c'\"
else
echo shar: Extracting \"'cxpr/ps_finish.c'\" \(94 characters\)
sed "s/^X//" >'cxpr/ps_finish.c' <<'END_OF_FILE'
X#include "epilog.h"
X
Xps_finish()
X{
X char **p = ps_epilog;
X
X while (*p) printf("%s\n",*p++);
X}
END_OF_FILE
if test 94 -ne `wc -c <'cxpr/ps_finish.c'`; then
echo shar: \"'cxpr/ps_finish.c'\" unpacked with wrong size!
fi
# end of 'cxpr/ps_finish.c'
fi
if test -f 'cxpr/ps_output.c' -a "${1}" != "-c" ; then
echo shar: Will not clobber existing file \"'cxpr/ps_output.c'\"
else
echo shar: Extracting \"'cxpr/ps_output.c'\" \(1303 characters\)
sed "s/^X//" >'cxpr/ps_output.c' <<'END_OF_FILE'
X#include <stdio.h>
X#include <X11/Xlib.h>
X#include <X11/XWDFile.h>
X
X#define F_PORTRAIT 1
X#define F_DEBUG 4
X#define F_COMPACT 128
X#define F_INVERT 256
X
Xextern XWDFileHeader win;
X
Xextern XColor *colors;
X
Xps_output()
X{
X int iw = win.pixmap_width, ih = win.pixmap_height;
X int iwb = win.bytes_per_line;
X char *buffer, *color_buffer;
X unsigned long swaptest = 1;
X register int i, j, k, l;
X static char hex[] = "0123456789abcdef";
X extern char hex1[], hex2[];
X
X if ( (buffer=(char *)malloc((unsigned)( ih*iw+iwb-iw ))) == NULL ) {
X fprintf(stderr,"xpr: cannot allocate %d bytes\n",ih*iw+iwb-iw);
X exit(1);
X }
X if ( (color_buffer=(char *)malloc((unsigned)( ih*iw*3 ))) == NULL ) {
X fprintf(stderr,"xpr: cannot allocate %d bytes\n",ih*iw*3);
X exit(1);
X }
X
X for ( i = 0; i < ih; i++ ) fullread( 0, (char *) &buffer[i*iw], iwb );
X
X for ( i = 0, k = 0; i < ih; i++ ) {
X for ( j = i * iw; j < i * iw + iw; j++ )
X color_buffer[k++] = colors[buffer[j]].red / 257;
X for ( j = i * iw; j < i * iw + iw; j++ )
X color_buffer[k++] = colors[buffer[j]].green / 257;
X for ( j = i * iw; j < i * iw + iw; j++ )
X color_buffer[k++] = colors[buffer[j]].blue / 257;
X }
X
X if (win.bitmap_bit_order == MSBFirst)
X _swapbits( color_buffer, (long) ih * iw * 3 );
X
X ps_putbuf( color_buffer, ih * iw * 3 );
X}
END_OF_FILE
if test 1303 -ne `wc -c <'cxpr/ps_output.c'`; then
echo shar: \"'cxpr/ps_output.c'\" unpacked with wrong size!
fi
# end of 'cxpr/ps_output.c'
fi
if test -f 'cxpr/ps_putbuf.c' -a "${1}" != "-c" ; then
echo shar: Will not clobber existing file \"'cxpr/ps_putbuf.c'\"
else
echo shar: Extracting \"'cxpr/ps_putbuf.c'\" \(1253 characters\)
sed "s/^X//" >'cxpr/ps_putbuf.c' <<'END_OF_FILE'
X/*
X * Dump some bytes in hex, with bits in each byte reversed.
X */
X
Xint ps_putbuf( buffer, bytes )
Xregister unsigned char *buffer;
Xregister int bytes;
X{
X register int run_length = 0, count = 0;
X register unsigned char current_byte = *buffer;
X static char hex[] = "0123456789abcdef";
X extern char hex1[], hex2[];
X
X while ( bytes-- ) {
X if ( *buffer != current_byte || ++run_length == 255 ) {
X if ( ++count > 20 ) {
X printf("\n");
X count = 1;
X }
X putchar ( hex[ run_length >> 4 ] );
X putchar ( hex[ run_length & 0xf ] );
X/* printf ( " < run_length = %d\t", run_length ); */
X putchar ( hex1[ current_byte ] );
X putchar ( hex2[ current_byte ] );
X/* printf ( " < current_byte %d\n", current_byte ); */
X if ( run_length == 255 ) {
X run_length = 0;
X current_byte = *( buffer + 1 );
X } else {
X run_length = 1;
X current_byte = *buffer;
X }
X }
X buffer++;
X }
X if ( run_length > 0 ) {
X if ( ++count > 20 ) {
X printf("\n");
X count = 1;
X }
X putchar ( hex[ run_length >> 4 ] );
X putchar ( hex[ run_length & 0xf ] );
X putchar ( hex1[ current_byte ] );
X putchar ( hex2[ current_byte ] );
X }
X while ( count != 20 ) {
X count++;
X putchar ( '0' );
X putchar ( '0' );
X putchar ( '0' );
X putchar ( '0' );
X }
X}
END_OF_FILE
if test 1253 -ne `wc -c <'cxpr/ps_putbuf.c'`; then
echo shar: \"'cxpr/ps_putbuf.c'\" unpacked with wrong size!
fi
# end of 'cxpr/ps_putbuf.c'
fi
if test -f 'cxpr/ps_setup.c' -a "${1}" != "-c" ; then
echo shar: Will not clobber existing file \"'cxpr/ps_setup.c'\"
else
echo shar: Extracting \"'cxpr/ps_setup.c'\" \(3345 characters\)
sed "s/^X//" >'cxpr/ps_setup.c' <<'END_OF_FILE'
X#include <pwd.h>
X#include <X11/XWDFile.h>
X
X#define PAPER_WIDTH 2430 /* 21.0 cm / 2.54 cm/inch * 300 DPI */
X#define PAPER_LENGTH 3480 /* 29.5 cm / 2.54 cm/inch * 300 DPI */
X
X#define COMMENTVERSION "PS-Adobe-1.0"
X
X#define F_PORTRAIT 1
X#define F_DEBUG 4
X#define F_APPEND 16
X#define F_NOFF 32
X#define F_COMPACT 128
X#define F_INVERT 256
X
Xextern XWDFileHeader win;
Xextern char *infilename, *header, *trailer, *window_name;
Xextern int scale, top, left, width, height, flags;
Xextern char *escape();
X
Xps_setup()
X{
X char hostname[256];
X struct passwd *pswd;
X long clock;
X int lm, bm; /* left and bottom margins in portrait orientation */
X int iw = win.pixmap_width, ih = win.pixmap_height;
X
X pswd = getpwuid (getuid ());
X (void) gethostname (hostname, sizeof(hostname) );
X
X printf ("%%!%s\n", COMMENTVERSION);
X printf ("%%%%Creator: %s:%s (%s)\n",hostname,pswd->pw_name,pswd->pw_gecos);
X printf ("%%%%Title: %s (%s)\n", infilename, window_name );
X printf ("%%%%CreationDate: %s", (time (&clock), ctime (&clock)));
X printf ("%%%%EndComments\n");
X
X dump_prolog(flags);
X
X if ( flags & F_PORTRAIT ) {
X lm = (left > 0)? left : ((PAPER_WIDTH - scale * iw) / 2);
X bm = (top > 0)? (PAPER_LENGTH - top - scale * ih)
X : ((PAPER_LENGTH - scale * ih) / 2);
X if (header || trailer) {
X printf("gsave\n");
X printf("/Times-Roman findfont 15 scalefont setfont\n");
X /* origin at bottom left corner of image */
X printf("%d %d translate\n",points(lm),points(bm));
X if (header) {
X char *label = escape(header);
X printf("%d (%s) stringwidth pop sub 2 div %d moveto\n",
X points(iw*scale), label, points(ih*scale) + 10);
X printf("(%s) show\n",label);
X }
X if (trailer) {
X char *label = escape(trailer);
X printf("%d (%s) stringwidth pop sub 2 div -20 moveto\n",
X points(iw*scale), label);
X printf("(%s) show\n",label);
X }
X printf("grestore\n");
X }
X /* set resolution to device units (300/inch) */
X printf("72 300 div dup scale\n");
X /* move to lower left corner of image */
X printf("%d %d translate\n",lm,bm);
X /* dump the bitmap */
X printf("%d %d %d bitdump\n",iw,ih,scale);
X } else { /* orientation == LANDSCAPE */
X /* calculate margins */
X lm = (top > 0)? (PAPER_WIDTH - top - scale * ih)
X : ((PAPER_WIDTH - scale * ih) / 2);
X bm = (left > 0)? (PAPER_LENGTH - left - scale * iw)
X : ((PAPER_LENGTH - scale * iw) / 2);
X
X if (header || trailer) {
X printf("gsave\n");
X printf("/Times-Roman findfont 15 scalefont setfont\n");
X /* origin at top left corner of image */
X printf("%d %d translate\n",points(lm),points(bm + scale * iw));
X /* rotate to print the titles */
X printf("-90 rotate\n");
X if (header) {
X char *label = escape(header);
X printf("%d (%s) stringwidth pop sub 2 div %d moveto\n",
X points(iw*scale), label, points(ih*scale) + 10);
X printf("(%s) show\n",label);
X }
X if (trailer) {
X char *label = escape(trailer);
X printf("%d (%s) stringwidth pop sub 2 div -20 moveto\n",
X points(iw*scale), label);
X printf("(%s) show\n",label);
X }
X printf("grestore\n");
X }
X /* set resolution to device units (300/inch) */
X printf("72 300 div dup scale\n");
X /* move to lower left corner of image */
X printf("%d %d translate\n",lm,bm);
X /* dump the bitmap */
X printf("%d %d %d bitdump\n",ih,iw,scale);
X }
X}
END_OF_FILE
if test 3345 -ne `wc -c <'cxpr/ps_setup.c'`; then
echo shar: \"'cxpr/ps_setup.c'\" unpacked with wrong size!
fi
# end of 'cxpr/ps_setup.c'
fi
if test -f 'cxpr/read_colormaps.c' -a "${1}" != "-c" ; then
echo shar: Will not clobber existing file \"'cxpr/read_colormaps.c'\"
else
echo shar: Extracting \"'cxpr/read_colormaps.c'\" \(509 characters\)
sed "s/^X//" >'cxpr/read_colormaps.c' <<'END_OF_FILE'
X#include <X11/Xlib.h>
X#include <X11/XWDFile.h>
X
Xextern XWDFileHeader win;
Xextern XColor *colors;
X
Xread_colormaps()
X{
X register i;
X unsigned long swaptest = 1;
X
X colors = (XColor*)malloc((unsigned)(win.ncolors*sizeof(XColor)));
X
X fullread(0, (char *)colors, (int) (win.ncolors * sizeof(XColor)));
X
X if (*(char *) &swaptest) {
X for (i = 0; i < win.ncolors; i++) {
X _swaplong((char *) &colors[i].pixel, (long) sizeof(long));
X _swapshort((char *) &colors[i].red, (long) (3 * sizeof(short)));
X }
X }
X}
END_OF_FILE
if test 509 -ne `wc -c <'cxpr/read_colormaps.c'`; then
echo shar: \"'cxpr/read_colormaps.c'\" unpacked with wrong size!
fi
# end of 'cxpr/read_colormaps.c'
fi
if test -f 'cxpr/read_header.c' -a "${1}" != "-c" ; then
echo shar: Will not clobber existing file \"'cxpr/read_header.c'\"
else
echo shar: Extracting \"'cxpr/read_header.c'\" \(604 characters\)
sed "s/^X//" >'cxpr/read_header.c' <<'END_OF_FILE'
X#include <X11/XWDFile.h>
X#include <stdio.h>
X
XXWDFileHeader win;
X
Xread_header()
X{
X unsigned long swaptest = 1;
X
X fullread(0, (char *) &win, sizeof(win) );
X
X if (*(char *) &swaptest) _swaplong((char *) &win, (long)sizeof(win));
X
X if (win.file_version != XWD_FILE_VERSION) {
X fprintf(stderr,"xpr: file format version missmatch.\n");
X return(1);
X }
X
X if (win.header_size < sizeof(win)) {
X fprintf(stderr,"xpr: header size is too small.\n");
X return(1);
X }
X
X if (win.byte_order != win.bitmap_bit_order)
X fprintf(stderr,"xpr: image will be incorrect, byte swapping error.\n");
X}
END_OF_FILE
if test 604 -ne `wc -c <'cxpr/read_header.c'`; then
echo shar: \"'cxpr/read_header.c'\" unpacked with wrong size!
fi
# end of 'cxpr/read_header.c'
fi
if test -f 'cxpr/read_window_name.c' -a "${1}" != "-c" ; then
echo shar: Will not clobber existing file \"'cxpr/read_window_name.c'\"
else
echo shar: Extracting \"'cxpr/read_window_name.c'\" \(251 characters\)
sed "s/^X//" >'cxpr/read_window_name.c' <<'END_OF_FILE'
X#include <X11/XWDFile.h>
X
Xextern XWDFileHeader win;
Xextern char *window_name;
X
Xread_window_name()
X{
X window_name = (char *)malloc((unsigned)(win.header_size - sizeof(win)));
X fullread(0, window_name, (int) (win.header_size - sizeof(win) ) );
X}
END_OF_FILE
if test 251 -ne `wc -c <'cxpr/read_window_name.c'`; then
echo shar: \"'cxpr/read_window_name.c'\" unpacked with wrong size!
fi
# end of 'cxpr/read_window_name.c'
fi
if test -f 'cxpr/reverse_byte.h' -a "${1}" != "-c" ; then
echo shar: Will not clobber existing file \"'cxpr/reverse_byte.h'\"
else
echo shar: Extracting \"'cxpr/reverse_byte.h'\" \(1600 characters\)
sed "s/^X//" >'cxpr/reverse_byte.h' <<'END_OF_FILE'
Xchar _reverse_byte[0x100] = {
X 0x00, 0x80, 0x40, 0xc0, 0x20, 0xa0, 0x60, 0xe0,
X 0x10, 0x90, 0x50, 0xd0, 0x30, 0xb0, 0x70, 0xf0,
X 0x08, 0x88, 0x48, 0xc8, 0x28, 0xa8, 0x68, 0xe8,
X 0x18, 0x98, 0x58, 0xd8, 0x38, 0xb8, 0x78, 0xf8,
X 0x04, 0x84, 0x44, 0xc4, 0x24, 0xa4, 0x64, 0xe4,
X 0x14, 0x94, 0x54, 0xd4, 0x34, 0xb4, 0x74, 0xf4,
X 0x0c, 0x8c, 0x4c, 0xcc, 0x2c, 0xac, 0x6c, 0xec,
X 0x1c, 0x9c, 0x5c, 0xdc, 0x3c, 0xbc, 0x7c, 0xfc,
X 0x02, 0x82, 0x42, 0xc2, 0x22, 0xa2, 0x62, 0xe2,
X 0x12, 0x92, 0x52, 0xd2, 0x32, 0xb2, 0x72, 0xf2,
X 0x0a, 0x8a, 0x4a, 0xca, 0x2a, 0xaa, 0x6a, 0xea,
X 0x1a, 0x9a, 0x5a, 0xda, 0x3a, 0xba, 0x7a, 0xfa,
X 0x06, 0x86, 0x46, 0xc6, 0x26, 0xa6, 0x66, 0xe6,
X 0x16, 0x96, 0x56, 0xd6, 0x36, 0xb6, 0x76, 0xf6,
X 0x0e, 0x8e, 0x4e, 0xce, 0x2e, 0xae, 0x6e, 0xee,
X 0x1e, 0x9e, 0x5e, 0xde, 0x3e, 0xbe, 0x7e, 0xfe,
X 0x01, 0x81, 0x41, 0xc1, 0x21, 0xa1, 0x61, 0xe1,
X 0x11, 0x91, 0x51, 0xd1, 0x31, 0xb1, 0x71, 0xf1,
X 0x09, 0x89, 0x49, 0xc9, 0x29, 0xa9, 0x69, 0xe9,
X 0x19, 0x99, 0x59, 0xd9, 0x39, 0xb9, 0x79, 0xf9,
X 0x05, 0x85, 0x45, 0xc5, 0x25, 0xa5, 0x65, 0xe5,
X 0x15, 0x95, 0x55, 0xd5, 0x35, 0xb5, 0x75, 0xf5,
X 0x0d, 0x8d, 0x4d, 0xcd, 0x2d, 0xad, 0x6d, 0xed,
X 0x1d, 0x9d, 0x5d, 0xdd, 0x3d, 0xbd, 0x7d, 0xfd,
X 0x03, 0x83, 0x43, 0xc3, 0x23, 0xa3, 0x63, 0xe3,
X 0x13, 0x93, 0x53, 0xd3, 0x33, 0xb3, 0x73, 0xf3,
X 0x0b, 0x8b, 0x4b, 0xcb, 0x2b, 0xab, 0x6b, 0xeb,
X 0x1b, 0x9b, 0x5b, 0xdb, 0x3b, 0xbb, 0x7b, 0xfb,
X 0x07, 0x87, 0x47, 0xc7, 0x27, 0xa7, 0x67, 0xe7,
X 0x17, 0x97, 0x57, 0xd7, 0x37, 0xb7, 0x77, 0xf7,
X 0x0f, 0x8f, 0x4f, 0xcf, 0x2f, 0xaf, 0x6f, 0xef,
X 0x1f, 0x9f, 0x5f, 0xdf, 0x3f, 0xbf, 0x7f, 0xff
X};
END_OF_FILE
if test 1600 -ne `wc -c <'cxpr/reverse_byte.h'`; then
echo shar: \"'cxpr/reverse_byte.h'\" unpacked with wrong size!
fi
# end of 'cxpr/reverse_byte.h'
fi
if test -f 'cxpr/setup_layout.c' -a "${1}" != "-c" ; then
echo shar: Will not clobber existing file \"'cxpr/setup_layout.c'\"
else
echo shar: Extracting \"'cxpr/setup_layout.c'\" \(918 characters\)
sed "s/^X//" >'cxpr/setup_layout.c' <<'END_OF_FILE'
X#include <stdio.h>
X#include <X11/XWDFile.h>
X
X#define min(x,y) (((x)<(y))?(x):(y))
X#define F_PORTRAIT 1
X#define W_MAX 2400
X#define H_MAX 3150
X
Xextern char *header, *trailer;
Xextern XWDFileHeader win;
Xextern int scale, width, height, flags;
X
Xsetup_layout()
X{
X register w_scale, w_max, h_scale, h_max;
X
X if (header != NULL) win.pixmap_height += 75;
X if (trailer != NULL) win.pixmap_height += 75;
X
X /* check maximum width and height; set orientation and scale */
X
X if ( flags & F_PORTRAIT ) {
X w_max = (width > 0)? width : W_MAX;
X h_max = (height > 0)? height : H_MAX;
X w_scale = w_max / win.pixmap_width;
X h_scale = h_max / win.pixmap_height;
X scale = min(w_scale, h_scale);
X } else {
X w_max = (width > 0)? width : H_MAX;
X h_max = (height > 0)? height : W_MAX;
X w_scale = w_max / win.pixmap_width;
X h_scale = h_max / win.pixmap_height;
X scale = min(w_scale, h_scale);
X }
X}
END_OF_FILE
if test 918 -ne `wc -c <'cxpr/setup_layout.c'`; then
echo shar: \"'cxpr/setup_layout.c'\" unpacked with wrong size!
fi
# end of 'cxpr/setup_layout.c'
fi
if test -f 'cxpr/swapbits.c' -a "${1}" != "-c" ; then
echo shar: Will not clobber existing file \"'cxpr/swapbits.c'\"
else
echo shar: Extracting \"'cxpr/swapbits.c'\" \(196 characters\)
sed "s/^X//" >'cxpr/swapbits.c' <<'END_OF_FILE'
X#include "reverse_byte.h"
X
X/* copied from lib/X/XPutImage.c */
X
X_swapbits (b, n)
X register unsigned char *b;
X register long n;
X{
X do {
X *b = _reverse_byte[*b];
X b++;
X } while (--n > 0);
X
X}
END_OF_FILE
if test 196 -ne `wc -c <'cxpr/swapbits.c'`; then
echo shar: \"'cxpr/swapbits.c'\" unpacked with wrong size!
fi
# end of 'cxpr/swapbits.c'
fi
if test -f 'cxpr/swaplong.c' -a "${1}" != "-c" ; then
echo shar: Will not clobber existing file \"'cxpr/swaplong.c'\"
else
echo shar: Extracting \"'cxpr/swaplong.c'\" \(279 characters\)
sed "s/^X//" >'cxpr/swaplong.c' <<'END_OF_FILE'
X_swaplong (bp, n)
X register char *bp;
X register long n;
X{
X register char c;
X register char *ep = bp + n;
X register char *sp;
X do {
X sp = bp + 3;
X c = *sp;
X *sp = *bp;
X *bp++ = c;
X sp = bp + 1;
X c = *sp;
X *sp = *bp;
X *bp++ = c;
X bp += 2;
X }
X while (bp < ep);
X}
END_OF_FILE
if test 279 -ne `wc -c <'cxpr/swaplong.c'`; then
echo shar: \"'cxpr/swaplong.c'\" unpacked with wrong size!
fi
# end of 'cxpr/swaplong.c'
fi
if test -f 'cxpr/swapshort.c' -a "${1}" != "-c" ; then
echo shar: Will not clobber existing file \"'cxpr/swapshort.c'\"
else
echo shar: Extracting \"'cxpr/swapshort.c'\" \(200 characters\)
sed "s/^X//" >'cxpr/swapshort.c' <<'END_OF_FILE'
X_swapshort (bp, n)
X register char *bp;
X register long n;
X{
X register char c;
X register char *ep = bp + n;
X do {
X c = *bp;
X *bp = *(bp + 1);
X bp++;
X *bp = c;
X bp++;
X }
X while (bp < ep);
X}
END_OF_FILE
if test 200 -ne `wc -c <'cxpr/swapshort.c'`; then
echo shar: \"'cxpr/swapshort.c'\" unpacked with wrong size!
fi
# end of 'cxpr/swapshort.c'
fi
echo shar: End of shell archive.
exit 0
More information about the Comp.sources.x
mailing list