]> git.ipfire.org Git - thirdparty/e2fsprogs.git/commitdiff
Add functions which allow an application program to do a run-time query
authorTheodore Ts'o <tytso@mit.edu>
Wed, 26 Jan 2005 18:16:06 +0000 (13:16 -0500)
committerTheodore Ts'o <tytso@mit.edu>
Wed, 26 Jan 2005 18:16:06 +0000 (13:16 -0500)
of the version of the blkid library.

lib/blkid/ChangeLog
lib/blkid/Makefile.in
lib/blkid/blkid.h
lib/blkid/version.c [new file with mode: 0644]

index 22732b263279791eef9bf03d7ec4717633509541..f0f01b6feea8878aa91af55d25ea62800e09e696 100644 (file)
@@ -1,5 +1,7 @@
 2005-01-26  Theodore Ts'o  <tytso@mit.edu>
 
+       * 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  <tytso@mit.edu>
index 4f3050f16d712e9e11d6600e039807b7fb4c0d0b..f18c6068890453dbc941dad8af08ad9268d739b0 100644 (file)
@@ -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
index 2c80fdf1ba3a7efc4e7e62e718ff10d9da3d24c4..a628e638199fefcd942303a86c5b7b76da5db6cc 100644 (file)
@@ -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 (file)
index 0000000..7722916
--- /dev/null
@@ -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 <unistd.h>
+#endif
+#include <string.h>
+#include <stdio.h>
+#include <ctype.h>
+
+#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);
+}