diff --git a/src/psl2c.c b/src/psl2c.c index a6b5b6c..8b1ec95 100644 --- a/src/psl2c.c +++ b/src/psl2c.c @@ -446,7 +446,7 @@ int main(int argc, const char **argv) fprintf(fpout, "static time_t _psl_file_time = %lu;\n", st.st_mtime); fprintf(fpout, "static time_t _psl_compile_time = %lu;\n", time(NULL)); fprintf(fpout, "static const char _psl_sha1_checksum[] = \"%s\";\n", checksum); - fprintf(fpout, "static const char _psl_filename[] = \"%s\";\n", checksum); + fprintf(fpout, "static const char _psl_filename[] = \"%s\";\n", argv[1]); if (fclose(fpout) != 0) ret = 4; diff --git a/tools/Makefile.am b/tools/Makefile.am index 38d72f5..9f28b4d 100644 --- a/tools/Makefile.am +++ b/tools/Makefile.am @@ -1,5 +1,4 @@ bin_PROGRAMS = psl AM_CPPFLAGS = -I$(top_srcdir)/include -AM_LDFLAGS = -static -LDADD = ../src/libpsl.la +AM_LDFLAGS = -lpsl -L$(top_srcdir)/src diff --git a/tools/psl.c b/tools/psl.c index 9d684e6..3cc5bf2 100644 --- a/tools/psl.c +++ b/tools/psl.c @@ -36,22 +36,22 @@ #include #include -static void usage(int err) +static void usage(int err, FILE* f) { - fprintf(stderr, "\n"); - fprintf(stderr, "Usage: psl [options] \n"); - fprintf(stderr, "\n"); - fprintf(stderr, "Options:\n"); - fprintf(stderr, " --version show library version information\n"); - fprintf(stderr, " --use-builtin-data use the builtin PSL data. [default]\n"); - fprintf(stderr, " --load-psl-file load PSL data from file.\n"); - fprintf(stderr, " --is-public-suffix check if domains are public suffixes or not. [default]\n"); - fprintf(stderr, " --is-cookie-domain-acceptable \n"); - fprintf(stderr, " check if cookie-domain is acceptable for domains.\n"); - fprintf(stderr, " --print-unreg-domain print the longest publix suffix part\n"); - fprintf(stderr, " --print-reg-domain print the shortest private suffix part\n"); - fprintf(stderr, " --print-info print info about library builtin data\n"); - fprintf(stderr, "\n"); + fprintf(f, "Usage: psl [options] \n"); + fprintf(f, "\n"); + fprintf(f, "Options:\n"); + fprintf(f, " --version show library version information\n"); + fprintf(f, " --use-builtin-data use the builtin PSL data. [default]\n"); + fprintf(f, " --load-psl-file load PSL data from file.\n"); + fprintf(f, " --is-public-suffix check if domains are public suffixes or not. [default]\n"); + fprintf(f, " --is-cookie-domain-acceptable \n"); + fprintf(f, " check if cookie-domain is acceptable for domains.\n"); + fprintf(f, " --print-unreg-domain print the longest publix suffix part\n"); + fprintf(f, " --print-reg-domain print the shortest private suffix part\n"); + fprintf(f, " --print-info print info about library builtin data\n"); + fprintf(f, "\n"); + fprintf(f, "\n"); exit(err); } @@ -102,12 +102,13 @@ int main(int argc, const char *const *argv) psl_file = NULL; } if (!(psl = psl_load_file(psl_file = *(++arg)))) { - fprintf(stderr, "Failed to load PSL data from %s\n", psl_file); + fprintf(stderr, "Failed to load PSL data from %s\n\n", psl_file); psl_file = NULL; } } else if (!strcmp(*arg, "--help")) { - usage(0); + fprintf(stdout, "`psl' explores the Public Suffix List\n\n"); + usage(0, stdout); } else if (!strcmp(*arg, "--version")) { printf("psl %s\n", PACKAGE_VERSION); @@ -123,15 +124,21 @@ int main(int argc, const char *const *argv) } else { fprintf(stderr, "Unknown option '%s'\n", *arg); - usage(1); + usage(1, stderr); } } else break; } - if (!psl && mode != 99) { - printf("No PSL data available - aborting\n"); - exit(2); + if (mode != 99) { + if (!psl) { + fprintf(stderr, "No PSL data available - aborting\n"); + exit(2); + } + if (arg >= argv + argc) { + fprintf(stderr, "No domains given - aborting\n"); + exit(3); + } } if (mode == 1) {