mirror of
https://codeberg.org/scip/diceware.git
synced 2025-12-18 03:10:57 +01:00
fix format, fix free()
This commit is contained in:
49
dicepwgen.c
49
dicepwgen.c
@@ -37,15 +37,13 @@ int usage() {
|
|||||||
"-y --symbols Replace space with -, add non-letters\n"
|
"-y --symbols Replace space with -, add non-letters\n"
|
||||||
"-d --debug Enable debug output\n"
|
"-d --debug Enable debug output\n"
|
||||||
"-v --version Print program version\n"
|
"-v --version Print program version\n"
|
||||||
"-h -? --help Print this help screen\n"
|
"-h -? --help Print this help screen\n");
|
||||||
);
|
|
||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
int WMIN, WMAX, humantoss, verbose, dontjump, symbols;
|
int WMIN, WMAX, humantoss, verbose, dontjump, symbols;
|
||||||
|
|
||||||
|
int main(int argc, char **argv) {
|
||||||
int main (int argc, char **argv) {
|
|
||||||
int count = 4;
|
int count = 4;
|
||||||
char *dictfile = NULL;
|
char *dictfile = NULL;
|
||||||
int opt;
|
int opt;
|
||||||
@@ -55,19 +53,20 @@ int main (int argc, char **argv) {
|
|||||||
humantoss = verbose = dontjump = symbols = 0;
|
humantoss = verbose = dontjump = symbols = 0;
|
||||||
|
|
||||||
static struct option longopts[] = {
|
static struct option longopts[] = {
|
||||||
{ "wordcount", required_argument, NULL, 'c' },
|
{"wordcount", required_argument, NULL, 'c'},
|
||||||
{ "minlen", required_argument, NULL, 'l' },
|
{"minlen", required_argument, NULL, 'l'},
|
||||||
{ "maxlen", required_argument, NULL, 'm' },
|
{"maxlen", required_argument, NULL, 'm'},
|
||||||
{ "humantoss", required_argument, NULL, 't' },
|
{"humantoss", required_argument, NULL, 't'},
|
||||||
{ "dictfile", required_argument, NULL, 'f' },
|
{"dictfile", required_argument, NULL, 'f'},
|
||||||
{ "dontjump", no_argument, NULL, 'n' },
|
{"dontjump", no_argument, NULL, 'n'},
|
||||||
{ "symbols", no_argument, NULL, 'y' },
|
{"symbols", no_argument, NULL, 'y'},
|
||||||
{ "version", no_argument, NULL, 'v' },
|
{"version", no_argument, NULL, 'v'},
|
||||||
{ "help", no_argument, NULL, 'h' },
|
{"help", no_argument, NULL, 'h'},
|
||||||
{ "debug", no_argument, NULL, 'd' },
|
{"debug", no_argument, NULL, 'd'},
|
||||||
};
|
};
|
||||||
|
|
||||||
while ((opt = getopt_long(argc, argv, "l:m:tf:c:vh?dny", longopts, NULL)) != -1) {
|
while ((opt = getopt_long(argc, argv, "l:m:tf:c:vh?dny", longopts, NULL)) !=
|
||||||
|
-1) {
|
||||||
switch (opt) {
|
switch (opt) {
|
||||||
case 'v':
|
case 'v':
|
||||||
fprintf(stderr, "This is %s version %s\n", argv[0], VERSION);
|
fprintf(stderr, "This is %s version %s\n", argv[0], VERSION);
|
||||||
@@ -108,11 +107,11 @@ int main (int argc, char **argv) {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if(dictfile == NULL) {
|
if (dictfile == NULL) {
|
||||||
dictfile = STRINGIZE_VALUE_OF(DICTFILE);
|
dictfile = STRINGIZE_VALUE_OF(DICTFILE);
|
||||||
}
|
}
|
||||||
|
|
||||||
if(dontjump) {
|
if (dontjump) {
|
||||||
WMIN = 0;
|
WMIN = 0;
|
||||||
WMAX = 128;
|
WMAX = 128;
|
||||||
}
|
}
|
||||||
@@ -120,7 +119,7 @@ int main (int argc, char **argv) {
|
|||||||
debug(" using dictfile: %s", dictfile);
|
debug(" using dictfile: %s", dictfile);
|
||||||
debug("minimum word length: %d", WMIN);
|
debug("minimum word length: %d", WMIN);
|
||||||
debug("maximum word length: %d", WMAX);
|
debug("maximum word length: %d", WMAX);
|
||||||
if(humantoss)
|
if (humantoss)
|
||||||
debug("user rolls dices");
|
debug("user rolls dices");
|
||||||
else
|
else
|
||||||
debug("program rolls dices");
|
debug("program rolls dices");
|
||||||
@@ -145,7 +144,7 @@ void getwords(char *dictfile, int count) {
|
|||||||
|
|
||||||
tossed = malloc(count * sizeof(int));
|
tossed = malloc(count * sizeof(int));
|
||||||
|
|
||||||
for(i=0; i<count; i++) {
|
for (i = 0; i < count; i++) {
|
||||||
tosses = toss(5, i);
|
tosses = toss(5, i);
|
||||||
|
|
||||||
one = tosses[0] * 10000;
|
one = tosses[0] * 10000;
|
||||||
@@ -161,23 +160,23 @@ void getwords(char *dictfile, int count) {
|
|||||||
free(tosses);
|
free(tosses);
|
||||||
}
|
}
|
||||||
|
|
||||||
if(symbols)
|
if (symbols)
|
||||||
sep = '-';
|
sep = '-';
|
||||||
|
|
||||||
for(i=0; i<count-1; i++) {
|
for (i = 0; i < count - 1; i++) {
|
||||||
fprintf(stdout, "%s%c", words[tossed[i]], sep);
|
fprintf(stdout, "%s%c", words[tossed[i]], sep);
|
||||||
}
|
}
|
||||||
fprintf(stdout, "%s", words[tossed[count-1]]);
|
fprintf(stdout, "%s", words[tossed[count - 1]]);
|
||||||
|
|
||||||
if(symbols)
|
if (symbols)
|
||||||
fprintf(stdout, "%%8");
|
fprintf(stdout, "%%8");
|
||||||
|
|
||||||
fprintf(stdout, "\n");
|
fprintf(stdout, "\n");
|
||||||
|
|
||||||
free(tossed);
|
free(tossed);
|
||||||
|
|
||||||
for(i=0; i<6666; i++)
|
for (i = 0; i < 66666; i++)
|
||||||
if(words[i] != NULL)
|
if (words[i] != NULL)
|
||||||
free(words[i]);
|
free(words[i]);
|
||||||
|
|
||||||
free(words);
|
free(words);
|
||||||
|
|||||||
Reference in New Issue
Block a user