From cf70e5003db59c0a019e07dab4a08ebe2f80edff Mon Sep 17 00:00:00 2001 From: henrypp Date: Mon, 23 Sep 2019 15:10:11 +0600 Subject: [PATCH] adds check for drive existing in apps list --- src/profile.cpp | 35 +++++++++++++++++++++++++++++++++++ src/profile.hpp | 1 + 2 files changed, 36 insertions(+) diff --git a/src/profile.cpp b/src/profile.cpp index 52663f70..6c944d04 100644 --- a/src/profile.cpp +++ b/src/profile.cpp @@ -928,6 +928,41 @@ bool _app_isapphaveconnection (size_t app_hash) return false; } +bool _app_isapphavedrive (INT letter) +{ + _r_fastlock_acquireshared (&lock_access); + + for (auto &p : apps) + { + PR_OBJECT ptr_app_object = _r_obj_reference (p.second); + + if (!ptr_app_object) + continue; + + PITEM_APP ptr_app = (PITEM_APP)ptr_app_object->pdata; + + if (!ptr_app) + { + _r_obj_dereference (ptr_app_object, &_app_dereferenceapp); + continue; + } + + INT drive_id = PathGetDriveNumber (ptr_app->original_path); + + if (drive_id != INVALID_INT && drive_id == letter) + { + _r_obj_dereference (ptr_app_object, &_app_dereferenceapp); + return true; + } + + _r_obj_dereference (ptr_app_object, &_app_dereferenceapp); + } + + _r_fastlock_releaseshared (&lock_access); + + return false; +} + bool _app_isapphaverule (size_t app_hash) { if (!app_hash) diff --git a/src/profile.hpp b/src/profile.hpp index 04aa4493..b04eebd8 100644 --- a/src/profile.hpp +++ b/src/profile.hpp @@ -38,6 +38,7 @@ rstring _app_rulesexpandapps (PITEM_RULE ptr_rule, bool is_fordisplay, LPCWSTR d bool _app_isappfound (size_t app_hash); bool _app_isapphaveconnection (size_t app_hash); +bool _app_isapphavedrive (INT letter); bool _app_isapphaverule (size_t app_hash); bool _app_isappused (ITEM_APP *ptr_app, size_t app_hash); bool _app_isappexists (ITEM_APP *ptr_app);