#include <mLib/bits.h>
#include <mLib/darray.h>
#include <mLib/dstr.h>
+#include <mLib/macros.h>
#include <mLib/mdwopt.h>
#include <mLib/quis.h>
#include <mLib/report.h>
static unsigned minbits = 128, maxbits = UINT_MAX; /* Acceptable entropy */
static unsigned count = 1; /* How many passphrases to make */
-static const char wchars[] = "abcdefghijklmnopqrstuvwxyz'";
+static const char
+ all_wchars[] = "'abcdefghijklmnopqrstuvwxyz",
+ *wchars = all_wchars;
typedef struct ppgen_ops {
const char *name; /* Name of the generator */
for (;;) {
int ch = getc(fp);
- if (ch == EOF || isspace(ch)) {
+ if (ch == EOF || ISSPACE(ch)) {
DPUTZ(&d);
if (f && d.len >= min && d.len <= max)
sym_find(&w->tab, d.buf, d.len + 1, sizeof(sym_base), 0);
break;
continue;
}
- ch = tolower(ch);
+ ch = TOLOWER(ch);
if (strchr(wchars, ch)) {
DPUTC(&d, ch);
f = 1;
const char *q;
node *n = &(*model)[i][j][k];
- if (ch == EOF || isspace(ch)) {
+ if (ch == EOF || ISSPACE(ch)) {
if (l != C_END) {
l = C_END;
n->count++;
continue;
}
- if ((q = strchr(wchars, tolower(ch))) == 0)
+ if ((q = strchr(wchars, TOLOWER(ch))) == 0)
continue;
l = q - wchars;
n->count++;
{
pquis(fp, "\
Usage: $ [-p] [-b MIN[-MAX]] [-g GEN] [-n COUNT]\n\
-\t[-r [MIN-]MAX] WORDLIST...\n \
+\t[-r [MIN-]MAX] WORDLIST...\n\
");
}
{ "help", 0, 0, 'h' },
{ "version", 0, 0, 'v' },
{ "usage", 0, 0, 'u' },
+ { "no-apostrophe", 0, 0, 'A' },
{ "bits", OPTF_ARGREQ, 0, 'b' },
{ "generator", OPTF_ARGREQ, 0, 'g' },
{ "count", OPTF_ARGREQ, 0, 'n' },
{ "range", OPTF_ARGREQ, 0, 'r' },
{ 0, 0, 0, 0 }
};
- int i = mdwopt(argc, argv, "hvu b:g:n:pr:", opts, 0, 0, 0);
+ int i = mdwopt(argc, argv, "hvu Ab:g:n:pr:", opts, 0, 0, 0);
if (i < 0)
break;
case 'u':
usage(stdout);
exit(0);
+ case 'A':
+ wchars = all_wchars + 1;
+ break;
case 'b': {
char *p;
minbits = strtoul(optarg, &p, 0);
size_t n = strlen(optarg);
ops = 0;
for (p = ppgentab; *p; p++) {
- if (strncmp(optarg, (*p)->name, n) == 0) {
+ if (STRNCMP(optarg, ==, (*p)->name, n)) {
if (!(*p)->name[n]) {
ops = *p;
break;
ctx = ops->init();
while (*argv) {
- if (strcmp(*argv, "-") == 0)
+ if (STRCMP(*argv, ==, "-"))
ops->scan(stdin, ctx);
else {
FILE *fp = fopen(*argv, "r");