From fae9e27f7b836fd37b59195e1b5191f3e49e9a3f Mon Sep 17 00:00:00 2001 From: "Peter B. Kessler" Date: Thu, 28 Aug 1980 02:56:41 -0800 Subject: [PATCH] date and time created 80/08/27 19:56:41 by peter SCCS-vsn: usr.bin/pascal/src/subr.c 1.1 --- usr/src/usr.bin/pascal/src/subr.c | 211 ++++++++++++++++++++++++++++++ 1 file changed, 211 insertions(+) create mode 100644 usr/src/usr.bin/pascal/src/subr.c diff --git a/usr/src/usr.bin/pascal/src/subr.c b/usr/src/usr.bin/pascal/src/subr.c new file mode 100644 index 0000000000..2c4eb09e1d --- /dev/null +++ b/usr/src/usr.bin/pascal/src/subr.c @@ -0,0 +1,211 @@ +/* Copyright (c) 1979 Regents of the University of California */ + +static char sccsid[] = "@(#)subr.c 1.1 %G%"; + +#include "whoami.h" +#include "0.h" + +#ifndef PI1 +/* + * Does the string fp end in '.' and the character c ? + */ +dotted(fp, c) + register char *fp; + char c; +{ + register int i; + + i = strlen(fp); + return (i > 1 && fp[i - 2] == '.' && fp[i - 1] == c); +} + +/* + * Toggle the option c. + */ +togopt(c) + char c; +{ + register char *tp; + + tp = &opt( c ); + *tp = 1 - *tp; +} + +/* + * Set the time vector "tvec" to the + * modification time stamp of a file. + */ +gettime( filename ) + char *filename; +{ +#include + struct stat stb; + + stat(filename, &stb); + tvec = stb.st_mtime; +} + +/* + * Convert a "ctime" into a Pascal styple time line + */ +char * +myctime(tv) + int *tv; +{ + register char *cp, *dp; + char *cpp; + register i; + static char mycbuf[26]; + + cpp = ctime(tv); + dp = mycbuf; + cp = cpp; + cpp[16] = 0; + while (*dp++ = *cp++); + dp--; + cp = cpp+19; + cpp[24] = 0; + while (*dp++ = *cp++); + return (mycbuf); +} + +/* + * Is "fp" in the command line list of names ? + */ +inpflist(fp) + char *fp; +{ + register i, *pfp; + + pfp = pflist; + for (i = pflstc; i > 0; i--) + if (strcmp(fp, *pfp++) == 0) + return (1); + return (0); +} +#endif + +extern int errno; +extern char *sys_errlist[]; + +/* + * Boom! + */ +Perror(file, error) + char *file, *error; +{ + + errno = 0; + sys_errlist[0] = error; + perror(file); +} + +int * +calloc(num, size) + int num, size; +{ + register int p1, *p2, nbyte; + + nbyte = (num*size+( ( sizeof ( int ) ) - 1 ) ) & ~( ( sizeof ( int ) ) - 1 ); + if ((p1 = malloc(nbyte)) == -1 || p1==0) + return (-1); + p2 = p1; + nbyte /= sizeof ( int ); + do { + *p2++ = 0; + } while (--nbyte); + return (p1); +} + +/* + * Compare strings: s1>s2: >0 s1==s2: 0 s1>= 1; +#ifdef PI0 + send(ROPOP, c); +#endif +} -- 2.20.1