diff options
Diffstat (limited to 'contrib/cvs/src/rcs.h')
-rw-r--r-- | contrib/cvs/src/rcs.h | 104 |
1 files changed, 104 insertions, 0 deletions
diff --git a/contrib/cvs/src/rcs.h b/contrib/cvs/src/rcs.h new file mode 100644 index 0000000000000..698a3b17c0442 --- /dev/null +++ b/contrib/cvs/src/rcs.h @@ -0,0 +1,104 @@ +/* $CVSid: @(#)rcs.h 1.18 94/09/23 $ */ + +/* + * 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. + * + * RCS source control definitions needed by rcs.c and friends + */ + +#define RCS "rcs" +#define RCS_CI "ci" +#define RCS_CO "co" +#define RCS_RLOG "rlog" +#define RCS_DIFF "rcsdiff" +#define RCS_RCSMERGE "rcsmerge" +#define RCS_MERGE_PAT "^>>>>>>> " /* runs "grep" with this pattern */ +#define RCSEXT ",v" +#define RCSPAT "*,v" +#define RCSHEAD "head" +#define RCSBRANCH "branch" +#define RCSSYMBOLS "symbols" +#define RCSDATE "date" +#define RCSDESC "desc" +#define RCSEXPAND "expand" + +/* Used by the version of death support which resulted from old + versions of CVS (e.g. 1.5 if you define DEATH_SUPPORT and not + DEATH_STATE). Only a hacked up RCS (used by those old versions of + CVS) will put this into RCS files. Considered obsolete. */ +#define RCSDEAD "dead" + +#define DATEFORM "%02d.%02d.%02d.%02d.%02d.%02d" +#define SDATEFORM "%d.%d.%d.%d.%d.%d" + +/* + * Opaque structure definitions used by RCS specific lookup routines + */ +#define VALID 0x1 /* flags field contains valid data */ +#define INATTIC 0x2 /* RCS file is located in the Attic */ +#define PARTIAL 0x4 /* RCS file not completly parsed */ + +struct rcsnode +{ + int refcount; + int flags; + char *path; + char *head; + char *branch; + char *symbols_data; + char *expand; + List *symbols; + List *versions; +}; + +typedef struct rcsnode RCSNode; + +struct rcsversnode +{ + char *version; + char *date; + char *author; + char *next; + int dead; + List *branches; +}; +typedef struct rcsversnode RCSVers; + +/* + * CVS reserves all even-numbered branches for its own use. "magic" branches + * (see rcs.c) are contained as virtual revision numbers (within symbolic + * tags only) off the RCS_MAGIC_BRANCH, which is 0. CVS also reserves the + * ".1" branch for vendor revisions. So, if you do your own branching, you + * should limit your use to odd branch numbers starting at 3. + */ +#define RCS_MAGIC_BRANCH 0 + +/* + * exported interfaces + */ +RCSNode *RCS_parse PROTO((const char *file, const char *repos)); +RCSNode *RCS_parsercsfile PROTO((char *rcsfile)); +char *RCS_check_kflag PROTO((const char *arg)); +char *RCS_getdate PROTO((RCSNode * rcs, char *date, int force_tag_match)); +char *RCS_gettag PROTO((RCSNode * rcs, char *symtag, int force_tag_match, + int return_both)); +char *RCS_getversion PROTO((RCSNode * rcs, char *tag, char *date, + int force_tag_match, int return_both)); +char *RCS_magicrev PROTO((RCSNode *rcs, char *rev)); +int RCS_isbranch PROTO((RCSNode *rcs, const char *rev)); +int RCS_nodeisbranch PROTO((RCSNode *rcs, const char *tag)); +char *RCS_whatbranch PROTO((RCSNode *rcs, const char *tag)); +char *RCS_head PROTO((RCSNode * rcs)); +int RCS_datecmp PROTO((char *date1, char *date2)); +time_t RCS_getrevtime PROTO((RCSNode * rcs, char *rev, char *date, int fudge)); +List *RCS_symbols PROTO((RCSNode *rcs)); +void RCS_check_tag PROTO((const char *tag)); +void freercsnode PROTO((RCSNode ** rnodep)); +char *RCS_getbranch PROTO((RCSNode * rcs, char *tag, int force_tag_match)); + +int RCS_isdead PROTO((RCSNode *, const char *)); +char *RCS_getexpand PROTO ((RCSNode *)); |