aboutsummaryrefslogtreecommitdiff
path: root/src/hyper/ReadBitmap.pamphlet
diff options
context:
space:
mode:
Diffstat (limited to 'src/hyper/ReadBitmap.pamphlet')
-rw-r--r--src/hyper/ReadBitmap.pamphlet296
1 files changed, 0 insertions, 296 deletions
diff --git a/src/hyper/ReadBitmap.pamphlet b/src/hyper/ReadBitmap.pamphlet
deleted file mode 100644
index 9712f0e6..00000000
--- a/src/hyper/ReadBitmap.pamphlet
+++ /dev/null
@@ -1,296 +0,0 @@
-\documentclass{article}
-\usepackage{axiom}
-\begin{document}
-\title{\$SPAD/src/ReadBitmap}
-\author{The Axiom Team}
-\maketitle
-\begin{abstract}
-\end{abstract}
-\eject
-\tableofcontents
-\eject
-\section{ReadBitmap.c}
-\subsection{zzopen change}
-The [[zzopen]] function used to be called [[zopen]] but this name has
-been picked up by Unix so we change it globally.
-<<zzopen change>>=
- if (!(fd = zzopen(filename, "r"))) {
- fprintf(stderr, "ReadBitmapFile: File >%s< not found\n", filename);
- exit(-1);
- }
-
-@
-\subsection{ReadBitmap.c}
-<<ReadBitmap.c>>=
-#define _READBITMAP_C
-
-#include "axiom-c-macros.h"
-#include "useproto.h"
-#include "debug.h"
-#include "hyper.h"
-
-#include "all_hyper_proto.H1"
-#include "pixmap.H1"
-
-#define MAXLINE 256
-
-/*
- * This file was produced by J.M. Wiley with some help from the bitmap editor
- * routine. It reads in a bitmap file, and calls XCreatePixmapFromBitmapData
- * to transform it into a Pixmap. He did this because the routine
- * XReadBitmapFile does not seeem to work to well (whatecer that means).
- */
-
-XImage *
-HTReadBitmapFile(Display *display,int screen,char * filename,
- int *width, int *height)
-{
- XImage *image;
- FILE *fd;
- char Line[256], Buff[256];
- int num_chars;
- char *ptr;
- int rch;
- int version;
- int padding, chars_line, file_chars_line, file_chars;
- int bytes;
- int x_hot, y_hot;
-
-
- image = XCreateImage(display, DefaultVisual(display, screen), 1,
- XYBitmap, 0, NULL, 0, 0, 8, 0);
-
-
- (image)->byte_order = LSBFirst; /* byte_order */
- (image)->bitmap_unit = 8; /* bitmap-unit */
- (image)->bitmap_bit_order = LSBFirst; /* bitmap-bit-order */
-
-<<zzopen change>>
- /*
- * Once it is open, lets get the width and height
- */
-
- if ((read_w_and_h(fd, (unsigned int *)width,(unsigned int *) height)) < 0) {
- fprintf(stderr, "ReadBitmapFile: Bad file format in %s\n", filename);
- exit(-1);
- }
-
-
- /*
- * Now get the next line, and see if it is hot spots or bits
- */
- if (fgets(Line, MAXLINE, fd) == NULL) {
- fprintf(stderr, "ReadBitmapFile: Bad file format in %s\n", filename);
- exit(-1);
- }
-
- /*
- * Now check the first character to see if it is a # or an s
- */
-
- if (Line[0] == '#') {
- if ((read_hot(fd, Line, &x_hot, &y_hot)) < 0) {
- fprintf(stderr, "ReadBitmapFile: Bad file format in %s\n", filename);
- exit(-1);
- }
- }
-
- (image)->width = *width;
- (image)->height = *height;
-
- /*
- * figure out what version
- */
-
- if (sscanf(Line, "static short %s = {", Buff) == 1)
- version = 10;
- else if (sscanf(Line, "static unsigned char %s = {", Buff) == 1)
- version = 11;
- else if (sscanf(Line, "static char %s = {", Buff) == 1)
- version = 11;
- else {
- fprintf(stderr, "ReadBitmapFile: Bad file format in %s\n", filename);
- exit(-1);
- }
-
- padding = 0;
- if ((*width % 16) && ((*width % 16) < 9) && (version == 10))
- padding = 1;
-
- (image)->bytes_per_line = chars_line = (*width + 7) / 8;
- file_chars_line = chars_line + padding;
-
- num_chars = chars_line * (*height);
- file_chars = file_chars_line * (*height);
- (image)->data = (char *) halloc((image)->bytes_per_line * (image)->height,
- "Read Pixmap--Image data");
-
- /*
- * Since we are just holding the first line of the declaration, we can
- * just start reading from fd
- */
-
- if (version == 10)
- for (bytes = 0, ptr = (image)->data; bytes < file_chars; (bytes += 2)) {
- if (fscanf(fd, " 0x%x%*[,}]%*[ \n]", &rch) != 1) {
- fprintf(stderr, "ReadBitmapFile: Bad file format in %s\n", filename);
- exit(-1);
- }
- *(ptr++) = rch & 0xff;
- if (!padding || ((bytes + 2) % file_chars_line))
- *(ptr++) = rch >> 8;
- }
- else
- for (bytes = 0, ptr = (image)->data; bytes < file_chars; bytes++, ptr++) {
- if (fscanf(fd, " 0x%x%*[,}]%*[ \n]", &rch) != 1) {
- fprintf(stderr, "ReadBitmapFile: Bad file format in %s\n", filename);
- exit(-1);
- }
- *ptr = rch;
- }
-
- fclose(fd);
-
- return image;
-}
-
-static int
-read_hot(FILE *fd,char Line[],int *x_hot,int *y_hot)
-{
- char Buff[256];
-
- /*
- * Works much the same as get width and height, just new variables
- */
-
- if (sscanf(Line, "#define %s %d", Buff, x_hot) != 2)
- return -1;
-
- if (fgets(Line, MAXLINE, fd) == NULL)
- return -1;
-
- if (sscanf(Line, "#define %s %d", Buff, y_hot) != 2)
- return -1;
-
- if (fgets(Line, MAXLINE, fd) == NULL)
- return -1;
- return 1;
-}
-
-static int
-read_w_and_h(FILE *fd,unsigned int *width,unsigned int *height)
-{
- char Line[256], Buff[256];
-
- if (fgets(Line, MAXLINE, fd) == NULL)
- return -1;
-
- /*
- * Once we have the line, scan it for the width
- */
-
- if (sscanf(Line, "#define %s %d", Buff, width) != 2)
- return -1;
-
- /*
- * Hopefully we have the width, now get the height the same way
- */
-
- if (fgets(Line, MAXLINE, fd) == NULL)
- return -1;
-
-
- /*
- * Once we have the line, scan it for the height
- */
-
- if (sscanf(Line, "#define %s %d", Buff, height) != 2)
- return -1;
-
- return 1;
-}
-
-
-/* read a bitmap file into memory */
-
-ImageStruct *
-insert_image_struct(char *filename)
-{
- int bm_width, bm_height;
- XImage *im;
- ImageStruct *image;
-
- if (*filename == ' ')
- filename++;
- if ((image = (ImageStruct *) hash_find(&gImageHashTable, filename)) == NULL) {
- im = HTReadBitmapFile(gXDisplay, gXScreenNumber, filename,
- &bm_width, &bm_height);
-
- /*
- * now add the image to the gImageHashTable
- */
-
- image = (ImageStruct *) halloc(sizeof(ImageStruct), "ImageStruct");
- image->image.xi = im;
- image->width = image->image.xi->width;
- image->height = image->image.xi->height;
- image->filename = (char *) halloc(sizeof(char) * strlen(filename) +1,
- "insert_image--filename");
-
- /* strcpy(image->filename, filename); */
-
- sprintf(image->filename, "%s", filename);
- hash_insert(&gImageHashTable,(char *) image, image->filename);
- }
- return image;
-}
-@
-\section{License}
-<<license>>=
-/*
-Copyright (c) 1991-2002, The Numerical ALgorithms Group Ltd.
-All rights reserved.
-
-Redistribution and use in source and binary forms, with or without
-modification, are permitted provided that the following conditions are
-met:
-
- - Redistributions of source code must retain the above copyright
- notice, this list of conditions and the following disclaimer.
-
- - Redistributions in binary form must reproduce the above copyright
- notice, this list of conditions and the following disclaimer in
- the documentation and/or other materials provided with the
- distribution.
-
- - Neither the name of The Numerical ALgorithms Group Ltd. nor the
- names of its contributors may be used to endorse or promote products
- derived from this software without specific prior written permission.
-
-THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS
-IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
-TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A
-PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER
-OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
-EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
-PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
-PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
-LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
-NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
-SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-*/
-
-@
-<<*>>=
-<<license>>
-<<ReadBitmap.c>>
-@
-\eject
-\begin{thebibliography}{99}
-\bibitem{1} nothing
-\end{thebibliography}
-\end{document}
-
-
-
-