summary refs log tree commit diff stats
diff options
context:
space:
mode:
-rwxr-xr-xlib/system.nim6
-rwxr-xr-xlib/system/mmdisp.nim3
-rwxr-xr-xrod/c2nim/cparse.nim2
-rw-r--r--rod/c2nim/tests/systest.c1
4 files changed, 5 insertions, 7 deletions
diff --git a/lib/system.nim b/lib/system.nim
index 7d1d2a867..d3450902e 100755
--- a/lib/system.nim
+++ b/lib/system.nim
@@ -1123,12 +1123,6 @@ proc isNil*(x: cstring): bool {.noSideEffect, magic: "IsNil".}
   ## Fast check whether `x` is nil. This is sometimes more efficient than
   ## ``== nil``.
 
-
-# Fixup some magic symbols here:
-#{.fixup_system.} 
-# This is an undocumented pragma that can only be used
-# once in the system module.
-
 proc `&` *[T](x, y: openArray[T]): seq[T] {.noSideEffect.} =
   newSeq(result, x.len + y.len)
   for i in 0..x.len-1:
diff --git a/lib/system/mmdisp.nim b/lib/system/mmdisp.nim
index f28b6b931..c89e7dffa 100755
--- a/lib/system/mmdisp.nim
+++ b/lib/system/mmdisp.nim
@@ -136,6 +136,9 @@ elif defined(nogc):
   # object, because C does not support this operation... Even though every
   # possible implementation has to have a way to determine the object's size.
   # C just sucks.
+  when appType == "lib": 
+    {.warning: "nogc in a library context may not work".}
+  
   include "system/alloc"
 
   when false:
diff --git a/rod/c2nim/cparse.nim b/rod/c2nim/cparse.nim
index f5e6c95f8..b0f2a3e3d 100755
--- a/rod/c2nim/cparse.nim
+++ b/rod/c2nim/cparse.nim
@@ -376,7 +376,7 @@ proc typeAtom(p: var TParser): PNode =
   elif isIntType(p.tok.s):
     var x = "c" & p.tok.s
     getTok(p, nil)
-    while p.tok.xkind == pxSymbol and isIntType(p.tok.s):
+    while p.tok.xkind == pxSymbol and (isIntType(p.tok.s) or p.tok.s == "char"):
       add(x, p.tok.s)
       getTok(p, nil)
     result = newIdentNodeP(x, p)
diff --git a/rod/c2nim/tests/systest.c b/rod/c2nim/tests/systest.c
index 022bf8350..528ae89e3 100644
--- a/rod/c2nim/tests/systest.c
+++ b/rod/c2nim/tests/systest.c
@@ -9,6 +9,7 @@ extern "C" {
 
 typedef char gchar;
 typedef unsigned int gunsignedint;
+typedef unsigned char guchar;
 
 point* newPoint(void) {  
   for (int i = 0; i < 89; ++i) echo("test" " string "  "concatenation");