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