xref: /openbsd/usr.bin/rcs/rcsprog.h (revision 2c2b8515)
1 /*	$OpenBSD: rcsprog.h,v 1.65 2021/01/18 00:51:15 mortimer Exp $	*/
2 /*
3  * Copyright (c) 2005 Joris Vink <joris@openbsd.org>
4  * All rights reserved.
5  *
6  * Redistribution and use in source and binary forms, with or without
7  * modification, are permitted provided that the following conditions
8  * are met:
9  *
10  * 1. Redistributions of source code must retain the above copyright
11  *    notice, this list of conditions and the following disclaimer.
12  * 2. The name of the author may not be used to endorse or promote products
13  *    derived from this software without specific prior written permission.
14  *
15  * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES,
16  * INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY
17  * AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL
18  * THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
19  * EXEMPLARY, OR CONSEQUENTIAL  DAMAGES (INCLUDING, BUT NOT LIMITED TO,
20  * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
21  * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
22  * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
23  * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
24  * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
25  */
26 
27 #ifndef RCSPROG_H
28 #define RCSPROG_H
29 
30 #include "rcs.h"
31 #include "rcsutil.h"
32 #include "worklist.h"
33 #include "xmalloc.h"
34 
35 #define RCS_DEFAULT_SUFFIX	",v/"
36 #define RCS_TMPDIR_DEFAULT	"/tmp"
37 
38 #define RCS_REV_BUFSZ	64
39 #define RCS_TIME_BUFSZ	64
40 
41 /* flags specific to ci.c */
42 #define CI_SYMFORCE	(1<<0)
43 #define CI_DEFAULT	(1<<1)
44 #define CI_INIT		(1<<2)
45 #define CI_KEYWORDSCAN  (1<<3)
46 #define CI_SKIPDESC	(1<<4)
47 
48 /* flags specific to co.c */
49 #define CO_ACLAPPEND	(1<<5)
50 #define CO_AUTHOR	(1<<6)
51 #define CO_LOCK		(1<<7)
52 #define CO_REVDATE	(1<<8)
53 #define CO_REVERT	(1<<9)
54 #define CO_STATE	(1<<10)
55 #define CO_UNLOCK	(1<<11)
56 
57 /* flags specific to rcsprog.c */
58 #define RCSPROG_EFLAG	(1<<12)
59 #define RCSPROG_LFLAG	(1<<13)
60 #define RCSPROG_NFLAG	(1<<14)
61 #define RCSPROG_UFLAG	(1<<15)
62 
63 /* flags shared between merge(1) and rcsmerge(1) */
64 #define MERGE_EFLAG	(1<<16)
65 #define MERGE_OFLAG	(1<<17)
66 
67 /* shared flags  */
68 #define DESCRIPTION	(1<<18)
69 #define FORCE		(1<<19)
70 #define INTERACTIVE	(1<<20)
71 #define NEWFILE		(1<<21)
72 #define PIPEOUT		(1<<22)
73 #define PRESERVETIME	(1<<23)
74 #define QUIET		(1<<24)
75 
76 extern char	*__progname;
77 extern const char	rcs_version[];
78 
79 extern int	 rcs_optind;
80 extern char	*rcs_optarg;
81 extern char	*rcs_suffixes;
82 extern char	*rcs_tmpdir;
83 extern struct wklhead temp_files;
84 
85 /* date.y */
86 time_t  date_parse(const char *);
87 
88 /* ci.c */
89 int		checkin_main(int, char **);
90 __dead void	checkin_usage(void);
91 
92 /* co.c */
93 int		checkout_main(int, char **);
94 int		checkout_rev(RCSFILE *, RCSNUM *, const char *,
95 		int, const char *, const char *, const char *, const char *);
96 __dead void	checkout_usage(void);
97 
98 /* ident.c */
99 int		ident_main(int, char **);
100 __dead void	ident_usage(void);
101 
102 /* merge.c */
103 int		merge_main(int, char **);
104 __dead void	merge_usage(void);
105 
106 /* rcsclean.c */
107 int		rcsclean_main(int, char **);
108 __dead void	rcsclean_usage(void);
109 
110 /* rcsdiff.c */
111 int		rcsdiff_main(int, char **);
112 __dead void	rcsdiff_usage(void);
113 
114 /* rcsmerge.c */
115 int		rcsmerge_main(int, char **);
116 __dead void	rcsmerge_usage(void);
117 
118 /* rcsprog.c */
119 int		build_cmd(char ***, char **, int);
120 int		rcs_getopt(int, char **, const char *);
121 int		rcs_main(int, char **);
122 __dead void	rcs_usage(void);
123 extern void		(*usage)(void);
124 
125 /* rlog.c */
126 int		rlog_main(int, char **);
127 __dead void	rlog_usage(void);
128 
129 #endif	/* RCSPROG_H */
130