2 * Copyright (c) 2007-2009, Ulf Lilleengen <lulf@FreeBSD.org>
5 * Redistribution and use in source and binary forms, with or without
6 * modification, are permitted provided that the following conditions
8 * 1. Redistributions of source code must retain the above copyright
9 * notice, this list of conditions and the following disclaimer.
10 * 2. Redistributions in binary form must reproduce the above copyright
11 * notice, this list of conditions and the following disclaimer in the
12 * documentation and/or other materials provided with the distribution.
14 * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
15 * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
16 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
17 * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
18 * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
19 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
20 * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
21 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
22 * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
23 * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
33 #define RCSFILE_HEAD 0
34 #define RCSFILE_BRANCH 1
35 #define RCSFILE_STRICT 2
36 #define RCSFILE_COMMENT 3
37 #define RCSFILE_EXPAND 4
38 #define RCSFILE_DESC 5
44 /* Fetching, sending and writing an RCS file. */
45 struct rcsfile *rcsfile_frompath(char *, char *, char *, char *, int);
46 int rcsfile_send_details(struct rcsfile *, struct stream *);
47 int rcsfile_write(struct rcsfile *, struct stream *);
48 void rcsfile_print(struct rcsfile *);
49 void rcsfile_free(struct rcsfile *);
51 /* Used for adding and setting rcsfile values. */
52 void rcsfile_addaccess(struct rcsfile *, char *);
53 void rcsfile_addtag(struct rcsfile *, char *, char *);
54 void rcsfile_importtag(struct rcsfile *, char *, char *);
55 void rcsfile_deleterev(struct rcsfile *, char *);
56 void rcsfile_deletetag(struct rcsfile *, char *, char *);
57 struct delta *rcsfile_getdelta(struct rcsfile *, char *);
58 void rcsfile_setval(struct rcsfile *, int, char *);
60 /* Functions used for operating on RCS deltas. */
61 struct delta *rcsfile_addelta(struct rcsfile *, char *, char *, char *,
63 void rcsfile_importdelta(struct rcsfile *, char *, char *, char *,
66 int rcsdelta_addlog(struct delta *, char *, int);
67 int rcsdelta_addtext(struct delta *, char *, int);
68 int rcsdelta_appendlog(struct delta *, char *, size_t);
69 int rcsdelta_appendtext(struct delta *, char *, size_t);
70 void rcsdelta_setstate(struct delta *, char *);
71 void rcsdelta_truncatetext(struct delta *, off_t);
72 void rcsdelta_truncatelog(struct delta *, off_t);
73 #endif /* !_RCSFILE_H_ */