The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.
/*
**  Configuration file for shar and friends.
**
**  This is believed to work on VMS.
**
**  $Id: config.vms,v 3.0.3.4 1993/08/25 17:04:26 ram Exp $
*/

/*

$Log: config.vms,v $
Revision 3.0.3.4  1993/08/25  17:04:26  ram
patch12: cleanup checkin for RCS 5.6

Revision 3.0.3.3  91/04/18  18:38:33  ram
patch5: removed old log message (prior to 3.0)

Revision 3.0.3.2  91/04/07  18:49:41  ram
patch1: merged official cshar 3.0 into beta version

Revision 3.0.3.1  91/01/21  11:29:39  ram
3.0 baseline (ram).

 */

/*
**  Higher-level controls for which operating system we're running on.
*/
/*efine UNIX				/* Works			*/
/*efine MSDOS				/* Should work			*/
#define VMS				/* Doesn't work			*/


/*
**  A dense section of one-line compilation controls.  If you're confused,
**  your best bet is to search through the source to see where and how
**  each one of these is used.
*/
#define IDX		index		/* Maybe strchr?		*/
#define RDX		rindex		/* Maybe strrchr?		*/
#define NEED_CTERMID			/* Don't have ctermid(3)?	*/
/*efine NEED_MKDIR			/* Don't have mkdir(2)?		*/
/*efine UNOS_MKDIR			/* Use makedir, not mkdir?	*/
#define NEED_QSORT			/* Don't have qsort(3)?		*/
#define NEED_GETOPT			/* Don't have getopt(3)?	*/
#define NEED_STRERROR			/* Don't have strerror(3)?	*/
#define HAVE_SYSTEM			/* Have system(3)?		*/
/*efine CAN_POPEN			/* Can invoke file(1) command?	*/
#define USE_MY_SHELL			/* Don't popen("/bin/sh")?	*/
/*efine void		int		/* If you don't have void	*/
/*pedef void		 sigret_t;	/* What a signal handler returns */
typedef int		 sigret_t;	/* What a signal handler returns */
typedef int		*align_t;	/* Worst-case alignment, for lint */
/*pedef long		time_t		/* Needed for non-BSD sites?	*/
/*pedef long		off_t		/* Needed for non-BSD sites?	*/
/*efine SYS_WAIT			/* Have <sys/wait.h> and vfork?	*/
/*efine HAS_VFORK			/* Have vfork but no <sys/wait.h> */
#define USE_SYSTEM			/* Use system(3), not exec(2)?	*/
#define USE_LONGJMP			/* Don't exit() within parser?	*/
#define USE_SYSERRLIST			/* Have sys_errlist[], sys_nerr? */
/*efine USE_GETPWUID			/* Use getpwuid(3)?		*/
#define DEF_SAVEIT	TRUE		/* Save headers by default?	*/
/*efine UNIX_FILES			/* stat(file) gives true size?	*/
#define NAME_FORMAT	"%s%2.2d"	/* To get things like Part02	*/
/*efine NAME_FORMAT	"%s%02.2d"	/* To get things like Part02	*/
#define NUMB_FORMAT	"%02d"		/* To get things like 03	*/
#define MANI_FORMAT	"%-25s %2d\t%s\n"	/* This should be safe	*/
#define MAX_LEVELS	6		/* Levels for findsrc to walk	*/
#define THE_TTY		"sys$input"	/* Maybe "con:" for MS-DOS?	*/
#define RCSID				/* Compile in the RCS strings?	*/
#define USERNAME	"Sombody"	/* Your name, if not in environ	*/
#define PTR_SPRINTF			/* Need extern char *sprinf()?	*/
/*efine DECLARE_PROTOTYPES		/* Use prototypes in our decls?	*/
/*efine ANSI_HDRS			/* Use <stdlib.h>, etc.?	*/
#define REGISTER	register	/* Do you trust your compiler?	*/
#define PEDAGOGY			/* Advertise tools?		*/


/*
**  How do we test to see if a character is okay to pass to one of
**  the macros in <ctype.h>?  Note that we never give it EOF.
*/
#define CTYPE(c)	(isascii((c)))	/* Common			*/
/*efine CTYPE(c)	((c) > 0)	/* Less common			*/
/*efine CTYPE(c)	(TRUE)		/* Uncommon			*/


/*
**  We often want to make a backup copy of a file (usually a manifest).
**  The following sets of #define's control how the copying is done.
*/
/*efine BU_VIA_RENAME			/* Use rename call?		*/
/*efine BU_VIA_LINK			/* Use link/unlink calls?	*/
/*efine BU_VIA_COPY			/* Use fopen() and such?	*/
#define BU_NONE				/* System has generations?	*/
/*efine BU_PREFIX	"B-"		/* Instead of ".BAK" suffix?	*/
/*efine BU_SUFFIX	".BAK"		/* Instead of "B-" prefix?	*/
/*efine BU_NAME_LEN	50		/* For non-BSD filesystems	*/


/*
**  The programs create up to two temporary files at one time, using
**  mktemp(3).  Decide where you want the files to go, and if you wanna
**  use a special directory for them (see MakeTempName).
*/
#define TEMP_NAME1	"/tmp/csharXXXXXX"	/* Unix			*/
#define TEMP_NAME2	"/tmp/csharXXXXXX"	/* Unix			*/
/*efine TEMP_NAME1	"csharXXXXXX"		/* MS-DOS		*/
/*efine TEMP_NAME2	"csharXXXXXX"		/* MS-DOS		*/
/*efine TEMP_NAME1	"sys$login:csharXXXXXX"	/* VMS			*/
/*efine TEMP_NAME2	"sys$login:csharXXXXXX"	/* VMS			*/
#define TEMPSIZE	40		/* Size of temp file name	*/
/*efine TEMPVAR		"TMPDIR"	/* Place for temp files		*/


/*
**  There are several ways to get the current machine name.  Enable just one
**  of one of the following lines.
*/
/*efine GETHOSTNAME			/* Use gethostname(2) call	*/
/*efine UNAME				/* Use uname(2) call		*/
/*efine UUNAME				/* Invoke "uuname -l"		*/
#define	WHOAMI		"sys$manager:host.txt"	/* Try /etc/whoami	*/
/*efine HOST_STRING			/* Just use DEF_HOST		*/
#define DEF_HOST	"SITE"		/* If all else fails		*/


/*
**  There are several different ways to get the current working directory.
**  Enable just one of the following lines.
*/
#define GETWD				/* Use getwd(3) routine		*/
/*efine GETCWD				/* Use getcwd(3) routine	*/
/*efine PWDPOPEN			/* Invoke "pwd"			*/
/*efine PWDGETENV	"PWD"		/* Get $PWD from environment	*/


/*
**  If you're a notes site, you might have to tweak these two #define's.
**  If you don't care, then set them equal to something that doesn't
**  start with the comment-begin sequence and they'll be effectively no-ops
**  at the cost of an extra strcmp.  I've also heard of broken MS-DOS
**  compilers that don't ignore slash-star inside comments!  Anyhow, for
**  more details see unshar.c
*/
/*efine NOTES1		"/* Written "	/* This is what notes 1.7 uses	*/
/*efine NOTES2		"/* ---"	/* This is what notes 1.7 uses	*/
#define NOTES1		"$$"		/* This is a don't care		*/
#define NOTES2		"$$"		/* This is a don't care		*/


/*
**  The findsrc program uses the readdir() routines to read directories.
**  If your system doesn't have this interface, there are public domain
**  implementations available for Unix from the comp.sources.unix archives,
**  GNU has a VMS one inside EMACS, and this package comes with kits for
**  MS-DOS and the Amiga.  Help save the world and use or write a readdir()
**  package for your system!
*/

/* Now then, where did I put that header file?   Pick one. */
#define IN_SYS_DIR			/* <sys/dir.h>			*/
/*efine IN_SYS_NDIR			/* <sys/ndir.h>			*/
/*efine IN_DIR				/* <dir.h>			*/
/*efine IN_DIRECT			/* <direct.h>			*/
/*efine IN_NDIR				/* "ndir.h"			*/
/*efine IN_DIRENT			/* <dirent.h>			*/

/*  What readdir() returns.  Must be a #define because of #include order. */
#ifdef	IN_DIRENT
#define DIRENTRY	struct dirent
#else
#define DIRENTRY	struct direct
#endif	/* IN_DIRENT */


/*
**  Limits.  The shell parser can be compiled with some safety-checks.
**  This includes creating too many files, or writing long ones, creating
**  too many directories, overwriting existing files, etc.
*/
/*efine NAME_CHECK			/* Munge names of files?	*/
/*efine PATH_CHECK			/* Check filenames in shars?	*/
/*efine MAX_FOPENS	40		/* Max # of files/archive	*/
/*efine MAX_LINES	1200		/* Max # of lines in a file	*/
/*efine MAX_MKDIRS	10		/* Max directory depth		*/


/*
**  Congratulations, you're done!
*/