summary refs log tree commit diff stats
diff options
context:
space:
mode:
-rwxr-xr-xcompiler/nimrod.nim21
-rwxr-xr-xcompiler/rst.nim13
-rwxr-xr-xdoc/nimrodc.txt9
-rwxr-xr-xinstall.sh4
4 files changed, 29 insertions, 18 deletions
diff --git a/compiler/nimrod.nim b/compiler/nimrod.nim
index 97e017e4f..6a9ae690e 100755
--- a/compiler/nimrod.nim
+++ b/compiler/nimrod.nim
@@ -37,17 +37,18 @@ proc ProcessCmdLine(pass: TCmdLinePass) =
         ProcessSwitch(key, val, pass, gCmdLineInfo)
       else: 
         ProcessSwitch(p.key, p.val, pass, gCmdLineInfo)
-    of cmdArgument: 
-      if pass == passCmd1:
-        if options.command == "":
-          options.command = p.key
-        else:
-          options.commandArgs.add p.key
+    of cmdArgument:
+      if pass != passCmd1: break
+      if options.command == "":
+        options.command = p.key
+      else:
+        options.commandArgs.add p.key
 
-          if options.gProjectName == "":
-            # support UNIX style filenames anywhere for portable build scripts:
-            options.gProjectName = unixToNativePath(p.key)
-            arguments = cmdLineRest(p)
+        if options.gProjectName == "":
+          # support UNIX style filenames anywhere for portable build scripts:
+          options.gProjectName = unixToNativePath(p.key)
+          arguments = cmdLineRest(p)
+          break
           
   if pass == passCmd2:
     if optRun notin gGlobalOptions and arguments != "":
diff --git a/compiler/rst.nim b/compiler/rst.nim
index 87a5e194e..a784e9a9f 100755
--- a/compiler/rst.nim
+++ b/compiler/rst.nim
@@ -265,7 +265,8 @@ type
                                  # current document. 
                                  # This is for single underline adornments.
     overlineToLevel*: TLevelMap  # Saves for each possible title adornment 
-                                 # character its level in the current document. 
+                                 # character its level in the current
+                                 # document. 
                                  # This is for over-underline adornments.
   
   PSharedState = ref TSharedState
@@ -819,8 +820,8 @@ proc parseComment(p: var TRstParser): PRstNode =
 
 type 
   TDirKind = enum             # must be ordered alphabetically!
-    dkNone, dkAuthor, dkAuthors, dkCodeBlock, dkContainer, dkContents, dkFigure, 
-    dkImage, dkInclude, dkIndex, dkRaw, dkTitle
+    dkNone, dkAuthor, dkAuthors, dkCodeBlock, dkContainer, dkContents,
+    dkFigure, dkImage, dkInclude, dkIndex, dkRaw, dkTitle
 
 const 
   DirIds: array[0..11, string] = ["", "author", "authors", "code-block", 
@@ -1103,7 +1104,7 @@ proc parseSimpleTable(p: var TRstParser): PRstNode =
       getColumns(p, cols)
       setlen(row, len(cols))
       if a != nil: 
-        for j in countup(0, rsonsLen(a) - 1): a.sons[j].kind = rnTableHeaderCell
+        for j in 0..rsonsLen(a)-1: a.sons[j].kind = rnTableHeaderCell
     if p.tok[p.idx].kind == tkEof: break 
     for j in countup(0, high(row)): row[j] = ""
     # the following while loop iterates over the lines a single cell may span:
@@ -1236,8 +1237,8 @@ proc parseDefinitionList(p: var TRstParser): PRstNode =
       if (p.tok[p.idx].kind == tkIndent) and (p.tok[p.idx].ival == col): 
         inc(p.idx)
         j = tokenAfterNewLine(p) - 1
-        if (j >= 1) and (p.tok[j].kind == tkIndent) and (p.tok[j].ival > col) and
-            (p.tok[j - 1].symbol != "::") and (p.tok[j + 1].kind != tkIndent): 
+        if j >= 1 and p.tok[j].kind == tkIndent and p.tok[j].ival > col and
+            p.tok[j-1].symbol != "::" and p.tok[j+1].kind != tkIndent: 
           nil
         else: 
           break 
diff --git a/doc/nimrodc.txt b/doc/nimrodc.txt
index 5a716fda0..315c21435 100755
--- a/doc/nimrodc.txt
+++ b/doc/nimrodc.txt
@@ -349,8 +349,7 @@ input management. To start Nimrod in interactive mode use the command
 ``nimrod i``. To quit use the ``quit()`` command. To determine whether an input

 line is an incomplete statement to be continued these rules are used:

 

-1. The line ends with ``[-+*/\\<>!\?\|%&$@~,;:=#^]\s*$`` (operator symbol 

-   followed by optional whitespace).

+1. The line ends with ``[-+*/\\<>!\?\|%&$@~,;:=#^]\s*$`` (operator symbol  followed by optional whitespace).

 2. The line starts with a space (indentation).

 3. The line is within a triple quoted string literal. However, the detection 

    does not work if the line contains more than one ``"""``.

@@ -402,6 +401,12 @@ However it is not efficient to do:
 .. code-block:: Nimrod

   var s = varA    # assignment has to copy the whole string into a new buffer!

 

+For ``let`` symbols a copy is not always necessary:

+

+.. code-block:: Nimrod

+  let s = varA    # may only copy a pointer if it safe to do so

+

+

 The compiler optimizes string case statements: A hashing scheme is used for them

 if several different string constants are used. So code like this is reasonably

 efficient:

diff --git a/install.sh b/install.sh
index cc49cb2d3..30660c17d 100755
--- a/install.sh
+++ b/install.sh
@@ -134,6 +134,8 @@ if [ $# -eq 1 ] ; then
   chmod 644 $docdir/tut2.txt
   cp doc/intern.html $docdir/intern.html || exit 1
   chmod 644 $docdir/intern.html
+  cp doc/manual.html $docdir/manual.html || exit 1
+  chmod 644 $docdir/manual.html
   cp doc/nimrodc.html $docdir/nimrodc.html || exit 1
   chmod 644 $docdir/nimrodc.html
   cp doc/mytest.cfg $docdir/mytest.cfg || exit 1
@@ -242,6 +244,8 @@ if [ $# -eq 1 ] ; then
   chmod 644 $libdir/pure/encodings.nim
   cp lib/pure/events.nim $libdir/pure/events.nim || exit 1
   chmod 644 $libdir/pure/events.nim
+  cp lib/pure/ftpclient.nim $libdir/pure/ftpclient.nim || exit 1
+  chmod 644 $libdir/pure/ftpclient.nim
   cp lib/pure/gentabs.nim $libdir/pure/gentabs.nim || exit 1
   chmod 644 $libdir/pure/gentabs.nim
   cp lib/pure/hashes.nim $libdir/pure/hashes.nim || exit 1