quvi_set: Add support for QUVI_OPTION_CALLBACK_STATUS_USERDATA
[libquvi.git] / src / api / version.c
bloba84264de9de4ca58adc5ec2be7ef02eb99f64653
1 /* libquvi
2 * Copyright (C) 2012 Toni Gundogdu <legatvs@gmail.com>
4 * This file is part of libquvi <http://quvi.sourceforge.net/>.
6 * This library is free software: you can redistribute it and/or
7 * modify it under the terms of the GNU Affero General Public
8 * License as published by the Free Software Foundation, either
9 * version 3 of the License, or (at your option) any later version.
11 * This library is distributed in the hope that it will be useful,
12 * but WITHOUT ANY WARRANTY; without even the implied warranty of
13 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14 * GNU Affero General Public License for more details.
16 * You should have received a copy of the GNU Affero General
17 * Public License along with this library. If not, see
18 * <http://www.gnu.org/licenses/>.
21 /** @file version.c */
23 #include "config.h"
25 #include <string.h>
26 #include <glib.h>
28 #include "quvi.h"
29 /* -- */
30 #include "_quvi_s.h"
32 static const gchar *_version[] =
34 #ifdef VN
36 #else
37 PACKAGE_VERSION
38 #endif
39 , BUILD_OPTS,
40 CANONICAL_TARGET,
41 BUILD_TIME
44 static gchar version_scripts[32];
46 static const gchar *read_scripts_version()
48 gchar *c = NULL;
49 if (g_file_get_contents(VERSIONFILE, &c, NULL, NULL) == TRUE)
51 gchar *s = g_strescape(g_strstrip(c), NULL);
52 g_snprintf(version_scripts, sizeof(version_scripts), "%s", s);
54 g_free(s);
55 s = NULL;
57 g_free(c);
58 c = NULL;
60 else
61 version_scripts[0] = '\0';
62 return (version_scripts);
65 /** @return NULL-terminated version string
66 @note Do not attempt to free the returned string
67 @ingroup convenience
69 const char *quvi_version(QuviVersion version)
71 switch (version)
73 case QUVI_VERSION_SCRIPTS:
74 return (read_scripts_version());
76 case QUVI_VERSION_CONFIGURATION:
77 case QUVI_VERSION_BUILD_TARGET:
78 case QUVI_VERSION_BUILD_TIME:
79 return (_version[version]);
81 default:
82 break;
84 return (_version[QUVI_VERSION]);
87 /* vim: set ts=2 sw=2 tw=72 expandtab: */