[PATCH setup, revised 2/2] Avoid clobbering installed.db when no setup.ini is found
Ken Brown
kbrown@cornell.edu
Sat Oct 28 17:46:00 GMT 2017
If no setup.ini is found, do_ini_thread is never called. But we need
to ensure that packagedb::read is called, or else installed.db gets
emptied. Move the calls to packagedb::read and other packagedb
functions from do_ini_thread to ChooserPage::OnInit.
---
choose.cc | 8 +++++++-
ini.cc | 7 -------
2 files changed, 7 insertions(+), 8 deletions(-)
diff --git a/choose.cc b/choose.cc
index 619d7db..3a990d5 100644
--- a/choose.cc
+++ b/choose.cc
@@ -264,10 +264,16 @@ ChooserPage::OnInit ()
}
SetBusy ();
+ packagedb db;
+ db.makeBase();
+ db.read();
+ db.upgrade();
+ db.fixup_source_package_ids();
+ db.removeEmptyCategories();
+
if (source == IDC_SOURCE_DOWNLOAD || source == IDC_SOURCE_LOCALDIR)
packagemeta::ScanDownloadedFiles (MirrorOption);
- packagedb db;
db.setExistence ();
db.fillMissingCategory ();
diff --git a/ini.cc b/ini.cc
index 5089e8b..0f8b927 100644
--- a/ini.cc
+++ b/ini.cc
@@ -352,13 +352,6 @@ do_ini_thread (HINSTANCE h, HWND owner)
else
ini_count = do_remote_ini (owner);
- packagedb db;
- db.makeBase();
- db.read();
- db.upgrade();
- db.fixup_source_package_ids();
- db.removeEmptyCategories();
-
if (ini_count == 0)
return false;
--
2.14.3
More information about the Cygwin-apps
mailing list