From 54db2e0ab196b659e4297c0d93f088b2212409f5 Mon Sep 17 00:00:00 2001 From: ThorstenB Date: Sun, 18 Dec 2011 17:04:31 +0100 Subject: [PATCH] #479: avoid issues due to trailing path separators Cut trailing separators when converting from string to sgpath. Also, SGPath::fix does NOT replace ":". It only replaces "\" with "/", so the "i!=1" check for Windows made no sense (rule #9: never believe a source code comment). --- simgear/debug/debug_types.h | 4 ++-- simgear/misc/sg_path.cxx | 22 ++++++++++------------ 2 files changed, 12 insertions(+), 14 deletions(-) diff --git a/simgear/debug/debug_types.h b/simgear/debug/debug_types.h index 03863f75..0a36c1eb 100644 --- a/simgear/debug/debug_types.h +++ b/simgear/debug/debug_types.h @@ -1,5 +1,5 @@ /** \file debug_types.h - * Define the various logging classes and prioritiess + * Define the various logging classes and priorities */ /** @@ -30,7 +30,7 @@ typedef enum { SG_AI = 0x00080000, SG_ENVIRONMENT = 0x00100000, SG_SOUND = 0x00200000, - SG_UNDEFD = 0x00400000, // For range checkingng + SG_UNDEFD = 0x00400000, // For range checking SG_ALL = 0xFFFFFFFF } sgDebugClass; diff --git a/simgear/misc/sg_path.cxx b/simgear/misc/sg_path.cxx index 46e80228..92a16945 100644 --- a/simgear/misc/sg_path.cxx +++ b/simgear/misc/sg_path.cxx @@ -53,22 +53,20 @@ static const char sgSearchPathSep = ':'; #endif -// If Unix, replace all ":" with "/". In windoze, allow the -// second character to be a ":" for things like c:\foo\bar - +// For windows, replace "\" by "/". void SGPath::fix() { - for ( string::size_type i = 0; i < path.size(); ++i ) { -#if defined( WIN32 ) - // for windoze, don't replace the ":" for the second character - if ( i == 1 ) { - continue; - } -#endif - if ( path[i] == sgDirPathSepBad ) { - path[i] = sgDirPathSep; + string::size_type sz = path.size(); + for ( string::size_type i = 0; i < sz; ++i ) { + if ( path[i] == sgDirPathSepBad ) { + path[i] = sgDirPathSep; + } } + // drop trailing "/" + while ((sz>1)&&(path[sz-1]==sgDirPathSep)) + { + path.resize(--sz); } } -- 2.39.5