pdp11v/usr/src/cmd/sccs/lib/gf.c
/* EMACS_MODES: c !fill tabstop=4 */
/*
* gf -- Get a .FRED file name for a particular application and subsystem.
*
* The resulting pathname is placed in a static area that is overwritten
* by each call to gf ().
*
*/
#include <stdio.h>
#include FHMAKE/filehand.h"
/* Debugging options */
#ifdef TRACE
#define TR(W,X,Y,Z) fprintf (stdout, W, X, Y, Z)
#else
#define TR(W,X,Y,Z) /* W X Y Z */
#endif
#define SIZE 132
char *gf (appl)
char *appl;
{
static char filename[SIZE];
char inline[SIZE], *ptrs[3], *fmat[2], *tmp;
extern char *strrchr ();
extern int sweep ();
TR("Gf: entry appl=(%s)\n", appl, EMPTY, EMPTY);
cat (filename, "/usr/lib/M2/", appl, EMPTY);
fmat[0] = "DBBD";
fmat[1] = EMPTY;
TR("Gf: fmat[0]=(%s) fmat[1]=(%s)\n", fmat[0], fmat[1], EMPTY);
if (sweep (VERIFY, filename, EMPTY, '\n', ':', SIZE, fmat, inline, ptrs,
(int (*)()) NULL, (int (*)()) NULL) != FOUND) {
TR("Gf: not found\n", EMPTY, EMPTY, EMPTY);
return (EMPTY);
}
tmp = strrchr (ptrs[1], (char) 01);
*tmp = NULL; /* Find and clobber control A. */
cat (filename, ptrs[1], "/.fred/.FRED", EMPTY);
TR("Gf: returns (%s)\n", filename, EMPTY, EMPTY);
return (filename);
}
static char Sccsids[] = "@(#)gf.c 1.5";