summaryrefslogtreecommitdiffstats
path: root/src/ctvariable.cpp
diff options
context:
space:
mode:
authorMavridis Philippe <mavridisf@gmail.com>2021-01-13 19:26:24 +0200
committerMavridis Philippe <mavridisf@gmail.com>2021-01-13 19:26:24 +0200
commit8c20dc919f7d54eb48fb60f39ba5e1d466a70763 (patch)
tree44d89f278d5dd066603e5ab9c0b270bc8eb4ad51 /src/ctvariable.cpp
downloadklamav-8c20dc919f7d54eb48fb60f39ba5e1d466a70763.tar.gz
klamav-8c20dc919f7d54eb48fb60f39ba5e1d466a70763.zip
Initial commit
Signed-off-by: Mavridis Philippe <mavridisf@gmail.com>
Diffstat (limited to 'src/ctvariable.cpp')
-rw-r--r--src/ctvariable.cpp101
1 files changed, 101 insertions, 0 deletions
diff --git a/src/ctvariable.cpp b/src/ctvariable.cpp
new file mode 100644
index 0000000..f736c76
--- /dev/null
+++ b/src/ctvariable.cpp
@@ -0,0 +1,101 @@
+/***************************************************************************
+ * CT Environment Variable Implementation *
+ * -------------------------------------------------------------------- *
+ * Copyright (C) 1999, Gary Meyer <gary@meyer.net> *
+ * -------------------------------------------------------------------- *
+ * This program is free software; you can redistribute it and/or modify *
+ * it under the terms of the GNU General Public License as published by *
+ * the Free Software Foundation; either version 2 of the License, or *
+ * (at your option) any later version. *
+ ***************************************************************************/
+
+// Do not introduce any Qt or KDE dependencies into the "CT"-prefixed classes.
+// I want to be able to reuse these classes with another GUI toolkit. -GM 11/99
+
+#include "ctvariable.h"
+
+using namespace std;
+
+CTVariable::CTVariable(string tokStr, string _comment)
+{
+ if (tokStr.substr(0,2) == "#\\")
+ {
+ tokStr = tokStr.substr(2,tokStr.length() - 2);
+ enabled = false;
+ }
+ else
+ enabled = true;
+
+ int spacepos(0);
+
+ spacepos = tokStr.find_first_of(" =");
+ variable = tokStr.substr(0,spacepos);
+
+ value = tokStr.substr(spacepos+1,tokStr.length()-spacepos-1);
+ comment = _comment;
+
+ initialVariable = variable;
+ initialValue = value;
+ initialComment = comment;
+ initialEnabled = enabled;
+}
+
+CTVariable::CTVariable(const CTVariable &source) :
+ variable(source.variable),
+ value(source.value),
+ comment(source.comment),
+ enabled(source.enabled),
+ initialVariable(""),
+ initialValue(""),
+ initialComment(""),
+ initialEnabled(true)
+{
+}
+
+void CTVariable::operator = (const CTVariable& source)
+{
+ variable = source.variable;
+ value = source.value;
+ comment = source.comment;
+ enabled = source.enabled;
+ initialVariable = "";
+ initialValue = "";
+ initialComment = "";
+ initialEnabled = true;
+ return;
+}
+
+ostream& operator << (ostream& outputStream, const CTVariable& source)
+{
+ if (source.comment != string(""))
+ outputStream << "# " << source.comment << "\n";
+
+ if (!source.enabled)
+ outputStream << "#\\";
+
+ outputStream << source.variable << "=" << source.value << "\n";
+
+ return outputStream;
+}
+
+void CTVariable::apply()
+{
+ initialVariable = variable;
+ initialValue = value;
+ initialComment = comment;
+ initialEnabled = enabled;
+}
+
+void CTVariable::cancel()
+{
+ variable = initialVariable;
+ value = initialValue;
+ comment = initialComment;
+ enabled = initialEnabled;
+}
+
+bool CTVariable::dirty() const
+{
+ return ((variable != initialVariable) || (value != initialValue) ||
+ (comment != initialComment) || (enabled != initialEnabled));
+}