summary refs log tree commit diff stats
diff options
context:
space:
mode:
authorAraq <rumpf_a@web.de>2011-02-20 21:58:30 +0100
committerAraq <rumpf_a@web.de>2011-02-20 21:58:30 +0100
commit61ddcf62b5916c83dbaa9861759519e2dab549f5 (patch)
tree259f81d2425f85654aab52a85b292d7bd0b9b94d
parentc9d5c8268359e33569fc5361f206b33f303d70b3 (diff)
downloadNim-61ddcf62b5916c83dbaa9861759519e2dab549f5.tar.gz
koch: 'git' command
-rwxr-xr-xkoch.nim14
-rwxr-xr-xrod/ccgexprs.nim11
2 files changed, 21 insertions, 4 deletions
diff --git a/koch.nim b/koch.nim
index 7458a747b..76039e721 100755
--- a/koch.nim
+++ b/koch.nim
@@ -33,11 +33,12 @@ Possible Commands:
   csource [options]        builds the C sources for installation
   zip                      builds the installation ZIP package
   inno [options]           builds the Inno Setup installer
+  git                      removes and adds generated C files to git
 Boot options:
   -d:release               produce a release version of the compiler
   -d:tinyc                 include the Tiny C backend (not supported on Windows)
   -d:useGnuReadline        use the GNU readline library for interactive mode
-                           (not supported on Windows)
+                           (not needed on Windows)
 """
 
 proc exe(f: string): string = return addFileExt(f, ExeExt)
@@ -75,6 +76,17 @@ proc web(args: string) =
   exec("nimrod cc -r tools/nimweb.nim web/nimrod --putenv:nimrodversion=$#" %
        NimrodVersion)
 
+proc gitAux(dir: string) = 
+  for kind, path in walkDir(dir):
+    if kind == pcDir: 
+      var cfiles = path / "*.c"
+      exec("git rm " & cfiles)
+      exec("git add " & cfiles)
+      gitAux(path)
+
+proc git = 
+  gitAux("build")
+
 # -------------- nim ----------------------------------------------------------
 
 proc compileNimCmd(args: string): string = 
diff --git a/rod/ccgexprs.nim b/rod/ccgexprs.nim
index 36603be61..a0cbaeb03 100755
--- a/rod/ccgexprs.nim
+++ b/rod/ccgexprs.nim
@@ -87,12 +87,17 @@ proc genLiteral(p: BProc, v: PNode): PRope =
 
 proc bitSetToWord(s: TBitSet, size: int): BiggestInt =
   result = 0
-  if CPU[platform.hostCPU].endian == CPU[targetCPU].endian:
+  when true:
     for j in countup(0, size - 1):
       if j < len(s): result = result or `shl`(Ze64(s[j]), j * 8)
   else:
-    for j in countup(0, size - 1):
-      if j < len(s): result = result or `shl`(Ze64(s[j]), (Size - 1 - j) * 8)
+    # not needed, too complex thinking:
+    if CPU[platform.hostCPU].endian == CPU[targetCPU].endian:
+      for j in countup(0, size - 1):
+        if j < len(s): result = result or `shl`(Ze64(s[j]), j * 8)
+    else:
+      for j in countup(0, size - 1):
+        if j < len(s): result = result or `shl`(Ze64(s[j]), (Size - 1 - j) * 8)
 
 proc genRawSetData(cs: TBitSet, size: int): PRope =
   var frmt: TFormatStr