summary refs log tree commit diff stats
path: root/doc/manual/taint.txt
diff options
context:
space:
mode:
Diffstat (limited to 'doc/manual/taint.txt')
-rw-r--r--doc/manual/taint.txt20
1 files changed, 20 insertions, 0 deletions
diff --git a/doc/manual/taint.txt b/doc/manual/taint.txt
new file mode 100644
index 000000000..84f0c68b1
--- /dev/null
+++ b/doc/manual/taint.txt
@@ -0,0 +1,20 @@
+Taint mode
+==========
+
+The Nim compiler and most parts of the standard library support 
+a taint mode. Input strings are declared with the `TaintedString`:idx: 
+string type declared in the ``system`` module.
+
+If the taint mode is turned on (via the ``--taintMode:on`` command line 
+option) it is a distinct string type which helps to detect input
+validation errors:
+
+.. code-block:: nim
+  echo "your name: "
+  var name: TaintedString = stdin.readline
+  # it is safe here to output the name without any input validation, so
+  # we simply convert `name` to string to make the compiler happy: 
+  echo "hi, ", name.string
+
+If the taint mode is turned off, ``TaintedString`` is simply an alias for
+``string``.