diff options
-rw-r--r-- | dsimple.c | 265 | ||||
-rw-r--r-- | dsimple.h | 17 |
2 files changed, 6 insertions, 276 deletions
@@ -41,9 +41,6 @@ from The Open Group. * Written by Mark Lillibridge. Last updated 7/1/87 */ -#ifdef BUILD_PRINTSUPPORT -#include <X11/XprintUtil/xprintutil.h> -#endif /* BUILD_PRINTSUPPORT */ #include "dsimple.h" /* @@ -61,12 +58,6 @@ from The Open Group. char *program_name = "unknown_program"; Display *dpy = NULL; int screen = 0; -Bool printer_output = False; /* Video or printer output ? */ -#ifdef BUILD_PRINTSUPPORT -XPContext pcontext = None; -#endif /* BUILD_PRINTSUPPORT */ - -static void _bitmap_error(int, char *); /* * Malloc: like malloc but handles out of memory using Fatal_Error. @@ -84,25 +75,6 @@ char *Malloc(size) /* - * Realloc: like Malloc except for realloc, handles NULL using Malloc. - */ -char *Realloc(ptr, size) - char *ptr; - int size; -{ - char *new_ptr; - - if (!ptr) - return(Malloc(size)); - - if (!(new_ptr = realloc(ptr, size))) - Fatal_Error("Out of memory!"); - - return(new_ptr); -} - - -/* * Get_Display_Name (argc, argv) Look for -display, -d, or host:dpy (obselete) * If found, remove it from command line. Don't go past a lone -. */ @@ -138,42 +110,6 @@ char *Get_Display_Name(pargc, argv) } -#ifdef BUILD_PRINTSUPPORT -/* - * Get_Printer_Name (argc, argv) Look for -printer, -p, - * If found, remove it from command line. Don't go past a lone -. - */ -char *Get_Printer_Name(pargc, argv) - int *pargc; /* MODIFIED */ - char **argv; /* MODIFIED */ -{ - int argc = *pargc; - char **pargv = argv+1; - char *printername = NULL; - int i; - - for (i = 1; i < argc; i++) { - char *arg = argv[i]; - - if (!strcmp (arg, "-printer") || !strcmp (arg, "-p")) { - if (++i >= argc) usage (); - - printername = argv[i]; - *pargc -= 2; - continue; - } - if (!strcmp(arg,"-")) { - while (i<argc) - *pargv++ = argv[i++]; - break; - } - *pargv++ = arg; - } - - *pargv = NULL; - return (printername); -} -#endif /* BUILD_PRINTSUPPORT */ /* * Open_Display: Routine to open a display with correct error handling. @@ -207,37 +143,11 @@ void Setup_Display_And_Screen(argc, argv) int *argc; /* MODIFIED */ char **argv; /* MODIFIED */ { - char *displayname = NULL, - *printername = NULL; + char *displayname = NULL; displayname = Get_Display_Name(argc, argv); -#ifdef BUILD_PRINTSUPPORT - printername = Get_Printer_Name(argc, argv); - - if (displayname && printername) { - fprintf (stderr, "%s: you cannot specify -printer (-p) and -display (-d) at the same time.\n", - program_name); - usage (); - } - - if (printername) { - printer_output = True; - - if (XpuGetPrinter(printername, &dpy, &pcontext) != 1) { - fprintf(stderr, "%s: Cannot open printer '%s'.\n", program_name, printername); - exit(EXIT_FAILURE); - } - - screen = XScreenNumberOfScreen(XpGetScreenOfContext(dpy, pcontext)); - } - else -#endif /* BUILD_PRINTSUPPORT */ - { - printer_output = False; - - dpy = Open_Display (displayname); - screen = XDefaultScreen(dpy); - } + dpy = Open_Display (displayname); + screen = XDefaultScreen(dpy); } /* @@ -248,19 +158,8 @@ void Close_Display(void) if (dpy == NULL) return; -#ifdef BUILD_PRINTSUPPORT - if (printer_output) { - XpuClosePrinterDisplay(dpy, pcontext); - dpy = NULL; - pcontext = None; - printer_output = False; - } - else -#endif /* BUILD_PRINTSUPPORT */ - { - XCloseDisplay(dpy); - dpy = NULL; - } + XCloseDisplay(dpy); + dpy = NULL; } @@ -279,65 +178,6 @@ char *name; } -/* - * Beep: Routine to beep the display. - */ -void Beep() -{ - XBell(dpy, 50); -} - - -/* - * ReadBitmapFile: same as XReadBitmapFile except it returns the bitmap - * directly and handles errors using Fatal_Error. - */ -static void _bitmap_error(status, filename) - int status; - char *filename; -{ - if (status == BitmapOpenFailed) - Fatal_Error("Can't open file %s!", filename); - else if (status == BitmapFileInvalid) - Fatal_Error("file %s: Bad bitmap format.", filename); - else - Fatal_Error("Out of memory!"); -} - -Pixmap ReadBitmapFile(d, filename, width, height, x_hot, y_hot) - Drawable d; - char *filename; - int *width, *height, *x_hot, *y_hot; -{ - Pixmap bitmap; - int status; - - status = XReadBitmapFile(dpy, RootWindow(dpy, screen), filename, - (unsigned int *)width, (unsigned int *)height, - &bitmap, x_hot, y_hot); - if (status != BitmapSuccess) - _bitmap_error(status, filename); - - return(bitmap); -} - - -/* - * WriteBitmapFile: same as XWriteBitmapFile except it handles errors - * using Fatal_Error. - */ -void WriteBitmapFile(filename, bitmap, width, height, x_hot, y_hot) - char *filename; - Pixmap bitmap; - int width, height, x_hot, y_hot; -{ - int status; - - status= XWriteBitmapFile(dpy, filename, bitmap, width, height, x_hot, - y_hot); - if (status != BitmapSuccess) - _bitmap_error(status, filename); -} /* @@ -420,83 +260,6 @@ Window Select_Window_Args(rargc, argv) * Written by Mark Lillibridge. Last updated 7/1/87 */ -/* - * Resolve_Color: This routine takes a color name and returns the pixel # - * that when used in the window w will be of color name. - * (WARNING: The colormap of w MAY be modified! ) - * If colors are run out of, only the first n colors will be - * as correct as the hardware can make them where n depends - * on the display. This routine does not require wind to - * be defined. - */ -unsigned long Resolve_Color(w, name) - Window w; - char *name; -{ - XColor c; - Colormap colormap; - XWindowAttributes wind_info; - - /* - * The following is a hack to insure machines without a rgb table - * handle at least white & black right. - */ - if (!strcmp(name, "white")) - name="#ffffffffffff"; - if (!strcmp(name, "black")) - name="#000000000000"; - - XGetWindowAttributes(dpy, w, &wind_info); - colormap = wind_info.colormap; - - if (!XParseColor(dpy, colormap, name, &c)) - Fatal_Error("Bad color format '%s'.", name); - - if (!XAllocColor(dpy, colormap, &c)) - Fatal_Error("XAllocColor failed!"); - - return(c.pixel); -} - - -/* - * Bitmap_To_Pixmap: Convert a bitmap to a 2 colored pixmap. The colors come - * from the foreground and background colors of the gc. - * Width and height are required solely for efficiency. - * If needed, they can be obtained via. XGetGeometry. - */ -Pixmap Bitmap_To_Pixmap(dpy, d, gc, bitmap, width, height) - Display *dpy; - Drawable d; - GC gc; - Pixmap bitmap; - int width, height; -{ - Pixmap pix; - int x; - unsigned int i, depth; - Drawable root; - - if (!XGetGeometry(dpy, d, &root, &x, &x, &i, &i, &i, &depth)) - return(0); - - pix = XCreatePixmap(dpy, d, width, height, (int)depth); - - XCopyPlane(dpy, bitmap, pix, gc, 0, 0, width, height, 0, 0, 1); - - return(pix); -} - - -/* - * blip: a debugging routine. Prints Blip! on stderr with flushing. - */ -void blip() -{ - fflush(stdout); - fprintf(stderr, "blip!\n"); - fflush(stderr); -} /* @@ -580,24 +343,6 @@ Window Window_With_Name(dpy, top, name) return(w); } -/* - * outl: a debugging routine. Flushes stdout then prints a message on stderr - * and flushes stderr. Used to print messages when past certain points - * in code so we can tell where we are. Outl may be invoked like - * printf with up to 7 arguments. - */ -void -outl(char *msg, ...) -{ - va_list args; - fflush(stdout); - va_start(args, msg); - vfprintf(stderr, msg, args); - va_end(args); - fprintf(stderr, "\n"); - fflush(stderr); -} - /* * Standard fatal error routine - call like printf but maximum of 7 arguments. @@ -52,29 +52,18 @@ from The Open Group. extern char *program_name; /* Name of this program */ extern Display *dpy; /* The current display */ extern int screen; /* The current screen */ -extern Bool printer_output; /* Video or printer output ? */ -#ifdef BUILD_PRINTSUPPORT -extern XPContext pcontext; /* The current print context */ -#endif /* BUILD_PRINTSUPPORT */ #define INIT_NAME program_name=argv[0] /* use this in main to setup program_name */ - /* Declaritions for functions in just_display.c */ + /* Declarations for functions in just_display.c */ char *Malloc(unsigned); -char *Realloc(char *, int); char *Get_Display_Name(int *, char **); -#ifdef BUILD_PRINTSUPPORT -char *Get_Printer_Name(int *, char **); -#endif /* BUILD_PRINTSUPPORT */ Display *Open_Display(char *); void Setup_Display_And_Screen(int *, char **); void Close_Display(void); XFontStruct *Open_Font(char *); -void Beep(void); -Pixmap ReadBitmapFile(Drawable, char *, int *, int *, int *, int *); -void WriteBitmapFile(char *, Pixmap, int, int, int, int); Window Select_Window_Args(int *, char **); void usage(void); @@ -89,14 +78,10 @@ void usage(void); * Send bugs, etc. to chariot@athena.mit.edu. */ -unsigned long Resolve_Color(Window, char *); -Pixmap Bitmap_To_Pixmap(Display *, Drawable, GC, Pixmap, int, int); Window Select_Window(Display *); -void blip(void); Window Window_With_Name(Display *, Window, char *); #ifdef __GNUC__ void Fatal_Error(char *, ...) __attribute__((__noreturn__)); #else void Fatal_Error(char *, ...); #endif -void outl(char *, ...); |