diff options
Diffstat (limited to '')
-rw-r--r-- | g10/tdbio.c | 17 |
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; |