summary refs log tree commit diff stats
path: root/lib/pure/parsecfg.nim
diff options
context:
space:
mode:
authorAraq <rumpf_a@web.de>2013-06-04 08:02:53 +0200
committerAraq <rumpf_a@web.de>2013-06-04 08:02:53 +0200
commitf7c0cc976ddb4e86e2341352b0674b9787005a4a (patch)
tree5ef5ab1096a77a1a8e0de7a797ec7598bc592ba7 /lib/pure/parsecfg.nim
parent2f5d5e3ba73f8fcb11341b88bb6f9d855fe42fed (diff)
downloadNim-f7c0cc976ddb4e86e2341352b0674b9787005a4a.tar.gz
fixes #456
Diffstat (limited to 'lib/pure/parsecfg.nim')
-rw-r--r--lib/pure/parsecfg.nim19
1 files changed, 10 insertions, 9 deletions
diff --git a/lib/pure/parsecfg.nim b/lib/pure/parsecfg.nim
index 6a0f2ed49..e8014cece 100644
--- a/lib/pure/parsecfg.nim
+++ b/lib/pure/parsecfg.nim
@@ -67,7 +67,8 @@ type
 # implementation
 
 const 
-  SymChars: TCharSet = {'a'..'z', 'A'..'Z', '0'..'9', '_', '\x80'..'\xFF', '.'} 
+  SymChars: TCharSet = {'a'..'z', 'A'..'Z', '0'..'9', '_', '\x80'..'\xFF', '.',
+                        '/', '\\'} 
   
 proc rawGetTok(c: var TCfgParser, tok: var TToken)
 
@@ -149,7 +150,7 @@ proc getEscapedChar(c: var TCfgParser, tok: var TToken) =
   of 't', 'T': 
     add(tok.literal, '\t')
     Inc(c.bufpos)
-  of '\'', '\"': 
+  of '\'', '"': 
     add(tok.literal, c.buf[c.bufpos])
     Inc(c.bufpos)
   of '\\': 
@@ -178,7 +179,7 @@ proc getString(c: var TCfgParser, tok: var TToken, rawMode: bool) =
   var pos = c.bufPos + 1          # skip "
   var buf = c.buf                 # put `buf` in a register
   tok.kind = tkSymbol
-  if (buf[pos] == '\"') and (buf[pos + 1] == '\"'): 
+  if (buf[pos] == '"') and (buf[pos + 1] == '"'): 
     # long string literal:
     inc(pos, 2)               # skip ""
                               # skip leading newline:
@@ -186,9 +187,9 @@ proc getString(c: var TCfgParser, tok: var TToken, rawMode: bool) =
     buf = c.buf
     while true: 
       case buf[pos]
-      of '\"': 
-        if (buf[pos + 1] == '\"') and (buf[pos + 2] == '\"'): break 
-        add(tok.literal, '\"')
+      of '"': 
+        if (buf[pos + 1] == '"') and (buf[pos + 2] == '"'): break 
+        add(tok.literal, '"')
         Inc(pos)
       of '\c', '\L': 
         pos = HandleCRLF(c, pos)
@@ -205,7 +206,7 @@ proc getString(c: var TCfgParser, tok: var TToken, rawMode: bool) =
     # ordinary string literal
     while true: 
       var ch = buf[pos]
-      if ch == '\"': 
+      if ch == '"': 
         inc(pos)              # skip '"'
         break 
       if ch in {'\c', '\L', lexbase.EndOfFile}: 
@@ -278,7 +279,7 @@ proc rawGetTok(c: var TCfgParser, tok: var TToken) =
     tok.kind = tkBracketRi
     Inc(c.bufpos)
     tok.literal = "]"
-  of '\"': 
+  of '"': 
     getString(c, tok, false)
   of lexbase.EndOfFile: 
     tok.kind = tkEof
@@ -351,7 +352,7 @@ proc next*(c: var TCfgParser): TCfgEvent {.rtl, extern: "npc$1".} =
       rawGetTok(c, c.tok)
     else: 
       result.kind = cfgError
-      result.msg = errorStr(c, "\']\' expected, but found: " & c.tok.literal)
+      result.msg = errorStr(c, "']' expected, but found: " & c.tok.literal)
   of tkInvalid, tkEquals, tkColon, tkBracketRi: 
     result.kind = cfgError
     result.msg = errorStr(c, "invalid token: " & c.tok.literal)