xref: /aosp_15_r20/external/e2fsprogs/lib/blkid/version.c (revision 6a54128f25917bfc36a8a6e9d722c04a0b4641b6)
1*6a54128fSAndroid Build Coastguard Worker /*
2*6a54128fSAndroid Build Coastguard Worker  * version.c --- Return the version of the blkid library
3*6a54128fSAndroid Build Coastguard Worker  *
4*6a54128fSAndroid Build Coastguard Worker  * Copyright (C) 2004 Theodore Ts'o.
5*6a54128fSAndroid Build Coastguard Worker  *
6*6a54128fSAndroid Build Coastguard Worker  * %Begin-Header%
7*6a54128fSAndroid Build Coastguard Worker  * This file may be redistributed under the terms of the
8*6a54128fSAndroid Build Coastguard Worker  * GNU Lesser General Public License.
9*6a54128fSAndroid Build Coastguard Worker  * %End-Header%
10*6a54128fSAndroid Build Coastguard Worker  */
11*6a54128fSAndroid Build Coastguard Worker 
12*6a54128fSAndroid Build Coastguard Worker #include "config.h"
13*6a54128fSAndroid Build Coastguard Worker #if HAVE_UNISTD_H
14*6a54128fSAndroid Build Coastguard Worker #include <unistd.h>
15*6a54128fSAndroid Build Coastguard Worker #endif
16*6a54128fSAndroid Build Coastguard Worker #include <string.h>
17*6a54128fSAndroid Build Coastguard Worker #include <stdio.h>
18*6a54128fSAndroid Build Coastguard Worker #include <ctype.h>
19*6a54128fSAndroid Build Coastguard Worker 
20*6a54128fSAndroid Build Coastguard Worker #include <blkid/blkid.h>
21*6a54128fSAndroid Build Coastguard Worker #include "../../version.h"
22*6a54128fSAndroid Build Coastguard Worker 
23*6a54128fSAndroid Build Coastguard Worker static const char *lib_version = E2FSPROGS_VERSION;
24*6a54128fSAndroid Build Coastguard Worker static const char *lib_date = E2FSPROGS_DATE;
25*6a54128fSAndroid Build Coastguard Worker 
blkid_parse_version_string(const char * ver_string)26*6a54128fSAndroid Build Coastguard Worker int blkid_parse_version_string(const char *ver_string)
27*6a54128fSAndroid Build Coastguard Worker {
28*6a54128fSAndroid Build Coastguard Worker 	const char *cp;
29*6a54128fSAndroid Build Coastguard Worker 	int version = 0;
30*6a54128fSAndroid Build Coastguard Worker 
31*6a54128fSAndroid Build Coastguard Worker 	for (cp = ver_string; *cp; cp++) {
32*6a54128fSAndroid Build Coastguard Worker 		if (*cp == '.')
33*6a54128fSAndroid Build Coastguard Worker 			continue;
34*6a54128fSAndroid Build Coastguard Worker 		if (!isdigit(*cp))
35*6a54128fSAndroid Build Coastguard Worker 			break;
36*6a54128fSAndroid Build Coastguard Worker 		version = (version * 10) + (*cp - '0');
37*6a54128fSAndroid Build Coastguard Worker 	}
38*6a54128fSAndroid Build Coastguard Worker 	return version;
39*6a54128fSAndroid Build Coastguard Worker }
40*6a54128fSAndroid Build Coastguard Worker 
blkid_get_library_version(const char ** ver_string,const char ** date_string)41*6a54128fSAndroid Build Coastguard Worker int blkid_get_library_version(const char **ver_string,
42*6a54128fSAndroid Build Coastguard Worker 			       const char **date_string)
43*6a54128fSAndroid Build Coastguard Worker {
44*6a54128fSAndroid Build Coastguard Worker 	if (ver_string)
45*6a54128fSAndroid Build Coastguard Worker 		*ver_string = lib_version;
46*6a54128fSAndroid Build Coastguard Worker 	if (date_string)
47*6a54128fSAndroid Build Coastguard Worker 		*date_string = lib_date;
48*6a54128fSAndroid Build Coastguard Worker 
49*6a54128fSAndroid Build Coastguard Worker 	return blkid_parse_version_string(lib_version);
50*6a54128fSAndroid Build Coastguard Worker }
51