1 /* 2 * version.c --- Return the version of the ext2 library 3 * 4 * Copyright (C) 1997 Theodore Ts'o. 5 * 6 * %Begin-Header% 7 * This file may be redistributed under the terms of the GNU Library 8 * General Public License, version 2. 9 * %End-Header% 10 */ 11 12 #if HAVE_UNISTD_H 13 #include <unistd.h> 14 #endif 15 #include <string.h> 16 #include <stdio.h> 17 #include <ctype.h> 18 19 #include "ext2_fs.h" 20 #include "ext2fs.h" 21 22 #include "../../version.h" 23 24 static const char *lib_version = E2FSPROGS_VERSION; 25 static const char *lib_date = E2FSPROGS_DATE; 26 ext2fs_parse_version_string(const char * ver_string)27int ext2fs_parse_version_string(const char *ver_string) 28 { 29 const char *cp; 30 int version = 0, dot_count = 0; 31 32 for (cp = ver_string; *cp; cp++) { 33 if (*cp == '.') { 34 if (dot_count++) 35 break; 36 else 37 continue; 38 } 39 if (!isdigit(*cp)) 40 break; 41 version = (version * 10) + (*cp - '0'); 42 } 43 return version; 44 } 45 46 ext2fs_get_library_version(const char ** ver_string,const char ** date_string)47int ext2fs_get_library_version(const char **ver_string, 48 const char **date_string) 49 { 50 if (ver_string) 51 *ver_string = lib_version; 52 if (date_string) 53 *date_string = lib_date; 54 55 return ext2fs_parse_version_string(lib_version); 56 } 57