--- rxvt-unicode/src/xpm.C 2004/02/01 01:34:41 1.7 +++ rxvt-unicode/src/xpm.C 2004/04/02 20:41:01 1.11 @@ -1,7 +1,7 @@ /*--------------------------------*-C-*---------------------------------* * File: xpm.c *----------------------------------------------------------------------* - * $Id: xpm.C,v 1.7 2004/02/01 01:34:41 pcg Exp $ + * $Id: xpm.C,v 1.11 2004/04/02 20:41:01 pcg Exp $ * * All portions of code are copyright by their respective author/s. * Copyright (c) 1997 Carsten Haitzler @@ -57,32 +57,32 @@ unsigned int w = 0, h = 0; unsigned int n; char *p, *str; - bgPixmap_t *bgpixmap = &(bgPixmap); + bgPixmap_t *bgpixmap = & (bgPixmap); #define MAXLEN_GEOM sizeof("[1000x1000+1000+1000]") if (geom == NULL) return 0; str = (char *)rxvt_malloc (MAXLEN_GEOM + 1); - if (!STRCMP(geom, "?")) + if (!STRCMP (geom, "?")) { - sprintf(str, "[%dx%d+%d+%d]", /* can't presume snprintf() ! */ - min(bgpixmap->w, 9999), min(bgpixmap->h, 9999), - min(bgpixmap->x, 9999), min(bgpixmap->y, 9999)); - xterm_seq (XTerm_title, str, CHAR_ST); - free(str); + sprintf (str, "[%dx%d+%d+%d]", /* can't presume snprintf () ! */ + min (bgpixmap->w, 9999), min (bgpixmap->h, 9999), + min (bgpixmap->x, 9999), min (bgpixmap->y, 9999)); + process_xterm_seq (XTerm_title, str, CHAR_ST); + free (str); return 0; } - if ((p = STRCHR(geom, ';')) == NULL) - p = STRCHR(geom, '\0'); + if ((p = STRCHR (geom, ';')) == NULL) + p = STRCHR (geom, '\0'); n = (p - geom); if (n <= MAXLEN_GEOM) { - STRNCPY(str, geom, n); + STRNCPY (str, geom, n); str[n] = '\0'; - flags = XParseGeometry(str, &x, &y, &w, &h); + flags = XParseGeometry (str, &x, &y, &w, &h); if (!flags) { flags |= WidthValue; @@ -90,9 +90,9 @@ } /* default is tile */ if (flags & WidthValue) { - if (!(flags & XValue)) + if (! (flags & XValue)) x = 50; - if (!(flags & HeightValue)) + if (! (flags & HeightValue)) h = w; if (w && !h) { @@ -119,14 +119,14 @@ changed++; } } - if (!(flags & YValue)) + if (! (flags & YValue)) { if (flags & XNegative) flags |= YNegative; y = x; } - if (!(flags & WidthValue) && geom[0] != '=') + if (! (flags & WidthValue) && geom[0] != '=') { x += bgpixmap->x; y += bgpixmap->y; @@ -138,10 +138,10 @@ if (flags & YNegative) y += 100; } - MIN_IT(x, 100); - MIN_IT(y, 100); - MAX_IT(x, 0); - MAX_IT(y, 0); + MIN_IT (x, 100); + MIN_IT (y, 100); + MAX_IT (x, 0); + MAX_IT (y, 0); if (bgpixmap->x != x) { bgpixmap->x = x; @@ -153,7 +153,7 @@ changed++; } } - free(str); + free (str); return changed; } @@ -162,23 +162,23 @@ { XGCValues gcvalue; GC gc; - unsigned int width = TermWin_TotalWidth(); - unsigned int height = TermWin_TotalHeight(); + unsigned int width = TermWin_TotalWidth (); + unsigned int height = TermWin_TotalHeight (); if (TermWin.pixmap != None) - XFreePixmap(Xdisplay, TermWin.pixmap); + XFreePixmap (display->display, TermWin.pixmap); if (bgPixmap.pixmap == None) { /* So be it: I'm not using pixmaps */ TermWin.pixmap = None; - if (!(Options & Opt_transparent) || am_transparent == 0) - XSetWindowBackground(Xdisplay, TermWin.vt, + if (! (Options & Opt_transparent) || am_transparent == 0) + XSetWindowBackground (display->display, TermWin.vt, PixColors[Color_bg]); return; } gcvalue.foreground = PixColors[Color_bg]; - gc = XCreateGC(Xdisplay, TermWin.vt, GCForeground, &gcvalue); + gc = XCreateGC (display->display, TermWin.vt, GCForeground, &gcvalue); if (bgPixmap.pixmap != None) { /* we have a specified pixmap */ @@ -199,10 +199,10 @@ if (w == 0) { /* basic X tiling - let the X server do it */ - TermWin.pixmap = XCreatePixmap(Xdisplay, TermWin.vt, + TermWin.pixmap = XCreatePixmap (display->display, TermWin.vt, xpmw, xpmh, (unsigned int)XDEPTH); - XCopyArea(Xdisplay, bgPixmap.pixmap, TermWin.pixmap, gc, + XCopyArea (display->display, bgPixmap.pixmap, TermWin.pixmap, gc, 0, 0, xpmw, xpmh, 0, 0); } else @@ -210,17 +210,17 @@ float incr, p; Pixmap tmp; - TermWin.pixmap = XCreatePixmap(Xdisplay, TermWin.vt, + TermWin.pixmap = XCreatePixmap (display->display, TermWin.vt, width, height, (unsigned int)XDEPTH); /* * horizontal scaling */ - rxvt_pixmap_incr(&w, &x, &incr, &p, width, xpmw); + rxvt_pixmap_incr (&w, &x, &incr, &p, width, xpmw); - tmp = XCreatePixmap(Xdisplay, TermWin.vt, + tmp = XCreatePixmap (display->display, TermWin.vt, width, xpmh, (unsigned int)XDEPTH); - XFillRectangle(Xdisplay, tmp, gc, 0, 0, width, + XFillRectangle (display->display, tmp, gc, 0, 0, width, xpmh); for ( /*nil */ ; x < w; x++, p += incr) @@ -228,39 +228,39 @@ if (p >= xpmw) p = 0; /* copy one column from the original pixmap to the tmp pixmap */ - XCopyArea(Xdisplay, bgPixmap.pixmap, tmp, gc, + XCopyArea (display->display, bgPixmap.pixmap, tmp, gc, (int)p, 0, 1, xpmh, (int)x, 0); } /* * vertical scaling */ - rxvt_pixmap_incr(&h, &y, &incr, &p, height, xpmh); + rxvt_pixmap_incr (&h, &y, &incr, &p, height, xpmh); if (y > 0) - XFillRectangle(Xdisplay, TermWin.pixmap, gc, 0, 0, width, + XFillRectangle (display->display, TermWin.pixmap, gc, 0, 0, width, y); if (h < height) - XFillRectangle(Xdisplay, TermWin.pixmap, gc, 0, (int)h, + XFillRectangle (display->display, TermWin.pixmap, gc, 0, (int)h, width, height - h + 1); for ( /*nil */ ; y < h; y++, p += incr) { if (p >= xpmh) p = 0; /* copy one row from the tmp pixmap to the main pixmap */ - XCopyArea(Xdisplay, tmp, TermWin.pixmap, gc, + XCopyArea (display->display, tmp, TermWin.pixmap, gc, 0, (int)p, width, 1, 0, (int)y); } - XFreePixmap(Xdisplay, tmp); + XFreePixmap (display->display, tmp); } } - XSetWindowBackgroundPixmap(Xdisplay, TermWin.vt, TermWin.pixmap); - XFreeGC(Xdisplay, gc); + XSetWindowBackgroundPixmap (display->display, TermWin.vt, TermWin.pixmap); + XFreeGC (display->display, gc); am_transparent = 0; - XClearWindow(Xdisplay, TermWin.vt); + XClearWindow (display->display, TermWin.vt); - XSync(Xdisplay, False); + XSync (display->display, False); } /* @@ -269,7 +269,7 @@ */ /* INTPROTO */ static void -rxvt_pixmap_incr(unsigned int *wh, unsigned int *xy, float *incr, float *p, unsigned int widthheight, unsigned int xpmwidthheight) +rxvt_pixmap_incr (unsigned int *wh, unsigned int *xy, float *incr, float *p, unsigned int widthheight, unsigned int xpmwidthheight) { unsigned int cwh, cxy; float cincr, cp; @@ -345,14 +345,14 @@ { char *f; - assert(file != NULL); + assert (file != NULL); if (bgPixmap.pixmap != None) { - XFreePixmap(Xdisplay, bgPixmap.pixmap); + XFreePixmap (display->display, bgPixmap.pixmap); bgPixmap.pixmap = None; } - XSetWindowBackground(Xdisplay, TermWin.vt, PixColors[Color_bg]); + XSetWindowBackground (display->display, TermWin.vt, PixColors[Color_bg]); if (*file != '\0') { @@ -361,7 +361,7 @@ /* * we already have the required attributes */ - /* XGetWindowAttributes(Xdisplay, TermWin.vt, &attr); */ + /* XGetWindowAttributes (display->display, TermWin.vt, &attr); */ xpmAttr.closeness = 30000; xpmAttr.colormap = XCMAP; @@ -371,23 +371,24 @@ XpmDepth | XpmSize | XpmReturnPixels); /* search environment variables here too */ - f = (char *)rxvt_File_find(file, ".xpm", rs[Rs_path]); + f = (char *)rxvt_File_find (file, ".xpm", rs[Rs_path]); if (f == NULL - || XpmReadFileToPixmap(Xdisplay, Xroot, f, + || XpmReadFileToPixmap (display->display, display->root, f, &bgPixmap.pixmap, NULL, &xpmAttr)) { - char *p; + char *p; /* semi-colon delimited */ - if ((p = STRCHR(file, ';')) == NULL) - p = STRCHR(file, '\0'); + if ((p = STRCHR (file, ';')) == NULL) + p = STRCHR (file, '\0'); - rxvt_print_error("couldn't load XPM file \"%.*s\"", (p - file), - file); + rxvt_warn ("couldn't load XPM file \"%.*s\", ignoring.", (p - file), file); } - free(f); + + free (f); } + resize_pixmap (); return bgPixmap.pixmap; }