summary refs log tree commit diff stats
diff options
context:
space:
mode:
-rw-r--r--compiler/jsgen.nim2
-rw-r--r--lib/packages/docutils/rstgen.nim8
-rw-r--r--lib/pure/sockets.nim3
-rw-r--r--lib/wrappers/sdl/sdl_ttf.nim2
-rw-r--r--tests/js/testobjs.nim34
5 files changed, 41 insertions, 8 deletions
diff --git a/compiler/jsgen.nim b/compiler/jsgen.nim
index 108c0fe10..2ae85d5cf 100644
--- a/compiler/jsgen.nim
+++ b/compiler/jsgen.nim
@@ -1431,7 +1431,7 @@ proc genObjConstr(p: PProc, n: PNode, r: var TCompRes) =
   r.res = toRope("{")
   r.kind = resExpr
   for i in countup(1, sonsLen(n) - 1):
-    if i > 0: app(r.res, ", ")
+    if i > 1: app(r.res, ", ")
     var it = n.sons[i]
     internalAssert it.kind == nkExprColonExpr
     gen(p, it.sons[1], a)
diff --git a/lib/packages/docutils/rstgen.nim b/lib/packages/docutils/rstgen.nim
index 514292039..fc60b3672 100644
--- a/lib/packages/docutils/rstgen.nim
+++ b/lib/packages/docutils/rstgen.nim
@@ -60,7 +60,6 @@ type
     seenIndexTerms: Table[string, int] ## \
     ## Keeps count of same text index terms to generate different identifiers
     ## for hyperlinks. See renderIndexTerm proc for details.
-    smileyFrmt: string   ## How to massage the smiley filename.
   
   PDoc = var TRstGenerator ## Alias to type less.
 
@@ -81,8 +80,7 @@ proc initRstGenerator*(g: var TRstGenerator, target: TOutputTarget,
                        config: StringTableRef, filename: string,
                        options: TRstParseOptions,
                        findFile: TFindFileHandler=nil,
-                       msgHandler: TMsgHandler=nil,
-                       smileyFrmt = "/images/smilies/$1.gif") =
+                       msgHandler: TMsgHandler=nil) =
   ## Initializes a ``TRstGenerator``.
   ##
   ## You need to call this before using a ``TRstGenerator`` with any other
@@ -142,7 +140,6 @@ proc initRstGenerator*(g: var TRstGenerator, target: TOutputTarget,
   let s = config["split.item.toc"]
   if s != "": g.splitAfter = parseInt(s)
   for i in low(g.meta)..high(g.meta): g.meta[i] = ""
-  g.smileyFrmt = smileyFrmt
 
 proc writeIndexFile*(g: var TRstGenerator, outfile: string) =
   ## Writes the current index buffer to the specified output file.
@@ -778,7 +775,7 @@ proc renderSmiley(d: PDoc, n: PRstNode, result: var string) =
   dispA(d.target, result,
     """<img src="$1" width="15" 
         height="17" hspace="2" vspace="2" class="smiley" />""",
-    "\\includegraphics{$1}", [d.smileyFrmt % n.text])
+    "\\includegraphics{$1}", [d.config["doc.smiley_format"] % n.text])
   
 proc parseCodeBlockField(d: PDoc, n: PRstNode, params: var CodeBlockParams) =
   ## Parses useful fields which can appear before a code block.
@@ -1204,6 +1201,7 @@ $content
 """)
   setConfigVar("doc.body_no_toc", "$moduledesc $content")
   setConfigVar("doc.file", "$content")
+  setConfigVar("doc.smiley_format", "/images/smilies/$1.gif")
 
 # ---------- forum ---------------------------------------------------------
 
diff --git a/lib/pure/sockets.nim b/lib/pure/sockets.nim
index 99cdc002c..e3c32e806 100644
--- a/lib/pure/sockets.nim
+++ b/lib/pure/sockets.nim
@@ -45,7 +45,8 @@ else:
 
 # Note: The enumerations are mapped to Window's constants.
 
-when defined(ssl):
+when defined(ssl):  
+
   type
     SSLError* = object of Exception
 
diff --git a/lib/wrappers/sdl/sdl_ttf.nim b/lib/wrappers/sdl/sdl_ttf.nim
index e0410c798..9ebe70b9d 100644
--- a/lib/wrappers/sdl/sdl_ttf.nim
+++ b/lib/wrappers/sdl/sdl_ttf.nim
@@ -163,7 +163,7 @@ elif defined(macosx):
     ttfLibName = "libSDL_ttf-2.0.0.dylib"
 else: 
   const 
-    ttfLibName = "libSDL_ttf.so(|.1|.0)"
+    ttfLibName = "libSDL_ttf(|-2.0).so(|.1|.0)"
 const 
   MAJOR_VERSION* = 2
   MINOR_VERSION* = 0
diff --git a/tests/js/testobjs.nim b/tests/js/testobjs.nim
new file mode 100644
index 000000000..4fb9a83dc
--- /dev/null
+++ b/tests/js/testobjs.nim
@@ -0,0 +1,34 @@
+## Tests javascript object generation
+
+type
+  Kg = distinct float
+  Price = int
+  Item = object of RootObj
+    weight: Kg
+    price: Price
+    desc: cstring
+  Person = object of RootObj
+    name: cstring
+    age: int
+    item: Item
+  Test = object
+    name: cstring
+  Recurse[T] = object
+    data: T
+    next: ref Recurse[T]
+
+var
+  test = Test(name: "Jorden")
+  sword = Item(desc: "pointy", weight: Kg(10.0),
+                price: Price(50))
+  knight = Person(name: "robert", age: 19, item: sword)
+  recurse4 = (ref Recurse[int])(data: 4, next: nil)
+  recurse3 = (ref Recurse[int])(data: 3, next: recurse4)
+  recurse2 = (ref Recurse[int])(data: 2, next: recurse3)
+  recurse1 = Recurse[int](data: 1, next: recurse2)
+
+
+assert(test.name == "Jorden")
+assert(knight.age == 19)
+assert(knight.item.price == 50)
+assert(recurse1.next.next.data == 3)