aboutsummaryrefslogtreecommitdiffstats
path: root/g10/tdbio.c
diff options
context:
space:
mode:
Diffstat (limited to 'g10/tdbio.c')
-rw-r--r--g10/tdbio.c17
1 files changed, 14 insertions, 3 deletions
diff --git a/g10/tdbio.c b/g10/tdbio.c
index d763d2a92..2429f1a5d 100644
--- a/g10/tdbio.c
+++ b/g10/tdbio.c
@@ -505,14 +505,25 @@ tdbio_set_dbname( const char *new_dbname, int create )
int rc;
char *p = strrchr( fname, DIRSEP_C );
mode_t oldmask;
-
- assert(p);
+ int save_slash;
+
+#if HAVE_W32_SYSTEM
+ {
+ /* Windows may either have a slash or a backslash. Take
+ care of it. */
+ char *pp = strrchr (fname, '/');
+ if (!p || pp > p)
+ p = pp;
+ }
+#endif /*HAVE_W32_SYSTEM*/
+ assert (p);
+ save_slash = *p;
*p = 0;
if( access( fname, F_OK ) ) {
try_make_homedir( fname );
log_fatal( _("%s: directory does not exist!\n"), fname );
}
- *p = DIRSEP_C;
+ *p = save_slash;
xfree(db_name);
db_name = fname;