Google
 

Trailing-Edge - PDP-10 Archives - SRI_NIC_PERM_FS_1_19910112 - c/misc/wancho.lib
There are no other files named wancho.lib in the archive.
22-Aug-86 00:08:55-PDT,3513;000000000001
Return-Path: <WANCHO@SIMTEL20.ARPA>
Received: from SIMTEL20.ARPA by SRI-NIC.ARPA with TCP; Fri 22 Aug 86 00:08:50-PDT
Date: Fri 22 Aug 86 00:42:52-MDT
From: Frank J. Wancho <WANCHO@SIMTEL20.ARPA>
Subject: Re: Library contributions?
To: KLH@SRI-NIC.ARPA
cc: WANCHO@SIMTEL20.ARPA
In-Reply-To: <12232730980.22.KLH@SRI-NIC.ARPA>
Message-ID: <12232760956.11.WANCHO@SIMTEL20.ARPA>

Ken,

The first significant set of functions were stolen from the SUMEX/MIT
C compiler runtime library.  These deal with filename strings.  They
might be worth converting to use a structure and pass the structure,
or else use something akin to the argblocks used with the jsys() call.
(Why weren't regs passed in a structure for jsys()?)
fnparse (old, dev, dir, nm, typ, gen, attr)
	char *old, *dev, *dir, *nm, *typ, *gen, *attr;
	/* parses a name into its components */

char *fngdv (old, buf)  char *old, *buf;
char *fngdr (old, buf)  char *old, *buf;
char *fngnm (old, buf)  char *old, *buf;
char *fngtp (old, buf)  char *old, *buf;
char *fnggn (old, buf)  char *old, *buf;
char *fngat (old, buf)  char *old, *buf;
	/* extract the relevant component only */

fncons (buf, dev, dir, nm, typ, gen, attr)
	char *buf, *dev, *dir, *nm, *typ, *gen, *attr;
	/* construct a filename (TOPS20 format) from its components */

char *fnsdf (buf, old, dv, dir, nm, typ, gen, attr)
	char *old, *buf, *dv, *dir, *nm, *typ, *gen, *attr;
	/* buf is set to contain a new filename with the
	supplied components substituted for null components of
	the filename in old */

char *fnsfd (buf, old, dv, dir, nm, typ, gen, attr)
	char *old, *buf, *dv, *dir, *nm, *typ, *gen, *attr;

	/* buf is set to contain a new filename with the
	supplied components substituted for components of the
	filename in old.  This is different from fnsdf in that
	non-zero component arguments (dv, dir, etc.) are
	substituted even if old is not null in the corresponding
	field. */

fnstd (old, buf)  char *old, *buf;
	/* copy old to buf; if old is in UNIX format, buf will
	have it in TOPS20 format.  This "standardizes" filenames
	before they are used in system calls, etc. */
char   *
makefnam    (fn1, fn2, new)
char   *fn1, *fn2, *new;
	/* fn2 is the default filename string with any components
	specified in fn1 overriding the corresponding component in
	fn2. */


static char result[100];

char   *dir (filename)		/* get files, one by one */
char   *filename;		/* template, or NULL */


int haswild(fname)		/* returns true (1) if string */
char *fname;			/* contains a TOPS-20 wildcard */


getfullname(s)	/* returns in s the full name of the file specified */
char *s;	/* in s.  The file must not be open.  */


putwe (w, iob)  /* Puts a 16-bit word into a file LSB first */
int     w;
FILE   *iob;


int     getw16 (iob)	/* get 16-bit word from file, LSB first */
FILE   *iob;		/* with sign bit propagated */


int     getx16 (iob)	/* get unsigned 16-bit word from file, LSB first */
FILE   *iob;


long
fr (fd, buf, cnt)	/* like read but stdio */
FILE *fd;
char *buf;
long cnt;


int     upper (s)	/* uppercase string in place */
char   *s;


strip (s)		/* strip leading and trailing blanks in place */
char *s;


static char todbuf[26];

char *ts()	/* timestamp - returns pointer to todbuf containing */
		/* the current date/time in default TOPS-20 format */
		/* This could easily be changed to take flags for */
		/* alternate options. */
-------