1/*
2 *    Copyright (c) 2004  Derek Price, Ximbiot <http://ximbiot.com>,
3 *                        and the Free Software Foundation
4 *
5 *    You may distribute under the terms of the GNU General Public License
6 *    as specified in the README file that comes with the CVS source
7 *    distribution.
8 *
9 * This is the header file for definitions and functions shared by parseinfo.c
10 * with other portions of CVS.
11 */
12#ifndef PARSEINFO_H
13# define PARSEINFO_H
14
15struct config
16{
17    void *keywords;
18    bool top_level_admin;
19    char *lock_dir;
20    char *logHistory;
21    char *HistoryLogPath;
22    char *HistorySearchPath;
23    char *TmpDir;
24
25    /* Should the logmsg be re-read during the do_verify phase?
26     * RereadLogAfterVerify=no|stat|yes
27     * LOGMSG_REREAD_NEVER  - never re-read the logmsg
28     * LOGMSG_REREAD_STAT   - re-read the logmsg only if it has changed
29     * LOGMSG_REREAD_ALWAYS - always re-read the logmsg
30     */
31    int RereadLogAfterVerify;
32
33    char *UserAdminOptions;
34    char *UserAdminGroup;
35
36    /* Control default behavior of 'cvs import' (-X option on or off) in
37     * CVSROOT/config.  Defaults to off, for backward compatibility.
38     */
39    bool ImportNewFilesToVendorBranchOnly;
40
41    size_t MaxCommentLeaderLength;
42    bool UseArchiveCommentLeader;
43
44#ifdef AUTH_SERVER_SUPPORT
45    /* Should we check for system usernames/passwords?  */
46    bool system_auth;
47#endif /* AUTH_SERVER_SUPPORT */
48
49#ifdef SUPPORT_OLD_INFO_FMT_STRINGS
50    bool UseNewInfoFmtStrings;
51#endif /* SUPPORT_OLD_INFO_FMT_STRINGS */
52    cvsroot_t *PrimaryServer;
53#ifdef PROXY_SUPPORT
54    size_t MaxProxyBufferSize;
55#endif /* PROXY_SUPPORT */
56#ifdef SERVER_SUPPORT
57    size_t MinCompressionLevel;
58    size_t MaxCompressionLevel;
59#endif /* SERVER_SUPPORT */
60#ifdef PRESERVE_PERMISSIONS_SUPPORT
61    bool preserve_perms;
62#endif /* PRESERVE_PERMISSIONS_SUPPORT */
63};
64
65bool parse_error (const char *, unsigned int);
66struct config *parse_config (const char *, const char *);
67void free_config (struct config *data);
68#endif /* !PARSEINFO_H */
69