xref: /openbsd-src/usr.bin/rcs/rcsprog.h (revision 2c2b851578fc68210645659ef1bb40fb03f11d6b)
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