4.4BSD/usr/src/contrib/jove-4.14.6/teachjove.c

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

/***************************************************************************
 * This program is Copyright (C) 1986, 1987, 1988 by Jonathan Payne.  JOVE *
 * is provided to you without charge, and with no warranty.  You may give  *
 * away copies of JOVE, including sources, provided that this notice is    *
 * included in all the files.                                              *
 ***************************************************************************/

#include <stdio.h>
#include <sys/types.h>
#include <sys/file.h>

#ifndef	TEACHJOVE
#    define TEACHJOVE	"/usr/lib/jove/teach-jove"
#endif

#ifndef	W_OK
#   define W_OK	2
#   define F_OK	0
#endif

#ifdef	__STDC__
#define	proto(x)	x
#else
#define	proto(x)	()
#endif

extern char	*getenv proto((const char *));
extern int	access proto((const char *, int));
extern int	system proto((const char *));
extern int	execlp proto((const char *, const char *, ...));

int
main()
{
	char	cmd[256],
		fname[256],
		*home;

	if ((home = getenv("HOME")) == NULL) {
		printf("teachjove: cannot find your home!\n");
		exit(-1);
	}
	(void) sprintf(fname, "%s/teach-jove", home);
	if (access(fname, F_OK) != 0) {
		(void) sprintf(cmd, "cp %s %s; chmod 644 %s", TEACHJOVE, fname, fname);
		system(cmd);
	}
	(void) execlp("jove", "teachjove", fname, (char *) NULL);
	printf("teachjove: cannot execl jove!\n");
	return 1;
}