4.3BSD/usr/contrib/notes/src/mknf.c

Compare this file to the similar file:
Show the results in this format:

#ifdef	RCSIDENT
static char rcsid[] = "$Header: mknf.c,v 1.7 85/01/18 15:19:42 notes Rel $";
#endif	RCSIDENT


/*
 *	This program will initialize an empty notefile. It leaves the
 *	caller as sole director of the notefile and also as the only
 *	person with access to the notefile. 
 *
 *	Since a notefile does suck up a little disk space, the use of
 *	this program is limited to the user whose uid matches the
 *	Notesuid constant. 
 *
 *	Original coding:	Rob Kolstad	Winter 1980
 *	Modified:		Ray Essick	November 1981
 */

#define	MAINLINE
#include 	"parms.h"
#include	"structs.h"

main (argc, argv)
char  **argv;						/* create a new notesfile */
{

    char   *q;
    int     k;						/* arg counter */
    int     j,
            Aflag,
            Oflag,
            Nflag;					/* option flags */
    char    basedir[WDLEN];
    char    endname[WDLEN];

    startup (argc, argv);				/* common initialization */

    if (globuid != Notesuid)
    {
	printf ("You are not allowed to build notefiles\n");
	exit (BAD);
    }

    if (argc == 1)
    {
	printf ("Usage: %s [-aon] topic1 [...]\n", argv[0]);
	exit (BAD);
    }

    Aflag = 0;
    Oflag = 0;
    Nflag = 0;

    for (k = 1; k < argc; k++)
    {

	if (argv[k][0] == '-')				/* options!!! */
	{
	    j = 1;
	    while (argv[k][j])
		switch (argv[k][j++])
		{
		    case 'a': 				/* anon notes ok */
			Aflag = 1;
			break;

		    case 'o': 				/* open notesfile */
			Oflag = 1;
			break;

		    case 'n': 				/* network available */
			Nflag = 1;
			break;

		    default: 				/* bad news */
			fprintf (stderr, "Bad switch: `%c'\n", argv[k][--j]);
			exit (BAD);
		}
	    continue;					/* on to the next arguement */
	}

	printf ("%s:\t", argv[k]);
	if (argv[k][0] == '/')				/* absolute path */
	{
	    q = rindex (argv[k], '/');			/* find trailing slash */
	    *q++ = '\0';				/* break into pieces */
	    strcpy (basedir, argv[k]);
	    strcpy (endname, q);
	    *--q = '/';					/* reconnect */
	}
	else
	{
	    strcpy (basedir, Mstdir);			/* default */
	    strcpy (endname, argv[k]);
	}

/*
 *	Actually make the notesfile in buildnf()
 */
	switch (buildnf (endname, basedir, Aflag, Oflag, Nflag))
	{
	    case 0: 					/* success */
		printf ("complete\n");
		break;

	    case (-1): 					/* invalid name */
	    case (-2): 					/* exists */
	    default: 					/* should be like this */
		break;					/* buildnf does newline */
	}

    }
    exit (GOOD);
}