From b680d034fa265a33c8063a25d79280e87ef71e42 Mon Sep 17 00:00:00 2001 From: Werner Koch Date: Wed, 30 Jan 2008 13:26:32 +0000 Subject: W32 fix for trustdb creation. --- g10/ChangeLog | 4 ++++ g10/tdbio.c | 17 ++++++++++++++--- 2 files changed, 18 insertions(+), 3 deletions(-) (limited to 'g10') diff --git a/g10/ChangeLog b/g10/ChangeLog index 1de64dcc5..3c52fea7e 100644 --- a/g10/ChangeLog +++ b/g10/ChangeLog @@ -1,3 +1,7 @@ +2008-01-30 Werner Koch + + * tdbio.c (tdbio_set_dbname): Also test for forward slash. + 2008-01-29 Werner Koch * keydb.c (maybe_create_keyring): Take care of a missing slash. 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; -- cgit v1.2.3