diff options
author | wkj <devnull@localhost> | 2004-05-16 07:54:22 +0000 |
---|---|---|
committer | wkj <devnull@localhost> | 2004-05-16 07:54:22 +0000 |
commit | b855148c9b6d28fedfd083d037bcf246f1913d92 (patch) | |
tree | 0075eb6ea37427fa48b78cb937fabc04175cead1 /src/cmd/postscript/common | |
parent | 61f5c35c9465f0702739b41249a664d409f0482c (diff) | |
download | plan9port-b855148c9b6d28fedfd083d037bcf246f1913d92.tar.gz plan9port-b855148c9b6d28fedfd083d037bcf246f1913d92.tar.bz2 plan9port-b855148c9b6d28fedfd083d037bcf246f1913d92.zip |
Checkpoint.
Diffstat (limited to 'src/cmd/postscript/common')
-rw-r--r-- | src/cmd/postscript/common/bbox.c | 12 | ||||
-rw-r--r-- | src/cmd/postscript/common/common.c | 12 | ||||
-rw-r--r-- | src/cmd/postscript/common/common.h | 4 | ||||
-rw-r--r-- | src/cmd/postscript/common/ext.h | 6 | ||||
-rw-r--r-- | src/cmd/postscript/common/gen.h | 4 | ||||
-rw-r--r-- | src/cmd/postscript/common/getopt.c | 2 | ||||
-rw-r--r-- | src/cmd/postscript/common/misc.c | 16 | ||||
-rw-r--r-- | src/cmd/postscript/common/path.h | 46 | ||||
-rw-r--r-- | src/cmd/postscript/common/request.c | 8 | ||||
-rw-r--r-- | src/cmd/postscript/common/tempnam.c | 83 |
10 files changed, 128 insertions, 65 deletions
diff --git a/src/cmd/postscript/common/bbox.c b/src/cmd/postscript/common/bbox.c index 7e1f14a5..66a114c2 100644 --- a/src/cmd/postscript/common/bbox.c +++ b/src/cmd/postscript/common/bbox.c @@ -34,6 +34,7 @@ double matrix1[6], matrix2[6]; /*****************************************************************************/ +void cover(x, y) double x, y; @@ -65,7 +66,9 @@ cover(x, y) } /* End of cover */ /*****************************************************************************/ +void resetbbox(); +void writebbox(fp, keyword, slop) FILE *fp; /* the comment is written here */ @@ -117,7 +120,7 @@ writebbox(fp, keyword, slop) } /* End of writebbox */ /*****************************************************************************/ - +void resetbbox(output) int output; @@ -146,7 +149,7 @@ resetbbox(output) } /* End of resetbbox */ /*****************************************************************************/ - +void scale(sx, sy) double sx, sy; @@ -171,7 +174,7 @@ scale(sx, sy) } /* End of scale */ /*****************************************************************************/ - +void translate(tx, ty) double tx, ty; @@ -196,7 +199,7 @@ translate(tx, ty) } /* End of translate */ /*****************************************************************************/ - +void rotate(angle) double angle; @@ -223,6 +226,7 @@ rotate(angle) /*****************************************************************************/ +void concat(m1) double m1[]; diff --git a/src/cmd/postscript/common/common.c b/src/cmd/postscript/common/common.c index 945ef6a0..a58167a6 100644 --- a/src/cmd/postscript/common/common.c +++ b/src/cmd/postscript/common/common.c @@ -209,14 +209,14 @@ endpage(void) { int cat(char *filename) { Biobuf *bfile; - Biobuf *Bfile; + Biobufhdr *Bfile; int n; static char buf[Bsize]; - if ((bfile = Bopen(unsharp(filename), OREAD)) == 0) { + if ((bfile = Bopen(filename, OREAD)) == 0) { return(1); } - Bfile = bfile; + Bfile = bfile; /* &(bfile->Biobufhdr); */ while ((n=Bread(Bfile, buf, Bsize)) > 0) { if (Bwrite(Bstdout, buf, n) != n) break; @@ -240,9 +240,9 @@ galloc(void *ptr, int size, char *perstr) { } static char *errorstrings[] = { - {""}, /* NONE */ - {"WARNING"}, - {"FATAL"} + "", /* NONE */ + "WARNING", + "FATAL" }; char *programname; diff --git a/src/cmd/postscript/common/common.h b/src/cmd/postscript/common/common.h index 62eba08e..2432fe12 100644 --- a/src/cmd/postscript/common/common.h +++ b/src/cmd/postscript/common/common.h @@ -5,6 +5,8 @@ #define RUNEGETGROUP(a) ((a>>8)&0xff) #define RUNEGETCHAR(a) (a&0xff) +#define tempnam safe_tempnam + typedef int BOOLEAN; #define TRUE 1 @@ -38,6 +40,6 @@ BOOLEAN isinstring(void); void startpage(void); void endpage(void); int cat(char *); -int Bgetfield(Biobuf *, int, void *, int); +int Bgetfield(Biobufhdr *, int, void *, int); void *galloc(void *, int, char *); void pagelist(char *); diff --git a/src/cmd/postscript/common/ext.h b/src/cmd/postscript/common/ext.h index e260cee1..c0f7c7a5 100644 --- a/src/cmd/postscript/common/ext.h +++ b/src/cmd/postscript/common/ext.h @@ -28,8 +28,12 @@ extern char *optarg; /* for getopt() */ extern int optind; extern void interrupt(); -//extern char *tempnam(char*,char*); +extern void error(); +extern int cat(); +extern void concat(); + /* + * extern char *tempnam(char*,char*); * extern char *malloc(); * extern char *calloc(); * extern char *strtok(); diff --git a/src/cmd/postscript/common/gen.h b/src/cmd/postscript/common/gen.h index ba8cbbac..dffeb957 100644 --- a/src/cmd/postscript/common/gen.h +++ b/src/cmd/postscript/common/gen.h @@ -7,6 +7,10 @@ #define PROGRAMVERSION "3.3.2" +/* XXX: replace tempnam with something safer, but leaky */ +extern char* safe_tempnam(char*, char*); +#define tempnam safe_tempnam + #define NON_FATAL 0 #define FATAL 1 #define USER_FATAL 2 diff --git a/src/cmd/postscript/common/getopt.c b/src/cmd/postscript/common/getopt.c index cf6619f7..e348cb2f 100644 --- a/src/cmd/postscript/common/getopt.c +++ b/src/cmd/postscript/common/getopt.c @@ -15,7 +15,7 @@ getopt (argc, argv, opts) char **argv, *opts; { static int sp = 1; - register c; + register int c; register char *cp; if (sp == 1) diff --git a/src/cmd/postscript/common/misc.c b/src/cmd/postscript/common/misc.c index 25bd37aa..198a9351 100644 --- a/src/cmd/postscript/common/misc.c +++ b/src/cmd/postscript/common/misc.c @@ -8,6 +8,8 @@ #include <ctype.h> #include <sys/types.h> #include <fcntl.h> +#include <unistd.h> +#include <string.h> #include "gen.h" #include "ext.h" @@ -17,7 +19,9 @@ int nolist = 0; /* number of specified ranges */ int olist[50]; /* processing range pairs */ /*****************************************************************************/ +extern int str_convert(); +void out_list(str) char *str; @@ -53,7 +57,7 @@ out_list(str) } /* End of out_list */ /*****************************************************************************/ - +int in_olist(num) int num; @@ -80,7 +84,7 @@ in_olist(num) } /* End of in_olist */ /*****************************************************************************/ - +void setencoding(name) char *name; @@ -110,7 +114,7 @@ setencoding(name) } /* End of setencoding */ /*****************************************************************************/ - +int cat(file) char *file; @@ -145,6 +149,7 @@ cat(file) /*****************************************************************************/ +int str_convert(str, err) char **str; @@ -173,6 +178,7 @@ str_convert(str, err) /*****************************************************************************/ +void error(kind, mesg, a1, a2, a3) int kind; @@ -191,9 +197,9 @@ error(kind, mesg, a1, a2, a3) fprintf(stderr, "%s: ", prog_name); fprintf(stderr, mesg, a1, a2, a3); if ( lineno > 0 ) - fprintf(stderr, " (line %d)", lineno); + fprintf(stderr, " (line %ld)", lineno); if ( position > 0 ) - fprintf(stderr, " (near byte %d)", position); + fprintf(stderr, " (near byte %ld)", position); putc('\n', stderr); } /* End if */ diff --git a/src/cmd/postscript/common/path.h b/src/cmd/postscript/common/path.h index a3692139..68f8cbf0 100644 --- a/src/cmd/postscript/common/path.h +++ b/src/cmd/postscript/common/path.h @@ -4,29 +4,29 @@ * */ -#define DPOST "#9/sys/lib/postscript/prologues/dpost.ps" -#define POSTBGI "#9/sys/lib/postscript/prologues/postbgi.ps" -#define POSTDAISY "#9/sys/lib/postscript/prologues/postdaisy.ps" -#define POSTDMD "#9/sys/lib/postscript/prologues/postdmd.ps" -#define POSTMD "#9/sys/lib/postscript/prologues/postmd.ps" -#define POSTPLOT "#9/sys/lib/postscript/prologues/postplot.ps" -#define POSTPRINT "#9/sys/lib/postscript/prologues/postprint.ps" -#define POSTNPRINT "#9/sys/lib/postscript/prologues/postnprint.ps" -#define POSTTEK "#9/sys/lib/postscript/prologues/posttek.ps" -#define POSTGIF "#9/sys/lib/postscript/prologues/postgif.ps" +#define DPOST "#9/postscript/prologues/dpost.ps" +#define POSTBGI "#9/postscript/prologues/postbgi.ps" +#define POSTDAISY "#9/postscript/prologues/postdaisy.ps" +#define POSTDMD "#9/postscript/prologues/postdmd.ps" +#define POSTMD "#9/postscript/prologues/postmd.ps" +#define POSTPLOT "#9/postscript/prologues/postplot.ps" +#define POSTPRINT "#9/postscript/prologues/postprint.ps" +#define POSTNPRINT "#9/postscript/prologues/postnprint.ps" +#define POSTTEK "#9/postscript/prologues/posttek.ps" +#define POSTGIF "#9/postscript/prologues/postgif.ps" -#define BASELINE "#9/sys/lib/postscript/prologues/baseline.ps" -#define COLOR "#9/sys/lib/postscript/prologues/color.ps" -#define DRAW "#9/sys/lib/postscript/prologues/draw.ps" -#define FORMFILE "#9/sys/lib/postscript/prologues/forms.ps" -#define SHADEFILE "#9/sys/lib/postscript/prologues/shade.ps" -#define KERNING "#9/sys/lib/postscript/prologues/kerning.ps" -#define REQUESTFILE "#9/sys/lib/postscript/prologues/ps.requests" -#define ROUNDPAGE "#9/sys/lib/postscript/prologues/roundpage.ps" +#define BASELINE "#9/postscript/prologues/baseline.ps" +#define COLOR "#9/postscript/prologues/color.ps" +#define DRAW "#9/postscript/prologues/draw.ps" +#define FORMFILE "#9/postscript/prologues/forms.ps" +#define SHADEFILE "#9/postscript/prologues/shade.ps" +#define KERNING "#9/postscript/prologues/kerning.ps" +#define REQUESTFILE "#9/postscript/prologues/ps.requests" +#define ROUNDPAGE "#9/postscript/prologues/roundpage.ps" -#define ENCODINGDIR "#9/sys/lib/postscript/prologues" -#define HOSTDIR "#9/sys/lib/postscript/font" -#define FONTDIR "#9/sys/lib/troff/font" -#define POSTLIBDIR "#9/sys/lib/postscript/prologues" -#define TEMPDIR "/tmp" +#define ENCODINGDIR "#9/postscript/prologues" +#define HOSTDIR "#9/postscript/font" +#define FONTDIR "#9/troff/font" +#define POSTLIBDIR "#9/postscript/prologues" +#define TEMPDIR "#9/tmp" diff --git a/src/cmd/postscript/common/request.c b/src/cmd/postscript/common/request.c index d8d7dd13..7884b239 100644 --- a/src/cmd/postscript/common/request.c +++ b/src/cmd/postscript/common/request.c @@ -11,8 +11,12 @@ */ #include <stdio.h> +#include <stdlib.h> +#include <string.h> +#include <unistd.h> #include "gen.h" /* general purpose definitions */ +#include "ext.h" #include "request.h" /* a few special definitions */ #include "path.h" /* for the default request file */ @@ -22,6 +26,7 @@ char *requestfile = REQUESTFILE; /* default lookup file */ /*****************************************************************************/ +void saverequest(want) char *want; /* grab code for this stuff */ @@ -55,7 +60,9 @@ saverequest(want) } /* End of saverequest */ /*****************************************************************************/ +extern void dumprequest(); +void writerequest(page, fp_out) int page; /* write everything for this page */ @@ -80,6 +87,7 @@ writerequest(page, fp_out) /*****************************************************************************/ +void dumprequest(want, file, fp_out) char *want; /* look for this string */ diff --git a/src/cmd/postscript/common/tempnam.c b/src/cmd/postscript/common/tempnam.c index 529025ed..a759876e 100644 --- a/src/cmd/postscript/common/tempnam.c +++ b/src/cmd/postscript/common/tempnam.c @@ -1,27 +1,62 @@ #include <stdio.h> -#include <errno.h> - -#if defined(V9) || defined(BSD4_2) || defined(plan9) -char *tempnam(char *dir, char *pfx) { - int pid; - unsigned int len; - char *tnm, *malloc(); - static int seq = 0; - - pid = getpid(); - len = strlen(dir) + strlen(pfx) + 10; - if ((tnm = malloc(len)) != NULL) { - sprintf(tnm, "%s", dir); - if (access(tnm, 7) == -1) - return(NULL); - do { - sprintf(tnm, "%s/%s%d%d", dir, pfx, pid, seq++); - errno = 0; - if (access(tnm, 7) == -1) - if (errno == ENOENT) - return(tnm); - } while (1); +#include <stdlib.h> +#include <string.h> +#include <unistd.h> + +#define nil ((void*)0) + +char* +mkfname(char *tmpdir, char *prefix) +{ + int n; + char *p, *fname; + + if((p = getenv("TMPDIR")) != nil) + goto Mktemp; + if((p = tmpdir) != nil) + goto Mktemp; + p = "/tmp"; + + Mktemp: + n = strlen(p)+1+strlen(prefix)+1+8+1; + if((fname = malloc(n)) == nil) + return nil; + memset(fname, 0, n); + strcat(fname, p); + if((n = strlen(p)) > 0 && p[n-1] != '/') + strcat(fname, "/"); + strcat(fname, prefix); + strcat(fname, ".XXXXXXXX"); + + return fname; +} + +extern int mkstemp(); + +char* +safe_tempnam(char *tmpdir, char *prefix) +{ + int fd; + char *fname; + + if((fname = mkfname(tmpdir, prefix)) == nil) + return nil; + + if((fd = mkstemp(fname)) < 0){ /* XXX: leak fd, fname */ + free(fname); + return nil; } - return(tnm); + return fname; +} + +int +safe_tmpnam(char *fname) +{ + char *p; + + if((p = mkfname(nil, "tmpfile")) == nil) + return -1; + strcpy(fname, p); + free(p); + return mkstemp(fname); } -#endif |