119dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project/* 219dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project * version.c --- Return the version of the ext2 library 319dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project * 419dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project * Copyright (C) 1997 Theodore Ts'o. 519dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project * 619dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project * %Begin-Header% 78558eab78390d1924cd6b255686ceef133f294d5Ken Sumrall * This file may be redistributed under the terms of the GNU Library 88558eab78390d1924cd6b255686ceef133f294d5Ken Sumrall * General Public License, version 2. 919dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project * %End-Header% 1019dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project */ 1119dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project 1219dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project#if HAVE_UNISTD_H 1319dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project#include <unistd.h> 1419dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project#endif 1519dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project#include <string.h> 1619dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project#include <stdio.h> 1719dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project#include <ctype.h> 1819dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project 1919dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project#include "ext2_fs.h" 2019dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project#include "ext2fs.h" 2119dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project 2219dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project#include "../../version.h" 2319dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project 2419dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Projectstatic const char *lib_version = E2FSPROGS_VERSION; 2519dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Projectstatic const char *lib_date = E2FSPROGS_DATE; 2619dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project 2719dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Projectint ext2fs_parse_version_string(const char *ver_string) 2819dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project{ 2919dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project const char *cp; 3019dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project int version = 0, dot_count = 0; 3119dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project 3219dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project for (cp = ver_string; *cp; cp++) { 3319dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project if (*cp == '.') { 3419dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project if (dot_count++) 3519dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project break; 3619dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project else 3719dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project continue; 3819dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project } 3919dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project if (!isdigit(*cp)) 4019dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project break; 4119dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project version = (version * 10) + (*cp - '0'); 4219dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project } 4319dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project return version; 4419dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project} 4519dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project 4619dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project 4719dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Projectint ext2fs_get_library_version(const char **ver_string, 4819dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project const char **date_string) 4919dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project{ 5019dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project if (ver_string) 5119dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project *ver_string = lib_version; 5219dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project if (date_string) 5319dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project *date_string = lib_date; 5419dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project 5519dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project return ext2fs_parse_version_string(lib_version); 5619dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project} 57