From bae9a0ceac4ad2a33bbba1447fdc6b1d351d4735 Mon Sep 17 00:00:00 2001 From: Araq Date: Thu, 28 Aug 2014 01:30:12 +0200 Subject: [PATCH] more modules updated --- lib/pure/cgi.nim | 16 ++++---- lib/pure/complex.nim | 88 ++++++++++++++++++++++---------------------- lib/pure/strtabs.nim | 36 +++++++++--------- 3 files changed, 70 insertions(+), 70 deletions(-) diff --git a/lib/pure/cgi.nim b/lib/pure/cgi.nim index bb7934faad..bfa94a2384 100644 --- a/lib/pure/cgi.nim +++ b/lib/pure/cgi.nim @@ -103,12 +103,12 @@ type proc cgiError*(msg: string) {.noreturn.} = ## raises an ECgi exception with message `msg`. - var e: ref ECgi + var e: ref CgiError new(e) e.msg = msg raise e -proc getEncodedData(allowedMethods: set[TRequestMethod]): string = +proc getEncodedData(allowedMethods: set[RequestMethod]): string = case getEnv("REQUEST_METHOD").string of "POST": if methodPost notin allowedMethods: @@ -167,7 +167,7 @@ iterator decodeData*(data: string): tuple[key, value: TaintedString] = elif data[i] == '\0': break else: cgiError("'&' expected") -iterator decodeData*(allowedMethods: set[TRequestMethod] = +iterator decodeData*(allowedMethods: set[RequestMethod] = {methodNone, methodPost, methodGet}): tuple[key, value: TaintedString] = ## Reads and decodes CGI data and yields the (name, value) pairs the ## data consists of. If the client does not use a method listed in the @@ -177,15 +177,15 @@ iterator decodeData*(allowedMethods: set[TRequestMethod] = for key, value in decodeData(data): yield (key, value) -proc readData*(allowedMethods: set[TRequestMethod] = - {methodNone, methodPost, methodGet}): PStringTable = +proc readData*(allowedMethods: set[RequestMethod] = + {methodNone, methodPost, methodGet}): StringTableRef = ## Read CGI data. If the client does not use a method listed in the ## `allowedMethods` set, an `ECgi` exception is raised. result = newStringTable() for name, value in decodeData(allowedMethods): result[name.string] = value.string -proc validateData*(data: PStringTable, validKeys: varargs[string]) = +proc validateData*(data: StringTableRef, validKeys: varargs[string]) = ## validates data; raises `ECgi` if this fails. This checks that each variable ## name of the CGI `data` occurs in the `validKeys` array. for key, val in pairs(data): @@ -393,5 +393,5 @@ proc existsCookie*(name: string): bool = when isMainModule: const test1 = "abc\L+def xyz" - assert UrlEncode(test1) == "abc%0A%2Bdef+xyz" - assert UrlDecode(UrlEncode(test1)) == test1 + assert URLencode(test1) == "abc%0A%2Bdef+xyz" + assert URLdecode(URLencode(test1)) == test1 diff --git a/lib/pure/complex.nim b/lib/pure/complex.nim index d31d56f83f..a8709e098d 100644 --- a/lib/pure/complex.nim +++ b/lib/pure/complex.nim @@ -30,50 +30,50 @@ type {.deprecated: [TComplex: Complex].} -proc `==` *(x, y: TComplex): bool = +proc `==` *(x, y: Complex): bool = ## Compare two complex numbers `x` and `y` for equality. result = x.re == y.re and x.im == y.im -proc `=~` *(x, y: TComplex): bool = +proc `=~` *(x, y: Complex): bool = ## Compare two complex numbers `x` and `y` approximately. result = abs(x.re-y.re)= 0: result = t.data[index].val else: result = "" -proc mget*(t: PStringTable, key: string): var string {. +proc mget*(t: StringTableRef, key: string): var string {. rtl, extern: "nstTake".} = ## retrieves the location at ``t[key]``. If `key` is not in `t`, the ## ``EInvalidKey`` exception is raised. @@ -117,25 +117,25 @@ proc mget*(t: PStringTable, key: string): var string {. if index >= 0: result = t.data[index].val else: raise newException(KeyError, "key does not exist: " & key) -proc hasKey*(t: PStringTable, key: string): bool {.rtl, extern: "nst$1".} = +proc hasKey*(t: StringTableRef, key: string): bool {.rtl, extern: "nst$1".} = ## returns true iff `key` is in the table `t`. result = rawGet(t, key) >= 0 -proc rawInsert(t: PStringTable, data: var KeyValuePairSeq, key, val: string) = +proc rawInsert(t: StringTableRef, data: var KeyValuePairSeq, key, val: string) = var h: THash = myhash(t, key) and high(data) while not isNil(data[h].key): h = nextTry(h, high(data)) data[h].key = key data[h].val = val -proc enlarge(t: PStringTable) = +proc enlarge(t: StringTableRef) = var n: KeyValuePairSeq newSeq(n, len(t.data) * growthFactor) for i in countup(0, high(t.data)): if not isNil(t.data[i].key): rawInsert(t, n, t.data[i].key, t.data[i].val) swap(t.data, n) -proc `[]=`*(t: PStringTable, key, val: string) {.rtl, extern: "nstPut".} = +proc `[]=`*(t: StringTableRef, key, val: string) {.rtl, extern: "nstPut".} = ## puts a (key, value)-pair into `t`. var index = rawGet(t, key) if index >= 0: @@ -151,7 +151,7 @@ proc raiseFormatException(s: string) = e.msg = "format string: key not found: " & s raise e -proc getValue(t: PStringTable, flags: set[TFormatFlag], key: string): string = +proc getValue(t: StringTableRef, flags: set[FormatFlag], key: string): string = if hasKey(t, key): return t[key] # hm difficult: assume safety in taint mode here. XXX This is dangerous! if useEnvironment in flags: result = os.getEnv(key).string @@ -160,7 +160,7 @@ proc getValue(t: PStringTable, flags: set[TFormatFlag], key: string): string = if useKey in flags: result = '$' & key elif not (useEmpty in flags): raiseFormatException(key) -proc newStringTable*(mode: TStringTableMode): PStringTable {. +proc newStringTable*(mode: StringTableMode): StringTableRef {. rtl, extern: "nst$1".} = ## creates a new string table that is empty. new(result) @@ -169,7 +169,7 @@ proc newStringTable*(mode: TStringTableMode): PStringTable {. newSeq(result.data, startSize) proc newStringTable*(keyValuePairs: varargs[string], - mode: TStringTableMode): PStringTable {. + mode: StringTableMode): StringTableRef {. rtl, extern: "nst$1WithPairs".} = ## creates a new string table with given key value pairs. ## Example:: @@ -182,7 +182,7 @@ proc newStringTable*(keyValuePairs: varargs[string], inc(i, 2) proc newStringTable*(keyValuePairs: varargs[tuple[key, val: string]], - mode: StringTableMode = modeCaseSensitive): PStringTable {. + mode: StringTableMode = modeCaseSensitive): StringTableRef {. rtl, extern: "nst$1WithTableConstr".} = ## creates a new string table with given key value pairs. ## Example:: @@ -191,7 +191,7 @@ proc newStringTable*(keyValuePairs: varargs[tuple[key, val: string]], result = newStringTable(mode) for key, val in items(keyValuePairs): result[key] = val -proc `%`*(f: string, t: PStringTable, flags: set[TFormatFlag] = {}): string {. +proc `%`*(f: string, t: StringTableRef, flags: set[FormatFlag] = {}): string {. rtl, extern: "nstFormat".} = ## The `%` operator for string tables. const @@ -221,7 +221,7 @@ proc `%`*(f: string, t: PStringTable, flags: set[TFormatFlag] = {}): string {. add(result, f[i]) inc(i) -proc `$`*(t: PStringTable): string {.rtl, extern: "nstDollar".} = +proc `$`*(t: StringTableRef): string {.rtl, extern: "nstDollar".} = ## The `$` operator for string tables. if t.len == 0: result = "{:}"