41 |
|
|
42 |
static const char *version[] = |
static const char *version[] = |
43 |
{ |
{ |
|
"FORMS Library", |
|
|
"$State$ $Revision$ of $Date$" |
|
44 |
"(Compiled "__DATE__")", |
"(Compiled "__DATE__")", |
45 |
#ifdef FL_WIN32 |
#ifdef FL_WIN32 |
46 |
"Copyright (c) 1996-2002 by T.C. Zhao, Gang Li and Mark Overmars", |
"Copyright (c) 1996-2002 by T.C. Zhao, Gang Li and Mark Overmars", |
51 |
0 |
0 |
52 |
}; |
}; |
53 |
|
|
54 |
/* it is important not to use the FL_INCLUDE_VERSION as it is |
|
|
* not automated with rcs checks in |
|
|
*/ |
|
55 |
int |
int |
56 |
fl_library_version(int *ver, int *rev) |
fl_library_version(int *ver, int *rev) |
57 |
{ |
{ |
58 |
int v, r = -1; |
int v, r = -1; |
59 |
int c = 0; |
int c = 0; |
60 |
|
|
|
sscanf(version[1], "%*s %*s %*s %*s %d.%d.%d", &v, &r, &c); |
|
|
if (c != FL_FIXLEVEL) |
|
|
M_err(0, "Inconsistent version: fixlevel:%d found %d", FL_FIXLEVEL, c); |
|
|
|
|
61 |
if (rev) |
if (rev) |
62 |
*rev = r; |
*rev = FL_REVISION; |
63 |
if (ver) |
if (ver) |
64 |
*ver = v; |
*ver = FL_VERSION; |
65 |
|
|
66 |
return v * 1000 + r; |
return v * 1000 + r; |
67 |
} |
} |
68 |
|
|
69 |
|
|
70 |
void |
void |
71 |
fl_print_version(int g) |
fl_print_version(int g) |
72 |
{ |
{ |
73 |
|
char tmp[100]; |
74 |
#ifndef M_XENIX |
#ifndef M_XENIX |
75 |
const char *p[5], **q = version; |
const char *p[5], **q = version; |
76 |
#else |
#else |
78 |
#endif |
#endif |
79 |
int n; |
int n; |
80 |
|
|
81 |
for (n = 0; *q; n++, q++) |
snprintf(tmp, 100, "FORMS Library Version %d.%d", FL_VERSION, FL_REVISION); |
82 |
{ |
p[0] = tmp; |
83 |
|
|
84 |
|
for (n = 1; *q; n++, q++) { |
85 |
/* SCO compiler needs the cast */ |
/* SCO compiler needs the cast */ |
86 |
p[n] = (char *) fl_rm_rcs_kw(*q); |
p[n] = (char *) fl_rm_rcs_kw(*q); |
|
if (!g) |
|
|
fprintf(stderr, (n == 0) ? "%s" : "%s\n", p[n]); |
|
87 |
} |
} |
88 |
|
|
89 |
if (g) |
if (g) { |
|
{ |
|
90 |
if (n >= 3) |
if (n >= 3) |
91 |
fl_show_message(p[0], p[1], p[2]); |
fl_show_message(p[0], p[1], p[2]); |
92 |
else if (n == 2) |
else if (n == 2) |
93 |
fl_show_message(p[0], "", p[1]); |
fl_show_message(p[0], "", p[1]); |
94 |
else |
else |
95 |
fl_show_message("", p[0], ""); |
fl_show_message("", p[0], ""); |
96 |
|
} else { |
97 |
|
int i = 0; |
98 |
|
for (; i<n; ++i) |
99 |
|
fprintf(stderr, "%s\n", p[i]); |
100 |
} |
} |
101 |
} |
} |