summaryrefslogtreecommitdiff
path: root/src/session.h
diff options
context:
space:
mode:
authorJohn Wiegley <johnw@newartisans.com>2023-11-23 15:42:44 -0800
committerJohn Wiegley <johnw@newartisans.com>2024-08-05 08:35:56 -0700
commita2df9c48870ee3fb25051c3473476f91e8d467d8 (patch)
treecb3653226eba7d8814c01b79deeb470a8c1c1a0f /src/session.h
parentdb0661dbb51e9082e47926c31e93bdc97b491bf9 (diff)
downloadfork-ledger-a2df9c48870ee3fb25051c3473476f91e8d467d8.tar.gz
fork-ledger-a2df9c48870ee3fb25051c3473476f91e8d467d8.tar.bz2
fork-ledger-a2df9c48870ee3fb25051c3473476f91e8d467d8.zip
--hashes option requires an argument to specify the algorithm
At the moment only "sha512" or "SHA512" is accepted, but this could extend to more algorithms in the future.
Diffstat (limited to 'src/session.h')
-rw-r--r--src/session.h19
1 files changed, 17 insertions, 2 deletions
diff --git a/src/session.h b/src/session.h
index dcb554eb..ce1b69a3 100644
--- a/src/session.h
+++ b/src/session.h
@@ -112,7 +112,7 @@ public:
HANDLER(decimal_comma).report(out);
HANDLER(time_colon).report(out);
HANDLER(file_).report(out);
- HANDLER(hashes).report(out);
+ HANDLER(hashes_).report(out);
HANDLER(input_date_format_).report(out);
HANDLER(explicit).report(out);
HANDLER(master_account_).report(out);
@@ -163,7 +163,22 @@ public:
data_files.push_back(str);
});
- OPTION(session_t, hashes);
+ enum hash_type_t {
+ NO_HASHES = 0,
+ HASH_SHA512 = 1
+ };
+
+ OPTION__
+ (session_t, hashes_,
+ hash_type_t hash_type = NO_HASHES;
+ CTOR(session_t, hashes_) {}
+ DO_(str) {
+ if (str == "sha512" || str == "SHA512") {
+ hash_type = HASH_SHA512;
+ } else {
+ throw_(std::invalid_argument, _f("Unrecognized hash type"));
+ }
+ });
OPTION_(session_t, input_date_format_, DO_(str) {
// This changes static variables inside times.h, which affects the