diff options
Diffstat (limited to 'gnu/usr.bin/cvs/cvs/cvs.h')
-rw-r--r-- | gnu/usr.bin/cvs/cvs/cvs.h | 570 |
1 files changed, 0 insertions, 570 deletions
diff --git a/gnu/usr.bin/cvs/cvs/cvs.h b/gnu/usr.bin/cvs/cvs/cvs.h deleted file mode 100644 index 34c9d8c71f3bb..0000000000000 --- a/gnu/usr.bin/cvs/cvs/cvs.h +++ /dev/null @@ -1,570 +0,0 @@ -/* $CVSid: @(#)cvs.h 1.86 94/10/22 $ */ - -/* - * basic information used in all source files - * - */ - - -#include "config.h" /* this is stuff found via autoconf */ -#include "options.h" /* these are some larger questions which - can't easily be automatically checked - for */ - -/* AIX requires this to be the first thing in the file. */ -#ifdef __GNUC__ -#define alloca __builtin_alloca -#else /* not __GNUC__ */ -#if HAVE_ALLOCA_H -#include <alloca.h> -#else /* not HAVE_ALLOCA_H */ -#ifdef _AIX - #pragma alloca -#else /* not _AIX */ -#ifdef ALLOCA_IN_STDLIB - /* then we need do nothing */ -#else -char *alloca (); -#endif /* not ALLOCA_IN_STDLIB */ -#endif /* not _AIX */ -#endif /* not HAVE_ALLOCA_H */ -#endif /* not __GNUC__ */ - -/* Changed from if __STDC__ to ifdef __STDC__ because of Sun's acc compiler */ - -#ifdef __STDC__ -#define PTR void * -#else -#define PTR char * -#endif - -/* Add prototype support. */ -#ifndef PROTO -#if defined (USE_PROTOTYPES) ? USE_PROTOTYPES : defined (__STDC__) -#define PROTO(ARGS) ARGS -#else -#define PROTO(ARGS) () -#endif -#endif - -#if __GNUC__ == 2 -#define USE(var) static const char sizeof##var = sizeof(sizeof##var) + sizeof(var) -#else -#define USE(var) static const char standalone_semis_illegal_sigh -#endif - - -#include <stdio.h> - -/* Under OS/2, <stdio.h> doesn't define popen()/pclose(). */ -#ifdef USE_OWN_POPEN -#include "popen.h" -#endif - -#ifdef STDC_HEADERS -#include <stdlib.h> -#else -extern void exit (); -extern char *getenv(); -#endif - -#ifdef HAVE_UNISTD_H -#include <unistd.h> -#endif - -#ifdef HAVE_STRING_H -#include <string.h> -#else -#include <strings.h> -#endif - -#ifdef SERVER_SUPPORT -/* If the system doesn't provide strerror, it won't be declared in - string.h. */ -char *strerror (); -#endif - -#include <fnmatch.h> /* This is supposed to be available on Posix systems */ - -#include <ctype.h> -#include <pwd.h> -#include <signal.h> - -#ifdef HAVE_ERRNO_H -#include <errno.h> -#else -#ifndef errno -extern int errno; -#endif /* !errno */ -#endif /* HAVE_ERRNO_H */ - -#include "system.h" - -#include "hash.h" -#if defined(SERVER_SUPPORT) || defined(CLIENT_SUPPORT) -#include "server.h" -#include "client.h" -#endif - -#ifdef AUTH_CLIENT_SUPPORT -extern int use_authenticating_server; -void connect_to_pserver(); -# ifndef CVS_AUTH_PORT -# define CVS_AUTH_PORT 2401 -# endif /* CVS_AUTH_PORT */ -#endif /* AUTH_CLIENT_SUPPORT */ - -#ifdef MY_NDBM -#include "myndbm.h" -#else -#include <ndbm.h> -#endif /* MY_NDBM */ - -#include "regex.h" -#include "getopt.h" -#include "wait.h" - -/* Define to enable alternate death support (which uses the RCS state). */ -#define DEATH_STATE 1 - -#define DEATH_SUPPORT 1 - -#include "rcs.h" - - -/* XXX - for now this is static */ -#ifndef PATH_MAX -#ifdef MAXPATHLEN -#define PATH_MAX MAXPATHLEN+2 -#else -#define PATH_MAX 1024+2 -#endif -#endif /* PATH_MAX */ - -/* just in case this implementation does not define this */ -#ifndef L_tmpnam -#define L_tmpnam 50 -#endif - - -/* - * Copyright (c) 1992, Brian Berliner and Jeff Polk - * Copyright (c) 1989-1992, Brian Berliner - * - * You may distribute under the terms of the GNU General Public License as - * specified in the README file that comes with the CVS 1.4 kit. - * - * Definitions for the CVS Administrative directory and the files it contains. - * Here as #define's to make changing the names a simple task. - */ -#define CVSADM "CVS" -#define CVSADM_ENT "CVS/Entries" -#define CVSADM_ENTBAK "CVS/Entries.Backup" -#define CVSADM_ENTLOG "CVS/Entries.Log" -#define CVSADM_ENTSTAT "CVS/Entries.Static" -#define CVSADM_REP "CVS/Repository" -#define CVSADM_ROOT "CVS/Root" -#define CVSADM_CIPROG "CVS/Checkin.prog" -#define CVSADM_UPROG "CVS/Update.prog" -#define CVSADM_TAG "CVS/Tag" - -/* - * Definitions for the CVSROOT Administrative directory and the files it - * contains. This directory is created as a sub-directory of the $CVSROOT - * environment variable, and holds global administration information for the - * entire source repository beginning at $CVSROOT. - */ -#define CVSROOTADM "CVSROOT" -#define CVSROOTADM_MODULES "modules" -#define CVSROOTADM_LOGINFO "loginfo" -#define CVSROOTADM_RCSINFO "rcsinfo" -#define CVSROOTADM_COMMITINFO "commitinfo" -#define CVSROOTADM_TAGINFO "taginfo" -#define CVSROOTADM_EDITINFO "editinfo" -#define CVSROOTADM_HISTORY "history" -#define CVSROOTADM_IGNORE "cvsignore" -#define CVSROOTADM_CHECKOUTLIST "checkoutlist" -#define CVSROOTADM_WRAPPER "cvswrappers" -#define CVSNULLREPOS "Emptydir" /* an empty directory */ - -/* support for the modules file (CVSROOTADM_MODULES) */ -#define CVSMODULE_OPTS "ad:i:lo:e:s:t:u:"/* options in modules file */ -#define CVSMODULE_SPEC '&' /* special delimiter */ - -/* Other CVS file names */ - -/* Files go in the attic if the head main branch revision is dead, - otherwise they go in the regular repository directories. The whole - concept of having an attic is sort of a relic from before death - support but on the other hand, it probably does help the speed of - some operations (such as main branch checkouts and updates). */ -#define CVSATTIC "Attic" - -#define CVSLCK "#cvs.lock" -#define CVSTFL "#cvs.tfl" -#define CVSRFL "#cvs.rfl" -#define CVSWFL "#cvs.wfl" -#define CVSRFLPAT "#cvs.rfl.*" /* wildcard expr to match read locks */ -#define CVSEXT_LOG ",t" -#define CVSPREFIX ",," -#define CVSDOTIGNORE ".cvsignore" -#define CVSDOTWRAPPER ".cvswrappers" - -/* miscellaneous CVS defines */ -#define CVSEDITPREFIX "CVS: " -#define CVSLCKAGE (60*60) /* 1-hour old lock files cleaned up */ -#define CVSLCKSLEEP 30 /* wait 30 seconds before retrying */ -#define CVSBRANCH "1.1.1" /* RCS branch used for vendor srcs */ -#define BAKPREFIX ".#" /* when rcsmerge'ing */ -#ifndef DEVNULL -#define DEVNULL "/dev/null" -#endif - -#define FALSE 0 -#define TRUE 1 - -/* - * Special tags. -rHEAD refers to the head of an RCS file, regardless of any - * sticky tags. -rBASE refers to the current revision the user has checked - * out This mimics the behaviour of RCS. - */ -#define TAG_HEAD "HEAD" -#define TAG_BASE "BASE" - -/* Environment variable used by CVS */ -#define CVSREAD_ENV "CVSREAD" /* make files read-only */ -#define CVSREAD_DFLT FALSE /* writable files by default */ - -#define RCSBIN_ENV "RCSBIN" /* RCS binary directory */ -/* #define RCSBIN_DFLT Set by config.h */ - -#define EDITOR1_ENV "CVSEDITOR" /* which editor to use */ -#define EDITOR2_ENV "VISUAL" /* which editor to use */ -#define EDITOR3_ENV "EDITOR" /* which editor to use */ -/* #define EDITOR_DFLT Set by config.h */ - -#define CVSROOT_ENV "CVSROOT" /* source directory root */ -#define CVSROOT_DFLT NULL /* No dflt; must set for checkout */ - -#define IGNORE_ENV "CVSIGNORE" /* More files to ignore */ -#define WRAPPER_ENV "CVSWRAPPERS" /* name of the wrapper file */ - -#define CVSUMASK_ENV "CVSUMASK" /* Effective umask for repository */ -/* #define CVSUMASK_DFLT Set by config.h */ - -/* - * If the beginning of the Repository matches the following string, strip it - * so that the output to the logfile does not contain a full pathname. - * - * If the CVSROOT environment variable is set, it overrides this define. - */ -#define REPOS_STRIP "/master/" - -/* - * The maximum number of files per each CVS directory. This is mainly for - * sizing arrays statically rather than dynamically. 3000 seems plenty for - * now. - */ -#define MAXFILEPERDIR 3000 -#define MAXLINELEN 5000 /* max input line from a file */ -#define MAXPROGLEN 30000 /* max program length to system() */ -#define MAXLISTLEN 40000 /* For [A-Z]list holders */ -#define MAXDATELEN 50 /* max length for a date */ - -/* structure of a entry record */ -struct entnode -{ - char *user; - char *version; - char *timestamp; - char *options; - char *tag; - char *date; - char *conflict; -}; -typedef struct entnode Entnode; - -/* The type of request that is being done in do_module() */ -enum mtype -{ - CHECKOUT, TAG, PATCH, EXPORT -}; - -/* - * defines for Classify_File() to determine the current state of a file. - * These are also used as types in the data field for the list we make for - * Update_Logfile in commit, import, and add. - */ -enum classify_type -{ - T_UNKNOWN = 1, /* no old-style analog existed */ - T_CONFLICT, /* C (conflict) list */ - T_NEEDS_MERGE, /* G (needs merging) list */ - T_MODIFIED, /* M (needs checked in) list */ - T_CHECKOUT, /* O (needs checkout) list */ - T_ADDED, /* A (added file) list */ - T_REMOVED, /* R (removed file) list */ - T_REMOVE_ENTRY, /* W (removed entry) list */ - T_UPTODATE, /* File is up-to-date */ -#ifdef SERVER_SUPPORT - T_PATCH, /* P Like C, but can patch */ -#endif - T_TITLE /* title for node type */ -}; -typedef enum classify_type Ctype; - -/* - * a struct vers_ts contains all the information about a file including the - * user and rcs file names, and the version checked out and the head. - * - * this is usually obtained from a call to Version_TS which takes a tag argument - * for the RCS file if desired - */ -struct vers_ts -{ - char *vn_user; /* rcs version user file derives from - * it can have the following special - * values: - * empty = no user file - * 0 = user file is new - * -vers = user file to be removed */ - char *vn_rcs; /* the version for the rcs file - * (tag version?) */ - char *vn_tag; /* the symbolic tag name */ - char *ts_user; /* the timestamp for the user file */ - char *ts_rcs; /* the user timestamp from entries */ - char *options; /* opts from Entries file - * (keyword expansion) */ - char *ts_conflict; /* Holds time_stamp of conflict */ - char *tag; /* tag stored in the Entries file */ - char *date; /* date stored in the Entries file */ - Entnode *entdata; /* pointer to entries file node */ - RCSNode *srcfile; /* pointer to parsed src file info */ -}; -typedef struct vers_ts Vers_TS; - -/* - * structure used for list-private storage by Entries_Open() and - * Version_TS(). - */ -struct stickydirtag -{ - int aflag; - char *tag; - char *date; - char *options; -}; - -/* Flags for find_{names,dirs} routines */ -#define W_LOCAL 0x01 /* look for files locally */ -#define W_REPOS 0x02 /* look for files in the repository */ -#define W_ATTIC 0x04 /* look for files in the attic */ - -/* Flags for return values of direnter procs for the recursion processor */ -enum direnter_type -{ - R_PROCESS = 1, /* process files and maybe dirs */ - R_SKIP_FILES, /* don't process files in this dir */ - R_SKIP_DIRS, /* don't process sub-dirs */ - R_SKIP_ALL /* don't process files or dirs */ -}; -typedef enum direnter_type Dtype; - -extern char *program_name, *program_path, *command_name; -extern char *Rcsbin, *Editor, *CVSroot; -#ifdef CVSADM_ROOT -extern char *CVSADM_Root; -extern int cvsadmin_root; -#endif /* CVSADM_ROOT */ -extern char *CurDir; -extern int really_quiet, quiet; -extern int use_editor; -extern int cvswrite; -extern mode_t cvsumask; - -extern int trace; /* Show all commands */ -extern int noexec; /* Don't modify disk anywhere */ -extern int logoff; /* Don't write history entry */ - -extern char hostname[]; - -/* Externs that are included directly in the CVS sources */ -int RCS_settag PROTO((const char *, const char *, const char *)); -int RCS_deltag PROTO((const char *, const char *, int)); -int RCS_setbranch PROTO((const char *, const char *)); -int RCS_lock PROTO((const char *, const char *, int)); -int RCS_unlock PROTO((const char *, const char *, int)); -int RCS_merge PROTO((const char *, const char *, const char *, const char *)); - -#include "error.h" - -DBM *open_module PROTO((void)); -FILE *open_file PROTO((const char *, const char *)); -List *Find_Dirs PROTO((char *repository, int which)); -void Entries_Close PROTO((List *entries)); -List *Entries_Open PROTO((int aflag)); -char *Make_Date PROTO((char *rawdate)); -char *Name_Repository PROTO((char *dir, char *update_dir)); -#ifdef CVSADM_ROOT -char *Name_Root PROTO((char *dir, char *update_dir)); -void Create_Root PROTO((char *dir, char *rootdir)); -int same_directories PROTO((char *dir1, char *dir2)); -#endif /* CVSADM_ROOT */ -char *Short_Repository PROTO((char *repository)); -char *gca PROTO((char *rev1, char *rev2)); -char *getcaller PROTO((void)); -char *time_stamp PROTO((char *file)); -char *xmalloc PROTO((size_t bytes)); -char *xrealloc PROTO((char *ptr, size_t bytes)); -char *xstrdup PROTO((const char *str)); -void strip_trailing_newlines PROTO((char *str)); -int No_Difference PROTO((char *file, Vers_TS * vers, List * entries, - char *repository, char *update_dir)); -typedef int (*CALLPROC) PROTO((char *repository, char *value)); -int Parse_Info PROTO((char *infofile, char *repository, CALLPROC callproc, int all)); -int Reader_Lock PROTO((char *xrepository)); -typedef RETSIGTYPE (*SIGCLEANUPPROC) PROTO(()); -int SIG_register PROTO((int sig, SIGCLEANUPPROC sigcleanup)); -int Writer_Lock PROTO((List * list)); -int ign_name PROTO((char *name)); -int isdir PROTO((const char *file)); -int isfile PROTO((const char *file)); -int islink PROTO((const char *file)); -int isreadable PROTO((const char *file)); -int iswritable PROTO((const char *file)); -int isaccessible PROTO((const char *file, const int mode)); -int isabsolute PROTO((const char *filename)); -char *last_component PROTO((char *path)); - -int joining PROTO((void)); -int numdots PROTO((const char *s)); -int unlink_file PROTO((const char *f)); -int unlink_file_dir PROTO((const char *f)); -int update PROTO((int argc, char *argv[])); -int xcmp PROTO((const char *file1, const char *file2)); -int yesno PROTO((void)); -void *valloc PROTO((size_t bytes)); -time_t get_date PROTO((char *date, struct timeb *now)); -void Create_Admin PROTO((char *dir, char *update_dir, - char *repository, char *tag, char *date)); -void Lock_Cleanup PROTO((void)); -void ParseTag PROTO((char **tagp, char **datep)); -void Scratch_Entry PROTO((List * list, char *fname)); -void WriteTag PROTO((char *dir, char *tag, char *date)); -void cat_module PROTO((int status)); -void check_entries PROTO((char *dir)); -void close_module PROTO((DBM * db)); -void copy_file PROTO((const char *from, const char *to)); -void (*error_set_cleanup PROTO((void (*) (void)))) PROTO ((void)); -void fperror PROTO((FILE * fp, int status, int errnum, char *message,...)); -void free_names PROTO((int *pargc, char *argv[])); -void freevers_ts PROTO((Vers_TS ** versp)); -void ign_add PROTO((char *ign, int hold)); -void ign_add_file PROTO((char *file, int hold)); -void ign_setup PROTO((void)); -void ign_dir_add PROTO((char *name)); -int ignore_directory PROTO((char *name)); -void line2argv PROTO((int *pargc, char *argv[], char *line)); -void make_directories PROTO((const char *name)); -void make_directory PROTO((const char *name)); -void rename_file PROTO((const char *from, const char *to)); -void strip_path PROTO((char *path)); -void strip_trailing_slashes PROTO((char *path)); -void update_delproc PROTO((Node * p)); -void usage PROTO((const char *const *cpp)); -void xchmod PROTO((char *fname, int writable)); -char *xgetwd PROTO((void)); -int Checkin PROTO((int type, char *file, char *update_dir, - char *repository, char *rcs, char *rev, - char *tag, char *options, char *message, List *entries)); -Ctype Classify_File PROTO((char *file, char *tag, char *date, char *options, - int force_tag_match, int aflag, char *repository, - List *entries, List *srcfiles, Vers_TS **versp, - char *update_dir, int pipeout)); -List *Find_Names PROTO((char *repository, int which, int aflag, - List ** optentries)); -void Register PROTO((List * list, char *fname, char *vn, char *ts, - char *options, char *tag, char *date, char *ts_conflict)); -void Update_Logfile PROTO((char *repository, char *xmessage, char *xrevision, - FILE * xlogfp, List * xchanges)); -Vers_TS *Version_TS PROTO((char *repository, char *options, char *tag, - char *date, char *user, int force_tag_match, - int set_time, List * entries, List * xfiles)); -void do_editor PROTO((char *dir, char **messagep, - char *repository, List * changes)); - -typedef int (*CALLBACKPROC) PROTO((int *pargc, char *argv[], char *where, - char *mwhere, char *mfile, int horten, int local_specified, - char *omodule, char *msg)); -typedef int (*FILEPROC) PROTO((char *file, char *update_dir, char *repository, - List * entries, List * srcfiles)); -typedef int (*FILESDONEPROC) PROTO((int err, char *repository, char *update_dir)); -typedef Dtype (*DIRENTPROC) PROTO((char *dir, char *repos, char *update_dir)); -typedef int (*DIRLEAVEPROC) PROTO((char *dir, int err, char *update_dir)); - -int do_module PROTO((DBM * db, char *mname, enum mtype m_type, char *msg, - CALLBACKPROC callback_proc, char *where, int shorten, - int local_specified, int run_module_prog, char *extra_arg)); -int do_recursion PROTO((FILEPROC xfileproc, FILESDONEPROC xfilesdoneproc, - DIRENTPROC xdirentproc, DIRLEAVEPROC xdirleaveproc, - Dtype xflags, int xwhich, int xaflag, int xreadlock, - int xdosrcs)); -int do_update PROTO((int argc, char *argv[], char *xoptions, char *xtag, - char *xdate, int xforce, int local, int xbuild, - int xaflag, int xprune, int xpipeout, int which, - char *xjoin_rev1, char *xjoin_rev2, char *preload_update_dir)); -void history_write PROTO((int type, char *update_dir, char *revs, char *name, - char *repository)); -int start_recursion PROTO((FILEPROC fileproc, FILESDONEPROC filesdoneproc, - DIRENTPROC direntproc, DIRLEAVEPROC dirleaveproc, - int argc, char *argv[], int local, int which, - int aflag, int readlock, char *update_preload, - int dosrcs, int wd_is_repos)); -void SIG_beginCrSect PROTO((void)); -void SIG_endCrSect PROTO((void)); -void read_cvsrc PROTO((int *argc, char ***argv)); - -char *make_message_rcslegal PROTO((char *message)); - -/* flags for run_exec(), the fast system() for CVS */ -#define RUN_NORMAL 0x0000 /* no special behaviour */ -#define RUN_COMBINED 0x0001 /* stdout is duped to stderr */ -#define RUN_REALLY 0x0002 /* do the exec, even if noexec is on */ -#define RUN_STDOUT_APPEND 0x0004 /* append to stdout, don't truncate */ -#define RUN_STDERR_APPEND 0x0008 /* append to stderr, don't truncate */ -#define RUN_SIGIGNORE 0x0010 /* ignore interrupts for command */ -#define RUN_TTY (char *)0 /* for the benefit of lint */ - -void run_arg PROTO((const char *s)); -void run_print PROTO((FILE * fp)); -#ifdef HAVE_VPRINTF -void run_setup PROTO((const char *fmt,...)); -void run_args PROTO((const char *fmt,...)); -#else -void run_setup (); -void run_args (); -#endif -int run_exec PROTO((char *stin, char *stout, char *sterr, int flags)); - -/* other similar-minded stuff from run.c. */ -FILE *Popen PROTO((const char *, const char *)); -int piped_child PROTO((char **, int *, int *)); -void close_on_exec PROTO((int)); -int filter_stream_through_program PROTO((int, int, char **, pid_t *)); - -pid_t waitpid PROTO((pid_t, int *, int)); - -/* Wrappers. */ - -typedef enum { WRAP_MERGE, WRAP_COPY } WrapMergeMethod; -typedef enum { WRAP_TOCVS, WRAP_FROMCVS, WRAP_CONFLICT } WrapMergeHas; - -void wrap_setup PROTO((void)); -int wrap_name_has PROTO((const char *name,WrapMergeHas has)); -char *wrap_tocvs_process_file PROTO((const char *fileName)); -int wrap_merge_is_copy PROTO((const char *fileName)); -char *wrap_fromcvs_process_file PROTO((const char *fileName)); -/* Pathname expansion */ -char *expand_path PROTO((char *name)); -void wrap_add_file PROTO((const char *file,int temp)); -void wrap_add PROTO((char *line,int temp)); |