problem is that @static gen generators[];@ is considered to be a
`tentative definition', and therefore mustn't have incomplete type,
which it obviously has.
- * $Id: rspit.c,v 1.10 2000/08/11 21:34:59 mdw Exp $
+ * $Id: rspit.c,v 1.11 2000/10/08 12:10:32 mdw Exp $
*
* Spit out random numbers
*
*
* Spit out random numbers
*
/*----- Revision history --------------------------------------------------*
*
* $Log: rspit.c,v $
/*----- Revision history --------------------------------------------------*
*
* $Log: rspit.c,v $
+ * Revision 1.11 2000/10/08 12:10:32 mdw
+ * Make table have external linkage to bodge around deficiency in C. The
+ * problem is that @static gen generators[];@ is considered to be a
+ * `tentative definition', and therefore mustn't have incomplete type,
+ * which it obviously has.
+ *
* Revision 1.10 2000/08/11 21:34:59 mdw
* New restartable interface to Maurer testing.
*
* Revision 1.10 2000/08/11 21:34:59 mdw
* New restartable interface to Maurer testing.
*
-static gen generators[];
+extern gen generators[];
#define CIPHERS \
E(DES, des) \
#define CIPHERS \
E(DES, des) \
/*----- Generators table --------------------------------------------------*/
/*----- Generators table --------------------------------------------------*/
-static gen generators[] = {
{ "fibonacci", gen_fib, 0,
"[-s SEED]" },
{ "lc", gen_lc, 0,
{ "fibonacci", gen_fib, 0,
"[-s SEED]" },
{ "lc", gen_lc, 0,
{ #pre "-counter", gen_counter, CIPHER_##PRE, \
"[-k KEY-PHRASE] [-H HEX-KEY] [-i HEX-IV]" },
CIPHERS
{ #pre "-counter", gen_counter, CIPHER_##PRE, \
"[-k KEY-PHRASE] [-H HEX-KEY] [-i HEX-IV]" },
CIPHERS
#define E(PRE, pre) \
{ #pre "-mgf", gen_mgf, HASH_##PRE, \
"[-k KEY-PHRASE] [-H HEX-KEY] [-i INDEX]" },
HASHES
#define E(PRE, pre) \
{ #pre "-mgf", gen_mgf, HASH_##PRE, \
"[-k KEY-PHRASE] [-H HEX-KEY] [-i INDEX]" },
HASHES
{ "rc4", gen_rc4, 0,
"[-k KEY-PHRASE] [-H HEX-KEY]" },
{ "seal", gen_seal, 0,
{ "rc4", gen_rc4, 0,
"[-k KEY-PHRASE] [-H HEX-KEY]" },
{ "seal", gen_seal, 0,
if (argc > 1 && *argv[1] != '-') {
const char *arg = av[1];
size_t sz = strlen(arg);
if (argc > 1 && *argv[1] != '-') {
const char *arg = av[1];
size_t sz = strlen(arg);
g = 0;
for (gg = generators; gg->name; gg++) {
g = 0;
for (gg = generators; gg->name; gg++) {