From 38acc94022ee30868e01c98f8871fd2c6c44f5c2 Mon Sep 17 00:00:00 2001 From: avolkov Date: Sun, 12 Feb 2012 20:18:33 +0000 Subject: [PATCH] Cleanup mounted dirs upon exit; bug #1149; thanks to Louis Delacroix git-svn-id: svn://svn.code.sf.net/p/sc2/code/trunk@3767 8092fc87-c524-0410-9efc-e669fe64eaf9 --- sc2/src/options.c | 25 +++++++++++++++++++++++++ sc2/src/options.h | 1 + sc2/src/uqm.c | 1 + 3 files changed, 27 insertions(+) diff --git a/sc2/src/options.c b/sc2/src/options.c index 96c3f350d..46c7c30c1 100644 --- a/sc2/src/options.c +++ b/sc2/src/options.c @@ -603,6 +603,31 @@ prepareAddons (const char **addons) } } +void +unprepareAllDirs (void) +{ + if (saveDir) + { + uio_closeDir (saveDir); + saveDir = 0; + } + if (meleeDir) + { + uio_closeDir (meleeDir); + meleeDir = 0; + } + if (contentDir) + { + uio_closeDir (contentDir); + contentDir = 0; + } + if (configDir) + { + uio_closeDir (configDir); + configDir = 0; + } +} + bool setGammaCorrection (float gamma) { diff --git a/sc2/src/options.h b/sc2/src/options.h index aa673efe2..67480a4d9 100644 --- a/sc2/src/options.h +++ b/sc2/src/options.h @@ -79,6 +79,7 @@ void prepareMeleeDir (void); void prepareSaveDir (void); void prepareAddons (const char **addons); void prepareShadowAddons (const char **addons); +void unprepareAllDirs (void); BOOLEAN loadAddon (const char *addon); int loadIndices (uio_DirHandle *baseDir); diff --git a/sc2/src/uqm.c b/sc2/src/uqm.c index f6c4630a9..67f3716c2 100644 --- a/sc2/src/uqm.c +++ b/sc2/src/uqm.c @@ -486,6 +486,7 @@ main (int argc, char *argv[]) #if 0 unInitTempDir (); #endif + unprepareAllDirs (); uninitIO (); UnInitThreadSystem (); mem_uninit ();