From cb2c0b8703402a956a898a4a6a5cda0b441cbaad Mon Sep 17 00:00:00 2001
From: mirv <unknown>
Date: Mon, 7 Jan 2008 22:21:17 +0100
Subject: [PATCH] force save changes on exit

---
 data.c | 4 ++--
 data.h | 2 +-
 sc.c   | 1 +
 3 files changed, 4 insertions(+), 3 deletions(-)

diff --git a/data.c b/data.c
index 42e9c73..a2cc137 100644
--- a/data.c
+++ b/data.c
@@ -518,9 +518,9 @@ void cStructLoaders::Load(bool reload)
     }
 }
 
-void cStructLoaders::Save(void)
+void cStructLoaders::Save(bool force)
 {
-  if(lastSave.TimedOut()) {
+  if(force || lastSave.TimedOut()) {
     for(cStructLoader *ld=first; ld; ld=ld->next) ld->Save();
     lastSave.Set(SAVE_TIMEOUT);
     }
diff --git a/data.h b/data.h
index eabd346..eba9719 100644
--- a/data.h
+++ b/data.h
@@ -191,7 +191,7 @@ private:
 public:
   static void SetCfgDir(const char *cfgdir);
   static void Load(bool reload);
-  static void Save(void);
+  static void Save(bool force=false);
   static void Purge(void);
   };
 
diff --git a/sc.c b/sc.c
index 33b64df..909fe5b 100644
--- a/sc.c
+++ b/sc.c
@@ -1024,6 +1024,7 @@ void cSoftCAM::HouseKeeping(void)
 
 void cSoftCAM::Shutdown(void)
 {
+  cStructLoaders::Save(true);
   cSystems::Clean();
   smartcards.Shutdown();
   keys.Clear();
-- 
2.39.5