2021-01-17 16:51:15 -08:00
|
|
|
/* $OpenBSD: rcsprog.h,v 1.65 2021/01/18 00:51:15 mortimer Exp $ */
|
2005-09-29 08:13:19 -07:00
|
|
|
/*
|
|
|
|
* Copyright (c) 2005 Joris Vink <joris@openbsd.org>
|
|
|
|
* All rights reserved.
|
|
|
|
*
|
|
|
|
* Redistribution and use in source and binary forms, with or without
|
|
|
|
* modification, are permitted provided that the following conditions
|
|
|
|
* are met:
|
|
|
|
*
|
|
|
|
* 1. Redistributions of source code must retain the above copyright
|
|
|
|
* notice, this list of conditions and the following disclaimer.
|
|
|
|
* 2. The name of the author may not be used to endorse or promote products
|
|
|
|
* derived from this software without specific prior written permission.
|
|
|
|
*
|
|
|
|
* THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES,
|
|
|
|
* INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY
|
|
|
|
* AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL
|
|
|
|
* THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
|
|
|
|
* EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
|
|
|
|
* PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
|
|
|
|
* OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
|
|
|
|
* WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
|
|
|
|
* OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
|
|
|
|
* ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
|
|
|
*/
|
|
|
|
|
2005-10-02 02:39:01 -07:00
|
|
|
#ifndef RCSPROG_H
|
2005-09-29 08:13:19 -07:00
|
|
|
#define RCSPROG_H
|
|
|
|
|
2006-01-05 02:28:24 -08:00
|
|
|
#include "rcs.h"
|
2006-04-21 10:17:29 -07:00
|
|
|
#include "rcsutil.h"
|
2006-03-08 12:19:39 -08:00
|
|
|
#include "worklist.h"
|
2005-12-10 12:27:45 -08:00
|
|
|
#include "xmalloc.h"
|
|
|
|
|
ci currently doesn't parse the -x flag at all, defaulting to ",v/" every
time. I rewrote checkin_choose_rcsfile() to handle it using these rules:
- If a directory structure is given (ci -x,abcd dir/dir2/file) then all
RCS files are under dir/dir2.
- If the RCS/ directory exists, use it. Otherwise use current directory.
- If the -x flag is specified, use those slash-separated extensions.
Otherwise, use the default (",v/").
- Look in the rcs directory (RCS/ or current directory) for a file
with a matching extension, for each extension. Each extension is
tried in order. If a file exists, it is used. If no file exists
with any extension, the first one is used.
- The empty extension is treated as no extension, because I can't
figure out what its special meaning is.
It sounds complicated, and the code is kinda complicated as well, but it
makes sense if you think about it.
ok niallo
2006-03-13 19:33:30 -08:00
|
|
|
#define RCS_DEFAULT_SUFFIX ",v/"
|
2005-10-27 00:43:56 -07:00
|
|
|
#define RCS_TMPDIR_DEFAULT "/tmp"
|
|
|
|
|
2007-06-30 01:23:49 -07:00
|
|
|
#define RCS_REV_BUFSZ 64
|
|
|
|
#define RCS_TIME_BUFSZ 64
|
|
|
|
|
2005-11-02 12:32:44 -08:00
|
|
|
/* flags specific to ci.c */
|
2005-12-06 02:29:12 -08:00
|
|
|
#define CI_SYMFORCE (1<<0)
|
|
|
|
#define CI_DEFAULT (1<<1)
|
|
|
|
#define CI_INIT (1<<2)
|
2006-02-16 09:44:53 -08:00
|
|
|
#define CI_KEYWORDSCAN (1<<3)
|
2006-04-16 05:30:00 -07:00
|
|
|
#define CI_SKIPDESC (1<<4)
|
2005-11-02 12:32:44 -08:00
|
|
|
|
|
|
|
/* flags specific to co.c */
|
2006-04-16 05:30:00 -07:00
|
|
|
#define CO_ACLAPPEND (1<<5)
|
|
|
|
#define CO_AUTHOR (1<<6)
|
|
|
|
#define CO_LOCK (1<<7)
|
|
|
|
#define CO_REVDATE (1<<8)
|
|
|
|
#define CO_REVERT (1<<9)
|
|
|
|
#define CO_STATE (1<<10)
|
|
|
|
#define CO_UNLOCK (1<<11)
|
2005-11-02 12:32:44 -08:00
|
|
|
|
2006-03-31 21:58:17 -08:00
|
|
|
/* flags specific to rcsprog.c */
|
2006-04-16 05:30:00 -07:00
|
|
|
#define RCSPROG_EFLAG (1<<12)
|
|
|
|
#define RCSPROG_LFLAG (1<<13)
|
|
|
|
#define RCSPROG_NFLAG (1<<14)
|
2006-04-23 21:51:57 -07:00
|
|
|
#define RCSPROG_UFLAG (1<<15)
|
2006-03-31 21:58:17 -08:00
|
|
|
|
2006-08-11 01:18:19 -07:00
|
|
|
/* flags shared between merge(1) and rcsmerge(1) */
|
|
|
|
#define MERGE_EFLAG (1<<16)
|
|
|
|
#define MERGE_OFLAG (1<<17)
|
|
|
|
|
2005-11-02 12:32:44 -08:00
|
|
|
/* shared flags */
|
2006-08-11 01:18:19 -07:00
|
|
|
#define DESCRIPTION (1<<18)
|
|
|
|
#define FORCE (1<<19)
|
|
|
|
#define INTERACTIVE (1<<20)
|
|
|
|
#define NEWFILE (1<<21)
|
|
|
|
#define PIPEOUT (1<<22)
|
|
|
|
#define PRESERVETIME (1<<23)
|
|
|
|
#define QUIET (1<<24)
|
2005-11-02 12:32:44 -08:00
|
|
|
|
2005-11-25 05:48:02 -08:00
|
|
|
extern char *__progname;
|
|
|
|
extern const char rcs_version[];
|
2005-09-29 08:13:19 -07:00
|
|
|
|
2005-11-25 05:48:02 -08:00
|
|
|
extern int rcs_optind;
|
|
|
|
extern char *rcs_optarg;
|
|
|
|
extern char *rcs_suffixes;
|
|
|
|
extern char *rcs_tmpdir;
|
2010-07-23 01:31:19 -07:00
|
|
|
extern struct wklhead temp_files;
|
2005-10-13 05:35:30 -07:00
|
|
|
|
2005-10-11 08:50:25 -07:00
|
|
|
/* date.y */
|
2010-07-23 14:46:04 -07:00
|
|
|
time_t date_parse(const char *);
|
2005-10-11 08:50:25 -07:00
|
|
|
|
2005-11-22 05:26:53 -08:00
|
|
|
/* ci.c */
|
2014-10-01 23:23:15 -07:00
|
|
|
int checkin_main(int, char **);
|
|
|
|
__dead void checkin_usage(void);
|
2005-11-22 05:26:53 -08:00
|
|
|
|
|
|
|
/* co.c */
|
2014-10-01 23:23:15 -07:00
|
|
|
int checkout_main(int, char **);
|
|
|
|
int checkout_rev(RCSFILE *, RCSNUM *, const char *,
|
|
|
|
int, const char *, const char *, const char *, const char *);
|
|
|
|
__dead void checkout_usage(void);
|
2005-11-22 05:26:53 -08:00
|
|
|
|
|
|
|
/* ident.c */
|
2014-10-01 23:23:15 -07:00
|
|
|
int ident_main(int, char **);
|
|
|
|
__dead void ident_usage(void);
|
2005-11-22 05:26:53 -08:00
|
|
|
|
2006-05-14 23:58:03 -07:00
|
|
|
/* merge.c */
|
2014-10-01 23:23:15 -07:00
|
|
|
int merge_main(int, char **);
|
|
|
|
__dead void merge_usage(void);
|
2006-05-14 23:58:03 -07:00
|
|
|
|
2005-11-22 05:26:53 -08:00
|
|
|
/* rcsclean.c */
|
2014-10-01 23:23:15 -07:00
|
|
|
int rcsclean_main(int, char **);
|
|
|
|
__dead void rcsclean_usage(void);
|
2005-11-22 05:26:53 -08:00
|
|
|
|
|
|
|
/* rcsdiff.c */
|
2014-10-01 23:23:15 -07:00
|
|
|
int rcsdiff_main(int, char **);
|
|
|
|
__dead void rcsdiff_usage(void);
|
2005-11-22 05:26:53 -08:00
|
|
|
|
|
|
|
/* rcsmerge.c */
|
2014-10-01 23:23:15 -07:00
|
|
|
int rcsmerge_main(int, char **);
|
|
|
|
__dead void rcsmerge_usage(void);
|
2005-09-29 08:13:19 -07:00
|
|
|
|
2005-11-22 05:26:53 -08:00
|
|
|
/* rcsprog.c */
|
2014-10-01 23:23:15 -07:00
|
|
|
int build_cmd(char ***, char **, int);
|
|
|
|
int rcs_getopt(int, char **, const char *);
|
|
|
|
int rcs_main(int, char **);
|
|
|
|
__dead void rcs_usage(void);
|
2021-01-17 16:51:15 -08:00
|
|
|
extern void (*usage)(void);
|
2005-11-22 05:26:53 -08:00
|
|
|
|
2006-01-06 07:30:49 -08:00
|
|
|
/* rlog.c */
|
2014-10-01 23:23:15 -07:00
|
|
|
int rlog_main(int, char **);
|
|
|
|
__dead void rlog_usage(void);
|
2005-09-29 08:13:19 -07:00
|
|
|
|
2005-10-02 02:39:01 -07:00
|
|
|
#endif /* RCSPROG_H */
|