132923fa402b5bc3800bd22a3fa4624906b7d7debTheodore Ts'o/* 232923fa402b5bc3800bd22a3fa4624906b7d7debTheodore Ts'o * version.c --- Return the version of the blkid library 332923fa402b5bc3800bd22a3fa4624906b7d7debTheodore Ts'o * 432923fa402b5bc3800bd22a3fa4624906b7d7debTheodore Ts'o * Copyright (C) 2004 Theodore Ts'o. 532923fa402b5bc3800bd22a3fa4624906b7d7debTheodore Ts'o * 632923fa402b5bc3800bd22a3fa4624906b7d7debTheodore Ts'o * %Begin-Header% 732923fa402b5bc3800bd22a3fa4624906b7d7debTheodore Ts'o * This file may be redistributed under the terms of the GNU Public 832923fa402b5bc3800bd22a3fa4624906b7d7debTheodore Ts'o * License. 932923fa402b5bc3800bd22a3fa4624906b7d7debTheodore Ts'o * %End-Header% 1032923fa402b5bc3800bd22a3fa4624906b7d7debTheodore Ts'o */ 1132923fa402b5bc3800bd22a3fa4624906b7d7debTheodore Ts'o 1232923fa402b5bc3800bd22a3fa4624906b7d7debTheodore Ts'o#if HAVE_UNISTD_H 1332923fa402b5bc3800bd22a3fa4624906b7d7debTheodore Ts'o#include <unistd.h> 1432923fa402b5bc3800bd22a3fa4624906b7d7debTheodore Ts'o#endif 1532923fa402b5bc3800bd22a3fa4624906b7d7debTheodore Ts'o#include <string.h> 1632923fa402b5bc3800bd22a3fa4624906b7d7debTheodore Ts'o#include <stdio.h> 1732923fa402b5bc3800bd22a3fa4624906b7d7debTheodore Ts'o#include <ctype.h> 1832923fa402b5bc3800bd22a3fa4624906b7d7debTheodore Ts'o 19e1f085079525c0ed4c5ab1f2abedaf9407a7b8daTheodore Ts'o#include <blkid/blkid.h> 2032923fa402b5bc3800bd22a3fa4624906b7d7debTheodore Ts'o#include "../../version.h" 2132923fa402b5bc3800bd22a3fa4624906b7d7debTheodore Ts'o 2232923fa402b5bc3800bd22a3fa4624906b7d7debTheodore Ts'ostatic const char *lib_version = E2FSPROGS_VERSION; 2332923fa402b5bc3800bd22a3fa4624906b7d7debTheodore Ts'ostatic const char *lib_date = E2FSPROGS_DATE; 2432923fa402b5bc3800bd22a3fa4624906b7d7debTheodore Ts'o 2532923fa402b5bc3800bd22a3fa4624906b7d7debTheodore Ts'oint blkid_parse_version_string(const char *ver_string) 2632923fa402b5bc3800bd22a3fa4624906b7d7debTheodore Ts'o{ 2732923fa402b5bc3800bd22a3fa4624906b7d7debTheodore Ts'o const char *cp; 2832923fa402b5bc3800bd22a3fa4624906b7d7debTheodore Ts'o int version = 0; 2932923fa402b5bc3800bd22a3fa4624906b7d7debTheodore Ts'o 3032923fa402b5bc3800bd22a3fa4624906b7d7debTheodore Ts'o for (cp = ver_string; *cp; cp++) { 3132923fa402b5bc3800bd22a3fa4624906b7d7debTheodore Ts'o if (*cp == '.') 3232923fa402b5bc3800bd22a3fa4624906b7d7debTheodore Ts'o continue; 3332923fa402b5bc3800bd22a3fa4624906b7d7debTheodore Ts'o if (!isdigit(*cp)) 3432923fa402b5bc3800bd22a3fa4624906b7d7debTheodore Ts'o break; 3532923fa402b5bc3800bd22a3fa4624906b7d7debTheodore Ts'o version = (version * 10) + (*cp - '0'); 3632923fa402b5bc3800bd22a3fa4624906b7d7debTheodore Ts'o } 3732923fa402b5bc3800bd22a3fa4624906b7d7debTheodore Ts'o return version; 3832923fa402b5bc3800bd22a3fa4624906b7d7debTheodore Ts'o} 3932923fa402b5bc3800bd22a3fa4624906b7d7debTheodore Ts'o 4032923fa402b5bc3800bd22a3fa4624906b7d7debTheodore Ts'oint blkid_get_library_version(const char **ver_string, 4132923fa402b5bc3800bd22a3fa4624906b7d7debTheodore Ts'o const char **date_string) 4232923fa402b5bc3800bd22a3fa4624906b7d7debTheodore Ts'o{ 4332923fa402b5bc3800bd22a3fa4624906b7d7debTheodore Ts'o if (ver_string) 4432923fa402b5bc3800bd22a3fa4624906b7d7debTheodore Ts'o *ver_string = lib_version; 4532923fa402b5bc3800bd22a3fa4624906b7d7debTheodore Ts'o if (date_string) 4632923fa402b5bc3800bd22a3fa4624906b7d7debTheodore Ts'o *date_string = lib_date; 4732923fa402b5bc3800bd22a3fa4624906b7d7debTheodore Ts'o 4832923fa402b5bc3800bd22a3fa4624906b7d7debTheodore Ts'o return blkid_parse_version_string(lib_version); 4932923fa402b5bc3800bd22a3fa4624906b7d7debTheodore Ts'o} 50