aboutsummaryrefslogtreecommitdiff
path: root/tool_src/QvLib/QvSFBool.cpp
diff options
context:
space:
mode:
authorFelix Morgner <felix.morgner@gmail.com>2026-08-24 11:16:07 +0200
committerFelix Morgner <felix.morgner@gmail.com>2026-08-24 11:16:07 +0200
commitc068f22329d5cc722622a2183bbb22eef2093df7 (patch)
tree12d56c1aede67988a55e241364606bfbb4dba933 /tool_src/QvLib/QvSFBool.cpp
downloadopenparsec-main.tar.xz
openparsec-main.zip
initial importHEADmain
Diffstat (limited to 'tool_src/QvLib/QvSFBool.cpp')
-rw-r--r--tool_src/QvLib/QvSFBool.cpp37
1 files changed, 37 insertions, 0 deletions
diff --git a/tool_src/QvLib/QvSFBool.cpp b/tool_src/QvLib/QvSFBool.cpp
new file mode 100644
index 0000000..a1ecd9c
--- /dev/null
+++ b/tool_src/QvLib/QvSFBool.cpp
@@ -0,0 +1,37 @@
+#include <QvReadError.h>
+#include <QvSFBool.h>
+
+QV_SFIELD_SOURCE(QvSFBool);
+
+QvBool
+QvSFBool::readValue(QvInput *in)
+{
+ // accept 0 or 1
+ if (in->read(value)) {
+ if (value != 0 && value != 1) {
+ QvReadError::post(in, "Illegal value for QvSFBool: %d "
+ "(must be 0 or 1)", value);
+ return FALSE;
+ }
+ return TRUE;
+ }
+
+ // read TRUE/FALSE keyword
+ QvName n;
+ if (! in->read(n, TRUE))
+ return FALSE;
+
+ if (n == "TRUE") {
+ value = TRUE;
+ return TRUE;
+ }
+
+ if (n == "FALSE") {
+ value = FALSE;
+ return TRUE;
+ }
+
+ QvReadError::post(in, "Unknown value (\"%s\") for QvSFBool ",
+ "(must be TRUE or FALSE)", n.getString());
+ return FALSE;
+}