Commit a80d9d176d069a5b70427fa0154b7c333550a047
1 parent
9cc43c6e
add C interface for getting software version
git-svn-id: svn+q:///qpdf/trunk@903 71b93d88-0707-0410-a8cf-f5a4172ac649
Showing
6 changed files
with
28 additions
and
2 deletions
ChangeLog
| @@ -2,7 +2,11 @@ | @@ -2,7 +2,11 @@ | ||
| 2 | 2 | ||
| 3 | * 2.1.rc1: release | 3 | * 2.1.rc1: release |
| 4 | 4 | ||
| 5 | -2009-10-19 Jay Berkenbilt <jberkenb@argonst.com> | 5 | +2009-10-24 Jay Berkenbilt <ejb@ql.org> |
| 6 | + | ||
| 7 | + * Provide interfaces for getting qpdf's own version number | ||
| 8 | + | ||
| 9 | +2009-10-19 Jay Berkenbilt <ejb@ql.org> | ||
| 6 | 10 | ||
| 7 | * include/qpdf/QPDF.hh (QPDF): getWarnings now returns a list of | 11 | * include/qpdf/QPDF.hh (QPDF): getWarnings now returns a list of |
| 8 | QPDFExc rather than a list of strings. This way, warnings may be | 12 | QPDFExc rather than a list of strings. This way, warnings may be |
include/qpdf/qpdf-c.h
| @@ -92,6 +92,10 @@ extern "C" { | @@ -92,6 +92,10 @@ extern "C" { | ||
| 92 | # define QPDF_TRUE 1 | 92 | # define QPDF_TRUE 1 |
| 93 | # define QPDF_FALSE 0 | 93 | # define QPDF_FALSE 0 |
| 94 | 94 | ||
| 95 | + /* Returns the version of the qpdf software */ | ||
| 96 | + QPDF_DLL | ||
| 97 | + char const* qpdf_get_qpdf_version(); | ||
| 98 | + | ||
| 95 | /* Returns dynamically allocated qpdf_data pointer; must be freed | 99 | /* Returns dynamically allocated qpdf_data pointer; must be freed |
| 96 | * by calling qpdf_cleanup. | 100 | * by calling qpdf_cleanup. |
| 97 | */ | 101 | */ |
libqpdf/qpdf-c.cc
| @@ -91,6 +91,12 @@ static QPDF_ERROR_CODE trap_errors(qpdf_data qpdf, void (*fn)(qpdf_data)) | @@ -91,6 +91,12 @@ static QPDF_ERROR_CODE trap_errors(qpdf_data qpdf, void (*fn)(qpdf_data)) | ||
| 91 | return status; | 91 | return status; |
| 92 | } | 92 | } |
| 93 | 93 | ||
| 94 | +char const* qpdf_get_qpdf_version() | ||
| 95 | +{ | ||
| 96 | + QTC::TC("qpdf", "qpdf-c called qpdf_get_qpdf_version"); | ||
| 97 | + return QPDF::QPDFVersion().c_str(); | ||
| 98 | +} | ||
| 99 | + | ||
| 94 | qpdf_data qpdf_init() | 100 | qpdf_data qpdf_init() |
| 95 | { | 101 | { |
| 96 | QTC::TC("qpdf", "qpdf-c called qpdf_init"); | 102 | QTC::TC("qpdf", "qpdf-c called qpdf_init"); |
qpdf/qpdf-ctest.c
| @@ -292,6 +292,12 @@ int main(int argc, char* argv[]) | @@ -292,6 +292,12 @@ int main(int argc, char* argv[]) | ||
| 292 | { | 292 | { |
| 293 | whoami = argv[0]; | 293 | whoami = argv[0]; |
| 294 | } | 294 | } |
| 295 | + if ((argc == 2) && (strcmp(argv[1], "--version") == 0)) | ||
| 296 | + { | ||
| 297 | + printf("qpdf-ctest version %s\n", qpdf_get_qpdf_version()); | ||
| 298 | + return 0; | ||
| 299 | + } | ||
| 300 | + | ||
| 295 | if (argc < 5) | 301 | if (argc < 5) |
| 296 | { | 302 | { |
| 297 | fprintf(stderr, "usage: %s n infile password outfile\n", whoami); | 303 | fprintf(stderr, "usage: %s n infile password outfile\n", whoami); |
qpdf/qpdf.testcov
| @@ -173,3 +173,4 @@ QPDF_encryption stream crypt filter 0 | @@ -173,3 +173,4 @@ QPDF_encryption stream crypt filter 0 | ||
| 173 | QPDF ERR object stream with wrong type 0 | 173 | QPDF ERR object stream with wrong type 0 |
| 174 | QPDF object gone after xref reconstruction 0 | 174 | QPDF object gone after xref reconstruction 0 |
| 175 | qpdf-c called qpdf_has_error 0 | 175 | qpdf-c called qpdf_has_error 0 |
| 176 | +qpdf-c called qpdf_get_qpdf_version 0 |
qpdf/qtest/qpdf.test
| @@ -81,12 +81,17 @@ flush_tiff_cache(); | @@ -81,12 +81,17 @@ flush_tiff_cache(); | ||
| 81 | show_ntests(); | 81 | show_ntests(); |
| 82 | # ---------- | 82 | # ---------- |
| 83 | $td->notify("--- Miscellaneous Tests ---"); | 83 | $td->notify("--- Miscellaneous Tests ---"); |
| 84 | -$n_tests += 15; | 84 | +$n_tests += 16; |
| 85 | 85 | ||
| 86 | $td->runtest("qpdf version", | 86 | $td->runtest("qpdf version", |
| 87 | {$td->COMMAND => "qpdf --version"}, | 87 | {$td->COMMAND => "qpdf --version"}, |
| 88 | {$td->REGEXP => "qpdf version \\S+\n.*", $td->EXIT_STATUS => 0}, | 88 | {$td->REGEXP => "qpdf version \\S+\n.*", $td->EXIT_STATUS => 0}, |
| 89 | $td->NORMALIZE_NEWLINES); | 89 | $td->NORMALIZE_NEWLINES); |
| 90 | +$td->runtest("C API: qpdf version", | ||
| 91 | + {$td->COMMAND => "qpdf-ctest --version"}, | ||
| 92 | + {$td->REGEXP => "qpdf-ctest version \\S+\n", | ||
| 93 | + $td->EXIT_STATUS => 0}, | ||
| 94 | + $td->NORMALIZE_NEWLINES); | ||
| 90 | 95 | ||
| 91 | foreach (my $i = 1; $i <= 3; ++$i) | 96 | foreach (my $i = 1; $i <= 3; ++$i) |
| 92 | { | 97 | { |