1*2c2b8515Smortimer /* $OpenBSD: rcsprog.h,v 1.65 2021/01/18 00:51:15 mortimer Exp $ */ 200f786efSjoris /* 300f786efSjoris * Copyright (c) 2005 Joris Vink <joris@openbsd.org> 400f786efSjoris * All rights reserved. 500f786efSjoris * 600f786efSjoris * Redistribution and use in source and binary forms, with or without 700f786efSjoris * modification, are permitted provided that the following conditions 800f786efSjoris * are met: 900f786efSjoris * 1000f786efSjoris * 1. Redistributions of source code must retain the above copyright 1100f786efSjoris * notice, this list of conditions and the following disclaimer. 1200f786efSjoris * 2. The name of the author may not be used to endorse or promote products 1300f786efSjoris * derived from this software without specific prior written permission. 1400f786efSjoris * 1500f786efSjoris * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, 1600f786efSjoris * INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY 1700f786efSjoris * AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL 1800f786efSjoris * THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, 1900f786efSjoris * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, 2000f786efSjoris * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; 2100f786efSjoris * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, 2200f786efSjoris * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR 2300f786efSjoris * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF 2400f786efSjoris * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 2500f786efSjoris */ 2600f786efSjoris 27537ecbe7Sxsa #ifndef RCSPROG_H 2800f786efSjoris #define RCSPROG_H 2900f786efSjoris 30cd8dad74Sxsa #include "rcs.h" 319349b09eSxsa #include "rcsutil.h" 32f2af11b8Sjoris #include "worklist.h" 330450b43bSjoris #include "xmalloc.h" 340450b43bSjoris 35103bc306Sray #define RCS_DEFAULT_SUFFIX ",v/" 361dc71a1bSxsa #define RCS_TMPDIR_DEFAULT "/tmp" 371dc71a1bSxsa 38950e09dcSxsa #define RCS_REV_BUFSZ 64 39950e09dcSxsa #define RCS_TIME_BUFSZ 64 40950e09dcSxsa 41c4521683Sniallo /* flags specific to ci.c */ 42c4521683Sniallo #define CI_SYMFORCE (1<<0) 43c4521683Sniallo #define CI_DEFAULT (1<<1) 44969fe5d3Sniallo #define CI_INIT (1<<2) 45303c871eSniallo #define CI_KEYWORDSCAN (1<<3) 464b1a048aSniallo #define CI_SKIPDESC (1<<4) 47c4521683Sniallo 48c4521683Sniallo /* flags specific to co.c */ 494b1a048aSniallo #define CO_ACLAPPEND (1<<5) 504b1a048aSniallo #define CO_AUTHOR (1<<6) 514b1a048aSniallo #define CO_LOCK (1<<7) 524b1a048aSniallo #define CO_REVDATE (1<<8) 534b1a048aSniallo #define CO_REVERT (1<<9) 544b1a048aSniallo #define CO_STATE (1<<10) 554b1a048aSniallo #define CO_UNLOCK (1<<11) 56c4521683Sniallo 57713e08f8Sray /* flags specific to rcsprog.c */ 584b1a048aSniallo #define RCSPROG_EFLAG (1<<12) 594b1a048aSniallo #define RCSPROG_LFLAG (1<<13) 604b1a048aSniallo #define RCSPROG_NFLAG (1<<14) 61d491b5edSray #define RCSPROG_UFLAG (1<<15) 62713e08f8Sray 63f91f651dSxsa /* flags shared between merge(1) and rcsmerge(1) */ 64f91f651dSxsa #define MERGE_EFLAG (1<<16) 65f91f651dSxsa #define MERGE_OFLAG (1<<17) 66f91f651dSxsa 67c4521683Sniallo /* shared flags */ 68f91f651dSxsa #define DESCRIPTION (1<<18) 69f91f651dSxsa #define FORCE (1<<19) 70f91f651dSxsa #define INTERACTIVE (1<<20) 71f91f651dSxsa #define NEWFILE (1<<21) 72f91f651dSxsa #define PIPEOUT (1<<22) 73f91f651dSxsa #define PRESERVETIME (1<<23) 74f91f651dSxsa #define QUIET (1<<24) 75c4521683Sniallo 7600f786efSjoris extern char *__progname; 7700f786efSjoris extern const char rcs_version[]; 7800f786efSjoris 79a2b34663Sjoris extern int rcs_optind; 80a2b34663Sjoris extern char *rcs_optarg; 817518c1e9Sxsa extern char *rcs_suffixes; 821dc71a1bSxsa extern char *rcs_tmpdir; 837a9e6d11Sray extern struct wklhead temp_files; 84a2b34663Sjoris 8569f64830Sniallo /* date.y */ 867bb3ddb0Sray time_t date_parse(const char *); 8769f64830Sniallo 8847c62662Sxsa /* ci.c */ 8947c62662Sxsa int checkin_main(int, char **); 90960e00beSotto __dead void checkin_usage(void); 9100f786efSjoris 9247c62662Sxsa /* co.c */ 9347c62662Sxsa int checkout_main(int, char **); 94960e00beSotto int checkout_rev(RCSFILE *, RCSNUM *, const char *, 95960e00beSotto int, const char *, const char *, const char *, const char *); 96960e00beSotto __dead void checkout_usage(void); 9747c62662Sxsa 9847c62662Sxsa /* ident.c */ 9947c62662Sxsa int ident_main(int, char **); 100960e00beSotto __dead void ident_usage(void); 10147c62662Sxsa 1021bed6b5dSxsa /* merge.c */ 1031bed6b5dSxsa int merge_main(int, char **); 104960e00beSotto __dead void merge_usage(void); 1051bed6b5dSxsa 10647c62662Sxsa /* rcsclean.c */ 10747c62662Sxsa int rcsclean_main(int, char **); 108960e00beSotto __dead void rcsclean_usage(void); 10947c62662Sxsa 11047c62662Sxsa /* rcsdiff.c */ 11147c62662Sxsa int rcsdiff_main(int, char **); 112960e00beSotto __dead void rcsdiff_usage(void); 11347c62662Sxsa 11447c62662Sxsa /* rcsmerge.c */ 11547c62662Sxsa int rcsmerge_main(int, char **); 116960e00beSotto __dead void rcsmerge_usage(void); 11747c62662Sxsa 11847c62662Sxsa /* rcsprog.c */ 119a742a464Stobias int build_cmd(char ***, char **, int); 120a2b34663Sjoris int rcs_getopt(int, char **, const char *); 12100f786efSjoris int rcs_main(int, char **); 122960e00beSotto __dead void rcs_usage(void); 123*2c2b8515Smortimer extern void (*usage)(void); 12447c62662Sxsa 125326daabbSxsa /* rlog.c */ 12667970ff5Sjoris int rlog_main(int, char **); 127960e00beSotto __dead void rlog_usage(void); 12800f786efSjoris 129537ecbe7Sxsa #endif /* RCSPROG_H */ 130