From: Theodore Ts'o Date: Wed, 26 Jan 2005 18:16:06 +0000 (-0500) Subject: Add functions which allow an application program to do a run-time query X-Git-Tag: E2FSPROGS-1_36~24 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=32923fa402b5bc3800bd22a3fa4624906b7d7deb;p=thirdparty%2Fe2fsprogs.git Add functions which allow an application program to do a run-time query of the version of the blkid library. --- diff --git a/lib/blkid/ChangeLog b/lib/blkid/ChangeLog index 22732b263..f0f01b6fe 100644 --- a/lib/blkid/ChangeLog +++ b/lib/blkid/ChangeLog @@ -1,5 +1,7 @@ 2005-01-26 Theodore Ts'o + * version.c: Add functions to query the version of the blkid library. + * blkid.pc.in: Add pkg-config files. 2005-01-25 Theodore Ts'o diff --git a/lib/blkid/Makefile.in b/lib/blkid/Makefile.in index 4f3050f16..f18c60688 100644 --- a/lib/blkid/Makefile.in +++ b/lib/blkid/Makefile.in @@ -19,11 +19,12 @@ all:: SMANPAGES= libblkid.3 OBJS= cache.o dev.o devname.o devno.o getsize.o llseek.o probe.o \ - read.o resolve.o save.o tag.o + read.o resolve.o save.o tag.o version.o SRCS= $(srcdir)/cache.c $(srcdir)/dev.c $(srcdir)/devname.c $(srcdir)/devno.c \ $(srcdir)/getsize.c $(srcdir)/llseek.c $(srcdir)/probe.c \ - $(srcdir)/read.c $(srcdir)/resolve.c $(srcdir)/save.c $(srcdir)/tag.c + $(srcdir)/read.c $(srcdir)/resolve.c $(srcdir)/save.c $(srcdir)/tag.c \ + $(srcdir)/version.c HFILES= blkid.h HFILES_IN= blkid_types.h @@ -194,3 +195,5 @@ save.o: $(srcdir)/save.c $(srcdir)/blkidP.h $(srcdir)/blkid.h \ $(top_builddir)/lib/blkid/blkid_types.h $(srcdir)/list.h tag.o: $(srcdir)/tag.c $(srcdir)/blkidP.h $(srcdir)/blkid.h \ $(top_builddir)/lib/blkid/blkid_types.h $(srcdir)/list.h +version.o: $(srcdir)/version.c $(srcdir)/blkid.h \ + $(top_builddir)/lib/blkid/blkid_types.h $(top_srcdir)/version.h diff --git a/lib/blkid/blkid.h b/lib/blkid/blkid.h index 2c80fdf1b..a628e6381 100644 --- a/lib/blkid/blkid.h +++ b/lib/blkid/blkid.h @@ -92,6 +92,11 @@ extern blkid_dev blkid_find_dev_with_tag(blkid_cache cache, extern int blkid_parse_tag_string(const char *token, char **ret_type, char **ret_val); +/* version.c */ +extern int blkid_parse_version_string(const char *ver_string); +extern int blkid_get_library_version(const char **ver_string, + const char **date_string); + #ifdef __cplusplus } #endif diff --git a/lib/blkid/version.c b/lib/blkid/version.c new file mode 100644 index 000000000..772291641 --- /dev/null +++ b/lib/blkid/version.c @@ -0,0 +1,49 @@ +/* + * version.c --- Return the version of the blkid library + * + * Copyright (C) 2004 Theodore Ts'o. + * + * %Begin-Header% + * This file may be redistributed under the terms of the GNU Public + * License. + * %End-Header% + */ + +#if HAVE_UNISTD_H +#include +#endif +#include +#include +#include + +#include "blkid.h" +#include "../../version.h" + +static const char *lib_version = E2FSPROGS_VERSION; +static const char *lib_date = E2FSPROGS_DATE; + +int blkid_parse_version_string(const char *ver_string) +{ + const char *cp; + int version = 0; + + for (cp = ver_string; *cp; cp++) { + if (*cp == '.') + continue; + if (!isdigit(*cp)) + break; + version = (version * 10) + (*cp - '0'); + } + return version; +} + +int blkid_get_library_version(const char **ver_string, + const char **date_string) +{ + if (ver_string) + *ver_string = lib_version; + if (date_string) + *date_string = lib_date; + + return blkid_parse_version_string(lib_version); +}