about summary refs log tree commit diff stats
path: root/lib/monoucha0/monoucha/eprint.nim
diff options
context:
space:
mode:
authorbptato <nincsnevem662@gmail.com>2025-01-18 23:15:21 +0100
committerbptato <nincsnevem662@gmail.com>2025-01-18 23:15:21 +0100
commit28fefabdeb685f4777ad2ad2ebf05e5e94e179d6 (patch)
tree56cd048df4a6987b4d9ef5924942119b3f2fd8aa /lib/monoucha0/monoucha/eprint.nim
parentb56abad0883c0b4179f9c329a7169bb544fac4a5 (diff)
parent33efaee783c2adb20df019a8bc924411c4a97e7f (diff)
downloadchawan-28fefabdeb685f4777ad2ad2ebf05e5e94e179d6.tar.gz
Add 'lib/monoucha0/' from commit '33efaee783c2adb20df019a8bc924411c4a97e7f'
git-subtree-dir: lib/monoucha0
git-subtree-mainline: b56abad0883c0b4179f9c329a7169bb544fac4a5
git-subtree-split: 33efaee783c2adb20df019a8bc924411c4a97e7f
Diffstat (limited to 'lib/monoucha0/monoucha/eprint.nim')
-rw-r--r--lib/monoucha0/monoucha/eprint.nim39
1 files changed, 39 insertions, 0 deletions
diff --git a/lib/monoucha0/monoucha/eprint.nim b/lib/monoucha0/monoucha/eprint.nim
new file mode 100644
index 00000000..73c207e8
--- /dev/null
+++ b/lib/monoucha0/monoucha/eprint.nim
@@ -0,0 +1,39 @@
+{.used.}
+
+template eprint0(s: varargs[string]) =
+  {.cast(noSideEffect), cast(tags: []), cast(raises: []).}:
+    var o = ""
+    for i in 0 ..< s.len:
+      if i != 0:
+        o &= ' '
+      o &= s[i]
+    when nimvm:
+      echo o
+    else:
+      when not declared(stderr):
+        echo o
+      else:
+        o &= '\n'
+        stderr.write(o)
+
+when defined(release):
+  func eprint*(s: varargs[string, `$`])
+      {.deprecated: "eprint is for debugging only".} =
+    eprint0(s)
+else:
+  func eprint*(s: varargs[string, `$`]) =
+    eprint0(s)
+
+func elog*(s: varargs[string, `$`]) =
+  {.cast(noSideEffect), cast(tags: []), cast(raises: []).}:
+    var f: File = nil
+    if not open(f, "a", fmAppend):
+      return
+    var o = ""
+    for i in 0 ..< s.len:
+      if i != 0:
+        o &= ' '
+      o &= s[i]
+    o &= '\n'
+    f.write(o)
+    close(f)