1 /*
2 *+
3 * Name:
4 * palVers
5
6 * Purpose:
7 * Obtain PAL version number
8
9 * Language:
10 * Starlink ANSI C
11
12 * Type of Module:
13 * Library routine
14
15 * Invocation:
16 * int palVers( char *verstring, size_t verlen );
17
18 * Arguments:
19 * verstring = char * (Returned)
20 * Buffer to receive version string of the form "A.B.C". Can be NULL.
21 * verlen = size_t (Given)
22 * Allocated size of "verstring" including nul. Version string
23 * will be truncated if it does not fit in buffer.
24
25 * Returned Value:
26 * vernum = int (Returned)
27 * Version number as an integer.
28
29 * Description:
30 * Retrieve the PAL version number as a string in the form "A.B.C"
31 * and as an integer (major*1e6+minor*1e3+release).
32
33 * Authors:
34 * TIMJ: Tim Jenness (Cornell)
35 * {enter_new_authors_here}
36
37 * Notes:
38 * - Note that this API does not match the slaVers API.
39
40 * History:
41 * 2014-08-27 (TIMJ):
42 * Initial version
43 * {enter_further_changes_here}
44
45 * Copyright:
46 * Copyright (C) 2014 Cornell University
47 * All Rights Reserved.
48
49 * Licence:
50 * This program is free software; you can redistribute it and/or
51 * modify it under the terms of the GNU General Public License as
52 * published by the Free Software Foundation; either version 3 of
53 * the License, or (at your option) any later version.
54 *
55 * This program is distributed in the hope that it will be
56 * useful, but WITHOUT ANY WARRANTY; without even the implied
57 * warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
58 * PURPOSE. See the GNU General Public License for more details.
59 *
60 * You should have received a copy of the GNU General Public License
61 * along with this program. If not, see <http://www.gnu.org/licenses/>.
62
63 * Bugs:
64 * {note_any_bugs_here}
65 *-
66 */
67
68 #if HAVE_CONFIG_H
69 # include <config.h>
70 #endif
71
72 #ifdef HAVE_BSD_STRING_H
73 #include <bsd/string.h>
74 #endif
75
76 #include <string.h>
77
78 /* This version is just a straight copy without putting ellipsis on the end. */
my__strlcpy(char * dest,const char * src,size_t size)79 static void my__strlcpy( char * dest, const char * src, size_t size ) {
80 # if HAVE_STRLCPY
81 strlcpy( dest, src, size );
82 # else
83 strncpy( dest, src, size );
84 dest[size-1] = '\0';
85 # endif
86 }
87
88 int
palVers(char * verstring,size_t verlen)89 palVers( char *verstring, size_t verlen ) {
90 if (verstring) my__strlcpy( verstring, PACKAGE_VERSION, verlen );
91 return PACKAGE_VERSION_INTEGER;
92 }
93