Commit a80d9d176d069a5b70427fa0154b7c333550a047

Authored by Jay Berkenbilt
1 parent 9cc43c6e

add C interface for getting software version

git-svn-id: svn+q:///qpdf/trunk@903 71b93d88-0707-0410-a8cf-f5a4172ac649
ChangeLog
... ... @@ -2,7 +2,11 @@
2 2  
3 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 11 * include/qpdf/QPDF.hh (QPDF): getWarnings now returns a list of
8 12 QPDFExc rather than a list of strings. This way, warnings may be
... ...
include/qpdf/qpdf-c.h
... ... @@ -92,6 +92,10 @@ extern &quot;C&quot; {
92 92 # define QPDF_TRUE 1
93 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 99 /* Returns dynamically allocated qpdf_data pointer; must be freed
96 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 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 100 qpdf_data qpdf_init()
95 101 {
96 102 QTC::TC("qpdf", "qpdf-c called qpdf_init");
... ...
qpdf/qpdf-ctest.c
... ... @@ -292,6 +292,12 @@ int main(int argc, char* argv[])
292 292 {
293 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 301 if (argc < 5)
296 302 {
297 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 173 QPDF ERR object stream with wrong type 0
174 174 QPDF object gone after xref reconstruction 0
175 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 81 show_ntests();
82 82 # ----------
83 83 $td->notify("--- Miscellaneous Tests ---");
84   -$n_tests += 15;
  84 +$n_tests += 16;
85 85  
86 86 $td->runtest("qpdf version",
87 87 {$td->COMMAND => "qpdf --version"},
88 88 {$td->REGEXP => "qpdf version \\S+\n.*", $td->EXIT_STATUS => 0},
89 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 96 foreach (my $i = 1; $i <= 3; ++$i)
92 97 {
... ...