From 51a638e8215729ffd48eda18196a9ace99f6a993 Mon Sep 17 00:00:00 2001 From: dan Date: Wed, 12 Apr 2000 01:45:42 +0000 Subject: [PATCH] Added a function to get all keys in a user defaults database (for databases with dynamic contents, where the keys are not known in advance, like a user = password; type UD database). --- WINGs/WUtil.h | 7 ++++++- WINGs/userdefaults.c | 10 ++++++++++ 2 files changed, 16 insertions(+), 1 deletion(-) diff --git a/WINGs/WUtil.h b/WINGs/WUtil.h index c2b983b6..1c71fade 100644 --- a/WINGs/WUtil.h +++ b/WINGs/WUtil.h @@ -556,6 +556,11 @@ void WMSaveUserDefaults(WMUserDefaults *database); void WMEnableUDPeriodicSynchronization(WMUserDefaults *database, Bool enable); +/* Returns a PLArray with all keys in the user defaults database. + * Free the returned array with PLRelease() when no longer needed, + * but do not free the elements of the array! They're just references. */ +proplist_t WMGetUDAllKeys(WMUserDefaults *database); + proplist_t WMGetUDObjectForKey(WMUserDefaults *database, char *defaultName); void WMSetUDObjectForKey(WMUserDefaults *database, proplist_t object, @@ -563,7 +568,7 @@ void WMSetUDObjectForKey(WMUserDefaults *database, proplist_t object, void WMRemoveUDObjectForKey(WMUserDefaults *database, char *defaultName); -/* you can free the returned string */ +/* Free the returned string when no longer needed */ char *WMGetUDStringForKey(WMUserDefaults *database, char *defaultName); int WMGetUDIntegerForKey(WMUserDefaults *database, char *defaultName); diff --git a/WINGs/userdefaults.c b/WINGs/userdefaults.c index 47db9abe..126fbfe9 100644 --- a/WINGs/userdefaults.c +++ b/WINGs/userdefaults.c @@ -411,6 +411,16 @@ WMGetDefaultsFromPath(char *path) } +/* Returns a PLArray with all keys in the user defaults database. + * Free the returned array with PLRelease() when no longer needed, + * but do not free the elements of the array! They're just references. */ +proplist_t +WMGetUDAllKeys(WMUserDefaults *database) +{ + return PLGetAllDictionaryKeys(database->defaults); +} + + proplist_t WMGetUDObjectForKey(WMUserDefaults *database, char *defaultName) {