--- ray/src/px/psign.c 1992/09/21 12:14:30 2.13 +++ ray/src/px/psign.c 2003/07/27 22:12:03 2.23 @@ -1,23 +1,21 @@ -/* Copyright (c) 1992 Regents of the University of California */ - #ifndef lint -static char SCCSid[] = "$SunId$ LBL"; +static const char RCSid[] = "$Id: psign.c,v 2.23 2003/07/27 22:12:03 schorsch Exp $"; #endif - /* * psign.c - produce picture from text. * * 7/1/87 */ -#include "standard.h" +#include "copyright.h" -#include "color.h" +#include +#include "standard.h" +#include "platform.h" +#include "color.h" #include "font.h" -#include "paths.h" - #ifndef SSS #define SSS 3 /* super-sample size */ #endif @@ -40,6 +38,12 @@ unsigned char *ourbitmap; /* our output bitmap */ int xsiz, ysiz; /* bitmap dimensions */ int xdim; /* size of horizontal scan (bytes) */ + /* conflicting def's in param.h */ +#undef tstbit +#undef setbit +#undef clrbit +#undef tglbit + #define bitop(x,y,op) (ourbitmap[(y)*xdim+((x)>>3)] op (1<<((x)&7))) #define tstbit(x,y) bitop(x,y,&) #define setbit(x,y) bitop(x,y,|=) @@ -48,8 +52,6 @@ int xdim; /* size of horizontal scan (bytes) */ FONT *ourfont; /* our font */ -char *libpath; /* library search path */ - typedef struct line { char *s; /* line w/o LF */ short *sp; /* character spacing */ @@ -66,9 +68,7 @@ int argc; char *argv[]; { int an; -#ifdef MSDOS - setmode(fileno(stdout), O_BINARY); -#endif + SET_FILE_BINARY(stdout); for (an = 1; an < argc && argv[an][0] == '-'; an++) switch (argv[an][1]) { case 'c': /* color */ @@ -126,8 +126,6 @@ unkopt: exit(1); } /* load font file */ - if ((libpath = getenv(ULIBVAR)) == NULL) - libpath = DEFPATH; ourfont = getfont(fontfile); /* get text */ if (an == argc) @@ -140,6 +138,7 @@ unkopt: /* convert text to bitmap */ maptext(); /* print header */ + newheader("RADIANCE", stdout); printargs(argc, argv, stdout); fputformat(COLRFMT, stdout); putchar('\n'); @@ -168,14 +167,14 @@ makemap() /* create the bit map */ else xsiz = ysiz/pictaspect + 0.5; cheight = ysiz/nlines; - cwidth = cheight/aspect + 0.5; + cwidth = cheight/aspect; } else { if (ysiz <= 0) ysiz = cheight*nlines; pictaspect = (double)ysiz/xsiz; aspect = pictaspect*maxwidth/(256*nlines); cheight = ysiz/nlines; - cwidth = cheight/aspect + 0.5; + cwidth = cheight/aspect; } } else { /* reverse orientation */ if (ysiz <= 0) { @@ -191,14 +190,14 @@ makemap() /* create the bit map */ else xsiz = ysiz/pictaspect + 0.5; cheight = xsiz/nlines; - cwidth = cheight/aspect + 0.5; + cwidth = cheight/aspect; } else { if (xsiz <= 0) xsiz = cheight*nlines; pictaspect = (double)ysiz/xsiz; aspect = maxwidth/(256*nlines*pictaspect); cheight = xsiz/nlines; - cwidth = cheight/aspect + 0.5; + cwidth = cheight/aspect; } } if (xsiz % SSS) @@ -209,14 +208,13 @@ makemap() /* create the bit map */ ourbitmap = (BYTE *)bmalloc(ysiz*xdim); if (ourbitmap == NULL) error(SYSTEM, "Out of memory in makemap"); - bzero((char *)ourbitmap, ysiz*xdim); + memset((char *)ourbitmap, '\0', ysiz*xdim); } gettext(fp) /* get text from a file */ FILE *fp; { - char *fgets(); char buf[MAXLINE]; register LINE *curl; int len; @@ -229,9 +227,9 @@ FILE *fp; if (curl == NULL) goto memerr; len = strlen(buf); - curl->s = malloc(len); + curl->s = (char *)malloc(len); curl->sp = (short *)malloc(sizeof(short)*len--); - if (curl->s == NULL | curl->sp == NULL) + if ((curl->s == NULL) | (curl->sp == NULL)) goto memerr; if (len > maxline) maxline = len; @@ -239,10 +237,10 @@ FILE *fp; curl->s[len] = '\0'; if (spacing < -1./256.) len = squeeztext(curl->sp, curl->s, ourfont, - (int)(spacing*-256.0)); + (int)(spacing*-256.)); else if (spacing > 1./256.) len = proptext(curl->sp, curl->s, ourfont, - (int)(spacing*256.0), 3); + (int)(spacing*256.), 3); else len = uniftext(curl->sp, curl->s, ourfont); if (len > maxwidth) @@ -266,7 +264,7 @@ char *av[]; ourtext = (LINE *)malloc(sizeof(LINE)); if (ourtext == NULL) goto memerr; - ourtext->s = malloc(MAXLINE); + ourtext->s = (char *)malloc(MAXLINE); if (ourtext->s == NULL) goto memerr; for (cp = ourtext->s; ac-- > 0; av++) { @@ -280,12 +278,12 @@ char *av[]; ourtext->sp = (short *)malloc(sizeof(short)*(maxline+1)); if (ourtext->sp == NULL) goto memerr; - if (spacing < 0.0) + if (spacing < -1./256.) maxwidth = squeeztext(ourtext->sp, ourtext->s, ourfont, - (int)(spacing*-256.0)); - else if (spacing > 0.0) + (int)(spacing*-256.)); + else if (spacing > 1./256.) maxwidth = proptext(ourtext->sp, ourtext->s, ourfont, - (int)(spacing*256.0), 3); + (int)(spacing*256.), 3); else maxwidth = uniftext(ourtext->sp, ourtext->s, ourfont); nlines = 1; @@ -444,5 +442,5 @@ FILE *fp; exit(1); } } - free((char *)scanout); + free((void *)scanout); }