|
DataMuseum.dkPresents historical artifacts from the history of: DKUUG/EUUG Conference tapes |
This is an automatic "excavation" of a thematic subset of
See our Wiki for more about DKUUG/EUUG Conference tapes Excavated with: AutoArchaeologist - Free & Open Source Software. |
top - downloadIndex: ┃ T s ┃
Length: 4373 (0x1115) Types: TextFile Names: »shar.h«
└─⟦a0efdde77⟧ Bits:30001252 EUUGD11 Tape, 1987 Spring Conference Helsinki └─ ⟦this⟧ »EUUGD11/euug-87hel/sec1/shar/shar.h«
/* ** Header file for shar and friends. ** ** $Header: shar.h,v 1.25 87/03/18 14:03:27 rs Exp $ */ /* ** Edit as necessary. */ /* Variances in local dialects. */ #define IDX index /* Maybe strchr? */ #define RDX rindex /* Maybe strrchr? */ /*efine NEED_MKDIR /* Don't have mkdir(2)? */ /*efine NEED_QSORT /* Don't have qsort(3)? */ #define NEED_GETOPT /* Need local getopt object? */ #define CAN_POPEN /* Can invoke file(1) command? */ /*efine USE_MY_SHELL /* Don't popen("/bin/sh")? */ typedef int *align_t; /* Worst-case alignment, for lint */ /* typedef long time_t /* Needed for non-BSD sites? */ /* typedef long off_t /* Needed for non-BSD sites? */ #define DEF_SAVEIT 1 /* Save headers by default? */ /* Where is BSD-compatible directory header file? Pick one. */ #define IN_SYS_DIR /* <sys/dir.h> */ /*efine IN_SYS_NDIR /* <sys/ndir.h> */ /*efine IN_DIR /* "dir.h" */ /* Do you have <sys/wait.h>? If so, then you have vfork, too. */ #define SYS_WAIT /* Login name from environment; pick one. */ #define USER_ENV "USER" /* .. */ /*efine USER_ENV "LOGNAME" /* .. */ /*efine USER_ENV "NAME" /* .. */ /* What we should fopen() if stdin is not the tty. */ #define THE_TTY "/dev/tty" /* Maybe "con:" for MS-DOS? */ /* Name of the machine we're running on; pick one. */ #define GETHOSTNAME /* Use gethostname(2) call */ /*efine UNAME /* Use uname(2) call */ /*efine UUNAME /* Invoke "uuname -l" */ /*efine WHOAMI /* Try /etc/whoami & <whoami.h> */ /*efine HOST "SITE" /* If all else fails */ /* How do we find the current working directory? */ #define GETWD /* Use getwd(3) routine */ /* fine GETCWD /* Use getcwd(3) routine */ /* fine PWDPOPEN /* Invoke "pwd" */ /* fine PWDGETENV "PWD" /* Get $PWD from environment */ /* Prefixes for first two lines of saved NOTESFILES articles. */ #define NOTES1 "/* Written " #define NOTES2 "/* ---" /* Legal characters for filenames. Note that shar doesn't do quoting... */ #define OK_CHARS "@%_-+=.,/" /* ** END OF CONFIGURATION SECTION */ #include <stdio.h> #include <sys/types.h> #include <ctype.h> #ifdef IN_SYS_DIR #include <sys/dir.h> #endif /* IN_SYS_DIR */ #ifdef IN_SYS_NDIR #include <sys/ndir.h> #endif /* IN_SYS_NDIR */ #ifdef IN_NDIR #include "ndir.h" #endif /* IN_DIR */ /* ** Handy shorthands. */ #define TRUE 1 #define FALSE 0 #define WIDTH 72 #define F_DIR '$' /* Something is a directory */ #define F_FILE 'A' /* Something is a regular file */ #define S_IGNORE 'L' /* Ignore this signal */ #define S_RESET 'Z' /* Reset signal to default */ /* These are used by the archive parser. */ #define MAX_LINE_SIZE 200 /* Length of physical input line*/ #define MAX_VAR_NAME 30 /* Length of a variable's name */ #define MAX_VAR_VALUE 128 /* Length of a variable's value */ #define MAX_VARS 20 /* Number of shell vars allowed */ #define MAX_WORDS 30 /* Make words in command lnes */ /* ** Keep RCS stuff away from lint. */ #ifdef lint #define RCS(text) /* NULL */ #else #define RCS(text) static char ID[] = text; #endif /* lint */ /* ** Memory hacking. */ #define NEW(T, count) ((T *)getmem(sizeof(T), (unsigned int)(count))) #define ALLOC(n) getmem(1, (unsigned int)(n)) #define COPY(s) strcpy(NEW(char, strlen((s)) + 1), (s)) /* ** Macros. */ #define BADCHAR(c) (iscntrl((c)) && !isspace((c))) #define EQ(a, b) (strcmp((a), (b)) == 0) #define EQn(a, b, n) (strncmp((a), (b), (n)) == 0) #define PREFIX(a, b) (EQn((a), (b), sizeof b - 1)) #define WHITE(c) ((c) == ' ' || (c) == '\t') /* ** Linked in later. */ extern int errno; extern int optind; extern char *optarg; /* From your C run-time library. */ extern FILE *popen(); extern time_t time(); extern long atol(); extern char *IDX(); extern char *RDX(); extern char *ctime(); extern char *gets(); extern char *mktemp(); extern char *strcat(); extern char *strcpy(); extern char *strncpy(); extern char *getenv(); /* From our local library. */ extern align_t getmem(); extern off_t Fsize(); extern char *Copy(); extern char *Cwd(); extern char *Ermsg(); extern char *Host(); extern char *User(); /* Exported by the archive parser. */ extern FILE *Input; /* Current input stream */ extern char *File; /* Input filename */ extern int Interactive; /* isatty(fileno(stdin))? */ extern void SynErr(); /* Fatal syntax error */