FAQ Search Today's Posts Mark Forums Read
» Video Reviews

» Linux Archive

Linux-archive is a website aiming to archive linux email lists and to make them easily accessible for linux users/developers.


» Sponsor

» Partners

» Sponsor

Go Back   Linux Archive > ArchLinux > ArchLinux Pacman Development

 
 
LinkBack Thread Tools
 
Old 09-21-2011, 03:32 PM
Dan McGee
 
Default Add alpm_capabilities() method and enumeration

This allows a frontend program to query, at runtime, what the library
supports. This can be useful for sanity checking during config-
requiring a downloader or disallowing signature settings, for example.

Signed-off-by: Dan McGee <dan@archlinux.org>
---
lib/libalpm/alpm.c | 25 +++++++++++++++++++++++--
lib/libalpm/alpm.h | 8 ++++++++
2 files changed, 31 insertions(+), 2 deletions(-)

diff --git a/lib/libalpm/alpm.c b/lib/libalpm/alpm.c
index 585c6a8..84d9eaf 100644
--- a/lib/libalpm/alpm.c
+++ b/lib/libalpm/alpm.c
@@ -133,9 +133,30 @@ int SYMEXPORT alpm_release(alpm_handle_t *myhandle)
* @brief Various libalpm functions
*/

-/* Get the version of library */
-const char SYMEXPORT *alpm_version(void) {
+/** Get the version of library.
+ * @return the library version, e.g. "6.0.4"
+ * */
+const char SYMEXPORT *alpm_version(void)
+{
return LIB_VERSION;
}

+/** Get the capabilities of the library.
+ * @return a bitmask of the capabilities
+ * */
+enum alpm_caps alpm_capabilities(void)
+{
+ return 0
+#ifdef ENABLE_NLS
+ | ALPM_CAPABILITY_NLS
+#endif
+#ifdef HAVE_LIBCURL
+ | ALPM_CAPABILITY_DOWNLOADER
+#endif
+#ifdef HAVE_GPGME
+ | ALPM_CAPABILITY_SIGNATURES
+#endif
+ | 0;
+}
+
/* vim: set ts=2 sw=2 noet: */
diff --git a/lib/libalpm/alpm.h b/lib/libalpm/alpm.h
index 853cb8b..3b6b279 100644
--- a/lib/libalpm/alpm.h
+++ b/lib/libalpm/alpm.h
@@ -1187,7 +1187,15 @@ const char *alpm_strerror(enum _alpm_errno_t err);
alpm_handle_t *alpm_initialize(const char *root, const char *dbpath,
enum _alpm_errno_t *err);
int alpm_release(alpm_handle_t *handle);
+
+enum alpm_caps {
+ ALPM_CAPABILITY_NLS = (1 << 0),
+ ALPM_CAPABILITY_DOWNLOADER = (1 << 1),
+ ALPM_CAPABILITY_SIGNATURES = (1 << 2)
+};
+
const char *alpm_version(void);
+enum alpm_caps alpm_capabilities(void);

/* End of alpm_api */
/** @} */
--
1.7.6.3
 

Thread Tools




All times are GMT. The time now is 09:42 PM.

VBulletin, Copyright ©2000 - 2014, Jelsoft Enterprises Ltd.
Content Relevant URLs by vBSEO ©2007, Crawlability, Inc.
Copyright 2007 - 2008, www.linux-archive.org