/*
 * svn_private_config.hw : Template for svn_private_config.h on Win32.
 *
 * ====================================================================
 * Copyright (c) 2000-2002 CollabNet.  All rights reserved.
 *
 * This software is licensed as described in the file COPYING, which
 * you should have received as part of this distribution.  The terms
 * are also available at http://subversion.tigris.org/license-1.html.
 * If newer versions of this license are posted there, you may use a
 * newer version instead, at your option.
 *
 * This software consists of voluntary contributions made by many
 * individuals.  For exact contribution history, see the revision
 * history and logs, available at http://subversion.tigris.org/.
 * ====================================================================
 */

/* ==================================================================== */




#ifndef CONFIG_HW
#define CONFIG_HW

/* Signal that we're compiling Win32. Some bits might need this. */
#define SVN_WIN32 1

/* The version of Berkely DB we want */
#define SVN_FS_WANT_DB_MAJOR	4
#define SVN_FS_WANT_DB_MINOR	0
#define SVN_FS_WANT_DB_PATCH	14


/* Paths to configuration files */
/*#define SVN_CLIENT_GLOBAL_CONF "/etc/svn.conf"*/
/*#define SVN_CLIENT_USER_CONF "~/.svnrc"*/
#define SVN_CLIENT_GLOBAL_CONF \
    "REGISTRY:HKLM\\Software\\Tigris.org\\Subversion\\Config"
#define SVN_CLIENT_USER_CONF \
    "REGISTRY:HKCU\\Software\\Tigris.org\\Subversion\\Config"


/* FIXME: */
#define SVN_CLIENT_DIFF "c:\\progra~1\\cygnus\\cygwin\\bin\\diff.exe"
#define SVN_CLIENT_DIFF3 "c:\\progra~1\\cygnus\\cygwin\\bin\\diff3.exe"

/* Diff program */
#ifndef SVN_CLIENT_DIFF
#  define SVN_CLIENT_DIFF "X:/path/to/diff.exe"
#endif

/* Diff3 program */
#ifndef SVN_CLIENT_DIFF3
#  define SVN_CLIENT_DIFF3 "X:/path/to/diff3.exe"
#endif

/* Path separator for local filesystem */
#define SVN_PATH_LOCAL_SEPARATOR '\\'

/* Whether the trailing /. in local paths should be stripped */
#define SVN_PATH_STRIP_TRAILING_SLASHDOT 1

/* Link local repos access library to client */
#define SVN_LIBSVN_CLIENT_LINKS_RA_LOCAL

/* Link DAV repos access library to client */
#define SVN_LIBSVN_CLIENT_LINKS_RA_DAV

#endif /* CONFIG_HW */


/*
 * local variables:
 * mode: C
 * eval: (load-file "../svn-dev.el")
 * end:
 */
