New Upstream Snapshot - libofx

Ready changes

Summary

Merged new upstream version: 0.10.9+git20221010.2.80fd4b4 (was: 0.10.9+git20221010.1.80fd4b4).

Resulting package

Built on 2023-01-19T15:06 (took 6m52s)

The resulting binary packages can be installed (if you have the apt repository enabled) by running one of:

apt install -t fresh-snapshots libofx-devapt install -t fresh-snapshots libofx-docapt install -t fresh-snapshots libofx7-dbgsymapt install -t fresh-snapshots libofx7apt install -t fresh-snapshots ofx-dbgsymapt install -t fresh-snapshots ofx

Lintian Result

Diff

diff --git a/.github/workflows/c-cpp.yml b/.github/workflows/c-cpp.yml
deleted file mode 100644
index ec8bac5..0000000
--- a/.github/workflows/c-cpp.yml
+++ /dev/null
@@ -1,46 +0,0 @@
-name: C/C++ CI
-
-on:
-  push:
-    branches: [ "master" ]
-  pull_request:
-    branches: [ "master" ]
-
-jobs:
-  build:
-
-    runs-on: ubuntu-latest
-
-    steps:
-    - uses: actions/checkout@v3
-
-    - name: Prepare packages
-      run: |
-        sudo apt-get update
-        sudo apt-get install -y libxml++2.6-dev libosp-dev libcurl4-gnutls-dev libgetoptions-dev doc-base sgml-data
-        sudo apt-get install doxygen gengetopt
-
-    - name: autotools
-      run: |
-        ./autogen.sh
-        mkdir build
-
-    - name: configure
-      working-directory: build
-      run: ../configure
-
-    - name: make
-      working-directory: build
-      run: make -j4
-
-    - name: make check
-      working-directory: build
-      run: make check && rm -rf doc/ofx_sample_files
-
-    - name: make doc
-      working-directory: build
-      run: make doc
-
-    - name: make distcheck
-      working-directory: build
-      run: make -j4 distcheck
diff --git a/.github/workflows/cmake.yml b/.github/workflows/cmake.yml
deleted file mode 100644
index 473bb56..0000000
--- a/.github/workflows/cmake.yml
+++ /dev/null
@@ -1,38 +0,0 @@
-name: CMake
-
-on:
-  push:
-    branches: [ "master" ]
-  pull_request:
-    branches: [ "master" ]
-
-env:
-  # Customize the CMake build type here (Release, Debug, RelWithDebInfo, etc.)
-  BUILD_TYPE: Release
-
-jobs:
-  build:
-    # The CMake configure and build commands are platform agnostic and should work equally well on Windows or Mac.
-    # You can convert this to a matrix build if you need cross-platform coverage.
-    # See: https://docs.github.com/en/free-pro-team@latest/actions/learn-github-actions/managing-complex-workflows#using-a-build-matrix
-    runs-on: ubuntu-latest
-
-    steps:
-    - uses: actions/checkout@v3
-    - name: Prepare ubuntu packages
-      run: |
-        sudo apt-get update
-        sudo apt-get install -y libxml++2.6-dev libosp-dev libcurl4-gnutls-dev libgetoptions-dev doc-base sgml-data
-
-    - name: Configure CMake
-      # Configure CMake in a 'build' subdirectory.
-      run: cmake -B ${{github.workspace}}/build -DCMAKE_BUILD_TYPE=${{env.BUILD_TYPE}}
-
-    - name: Build
-      # Build your program with the given configuration
-      run: cmake --build ${{github.workspace}}/build --config ${{env.BUILD_TYPE}}
-
-    - name: Test
-      working-directory: ${{github.workspace}}/build
-      # Execute tests defined by CMake configuration.
-      run: ctest -C ${{env.BUILD_TYPE}}
diff --git a/.gitignore b/.gitignore
deleted file mode 100644
index 0541e3a..0000000
--- a/.gitignore
+++ /dev/null
@@ -1,34 +0,0 @@
-*.la
-*.lo
-*~
-.cproject
-.deps
-.directory
-.libs
-.project
-INSTALL
-Makefile
-Makefile.in
-aclocal.m4
-autom4te.cache
-build
-config
-config.h
-config.h.in
-config.log
-config.status
-configure
-libofx.pc
-libofx.spec
-libofx.lsm
-libtool
-stamp-h
-stamp-h.in
-stamp-h1
-.vscode
-build*/
-out/
-**/CMakeFiles/
-cmake_install.cmake
-CMakeCache.txt
-CMakeLists.txt.user
diff --git a/README b/README
index 0a6d656..dd0b0e0 100644
--- a/README
+++ b/README
@@ -198,16 +198,16 @@ There are several CMake options available that can be enabled/disabled to change
 | `-D OpenSP_INCLUDE_DIR`       |                                              A path, e.g. `/usr/include/opensp`                                               | Whatever `FindOpenSP.cmake` detects | A path to the OpenSP library includes. Normally `FindOpenSP.cmake` module should locate it, but if it can't or you want to override it, you can use this switch.           |
 | `-D OpenSP_LIBRARY`           |                                              A path, e.g. `/usr/lib/libosp.so.5`                                              | Whatever `FindOpenSP.cmake` detects | Like the `OpenSP_INCLUDE_DIR` above, but for the library file itself.                                                                                                      |
 
-### Vcpkg integration
+### Building sources with vcpkg
 
 vcpkg is a command-line package manager for C++, supported on macOS, Linux and Windows platforms. It is a preferred way of obtaining the dependencies due to its ability to deploy them according to a declarative [vcpkg.json](vcpkg.json) manifest file provided with the source code. This allows to maintain a set of dependencies and their corresponding versions independently for each branch and automatically switching between them as needed. It also guarantees reproducibility of the dev environment and substantially reduces the effort required to set up a working environment.
 
 Refer to the [Getting Started](https://github.com/microsoft/vcpkg#getting-started) guide on project's website on how to get started if you're not yet familiar with it.
 
-In order to build LibOFX with it, simply enabling an additional switch in your CMake command should be enough:\
+In order to build LibOFX sources with it, simply enabling an additional switch in your CMake command should be enough:\
 `-DCMAKE_TOOLCHAIN_FILE=[vcpkg root]/scripts/buildsystems/vcpkg.cmake`, where `[vcpkg root]` is your clone of the vcpkg Git repository. Alternatively, if you have `VCPKG_ROOT` environment variable set-up, you can simply enable `-D ENABLE_VCPKG_INTEGRATION=ON` switch to have it autodetect the location of the vcpkg toolchain file. See notes on the [CMake switches](#cmake-switches) available as well. 
 
-Vcpkg will automatically set-up all the required optional dependencies, per the [CMake switches](#cmake-switches) enabled via the command line. 
+Vcpkg will automatically set-up all the required optional dependencies, per the [CMake switches](#cmake-switches) enabled via the command line.
 
 ## Using classic Autotools build system
 
@@ -223,12 +223,47 @@ And as root type:
 
 # Consuming (using as a dependency in your project)
 
-LibOFX is distributed with both PkgConfig libofx.pc (materialized from [libofx.pc.in](libofx.pc.in)) and [CMake config-file package](https://cmake.org/cmake/help/latest/manual/cmake-packages.7.html) (materialized from [LibOFXConfig.cmake.in](LibOFXConfig.cmake.in)). If possible, use the latter, as it is more robust
-and can automatically locate the OpenSP dependency library via the [`FindOpenSP.cmake`](#locating-the-opensp-library-file).
+LibOFX is distributed with both the PkgConfig `libofx.pc` file (materialized from [`libofx.pc.in`](libofx.pc.in)) and
+the [CMake config-file package](https://cmake.org/cmake/help/latest/manual/cmake-packages.7.html) (materialized from
+[`LibOFXConfig.cmake.in`](LibOFXConfig.cmake.in)). If possible, use the latter, as it is more robust and can automatically
+locate the OpenSP dependency library via the [`FindOpenSP.cmake`](#locating-the-opensp-library-file). Note that a copy of
+the [`FindOpenSP.cmake`](#locating-the-opensp-library-file) module is distributed alongside the CMake config-file package
+for use in case your CMake version does not ship it. See a note in [`FindOpenSP.cmake`](#locating-the-opensp-library-file)
+for details on that.
+
+To locate the LiBOFX package, adding the following to your project's `CMakeLists.txt` should be enough:
+```cmake
+find_package(LibOFX CONFIG)
+```
+
+## Integrating in your vcpkg-compatible project
+
+While you can build LibOFX sourcecode using CMake and vcpkg from scratch (as explained [above](#building-sources-with-vcpkg)),
+for example if you wanted to actually work on its code, you may also just simply need to integrate LibOFX in your own project.
+In such case, you can resort to vcpkg to use its own [upstream portfile](https://github.com/microsoft/vcpkg/tree/master/ports/libofx)
+to do its dependency management and integration magic.
 
-A copy of [`FindOpenSP.cmake`](#locating-the-opensp-library-file) module is distributed alongside the CMake config-file package for use in case your CMake version does not ship it. See a note in
-[`FindOpenSP.cmake`](#locating-the-opensp-library-file) for details on that.
+It should be as easy as adding:
+```json
+"dependencies": [
+  "libofx"
+]
+```
+
+to your project's `vcpkg.json` manifest file. In case you wanted to also enable additional features, e.g. `ofx2qif` or  `ofxdump` tools,
+you can instead use the following expanded syntax:
+```json
+"dependencies": [
+  {
+    "name": "libofx",
+    "features": [
+      "ofxdump"
+    ]
+  }
+]
+```
 
+Refer to [vcpkg manual on manifest files](https://vcpkg.io/en/docs/maintainers/manifest-files.html) for more details.
 
 ## FAQ/Troubleshooting 
 
diff --git a/debian/changelog b/debian/changelog
index b764beb..5ced3cd 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -1,3 +1,10 @@
+libofx (1:0.10.9+git20221010.2.80fd4b4-1) UNRELEASED; urgency=low
+
+  * New upstream snapshot.
+  * New upstream snapshot.
+
+ -- Debian Janitor <janitor@jelmer.uk>  Thu, 19 Jan 2023 15:01:21 -0000
+
 libofx (1:0.10.9-1) unstable; urgency=medium
 
   [ Dylan Aïssi ]
diff --git a/lib/messages.cpp b/lib/messages.cpp
index 6e0c2b4..1e3be2c 100644
--- a/lib/messages.cpp
+++ b/lib/messages.cpp
@@ -52,7 +52,7 @@ void show_line_number()
   extern SGMLApplication::Position position;
 
 
-  if (ofx_show_position == true)
+  if (ofx_show_position)
   {
     SGMLApplication::Location *location = new SGMLApplication::Location(entity_ptr, position);
     if (location->lineNumber < LONG_MAX)
@@ -71,77 +71,77 @@ int message_out(OfxMsgType error_type, const std::string message)
   switch  (error_type)
   {
   case DEBUG :
-    if (ofx_DEBUG_msg == true)
+    if (ofx_DEBUG_msg)
     {
       std::cerr << "LibOFX DEBUG: " << message << "\n";
       show_line_number();
     }
     break;
   case DEBUG1 :
-    if (ofx_DEBUG1_msg == true)
+    if (ofx_DEBUG1_msg)
     {
       std::cerr << "LibOFX DEBUG1: " << message << "\n";
       show_line_number();
     }
     break;
   case DEBUG2 :
-    if (ofx_DEBUG2_msg == true)
+    if (ofx_DEBUG2_msg)
     {
       std::cerr << "LibOFX DEBUG2: " << message << "\n";
       show_line_number();
     }
     break;
   case DEBUG3 :
-    if (ofx_DEBUG3_msg == true)
+    if (ofx_DEBUG3_msg)
     {
       std::cerr << "LibOFX DEBUG3: " << message << "\n";
       show_line_number();
     }
     break;
   case DEBUG4 :
-    if (ofx_DEBUG4_msg == true)
+    if (ofx_DEBUG4_msg)
     {
       std::cerr << "LibOFX DEBUG4: " << message << "\n";
       show_line_number();
     }
     break;
   case DEBUG5 :
-    if (ofx_DEBUG5_msg == true)
+    if (ofx_DEBUG5_msg)
     {
       std::cerr << "LibOFX DEBUG5: " << message << "\n";
       show_line_number();
     }
     break;
   case STATUS :
-    if (ofx_STATUS_msg == true)
+    if (ofx_STATUS_msg)
     {
       std::cerr << "LibOFX STATUS: " << message << "\n";
       show_line_number();
     }
     break;
   case INFO :
-    if (ofx_INFO_msg == true)
+    if (ofx_INFO_msg)
     {
       std::cerr << "LibOFX INFO: " << message << "\n";
       show_line_number();
     }
     break;
   case WARNING :
-    if (ofx_WARNING_msg == true)
+    if (ofx_WARNING_msg)
     {
       std::cerr << "LibOFX WARNING: " << message << "\n";
       show_line_number();
     }
     break;
   case ERROR :
-    if (ofx_ERROR_msg == true)
+    if (ofx_ERROR_msg)
     {
       std::cerr << "LibOFX ERROR: " << message << "\n";
       show_line_number();
     }
     break;
   case PARSER :
-    if (ofx_PARSER_msg == true)
+    if (ofx_PARSER_msg)
     {
       std::cerr << "LibOFX PARSER: " << message << "\n";
       show_line_number();
diff --git a/lib/ofc_sgml.cpp b/lib/ofc_sgml.cpp
index 0458db2..dcecf4b 100644
--- a/lib/ofc_sgml.cpp
+++ b/lib/ofc_sgml.cpp
@@ -219,7 +219,7 @@ public:
     }
     else     //curr_container_element != NULL
     {
-      if (end_element_for_data_element == true)
+      if (end_element_for_data_element)
       {
         incoming_data = strip_whitespace(incoming_data);
 
diff --git a/lib/ofx_container_position.cpp b/lib/ofx_container_position.cpp
index a88d67a..ed400ac 100644
--- a/lib/ofx_container_position.cpp
+++ b/lib/ofx_container_position.cpp
@@ -171,7 +171,7 @@ int  OfxPositionContainer::gen_event()
 
 void OfxPositionContainer::add_account(OfxAccountData * account_data)
 {
-  if (account_data->account_id_valid == true)
+  if (account_data->account_id_valid)
   {
     data.account_ptr = account_data;
     ASSIGN_STRNCPY(data.account_id, std::string(account_data->account_id));
diff --git a/lib/ofx_container_statement.cpp b/lib/ofx_container_statement.cpp
index bca2df3..0d41d23 100644
--- a/lib/ofx_container_statement.cpp
+++ b/lib/ofx_container_statement.cpp
@@ -134,7 +134,7 @@ int  OfxStatementContainer::gen_event()
 
 void OfxStatementContainer::add_account(OfxAccountData * account_data)
 {
-  if (account_data->account_id_valid == true)
+  if (account_data->account_id_valid)
   {
     data.account_ptr = account_data;
     ASSIGN_STRNCPY(data.account_id, std::string(account_data->account_id));
diff --git a/lib/ofx_container_transaction.cpp b/lib/ofx_container_transaction.cpp
index e6a15ac..a0c599b 100644
--- a/lib/ofx_container_transaction.cpp
+++ b/lib/ofx_container_transaction.cpp
@@ -157,7 +157,7 @@ void OfxTransactionContainer::add_attribute(const std::string identifier, const
 
 void OfxTransactionContainer::add_account(OfxAccountData * account_data)
 {
-  if (account_data->account_id_valid == true)
+  if (account_data->account_id_valid)
   {
     data.account_ptr = account_data;
     ASSIGN_STRNCPY(data.account_id, std::string(account_data->account_id));
diff --git a/lib/ofx_preproc.cpp b/lib/ofx_preproc.cpp
index c91dfda..8419873 100644
--- a/lib/ofx_preproc.cpp
+++ b/lib/ofx_preproc.cpp
@@ -196,7 +196,7 @@ int ofx_proc_file(LibofxContextPtr ctx, const char * p_filename)
               message_out(ERROR, "ofx_proc_file(): putenv failed");
             }
 #define OPENSP_UTF8_WARNING_TEXT "ofx_proc_file(): OpenSP cannot process an UTF-8 XML file without garbling it.  Furthermore, on windows the support for UTF-8 encode SGML files is broken. This is worked around by forcing a single byte encoding.  If the file is indeed UTF-8, it should pass through unmolested, but you will likely get 'non SGML character number' errors, even though the output is correct."
-            if (file_is_xml == true)
+            if (file_is_xml)
             {
               /* Normally the following would be "SP_ENCODING=xml".
                * Unfortunately, opensp's generic api will garble UTF-8 if this 
@@ -288,7 +288,7 @@ int ofx_proc_file(LibofxContextPtr ctx, const char * p_filename)
 
         if (file_is_xml == true || (ofx_start == true && ofx_end == false))
         {
-          if (ofx_start == true)
+          if (ofx_start)
           {
             /* The above test won't help us if the <OFX> tag is on the same line
              * as the xml header, but as opensp can't be used to parse it anyway
@@ -350,7 +350,7 @@ int ofx_proc_file(LibofxContextPtr ctx, const char * p_filename)
     input_file.close();
     tmp_file.close();
 #ifdef HAVE_ICONV
-    if (used_iconv == true)
+    if (used_iconv)
     {
       iconv_close(conversion_descriptor);
     }
diff --git a/lib/ofx_sgml.cpp b/lib/ofx_sgml.cpp
index 2e8592e..973147c 100644
--- a/lib/ofx_sgml.cpp
+++ b/lib/ofx_sgml.cpp
@@ -282,7 +282,7 @@ public:
     }
     else     //curr_container_element != NULL
     {
-      if (end_element_for_data_element == true)
+      if (end_element_for_data_element)
       {
         incoming_data = strip_whitespace(incoming_data);
 
diff --git a/ofxdump/ofxdump.cpp b/ofxdump/ofxdump.cpp
index 529de7c..a3cc30a 100644
--- a/ofxdump/ofxdump.cpp
+++ b/ofxdump/ofxdump.cpp
@@ -43,23 +43,23 @@ int ofx_proc_security_cb(struct OfxSecurityData data, void * security_data)
 {
   char dest_string[255];
   std::cout << "ofx_proc_security():\n";
-  if (data.unique_id_valid == true)
+  if (data.unique_id_valid)
   {
     std::cout << "    Unique ID of the security: " << data.unique_id << "\n";
   }
-  if (data.unique_id_type_valid == true)
+  if (data.unique_id_type_valid)
   {
     std::cout << "    Format of the Unique ID: " << data.unique_id_type << "\n";
   }
-  if (data.unique_id2_valid == true)
+  if (data.unique_id2_valid)
   {
     std::cout << "    Unique ID of the underlying security: " << data.unique_id2 << "\n";
   }
-  if (data.unique_id2_type_valid == true)
+  if (data.unique_id2_type_valid)
   {
     std::cout << "    Format of the underlying Unique ID: " << data.unique_id2_type << "\n";
   }
-  if (data.security_type_valid == true)
+  if (data.security_type_valid)
   {
     if (data.security_type == OfxSecurityData::OFX_DEBT_SECURITY)
       strncpy(dest_string, "DEBTINFO: Debt security", sizeof(dest_string));
@@ -75,19 +75,19 @@ int ofx_proc_security_cb(struct OfxSecurityData data, void * security_data)
       strncpy(dest_string, "ERROR: unrecognized", sizeof(dest_string));
     std::cout << "    Security type: " << dest_string << "\n";
   }
-  if (data.secname_valid == true)
+  if (data.secname_valid)
   {
     std::cout << "    Name of the security: " << data.secname << "\n";
   }
-  if (data.ticker_valid == true)
+  if (data.ticker_valid)
   {
     std::cout << "    Ticker symbol: " << data.ticker << "\n";
   }
-  if (data.rating_valid == true)
+  if (data.rating_valid)
   {
     std::cout << "    Rating of the security: " << data.rating << "\n";
   }
-  if (data.unitprice_valid == true)
+  if (data.unitprice_valid)
   {
     if (data.security_type_valid == true
        && data.security_type == OfxSecurityData::OFX_DEBT_SECURITY)
@@ -95,28 +95,28 @@ int ofx_proc_security_cb(struct OfxSecurityData data, void * security_data)
     else
       std::cout << "    Price of each unit of the security: " <<  std::setiosflags(std::ios::fixed) << std::setiosflags(std::ios::showpoint) << std::setprecision(2) << data.unitprice << "\n";
   }
-  if (data.date_unitprice_valid == true)
+  if (data.date_unitprice_valid)
   {
     strftime(dest_string, sizeof(dest_string), "%c %Z", localtime(&(data.date_unitprice)));
     std::cout << "    Date as of which the unitprice is valid: " << dest_string << "\n";
   }
-  if (data.amounts_are_foreign_currency_valid == true)
+  if (data.amounts_are_foreign_currency_valid)
   {
     std::cout << "    Amounts are in foreign currency: " << (data.amounts_are_foreign_currency ? "Yes" : "No") << "\n";
   }
-  if (data.currency_valid == true)
+  if (data.currency_valid)
   {
     std::cout << "    Currency: " << data.currency << "\n";
   }
-  if (data.currency_ratio_valid == true)
+  if (data.currency_ratio_valid)
   {
     std::cout << "    Ratio of default currency to currency: " << data.currency_ratio << "\n";
   }
-  if (data.memo_valid == true)
+  if (data.memo_valid)
   {
     std::cout << "    Extra security information (memo): " << data.memo << "\n";
   }
-  if (data.asset_class_valid == true)
+  if (data.asset_class_valid)
   {
     if (data.asset_class == OfxSecurityData::OFX_ASSET_CLASS_DOMESTICBOND)
       strncpy(dest_string, "DOMESTICBOND: Domestic bond", sizeof(dest_string));
@@ -136,15 +136,15 @@ int ofx_proc_security_cb(struct OfxSecurityData data, void * security_data)
       strncpy(dest_string, "ERROR: unrecognized", sizeof(dest_string));
     std::cout << "    Asset class: " << dest_string << "\n";
   }
-  if (data.fiasset_class_valid == true)
+  if (data.fiasset_class_valid)
   {
     std::cout << "    FI defined asset class: " << data.fiasset_class << "\n";
   }
-  if (data.par_value_valid == true)
+  if (data.par_value_valid)
   {
     std::cout << "    Par value: " << data.par_value << "\n";
   }
-  if (data.debt_type_valid == true)
+  if (data.debt_type_valid)
   {
     if (data.debt_type == OfxSecurityData::OFX_DEBT_TYPE_COUPON)
       strncpy(dest_string, "COUPON: Coupon debt", sizeof(dest_string));
@@ -154,7 +154,7 @@ int ofx_proc_security_cb(struct OfxSecurityData data, void * security_data)
       strncpy(dest_string, "ERROR: unrecognized", sizeof(dest_string));
     std::cout << "    Debt type: " << dest_string << "\n";
   }
-  if (data.debt_class_valid == true)
+  if (data.debt_class_valid)
   {
     if (data.debt_class == OfxSecurityData::OFX_DEBTCLASS_TREASURY)
       strncpy(dest_string, "TREASURY: Treasury debt", sizeof(dest_string));
@@ -168,16 +168,16 @@ int ofx_proc_security_cb(struct OfxSecurityData data, void * security_data)
       strncpy(dest_string, "ERROR: unrecognized", sizeof(dest_string));
     std::cout << "    Debt class: " << dest_string << "\n";
   }
-  if (data.coupon_rate_valid == true)
+  if (data.coupon_rate_valid)
   {
     std::cout << "    Coupon rate: " << data.coupon_rate << "%\n";
   }
-  if (data.date_coupon_valid == true)
+  if (data.date_coupon_valid)
   {
     strftime(dest_string, sizeof(dest_string), "%c %Z", localtime(&(data.date_coupon)));
     std::cout << "    Date for the next coupon: " << dest_string << "\n";
   }
-  if (data.coupon_freq_valid == true)
+  if (data.coupon_freq_valid)
   {
     if (data.coupon_freq == OfxSecurityData::OFX_COUPON_FREQ_MONTHLY)
       strncpy(dest_string, "MONTHLY: Monthly coupon", sizeof(dest_string));
@@ -193,20 +193,20 @@ int ofx_proc_security_cb(struct OfxSecurityData data, void * security_data)
       strncpy(dest_string, "ERROR: unrecognized", sizeof(dest_string));
     std::cout << "    Coupon frequency: " << dest_string << "\n";
   }
-  if (data.call_price_valid == true)
+  if (data.call_price_valid)
   {
     std::cout << "    Call price (unit price): " <<  std::setiosflags(std::ios::fixed) << std::setiosflags(std::ios::showpoint) << std::setprecision(2) << data.call_price << "\n";
   }
-  if (data.yield_to_call_valid == true)
+  if (data.yield_to_call_valid)
   {
     std::cout << "    Yield to next call (rate): " << data.yield_to_call << "%\n";
   }
-  if (data.call_date_valid == true)
+  if (data.call_date_valid)
   {
     strftime(dest_string, sizeof(dest_string), "%c %Z", localtime(&(data.call_date)));
     std::cout << "    Date for the next call: " << dest_string << "\n";
   }
-  if (data.call_type_valid == true)
+  if (data.call_type_valid)
   {
     if (data.call_type == OfxSecurityData::OFX_CALL_TYPE_CALL)
       strncpy(dest_string, "CALL: Call", sizeof(dest_string));
@@ -220,16 +220,16 @@ int ofx_proc_security_cb(struct OfxSecurityData data, void * security_data)
       strncpy(dest_string, "ERROR: unrecognized", sizeof(dest_string));
     std::cout << "    Call type: " << dest_string << "\n";
   }
-  if (data.yield_to_maturity_valid == true)
+  if (data.yield_to_maturity_valid)
   {
     std::cout << "    Yield to maturity (rate): " << data.yield_to_maturity << "%\n";
   }
-  if (data.maturity_date_valid == true)
+  if (data.maturity_date_valid)
   {
     strftime(dest_string, sizeof(dest_string), "%c %Z", localtime(&(data.maturity_date)));
     std::cout << "    Maturity date: " << dest_string << "\n";
   }
-  if (data.mutual_fund_type_valid == true)
+  if (data.mutual_fund_type_valid)
   {
     if (data.mutual_fund_type == OfxSecurityData::OFX_MFTYPE_OPENEND)
       strncpy(dest_string, "OPENEND: Open ended", sizeof(dest_string));
@@ -240,7 +240,7 @@ int ofx_proc_security_cb(struct OfxSecurityData data, void * security_data)
     else
       strncpy(dest_string, "ERROR: unrecognized", sizeof(dest_string));
     std::cout << "    Mutual fund type: " << dest_string << "\n";
-  if (data.stock_type_valid == true)
+  if (data.stock_type_valid)
   {
     if (data.stock_type == OfxSecurityData::OFX_STOCKTYPE_COMMON)
       strncpy(dest_string, "COMMON: Common stock", sizeof(dest_string));
@@ -255,16 +255,16 @@ int ofx_proc_security_cb(struct OfxSecurityData data, void * security_data)
     std::cout << "    Stock type: " << dest_string << "\n";
   }
   }
-  if (data.yield_valid == true)
+  if (data.yield_valid)
   {
     std::cout << "    Current yield (rate): " << data.yield << "%\n";
   }
-  if (data.yield_asof_date_valid == true)
+  if (data.yield_asof_date_valid)
   {
     strftime(dest_string, sizeof(dest_string), "%c %Z", localtime(&(data.yield_asof_date)));
     std::cout << "    Date for which current yield is valid: " << dest_string << "\n";
   }
-  if (data.option_type_valid == true)
+  if (data.option_type_valid)
   {
     if (data.option_type == OfxSecurityData::OFX_OPTION_TYPE_CALL)
       strncpy(dest_string, "CALL: Call option", sizeof(dest_string));
@@ -274,16 +274,16 @@ int ofx_proc_security_cb(struct OfxSecurityData data, void * security_data)
       strncpy(dest_string, "ERROR: unrecognized", sizeof(dest_string));
     std::cout << "    Option type: " << dest_string << "\n";
   }
-  if (data.strike_price_valid == true)
+  if (data.strike_price_valid)
   {
     std::cout << "    Strike price: " << data.strike_price << "\n";
   }
-  if (data.date_expire_valid == true)
+  if (data.date_expire_valid)
   {
     strftime(dest_string, sizeof(dest_string), "%c %Z", localtime(&(data.date_expire)));
     std::cout << "    Expiration date: " << dest_string << "\n";
   }
-  if (data.shares_per_cont_valid == true)
+  if (data.shares_per_cont_valid)
   {
     std::cout << "    Shares per contract: " << data.shares_per_cont << "\n";
   }
@@ -296,12 +296,12 @@ int ofx_proc_transaction_cb(struct OfxTransactionData data, void * transaction_d
   char dest_string[255];
   std::cout << "ofx_proc_transaction():\n";
 
-  if (data.account_id_valid == true)
+  if (data.account_id_valid)
   {
     std::cout << "    Account ID : " << data.account_id << "\n";
   }
 
-  if (data.transactiontype_valid == true)
+  if (data.transactiontype_valid)
   {
     if (data.transactiontype == OFX_CREDIT)
       strncpy(dest_string, "CREDIT: Generic credit", sizeof(dest_string));
@@ -343,34 +343,34 @@ int ofx_proc_transaction_cb(struct OfxTransactionData data, void * transaction_d
   }
 
 
-  if (data.date_initiated_valid == true)
+  if (data.date_initiated_valid)
   {
     strftime(dest_string, sizeof(dest_string), "%c %Z", localtime(&(data.date_initiated)));
     std::cout << "    Date initiated: " << dest_string << "\n";
   }
-  if (data.date_posted_valid == true)
+  if (data.date_posted_valid)
   {
     strftime(dest_string, sizeof(dest_string), "%c %Z", localtime(&(data.date_posted)));
     std::cout << "    Date posted: " << dest_string << "\n";
   }
-  if (data.date_funds_available_valid == true)
+  if (data.date_funds_available_valid)
   {
     strftime(dest_string, sizeof(dest_string), "%c %Z", localtime(&(data.date_funds_available)));
     std::cout << "    Date funds are available: " << dest_string << "\n";
   }
-  if (data.amount_valid == true)
+  if (data.amount_valid)
   {
     std::cout << "    Total money amount: " << std::setiosflags(std::ios::fixed) << std::setiosflags(std::ios::showpoint) << std::setprecision(2) << data.amount << "\n";
   }
-  if (data.units_valid == true)
+  if (data.units_valid)
   {
     if (data.invtransactiontype_valid)
     {
       std::cout << "    # of units: " << std::setiosflags(std::ios::fixed) << std::setiosflags(std::ios::showpoint) << std::setprecision(4) << data.units;
       strncpy(dest_string, " (bonds: face value; options: contracts; all others: shares)", sizeof(dest_string));
-      if (data.security_data_valid == true)
+      if (data.security_data_valid)
       {
-        if (data.security_data_ptr->security_type_valid == true)
+        if (data.security_data_ptr->security_type_valid)
         {
           if (data.security_data_ptr->security_type == OfxSecurityData::OFX_DEBT_SECURITY)
             strncpy(dest_string, " (face value)", sizeof(dest_string));
@@ -388,26 +388,26 @@ int ofx_proc_transaction_cb(struct OfxTransactionData data, void * transaction_d
       std::cout << "    # of units: " << std::setiosflags(std::ios::fixed) << std::setiosflags(std::ios::showpoint) << std::setprecision(2) << data.units;
     std::cout << "\n";
   }
-  if (data.oldunits_valid == true)
+  if (data.oldunits_valid)
   {
     if (data.invtransactiontype_valid)
       std::cout << "    # of units before split: " << std::setiosflags(std::ios::fixed) << std::setiosflags(std::ios::showpoint) << std::setprecision(4) << data.oldunits << "\n";
     else
       std::cout << "    # of units before split: " << std::setiosflags(std::ios::fixed) << std::setiosflags(std::ios::showpoint) << std::setprecision(2) << data.oldunits << "\n";
   }
-  if (data.newunits_valid == true)
+  if (data.newunits_valid)
   {
     std::cout << "    # of units after split: " << std::setprecision(4) << data.newunits << "\n";
   }
-  if (data.unitprice_valid == true)
+  if (data.unitprice_valid)
   {
     if (data.invtransactiontype_valid)
     {
       std::cout << "    Unit price: " <<  std::setiosflags(std::ios::fixed) << std::setiosflags(std::ios::showpoint) << std::setprecision(4) << data.unitprice;
       strncpy(dest_string, " (bonds: % of par; options: premium per share of underlying; all others: price per share)\n", sizeof(dest_string));
-      if (data.security_data_valid == true)
+      if (data.security_data_valid)
       {
-        if (data.security_data_ptr->security_type_valid == true)
+        if (data.security_data_ptr->security_type_valid)
         {
           if (data.security_data_ptr->security_type == OfxSecurityData::OFX_DEBT_SECURITY)
           {
@@ -426,35 +426,35 @@ int ofx_proc_transaction_cb(struct OfxTransactionData data, void * transaction_d
     else
       std::cout << "    Unit price: " <<  std::setiosflags(std::ios::fixed) << std::setiosflags(std::ios::showpoint) << std::setprecision(2) << data.unitprice << "\n";
  }
-  if (data.fees_valid == true)
+  if (data.fees_valid)
   {
     std::cout << "    Fees: " << std::setiosflags(std::ios::fixed) << std::setiosflags(std::ios::showpoint) << std::setprecision(2) << data.fees << "\n";
   }
-  if (data.commission_valid == true)
+  if (data.commission_valid)
   {
     std::cout << "    Commission: " << std::setiosflags(std::ios::fixed) << std::setiosflags(std::ios::showpoint) << std::setprecision(2) << data.commission << "\n";
   }
-  if (data.amounts_are_foreign_currency_valid == true)
+  if (data.amounts_are_foreign_currency_valid)
   {
     std::cout << "    Amounts are in foreign currency: " << (data.amounts_are_foreign_currency ? "Yes" : "No") << "\n";
   }
-  if (data.currency_valid == true)
+  if (data.currency_valid)
   {
     std::cout << "    Currency: " << data.currency << "\n";
   }
-  if (data.currency_ratio_valid == true)
+  if (data.currency_ratio_valid)
   {
     std::cout << "    Ratio of default currency to currency: " << data.currency_ratio << "\n";
   }
-  if (data.fi_id_valid == true)
+  if (data.fi_id_valid)
   {
     std::cout << "    Financial institution's ID for this transaction: " << data.fi_id << "\n";
   }
-  if (data.fi_id_corrected_valid == true)
+  if (data.fi_id_corrected_valid)
   {
     std::cout << "    Financial institution ID replaced or corrected by this transaction: " << data.fi_id_corrected << "\n";
   }
-  if (data.fi_id_correction_action_valid == true)
+  if (data.fi_id_correction_action_valid)
   {
     std::cout << "    Action to take on the corrected transaction: ";
     if (data.fi_id_correction_action == DELETE)
@@ -464,7 +464,7 @@ int ofx_proc_transaction_cb(struct OfxTransactionData data, void * transaction_d
     else
       std::cout << "ofx_proc_transaction(): This should not happen!\n";
   }
-  if (data.invtransactiontype_valid == true)
+  if (data.invtransactiontype_valid)
   {
     std::cout << "    Investment transaction type: ";
     if (data.invtransactiontype == OFX_BUYDEBT)
@@ -512,51 +512,51 @@ int ofx_proc_transaction_cb(struct OfxTransactionData data, void * transaction_d
 
     std::cout << dest_string << "\n";
   }
-  if (data.unique_id_valid == true)
+  if (data.unique_id_valid)
   {
     std::cout << "    Unique ID of the security being traded: " << data.unique_id << "\n";
   }
-  if (data.unique_id_type_valid == true)
+  if (data.unique_id_type_valid)
   {
     std::cout << "    Format of the Unique ID: " << data.unique_id_type << "\n";
   }
-  if (data.server_transaction_id_valid == true)
+  if (data.server_transaction_id_valid)
   {
     std::cout << "    Server's transaction ID (confirmation number): " << data.server_transaction_id << "\n";
   }
-  if (data.check_number_valid == true)
+  if (data.check_number_valid)
   {
     std::cout << "    Check number: " << data.check_number << "\n";
   }
-  if (data.reference_number_valid == true)
+  if (data.reference_number_valid)
   {
     std::cout << "    Reference number: " << data.reference_number << "\n";
   }
-  if (data.standard_industrial_code_valid == true)
+  if (data.standard_industrial_code_valid)
   {
     std::cout << "    Standard Industrial Code: " << data.standard_industrial_code << "\n";
   }
-  if (data.payee_id_valid == true)
+  if (data.payee_id_valid)
   {
     std::cout << "    Payee_id: " << data.payee_id << "\n";
   }
-  if (data.name_valid == true)
+  if (data.name_valid)
   {
     std::cout << "    Name of payee or transaction description: " << data.name << "\n";
   }
-  if (data.memo_valid == true)
+  if (data.memo_valid)
   {
     std::cout << "    Extra transaction information (memo): " << data.memo << "\n";
   }
-  if (data.accrued_interest_valid == true)
+  if (data.accrued_interest_valid)
   {
     std::cout << "    Accrued Interest: " << std::setiosflags(std::ios::fixed) << std::setiosflags(std::ios::showpoint) << std::setprecision(2) << data.accrued_interest << "\n";
   }
-  if (data.avg_cost_basis_valid == true)
+  if (data.avg_cost_basis_valid)
   {
     std::cout << "    Average cost basis: " << std::setiosflags(std::ios::fixed) << std::setiosflags(std::ios::showpoint) << std::setprecision(2) << data.avg_cost_basis << "\n";
   }
-  if (data.buy_type_valid == true)
+  if (data.buy_type_valid)
   {
     if (data.buy_type == OfxTransactionData::OFX_BUY_TYPE_BUY)
       strncpy(dest_string, "BUY: Buy", sizeof(dest_string));
@@ -570,29 +570,29 @@ int ofx_proc_transaction_cb(struct OfxTransactionData data, void * transaction_d
       strncpy(dest_string,"ERROR: unrecognized", sizeof(dest_string));
     std::cout << "    Buy type: " << dest_string << "\n";
   }
-  if (data.denominator_valid == true)
+  if (data.denominator_valid)
   {
     std::cout << "    Stock split ratio denominator: " << data.denominator << "\n";
   }
-  if (data.date_payroll_valid == true)
+  if (data.date_payroll_valid)
   {
     strftime(dest_string, sizeof(dest_string), "%c %Z", localtime(&(data.date_payroll)));
     std::cout << "    Date 401(k) funds were deducted from payroll: " << dest_string << "\n";
   }
-  if (data.date_purchase_valid == true)
+  if (data.date_purchase_valid)
   {
     strftime(dest_string, sizeof(dest_string), "%c %Z", localtime(&(data.date_purchase)));
     std::cout << "    Original purchase date of the security: " << dest_string << "\n";
   }
-  if (data.gain_valid == true)
+  if (data.gain_valid)
   {
     std::cout << "    Average cost basis: " << std::setiosflags(std::ios::fixed) << std::setiosflags(std::ios::showpoint) << std::setprecision(2) << data.gain << "\n";
   }
-  if (data.cash_for_fractional_valid == true)
+  if (data.cash_for_fractional_valid)
   {
     std::cout << "    Average cost basis: " << std::setiosflags(std::ios::fixed) << std::setiosflags(std::ios::showpoint) << std::setprecision(2) << data.cash_for_fractional << "\n";
   }
-  if (data.income_type_valid == true)
+  if (data.income_type_valid)
   {
     if (data.income_type == OfxTransactionData::OFX_CGLONG)
       strncpy(dest_string, "CGLONG: Long term capital gains", sizeof(dest_string));
@@ -608,7 +608,7 @@ int ofx_proc_transaction_cb(struct OfxTransactionData data, void * transaction_d
       strncpy(dest_string,"ERROR: unrecognized", sizeof(dest_string));
     std::cout << "    Income type: " << dest_string << "\n";
   }
-  if (data.inv_401k_source_valid == true)
+  if (data.inv_401k_source_valid)
   {
     if (data.inv_401k_source == OfxTransactionData::OFX_401K_SOURCE_PRETAX)
       strncpy(dest_string, "PRETAX", sizeof(dest_string));
@@ -628,35 +628,35 @@ int ofx_proc_transaction_cb(struct OfxTransactionData data, void * transaction_d
       strncpy(dest_string,"ERROR: unrecognized", sizeof(dest_string));
     std::cout << "    Source of 401(k) money: " << dest_string << "\n";
   }
-  if (data.load_valid == true)
+  if (data.load_valid)
   {
     std::cout << "    Load (amount): " << std::setiosflags(std::ios::fixed) << std::setiosflags(std::ios::showpoint) << std::setprecision(2) << data.load << "\n";
   }
-  if (data.loan_id_valid == true)
+  if (data.loan_id_valid)
   {
     std::cout << "    401(k) loan id: " << data.loan_id << "\n";
   }
-  if (data.loan_interest_valid == true)
+  if (data.loan_interest_valid)
   {
     std::cout << "    401(k) loan interest (amount): " << std::setiosflags(std::ios::fixed) << std::setiosflags(std::ios::showpoint) << std::setprecision(2) << data.loan_interest << "\n";
   }
-  if (data.loan_principal_valid == true)
+  if (data.loan_principal_valid)
   {
     std::cout << "    401(k) loan principle (amount): " << std::setiosflags(std::ios::fixed) << std::setiosflags(std::ios::showpoint) << std::setprecision(2) << data.loan_principal << "\n";
   }
-  if (data.markdown_valid == true)
+  if (data.markdown_valid)
   {
     std::cout << "    Markdown (unitprice): " << std::setiosflags(std::ios::fixed) << std::setiosflags(std::ios::showpoint) << std::setprecision(2) << data.markdown << "\n";
   }
-  if (data.markup_valid == true)
+  if (data.markup_valid)
   {
     std::cout << "    Markup (unitprice): " << std::setiosflags(std::ios::fixed) << std::setiosflags(std::ios::showpoint) << std::setprecision(2) << data.markup << "\n";
   }
-  if (data.numerator_valid == true)
+  if (data.numerator_valid)
   {
     std::cout << "    Stock split ratio numerator: " << data.numerator << "\n";
   }
-  if (data.opt_action_valid == true)
+  if (data.opt_action_valid)
   {
     if (data.opt_action == OfxTransactionData::OFX_OPTACTION_EXERCISE)
       strncpy(dest_string, "EXERCISE", sizeof(dest_string));
@@ -668,11 +668,11 @@ int ofx_proc_transaction_cb(struct OfxTransactionData data, void * transaction_d
       strncpy(dest_string,"ERROR: unrecognized", sizeof(dest_string));
     std::cout << "    Option action: " << dest_string << "\n";
   }
-  if (data.penalty_valid == true)
+  if (data.penalty_valid)
   {
     std::cout << "    Penalty withheld (amount): " << std::setiosflags(std::ios::fixed) << std::setiosflags(std::ios::showpoint) << std::setprecision(2) << data.penalty << "\n";
   }
-  if (data.pos_type_valid == true)
+  if (data.pos_type_valid)
   {
     if (data.pos_type == OfxTransactionData::OFX_POSTYPE_LONG)
       strncpy(dest_string, "LONG", sizeof(dest_string));
@@ -682,15 +682,15 @@ int ofx_proc_transaction_cb(struct OfxTransactionData data, void * transaction_d
       strncpy(dest_string,"ERROR: unrecognized", sizeof(dest_string));
     std::cout << "    Position Type: " << dest_string << "\n";
   }
-  if (data.prior_year_contrib_valid == true)
+  if (data.prior_year_contrib_valid)
   {
     std::cout << "    Prior year 401(k) contribution: " << (data.prior_year_contrib ? "Yes" : "No") << "\n";
   }
-  if (data.related_fi_tid_valid == true)
+  if (data.related_fi_tid_valid)
   {
     std::cout << "    Related transaction TID: " << data.related_fi_tid << "\n";
   }
-  if (data.related_type_valid == true)
+  if (data.related_type_valid)
   {
     if (data.related_type == OfxTransactionData::OFX_RELTYPE_SPREAD)
       strncpy(dest_string, "SPREAD", sizeof(dest_string));
@@ -704,7 +704,7 @@ int ofx_proc_transaction_cb(struct OfxTransactionData data, void * transaction_d
       strncpy(dest_string,"ERROR: unrecognized", sizeof(dest_string));
     std::cout << "    Related Option Type: " << dest_string << "\n";
   }
-  if (data.option_secured_valid == true)
+  if (data.option_secured_valid)
   {
     if (data.option_secured == OfxTransactionData::OFX_SECURED_NAKED)
       strncpy(dest_string, "NAKED", sizeof(dest_string));
@@ -714,7 +714,7 @@ int ofx_proc_transaction_cb(struct OfxTransactionData data, void * transaction_d
       strncpy(dest_string,"ERROR: unrecognized", sizeof(dest_string));
     std::cout << "    How is the option secured: " << dest_string << "\n";
   }
-  if (data.sell_reason_valid == true)
+  if (data.sell_reason_valid)
   {
     if (data.sell_reason == OfxTransactionData::OFX_SELLREASON_CALL)
       strncpy(dest_string, "CALL: the debt was called", sizeof(dest_string));
@@ -726,7 +726,7 @@ int ofx_proc_transaction_cb(struct OfxTransactionData data, void * transaction_d
       strncpy(dest_string,"ERROR: unrecognized", sizeof(dest_string));
     std::cout << "    Reason for the debt sell: " << dest_string << "\n";
   }
-  if (data.sell_type_valid == true)
+  if (data.sell_type_valid)
   {
     if (data.sell_type == OfxTransactionData::OFX_SELL_TYPE_SELL)
       strncpy(dest_string, "SELL: Sell", sizeof(dest_string));
@@ -740,15 +740,15 @@ int ofx_proc_transaction_cb(struct OfxTransactionData data, void * transaction_d
       strncpy(dest_string,"ERROR: unrecognized", sizeof(dest_string));
     std::cout << "    Sell type: " << dest_string << "\n";
   }
-  if (data.shares_per_cont_valid == true)
+  if (data.shares_per_cont_valid)
   {
     std::cout << "    Shares per option contract: " << data.shares_per_cont << "\n";
   }
-  if (data.state_withholding_valid == true)
+  if (data.state_withholding_valid)
   {
     std::cout << "    State taxes withheld: " <<  std::setiosflags(std::ios::fixed) << std::setiosflags(std::ios::showpoint) << std::setprecision(2) << data.state_withholding << "\n";
   }
-  if (data.subacct_from_valid == true)
+  if (data.subacct_from_valid)
   {
     if (data.subacct_from == OfxTransactionData::OFX_SUBACCT_CASH)
       strncpy(dest_string, "CASH", sizeof(dest_string));
@@ -762,7 +762,7 @@ int ofx_proc_transaction_cb(struct OfxTransactionData data, void * transaction_d
       strncpy(dest_string,"ERROR: unrecognized", sizeof(dest_string));
     std::cout << "    From sub account type: " << dest_string << "\n";
   }
-  if (data.subacct_funding_valid == true)
+  if (data.subacct_funding_valid)
   {
     if (data.subacct_funding == OfxTransactionData::OFX_SUBACCT_CASH)
       strncpy(dest_string, "CASH", sizeof(dest_string));
@@ -776,7 +776,7 @@ int ofx_proc_transaction_cb(struct OfxTransactionData data, void * transaction_d
       strncpy(dest_string,"ERROR: unrecognized", sizeof(dest_string));
     std::cout << "    Funding sub account type: " << dest_string << "\n";
   }
-  if (data.subacct_security_valid == true)
+  if (data.subacct_security_valid)
   {
     if (data.subacct_security == OfxTransactionData::OFX_SUBACCT_CASH)
       strncpy(dest_string, "CASH", sizeof(dest_string));
@@ -790,7 +790,7 @@ int ofx_proc_transaction_cb(struct OfxTransactionData data, void * transaction_d
       strncpy(dest_string,"ERROR: unrecognized", sizeof(dest_string));
     std::cout << "    Security sub account type: " << dest_string << "\n";
   }
-  if (data.subacct_to_valid == true)
+  if (data.subacct_to_valid)
   {
     if (data.subacct_to == OfxTransactionData::OFX_SUBACCT_CASH)
       strncpy(dest_string, "CASH", sizeof(dest_string));
@@ -804,15 +804,15 @@ int ofx_proc_transaction_cb(struct OfxTransactionData data, void * transaction_d
       strncpy(dest_string,"ERROR: unrecognized", sizeof(dest_string));
     std::cout << "    To sub account type: " << dest_string << "\n";
   }
-  if (data.taxes_valid == true)
+  if (data.taxes_valid)
   {
     std::cout << "    Tax on the trade (amount): " <<  std::setiosflags(std::ios::fixed) << std::setiosflags(std::ios::showpoint) << std::setprecision(2) << data.taxes << "\n";
   }
-  if (data.tax_exempt_valid == true)
+  if (data.tax_exempt_valid)
   {
     std::cout << "    Tax exempt: " << (data.tax_exempt ? "Yes" : "No") << "\n";
   }
-  if (data.transfer_action_valid == true)
+  if (data.transfer_action_valid)
   {
     if (data.transfer_action == OfxTransactionData::OFX_TFERACTION_IN)
       strncpy(dest_string, "IN", sizeof(dest_string));
@@ -822,7 +822,7 @@ int ofx_proc_transaction_cb(struct OfxTransactionData data, void * transaction_d
       strncpy(dest_string,"ERROR: unrecognized", sizeof(dest_string));
     std::cout << "    Action for the transfer: " << dest_string << "\n";
   }
-  if (data.unit_type_valid == true)
+  if (data.unit_type_valid)
   {
     if (data.unit_type == OfxTransactionData::OFX_UNITTYPE_SHARES)
       strncpy(dest_string, "SHARES", sizeof(dest_string));
@@ -832,11 +832,11 @@ int ofx_proc_transaction_cb(struct OfxTransactionData data, void * transaction_d
       strncpy(dest_string,"ERROR: unrecognized", sizeof(dest_string));
     std::cout << "    Type of the Units value: " << dest_string << "\n";
   }
-  if (data.withholding_valid == true)
+  if (data.withholding_valid)
   {
     std::cout << "    Federal tax withheld (amount): " <<  std::setiosflags(std::ios::fixed) << std::setiosflags(std::ios::showpoint) << std::setprecision(2) << data.withholding << "\n";
   }
-  if (data.security_data_valid == true)
+  if (data.security_data_valid)
   {
     ofx_proc_security_cb(*(data.security_data_ptr), NULL );
   }
@@ -848,19 +848,19 @@ int ofx_proc_position_cb(struct OfxPositionData data, void * position_data)
 {
   char dest_string[255];
   std::cout << "ofx_proc_position():\n";
-  if (data.account_id_valid == true)
+  if (data.account_id_valid)
   {
     std::cout << "    Account ID: " << data.account_id << "\n";
   }
-  if (data.unique_id_valid == true)
+  if (data.unique_id_valid)
   {
     std::cout << "    Unique ID of the security: " << data.unique_id << "\n";
   }
-  if (data.unique_id_type_valid == true)
+  if (data.unique_id_type_valid)
   {
     std::cout << "    Format of the Unique ID: " << data.unique_id_type << "\n";
   }
-  if (data.heldinaccount_type_valid == true)
+  if (data.heldinaccount_type_valid)
   {
     if (data.heldinaccount_type == OfxPositionData::OFX_HELDINACCT_CASH)
       strncpy(dest_string, "CASH: Cash subaccount", sizeof(dest_string));
@@ -874,7 +874,7 @@ int ofx_proc_position_cb(struct OfxPositionData data, void * position_data)
       strncpy(dest_string, "ERROR: unrecognized", sizeof(dest_string));
     std::cout << "    Held in account type: " << dest_string << "\n";
   }
-  if (data.position_type_valid == true)
+  if (data.position_type_valid)
   {
     if (data.position_type == OfxPositionData::OFX_POSITION_SHORT)
       strncpy(dest_string, "SHORT: Short (writer for options, short for all others)", sizeof(dest_string));
@@ -884,13 +884,13 @@ int ofx_proc_position_cb(struct OfxPositionData data, void * position_data)
       strncpy(dest_string, "ERROR: unrecognized", sizeof(dest_string));
     std::cout << "    Position type: " << dest_string << "\n";
   }
-  if (data.units_valid == true)
+  if (data.units_valid)
   {
     std::cout << "    Units: " << std::setprecision(4) << data.units;
     strncpy(dest_string, " (bonds: face value; options: contracts; all others: shares)\n", sizeof(dest_string));
-    if (data.security_data_valid == true)
+    if (data.security_data_valid)
     {
-      if (data.security_data_ptr->security_type_valid == true)
+      if (data.security_data_ptr->security_type_valid)
       {
         if (data.security_data_ptr->security_type == OfxSecurityData::OFX_DEBT_SECURITY)
           strncpy(dest_string, " (face value)\n", sizeof(dest_string));
@@ -904,13 +904,13 @@ int ofx_proc_position_cb(struct OfxPositionData data, void * position_data)
     }
     std::cout << dest_string;
   }
-  if (data.unit_price_valid == true)
+  if (data.unit_price_valid)
   {
-    if (data.security_data_valid == true)
+    if (data.security_data_valid)
     {
       std::cout << "    Unit price: " <<  std::setiosflags(std::ios::fixed) << std::setiosflags(std::ios::showpoint) << std::setprecision(4) << data.unit_price;
       strncpy(dest_string, " (bonds: % of par; options: premium per share of underlying; all others: price per share)\n", sizeof(dest_string));
-      if (data.security_data_ptr->security_type_valid == true)
+      if (data.security_data_ptr->security_type_valid)
       {
         if (data.security_data_ptr->security_type == OfxSecurityData::OFX_DEBT_SECURITY)
           strncpy(dest_string, "% (% of par)\n", sizeof(dest_string));
@@ -926,32 +926,32 @@ int ofx_proc_position_cb(struct OfxPositionData data, void * position_data)
     else
       std::cout << "    Unit price: " <<  std::setiosflags(std::ios::fixed) << std::setiosflags(std::ios::showpoint) << std::setprecision(2) << data.unit_price << "\n";
   }
-  if (data.market_value_valid == true)
+  if (data.market_value_valid)
   {
     std::cout << "    Market Value: " << data.market_value << "\n";
   }
-  if (data.amounts_are_foreign_currency_valid == true)
+  if (data.amounts_are_foreign_currency_valid)
   {
     std::cout << "    Amounts are in foreign currency: " << (data.amounts_are_foreign_currency ? "Yes" : "No") << "\n";
   }
-  if (data.currency_valid == true)
+  if (data.currency_valid)
   {
     std::cout << "    Currency: " << data.currency << "\n";
   }
-  if (data.currency_ratio_valid == true)
+  if (data.currency_ratio_valid)
   {
     std::cout << "    Ratio of default currency to currency: " << data.currency_ratio << "\n";
   }
-  if (data.date_unit_price_valid == true)
+  if (data.date_unit_price_valid)
   {
     strftime(dest_string, sizeof(dest_string), "%c %Z", localtime(&(data.date_unit_price)));
     std::cout << "    Date of unit price: " << dest_string << "\n";
   }
-  if (data.memo_valid == true)
+  if (data.memo_valid)
   {
     std::cout << "    Extra position information (memo): " << data.memo << "\n";
   }
-  if (data.inv_401k_source_valid == true)
+  if (data.inv_401k_source_valid)
   {
     if (data.inv_401k_source == OfxPositionData::OFX_401K_POSN_SOURCE_PRETAX)
       strncpy(dest_string, "PRETAX", sizeof(dest_string));
@@ -971,7 +971,7 @@ int ofx_proc_position_cb(struct OfxPositionData data, void * position_data)
       strncpy(dest_string,"ERROR: unrecognized", sizeof(dest_string));
     std::cout << "    Source of 401(k) money: " << dest_string << "\n";
   }
-  if (data.security_data_valid == true)
+  if (data.security_data_valid)
   {
     ofx_proc_security_cb(*(data.security_data_ptr), NULL );
   }
@@ -983,60 +983,60 @@ int ofx_proc_statement_cb(struct OfxStatementData data, void * statement_data)
 {
   char dest_string[255];
   std::cout << "ofx_proc_statement():\n";
-  if (data.currency_valid == true)
+  if (data.currency_valid)
   {
     std::cout << "    Default Currency: " << data.currency << "\n";
   }
-  if (data.account_id_valid == true)
+  if (data.account_id_valid)
   {
     std::cout << "    Account ID: " << data.account_id << "\n";
   }
-  if (data.date_asof_valid == true)
+  if (data.date_asof_valid)
   {
     strftime(dest_string, sizeof(dest_string), "%c %Z", localtime(&(data.date_asof)));
     std::cout << "    Statement as-of date: " << dest_string << "\n";
   }
-  if (data.date_start_valid == true)
+  if (data.date_start_valid)
   {
     strftime(dest_string, sizeof(dest_string), "%c %Z", localtime(&(data.date_start)));
     std::cout << "    Start date of this statement: " << dest_string << "\n";
   }
-  if (data.date_end_valid == true)
+  if (data.date_end_valid)
   {
     strftime(dest_string, sizeof(dest_string), "%c %Z", localtime(&(data.date_end)));
     std::cout << "    End date of this statement: " << dest_string << "\n";
   }
-  if (data.ledger_balance_valid == true)
+  if (data.ledger_balance_valid)
   {
     std::cout << "    Ledger balance: " << std::setiosflags(std::ios::fixed) << std::setiosflags(std::ios::showpoint) << std::setprecision(2) << data.ledger_balance << "\n";
   }
-  if (data.ledger_balance_date_valid == true)
+  if (data.ledger_balance_date_valid)
   {
     strftime(dest_string, sizeof(dest_string), "%c %Z", localtime(&(data.ledger_balance_date)));
     std::cout << "    Ledger balance date: " << dest_string << "\n";
   }
-  if (data.available_balance_valid == true)
+  if (data.available_balance_valid)
   {
     std::cout << "    Available balance: " << std::setiosflags(std::ios::fixed) << std::setiosflags(std::ios::showpoint) << std::setprecision(2) << data.available_balance << "\n";
   }
-  if (data.available_balance_date_valid == true)
+  if (data.available_balance_date_valid)
   {
     strftime(dest_string, sizeof(dest_string), "%c %Z", localtime(&(data.available_balance_date)));
     std::cout << "    Available balance date: " << dest_string << "\n";
   }
-  if (data.margin_balance_valid == true)
+  if (data.margin_balance_valid)
   {
     std::cout << "    Margin balance: " << std::setiosflags(std::ios::fixed) << std::setiosflags(std::ios::showpoint) << std::setprecision(2) << data.margin_balance << "\n";
   }
-  if (data.short_balance_valid == true)
+  if (data.short_balance_valid)
   {
     std::cout << "    Short balance: " << std::setiosflags(std::ios::fixed) << std::setiosflags(std::ios::showpoint) << std::setprecision(2) << data.short_balance << "\n";
   }
-  if (data.buying_power_valid == true)
+  if (data.buying_power_valid)
   {
     std::cout << "    Buying power: " << std::setiosflags(std::ios::fixed) << std::setiosflags(std::ios::showpoint) << std::setprecision(2) << data.buying_power << "\n";
   }
-  if (data.marketing_info_valid == true)
+  if (data.marketing_info_valid)
   {
     std::cout << "    Marketing information: " << data.marketing_info << "\n";
   }
@@ -1047,12 +1047,12 @@ int ofx_proc_statement_cb(struct OfxStatementData data, void * statement_data)
 int ofx_proc_account_cb(struct OfxAccountData data, void * account_data)
 {
   std::cout << "ofx_proc_account():\n";
-  if (data.account_id_valid == true)
+  if (data.account_id_valid)
   {
     std::cout << "    Account ID: " << data.account_id << "\n";
     std::cout << "    Account name: " << data.account_name << "\n";
   }
-  if (data.account_type_valid == true)
+  if (data.account_type_valid)
   {
     std::cout << "    Account type: ";
     switch (data.account_type)
@@ -1082,7 +1082,7 @@ int ofx_proc_account_cb(struct OfxAccountData data, void * account_data)
       std::cout << "ofx_proc_account() WRITEME: This is an unknown account type!";
     }
   }
-  if (data.currency_valid == true)
+  if (data.currency_valid)
   {
     std::cout << "    Default Currency: " << data.currency << "\n";
   }
@@ -1105,11 +1105,11 @@ int ofx_proc_account_cb(struct OfxAccountData data, void * account_data)
 int ofx_proc_status_cb(struct OfxStatusData data, void * status_data)
 {
   std::cout << "ofx_proc_status():\n";
-  if (data.ofx_element_name_valid == true)
+  if (data.ofx_element_name_valid)
   {
     std::cout << "    Ofx entity this status is relevant to: " << data.ofx_element_name << " \n";
   }
-  if (data.severity_valid == true)
+  if (data.severity_valid)
   {
     std::cout << "    Severity: ";
     switch (data.severity)
@@ -1127,11 +1127,11 @@ int ofx_proc_status_cb(struct OfxStatusData data, void * status_data)
       std::cout << "WRITEME: Unknown status severity!\n";
     }
   }
-  if (data.code_valid == true)
+  if (data.code_valid)
   {
     std::cout << "    Code: " << data.code << ", name: " << data.name << "\n    Description: " << data.description << "\n";
   }
-  if (data.server_message_valid == true)
+  if (data.server_message_valid)
   {
     std::cout << "    Server Message: " << data.server_message << "\n";
   }

Debdiff

[The following lists of changes regard files as different if they have different names, permissions or owners.]

Files in second set of .debs but not in first

-rw-r--r--  root/root   /usr/lib/debug/.build-id/a5/3b2e1adc2f88cd5dc057fcf3db31d6a29f591f.debug
-rw-r--r--  root/root   /usr/lib/debug/.build-id/be/0d748e18f97fffd474cbcd9a47482c8b04db58.debug
-rw-r--r--  root/root   /usr/lib/debug/.build-id/f0/6e8eec5059185defa595142d9aa342d1c33269.debug
-rw-r--r--  root/root   /usr/lib/debug/.build-id/f5/c154fa72d3115cf808276057a3c290c5007848.debug

Files in first set of .debs but not in second

-rw-r--r--  root/root   /usr/lib/debug/.build-id/22/a956122527c77ca9d6bd8843fbf6a187f65f32.debug
-rw-r--r--  root/root   /usr/lib/debug/.build-id/85/2e92cb2acb56fc21b5072756f983a21486d4a6.debug
-rw-r--r--  root/root   /usr/lib/debug/.build-id/94/c055c123fcaca32b002b83a7922d9a5ff713e1.debug
-rw-r--r--  root/root   /usr/lib/debug/.build-id/e0/0f4790d7bc60d6062f2892944d27f4612560ab.debug

No differences were encountered between the control files of package libofx-dev

No differences were encountered between the control files of package libofx-doc

No differences were encountered between the control files of package libofx7

Control files of package libofx7-dbgsym: lines which differ (wdiff format)

  • Build-Ids: 22a956122527c77ca9d6bd8843fbf6a187f65f32 f06e8eec5059185defa595142d9aa342d1c33269

No differences were encountered between the control files of package ofx

Control files of package ofx-dbgsym: lines which differ (wdiff format)

  • Build-Ids: 852e92cb2acb56fc21b5072756f983a21486d4a6 94c055c123fcaca32b002b83a7922d9a5ff713e1 e00f4790d7bc60d6062f2892944d27f4612560ab a53b2e1adc2f88cd5dc057fcf3db31d6a29f591f be0d748e18f97fffd474cbcd9a47482c8b04db58 f5c154fa72d3115cf808276057a3c290c5007848

More details

Full run details