diff options
-rw-r--r-- | lib/impure/re.nim | 2 | ||||
-rw-r--r-- | lib/nimhcr.nim | 4 | ||||
-rw-r--r-- | lib/packages/docutils/highlite.nim | 2 | ||||
-rw-r--r-- | lib/packages/docutils/rst.nim | 2 | ||||
-rw-r--r-- | lib/pure/asyncftpclient.nim | 16 | ||||
-rw-r--r-- | lib/pure/browsers.nim | 2 | ||||
-rw-r--r-- | lib/pure/cgi.nim | 74 | ||||
-rw-r--r-- | lib/pure/httpclient.nim | 12 | ||||
-rw-r--r-- | lib/pure/memfiles.nim | 4 | ||||
-rw-r--r-- | lib/pure/net.nim | 12 | ||||
-rw-r--r-- | lib/pure/os.nim | 22 | ||||
-rw-r--r-- | lib/pure/osproc.nim | 10 | ||||
-rw-r--r-- | lib/pure/parseopt.nim | 18 | ||||
-rw-r--r-- | lib/pure/pegs.nim | 2 | ||||
-rw-r--r-- | lib/pure/smtp.nim | 2 | ||||
-rw-r--r-- | lib/pure/streams.nim | 4 | ||||
-rw-r--r-- | lib/pure/streamwrapper.nim | 4 | ||||
-rw-r--r-- | lib/pure/strtabs.nim | 2 | ||||
-rw-r--r-- | lib/pure/terminal.nim | 10 | ||||
-rw-r--r-- | lib/pure/unidecode/unidecode.nim | 2 | ||||
-rw-r--r-- | lib/system/channels.nim | 8 | ||||
-rw-r--r-- | lib/system/io.nim | 24 |
22 files changed, 119 insertions, 119 deletions
diff --git a/lib/impure/re.nim b/lib/impure/re.nim index fe3ea96ff..de75aa063 100644 --- a/lib/impure/re.nim +++ b/lib/impure/re.nim @@ -488,7 +488,7 @@ proc transformFile*(infile, outfile: string, ## reads in the file ``infile``, performs a parallel replacement (calls ## ``parallelReplace``) and writes back to ``outfile``. Raises ``IOError`` if an ## error occurs. This is supposed to be used for quick scripting. - var x = readFile(infile).string + var x = readFile(infile) writeFile(outfile, x.multiReplace(subs)) iterator split*(s: string, sep: Regex; maxsplit = -1): string = diff --git a/lib/nimhcr.nim b/lib/nimhcr.nim index fcc0ffdbe..d11c78a41 100644 --- a/lib/nimhcr.nim +++ b/lib/nimhcr.nim @@ -423,7 +423,7 @@ when defined(createNimHcr): if modules.contains(name): unloadDll(name) else: - modules.add(name, newModuleDesc()) + modules[name] = newModuleDesc() let copiedName = name & ".copy." & dllExt copyFileWithPermissions(name, copiedName) @@ -601,7 +601,7 @@ when defined(createNimHcr): proc hcrAddModule*(module: cstring) {.nimhcr.} = if not modules.contains($module): - modules.add($module, newModuleDesc()) + modules[$module] = newModuleDesc() proc hcrGeneration*(): int {.nimhcr.} = generation diff --git a/lib/packages/docutils/highlite.nim b/lib/packages/docutils/highlite.nim index fcc42add0..be0bba98e 100644 --- a/lib/packages/docutils/highlite.nim +++ b/lib/packages/docutils/highlite.nim @@ -917,7 +917,7 @@ when isMainModule: # Try to work running in both the subdir or at the root. for filename in ["doc/keywords.txt", "../../../doc/keywords.txt"]: try: - let input = string(readFile(filename)) + let input = readFile(filename) keywords = input.splitWhitespace() break except: diff --git a/lib/packages/docutils/rst.nim b/lib/packages/docutils/rst.nim index 698b973e2..6bc38f2d4 100644 --- a/lib/packages/docutils/rst.nim +++ b/lib/packages/docutils/rst.nim @@ -1870,7 +1870,7 @@ proc dirInclude(p: var RstParser): PRstNode = result = newRstNode(rnLiteralBlock) result.add(newRstNode(rnLeaf, readFile(path))) else: - let inputString = readFile(path).string() + let inputString = readFile(path) let startPosition = block: let searchFor = n.getFieldValue("start-after").strip() diff --git a/lib/pure/asyncftpclient.nim b/lib/pure/asyncftpclient.nim index 5bf0c240d..32e0f9636 100644 --- a/lib/pure/asyncftpclient.nim +++ b/lib/pure/asyncftpclient.nim @@ -141,7 +141,7 @@ proc expectReply(ftp: AsyncFtpClient): Future[string] {.async.} = while line.len > 3 and line[3] == '-': ## Multi-line reply. line = await ftp.csock.recvLine() - string(result).add("\n" & line) + result.add("\n" & line) count.inc() if count >= multiLineLimit: raise newException(ReplyError, "Reached maximum multi-line reply count.") @@ -163,7 +163,7 @@ proc assertReply(received: string, expected: varargs[string]) = if received.startsWith(i): return raise newException(ReplyError, "Expected reply '$1' got: $2" % - [expected.join("' or '"), received.string]) + [expected.join("' or '"), received]) proc pasv(ftp: AsyncFtpClient) {.async.} = ## Negotiate a data connection. @@ -171,7 +171,7 @@ proc pasv(ftp: AsyncFtpClient) {.async.} = var pasvMsg = (await ftp.send("PASV")).strip assertReply(pasvMsg, "227") - var betweenParens = captureBetween(pasvMsg.string, '(', ')') + var betweenParens = captureBetween(pasvMsg, '(', ')') var nums = betweenParens.split(',') var ip = nums[0 .. ^3] var port = nums[^2 .. ^1] @@ -187,7 +187,7 @@ proc connect*(ftp: AsyncFtpClient) {.async.} = await ftp.csock.connect(ftp.address, ftp.port) var reply = await ftp.expectReply() - if string(reply).startsWith("120"): + if reply.startsWith("120"): # 120 Service ready in nnn minutes. # We wait until we receive 220. reply = await ftp.expectReply() @@ -221,10 +221,10 @@ proc getLines(ftp: AsyncFtpClient): Future[string] {.async.} = assert ftp.dsockConnected while ftp.dsockConnected: let r = await ftp.dsock.recvLine() - if r.string == "": + if r == "": ftp.dsockConnected = false else: - result.add(r.string & "\n") + result.add(r & "\n") assertReply(await(ftp.expectReply()), "226") @@ -346,10 +346,10 @@ proc retrFile*(ftp: AsyncFtpClient, file, dest: string, await ftp.pasv() var reply = await ftp.send("RETR " & file.normalizePathSep) assertReply reply, ["125", "150"] - if {'(', ')'} notin reply.string: + if {'(', ')'} notin reply: raise newException(ReplyError, "Reply has no file size.") var fileSize: BiggestInt - if reply.string.captureBetween('(', ')').parseBiggestInt(fileSize) == 0: + if reply.captureBetween('(', ')').parseBiggestInt(fileSize) == 0: raise newException(ReplyError, "Reply has no file size.") await getFile(ftp, destFile, fileSize, onProgressChanged) diff --git a/lib/pure/browsers.nim b/lib/pure/browsers.nim index 9b3b67104..ee53e557e 100644 --- a/lib/pure/browsers.nim +++ b/lib/pure/browsers.nim @@ -43,7 +43,7 @@ proc openDefaultBrowserImpl(url: string) = else: var u = quoteShell(prepare url) if execShellCmd(osOpenCmd & " " & u) == 0: return - for b in getEnv("BROWSER").string.split(PathSep): + for b in getEnv("BROWSER").split(PathSep): try: # we use ``startProcess`` here because we don't want to block! discard startProcess(command = b, args = [url], options = {poUsePath}) diff --git a/lib/pure/cgi.nim b/lib/pure/cgi.nim index 4810aea88..8cc0284b4 100644 --- a/lib/pure/cgi.nim +++ b/lib/pure/cgi.nim @@ -63,11 +63,11 @@ proc cgiError*(msg: string) {.noreturn.} = raise newException(CgiError, msg) proc getEncodedData(allowedMethods: set[RequestMethod]): string = - case getEnv("REQUEST_METHOD").string + case getEnv("REQUEST_METHOD") of "POST": if methodPost notin allowedMethods: cgiError("'REQUEST_METHOD' 'POST' is not supported") - var L = parseInt(getEnv("CONTENT_LENGTH").string) + var L = parseInt(getEnv("CONTENT_LENGTH")) if L == 0: return "" result = newString(L) @@ -76,7 +76,7 @@ proc getEncodedData(allowedMethods: set[RequestMethod]): string = of "GET": if methodGet notin allowedMethods: cgiError("'REQUEST_METHOD' 'GET' is not supported") - result = getEnv("QUERY_STRING").string + result = getEnv("QUERY_STRING") else: if methodNone notin allowedMethods: cgiError("'REQUEST_METHOD' must be 'POST' or 'GET'") @@ -102,13 +102,13 @@ proc readData*(allowedMethods: set[RequestMethod] = ## `allowedMethods` set, a `CgiError` exception is raised. result = newStringTable() for name, value in decodeData(allowedMethods): - result[name.string] = value.string + result[name] = value proc readData*(data: string): StringTableRef = ## Reads CGI data from a string. result = newStringTable() for name, value in decodeData(data): - result[name.string] = value.string + result[name] = value proc validateData*(data: StringTableRef, validKeys: varargs[string]) = ## Validates data; raises `CgiError` if this fails. This checks that each variable @@ -119,131 +119,131 @@ proc validateData*(data: StringTableRef, validKeys: varargs[string]) = proc getContentLength*(): string = ## Returns contents of the `CONTENT_LENGTH` environment variable. - return getEnv("CONTENT_LENGTH").string + return getEnv("CONTENT_LENGTH") proc getContentType*(): string = ## Returns contents of the `CONTENT_TYPE` environment variable. - return getEnv("CONTENT_Type").string + return getEnv("CONTENT_Type") proc getDocumentRoot*(): string = ## Returns contents of the `DOCUMENT_ROOT` environment variable. - return getEnv("DOCUMENT_ROOT").string + return getEnv("DOCUMENT_ROOT") proc getGatewayInterface*(): string = ## Returns contents of the `GATEWAY_INTERFACE` environment variable. - return getEnv("GATEWAY_INTERFACE").string + return getEnv("GATEWAY_INTERFACE") proc getHttpAccept*(): string = ## Returns contents of the `HTTP_ACCEPT` environment variable. - return getEnv("HTTP_ACCEPT").string + return getEnv("HTTP_ACCEPT") proc getHttpAcceptCharset*(): string = ## Returns contents of the `HTTP_ACCEPT_CHARSET` environment variable. - return getEnv("HTTP_ACCEPT_CHARSET").string + return getEnv("HTTP_ACCEPT_CHARSET") proc getHttpAcceptEncoding*(): string = ## Returns contents of the `HTTP_ACCEPT_ENCODING` environment variable. - return getEnv("HTTP_ACCEPT_ENCODING").string + return getEnv("HTTP_ACCEPT_ENCODING") proc getHttpAcceptLanguage*(): string = ## Returns contents of the `HTTP_ACCEPT_LANGUAGE` environment variable. - return getEnv("HTTP_ACCEPT_LANGUAGE").string + return getEnv("HTTP_ACCEPT_LANGUAGE") proc getHttpConnection*(): string = ## Returns contents of the `HTTP_CONNECTION` environment variable. - return getEnv("HTTP_CONNECTION").string + return getEnv("HTTP_CONNECTION") proc getHttpCookie*(): string = ## Returns contents of the `HTTP_COOKIE` environment variable. - return getEnv("HTTP_COOKIE").string + return getEnv("HTTP_COOKIE") proc getHttpHost*(): string = ## Returns contents of the `HTTP_HOST` environment variable. - return getEnv("HTTP_HOST").string + return getEnv("HTTP_HOST") proc getHttpReferer*(): string = ## Returns contents of the `HTTP_REFERER` environment variable. - return getEnv("HTTP_REFERER").string + return getEnv("HTTP_REFERER") proc getHttpUserAgent*(): string = ## Returns contents of the `HTTP_USER_AGENT` environment variable. - return getEnv("HTTP_USER_AGENT").string + return getEnv("HTTP_USER_AGENT") proc getPathInfo*(): string = ## Returns contents of the `PATH_INFO` environment variable. - return getEnv("PATH_INFO").string + return getEnv("PATH_INFO") proc getPathTranslated*(): string = ## Returns contents of the `PATH_TRANSLATED` environment variable. - return getEnv("PATH_TRANSLATED").string + return getEnv("PATH_TRANSLATED") proc getQueryString*(): string = ## Returns contents of the `QUERY_STRING` environment variable. - return getEnv("QUERY_STRING").string + return getEnv("QUERY_STRING") proc getRemoteAddr*(): string = ## Returns contents of the `REMOTE_ADDR` environment variable. - return getEnv("REMOTE_ADDR").string + return getEnv("REMOTE_ADDR") proc getRemoteHost*(): string = ## Returns contents of the `REMOTE_HOST` environment variable. - return getEnv("REMOTE_HOST").string + return getEnv("REMOTE_HOST") proc getRemoteIdent*(): string = ## Returns contents of the `REMOTE_IDENT` environment variable. - return getEnv("REMOTE_IDENT").string + return getEnv("REMOTE_IDENT") proc getRemotePort*(): string = ## Returns contents of the `REMOTE_PORT` environment variable. - return getEnv("REMOTE_PORT").string + return getEnv("REMOTE_PORT") proc getRemoteUser*(): string = ## Returns contents of the `REMOTE_USER` environment variable. - return getEnv("REMOTE_USER").string + return getEnv("REMOTE_USER") proc getRequestMethod*(): string = ## Returns contents of the `REQUEST_METHOD` environment variable. - return getEnv("REQUEST_METHOD").string + return getEnv("REQUEST_METHOD") proc getRequestURI*(): string = ## Returns contents of the `REQUEST_URI` environment variable. - return getEnv("REQUEST_URI").string + return getEnv("REQUEST_URI") proc getScriptFilename*(): string = ## Returns contents of the `SCRIPT_FILENAME` environment variable. - return getEnv("SCRIPT_FILENAME").string + return getEnv("SCRIPT_FILENAME") proc getScriptName*(): string = ## Returns contents of the `SCRIPT_NAME` environment variable. - return getEnv("SCRIPT_NAME").string + return getEnv("SCRIPT_NAME") proc getServerAddr*(): string = ## Returns contents of the `SERVER_ADDR` environment variable. - return getEnv("SERVER_ADDR").string + return getEnv("SERVER_ADDR") proc getServerAdmin*(): string = ## Returns contents of the `SERVER_ADMIN` environment variable. - return getEnv("SERVER_ADMIN").string + return getEnv("SERVER_ADMIN") proc getServerName*(): string = ## Returns contents of the `SERVER_NAME` environment variable. - return getEnv("SERVER_NAME").string + return getEnv("SERVER_NAME") proc getServerPort*(): string = ## Returns contents of the `SERVER_PORT` environment variable. - return getEnv("SERVER_PORT").string + return getEnv("SERVER_PORT") proc getServerProtocol*(): string = ## Returns contents of the `SERVER_PROTOCOL` environment variable. - return getEnv("SERVER_PROTOCOL").string + return getEnv("SERVER_PROTOCOL") proc getServerSignature*(): string = ## Returns contents of the `SERVER_SIGNATURE` environment variable. - return getEnv("SERVER_SIGNATURE").string + return getEnv("SERVER_SIGNATURE") proc getServerSoftware*(): string = ## Returns contents of the `SERVER_SOFTWARE` environment variable. - return getEnv("SERVER_SOFTWARE").string + return getEnv("SERVER_SOFTWARE") proc setTestData*(keysvalues: varargs[string]) = ## Fills the appropriate environment variables to test your CGI application. diff --git a/lib/pure/httpclient.nim b/lib/pure/httpclient.nim index 5508f0dbf..f2a49fae1 100644 --- a/lib/pure/httpclient.nim +++ b/lib/pure/httpclient.nim @@ -415,7 +415,7 @@ proc addFiles*(p: MultipartData, xs: openArray[tuple[name, file: string]], let (_, fName, ext) = splitFile(file) if ext.len > 0: contentType = mimeDb.getMimetype(ext[1..ext.high], "") - let content = if useStream: file else: readFile(file).string + let content = if useStream: file else: readFile(file) p.add(name, content, fName & ext, contentType, useStream = useStream) result = p @@ -455,8 +455,8 @@ proc sendFile(socket: Socket | AsyncSocket, var buffer: string while true: buffer = - when socket is AsyncSocket: (await read(file, chunkSize)).string - else: readStr(file, chunkSize).string + when socket is AsyncSocket: (await read(file, chunkSize)) + else: readStr(file, chunkSize) if buffer.len == 0: break await socket.send(buffer) file.close() @@ -690,7 +690,7 @@ proc parseChunks(client: HttpClient | AsyncHttpClient): Future[void] {.multisync.} = while true: var chunkSize = 0 - var chunkSizeStr = (await client.socket.recvLine()).string + var chunkSizeStr = await client.socket.recvLine() var i = 0 if chunkSizeStr == "": httpError("Server terminated connection prematurely") @@ -789,9 +789,9 @@ proc parseResponse(client: HttpClient | AsyncHttpClient, while true: linei = 0 when client is HttpClient: - line = (await client.socket.recvLine(client.timeout)).string + line = await client.socket.recvLine(client.timeout) else: - line = (await client.socket.recvLine()).string + line = await client.socket.recvLine() if line == "": # We've been disconnected. client.close() diff --git a/lib/pure/memfiles.nim b/lib/pure/memfiles.nim index 06eb2d6c2..dde23f7a2 100644 --- a/lib/pure/memfiles.nim +++ b/lib/pure/memfiles.nim @@ -443,9 +443,9 @@ iterator lines*(mfile: MemFile, buf: var string, delim = '\l', ## echo line for ms in memSlices(mfile, delim, eat): - setLen(buf.string, ms.size) + setLen(buf, ms.size) if ms.size > 0: - copyMem(addr string(buf)[0], ms.data, ms.size) + copyMem(addr buf[0], ms.data, ms.size) yield buf iterator lines*(mfile: MemFile, delim = '\l', eat = '\r'): string {.inline.} = diff --git a/lib/pure/net.nim b/lib/pure/net.nim index 2a9ff0b83..c59babba7 100644 --- a/lib/pure/net.nim +++ b/lib/pure/net.nim @@ -1513,23 +1513,23 @@ proc readLine*(socket: Socket, line: var string, timeout = -1, template addNLIfEmpty() = if line.len == 0: - line.string.add("\c\L") + line.add("\c\L") template raiseSockError() {.dirty.} = let lastError = getSocketError(socket) if flags.isDisconnectionError(lastError): - setLen(line.string, 0) + setLen(line, 0) socket.socketError(n, lastError = lastError, flags = flags) var waited: Duration - setLen(line.string, 0) + setLen(line, 0) while true: var c: char discard waitFor(socket, waited, timeout, 1, "readLine") var n = recv(socket, addr(c), 1) if n < 0: raiseSockError() - elif n == 0: setLen(line.string, 0); return + elif n == 0: setLen(line, 0); return if c == '\r': discard waitFor(socket, waited, timeout, 1, "readLine") n = peekChar(socket, c) @@ -1541,10 +1541,10 @@ proc readLine*(socket: Socket, line: var string, timeout = -1, elif c == '\L': addNLIfEmpty() return - add(line.string, c) + add(line, c) # Verify that this isn't a DOS attack: #3847. - if line.string.len > maxLength: break + if line.len > maxLength: break proc recvLine*(socket: Socket, timeout = -1, flags = {SocketFlag.SafeDisconn}, diff --git a/lib/pure/os.nim b/lib/pure/os.nim index 3b5d2cf1a..f62d23b6d 100644 --- a/lib/pure/os.nim +++ b/lib/pure/os.nim @@ -903,8 +903,8 @@ proc getHomeDir*(): string {.rtl, extern: "nos$1", runnableExamples: assert getHomeDir() == expandTilde("~") - when defined(windows): return string(getEnv("USERPROFILE")) & "\\" - else: return string(getEnv("HOME")) & "/" + when defined(windows): return getEnv("USERPROFILE") & "\\" + else: return getEnv("HOME") & "/" proc getConfigDir*(): string {.rtl, extern: "nos$1", tags: [ReadEnvEffect, ReadIOEffect].} = @@ -925,9 +925,9 @@ proc getConfigDir*(): string {.rtl, extern: "nos$1", ## * `getCurrentDir proc <#getCurrentDir>`_ ## * `setCurrentDir proc <#setCurrentDir,string>`_ when defined(windows): - result = getEnv("APPDATA").string + result = getEnv("APPDATA") else: - result = getEnv("XDG_CONFIG_HOME", getEnv("HOME").string / ".config").string + result = getEnv("XDG_CONFIG_HOME", getEnv("HOME") / ".config") result.normalizePathEnd(trailingSep = true) proc getTempDir*(): string {.rtl, extern: "nos$1", @@ -951,10 +951,10 @@ proc getTempDir*(): string {.rtl, extern: "nos$1", when defined(tempDir): const tempDir {.strdefine.}: string = tempDirDefault result = tempDir - elif defined(windows): result = string(getEnv("TEMP")) + elif defined(windows): result = getEnv("TEMP") elif defined(android): result = getHomeDir() else: - if existsEnv("TMPDIR"): result = string(getEnv("TMPDIR")) + if existsEnv("TMPDIR"): result = getEnv("TMPDIR") normalizePathEnd(result, trailingSep=true) proc expandTilde*(path: string): string {. @@ -1186,7 +1186,7 @@ proc findExe*(exe: string, followSymlinks: bool = true; if '/' in exe: checkCurrentDir() else: checkCurrentDir() - let path = string(getEnv("PATH")) + let path = getEnv("PATH") for candidate in split(path, PathSep): if candidate.len == 0: continue when defined(windows): @@ -2936,7 +2936,7 @@ when not weirdTarget and defined(openbsd): # POSIX guaranties that this contains the executable # as it has been executed by the calling process - let exePath = string(paramStr(0)) + let exePath = paramStr(0) if len(exePath) == 0: return "" @@ -2955,7 +2955,7 @@ when not weirdTarget and defined(openbsd): return expandFilename(result) # search in path - for p in split(string(getEnv("PATH")), {PathSep}): + for p in split(getEnv("PATH"), {PathSep}): var x = joinPath(p, exePath) if fileExists(x): return expandFilename(x) @@ -2965,12 +2965,12 @@ when not weirdTarget and defined(openbsd): when not (defined(windows) or defined(macosx) or weirdTarget): proc getApplHeuristic(): string = when declared(paramStr): - result = string(paramStr(0)) + result = paramStr(0) # POSIX guaranties that this contains the executable # as it has been executed by the calling process if len(result) > 0 and result[0] != DirSep: # not an absolute path? # iterate over any path in the $PATH environment variable - for p in split(string(getEnv("PATH")), {PathSep}): + for p in split(getEnv("PATH"), {PathSep}): var x = joinPath(p, result) if fileExists(x): return x else: diff --git a/lib/pure/osproc.nim b/lib/pure/osproc.nim index 5f6dfb461..a35ff3a9a 100644 --- a/lib/pure/osproc.nim +++ b/lib/pure/osproc.nim @@ -514,8 +514,8 @@ when not defined(useNimRtl): while true: # FIXME: converts CR-LF to LF. if outp.readLine(line): - result.string.add(line.string) - result.string.add("\n") + result.add(line) + result.add("\n") elif not running(p): break close(p) @@ -932,7 +932,7 @@ elif not defined(useNimRtl): result = cast[cstringArray](alloc0((counter + 1) * sizeof(cstring))) var i = 0 for key, val in envPairs(): - var x = key.string & "=" & val.string + var x = key & "=" & val result[i] = cast[cstring](alloc(x.len+1)) copyMem(result[i], addr(x[0]), x.len+1) inc(i) @@ -1623,8 +1623,8 @@ proc execCmdEx*(command: string, options: set[ProcessOption] = { var line = newStringOfCap(120) while true: if outp.readLine(line): - result[0].string.add(line.string) - result[0].string.add("\n") + result[0].add(line) + result[0].add("\n") else: result[1] = peekExitCode(p) if result[1] != -1: break diff --git a/lib/pure/parseopt.nim b/lib/pure/parseopt.nim index 7916cebba..e9e1e0e91 100644 --- a/lib/pure/parseopt.nim +++ b/lib/pure/parseopt.nim @@ -228,7 +228,7 @@ when declared(os.paramCount): else: result.cmds = newSeq[string](os.paramCount()) for i in countup(1, os.paramCount()): - result.cmds[i-1] = os.paramStr(i).string + result.cmds[i-1] = os.paramStr(i) result.kind = cmdEnd result.key = "" @@ -261,11 +261,11 @@ when declared(os.paramCount): if cmdline.len != 0: result.cmds = newSeq[string](cmdline.len) for i in 0..<cmdline.len: - result.cmds[i] = cmdline[i].string + result.cmds[i] = cmdline[i] else: result.cmds = newSeq[string](os.paramCount()) for i in countup(1, os.paramCount()): - result.cmds[i-1] = os.paramStr(i).string + result.cmds[i-1] = os.paramStr(i) result.kind = cmdEnd result.key = "" result.val = "" @@ -274,14 +274,14 @@ proc handleShortOption(p: var OptParser; cmd: string) = var i = p.pos p.kind = cmdShortOption if i < cmd.len: - add(p.key.string, cmd[i]) + add(p.key, cmd[i]) inc(i) p.inShortState = true while i < cmd.len and cmd[i] in {'\t', ' '}: inc(i) p.inShortState = false if i < cmd.len and (cmd[i] in {':', '='} or - card(p.shortNoVal) > 0 and p.key.string[0] notin p.shortNoVal): + card(p.shortNoVal) > 0 and p.key[0] notin p.shortNoVal): if i < cmd.len and cmd[i] in {':', '='}: inc(i) p.inShortState = false @@ -319,8 +319,8 @@ proc next*(p: var OptParser) {.rtl, extern: "npo$1".} = var i = p.pos while i < p.cmds[p.idx].len and p.cmds[p.idx][i] in {'\t', ' '}: inc(i) p.pos = i - setLen(p.key.string, 0) - setLen(p.val.string, 0) + setLen(p.key, 0) + setLen(p.val, 0) if p.inShortState: p.inShortState = false if i >= p.cmds[p.idx].len: @@ -338,7 +338,7 @@ proc next*(p: var OptParser) {.rtl, extern: "npo$1".} = if i < p.cmds[p.idx].len and p.cmds[p.idx][i] == '-': p.kind = cmdLongOption inc(i) - i = parseWord(p.cmds[p.idx], i, p.key.string, {' ', '\t', ':', '='}) + i = parseWord(p.cmds[p.idx], i, p.key, {' ', '\t', ':', '='}) while i < p.cmds[p.idx].len and p.cmds[p.idx][i] in {'\t', ' '}: inc(i) if i < p.cmds[p.idx].len and p.cmds[p.idx][i] in {':', '='}: inc(i) @@ -350,7 +350,7 @@ proc next*(p: var OptParser) {.rtl, extern: "npo$1".} = i = 0 if p.idx < p.cmds.len: p.val = p.cmds[p.idx].substr(i) - elif len(p.longNoVal) > 0 and p.key.string notin p.longNoVal and p.idx+1 < p.cmds.len: + elif len(p.longNoVal) > 0 and p.key notin p.longNoVal and p.idx+1 < p.cmds.len: p.val = p.cmds[p.idx+1] inc p.idx else: diff --git a/lib/pure/pegs.nim b/lib/pure/pegs.nim index f9868b619..54ca4e3c5 100644 --- a/lib/pure/pegs.nim +++ b/lib/pure/pegs.nim @@ -1332,7 +1332,7 @@ when not defined(js): ## error occurs. This is supposed to be used for quick scripting. ## ## **Note**: this proc does not exist while using the JS backend. - var x = readFile(infile).string + var x = readFile(infile) writeFile(outfile, x.parallelReplace(subs)) diff --git a/lib/pure/smtp.nim b/lib/pure/smtp.nim index 625c783c9..f905825fa 100644 --- a/lib/pure/smtp.nim +++ b/lib/pure/smtp.nim @@ -103,7 +103,7 @@ proc debugRecv*(smtp: Smtp | AsyncSmtp): Future[string] {.multisync.} = result = await smtp.sock.recvLine() if smtp.debug: - echo("S:" & result.string) + echo("S:" & result) proc quitExcpt(smtp: Smtp, msg: string) = smtp.debugSend("QUIT") diff --git a/lib/pure/streams.nim b/lib/pure/streams.nim index f9d0ffc5f..88def695d 100644 --- a/lib/pure/streams.nim +++ b/lib/pure/streams.nim @@ -924,7 +924,7 @@ proc readStrPrivate(s: Stream, length: int, str: var string) = when defined(js): let L = readData(s, addr(str), length) else: - let L = readData(s, cstring(str.string), length) + let L = readData(s, cstring(str), length) if L != len(str): setLen(str, L) proc readStr*(s: Stream, length: int, str: var string) {.since: (1, 3).} = @@ -950,7 +950,7 @@ proc peekStrPrivate(s: Stream, length: int, str: var string) = when defined(js): let L = peekData(s, addr(str), length) else: - let L = peekData(s, cstring(str.string), length) + let L = peekData(s, cstring(str), length) if L != len(str): setLen(str, L) proc peekStr*(s: Stream, length: int, str: var string) {.since: (1, 3).} = diff --git a/lib/pure/streamwrapper.nim b/lib/pure/streamwrapper.nim index 24cccda0d..b457e1be1 100644 --- a/lib/pure/streamwrapper.nim +++ b/lib/pure/streamwrapper.nim @@ -31,7 +31,7 @@ proc posReadLine[T](s: Stream, line: var string): bool = assert s.baseReadLineImpl != nil let n = s.buffer.len - line.string.setLen(0) + line.setLen(0) for i in 0..<n: var c = s.buffer.popFirst if c == '\c': @@ -40,7 +40,7 @@ proc posReadLine[T](s: Stream, line: var string): bool = elif c == '\L': return true elif c == '\0': return line.len > 0 - line.string.add(c) + line.add(c) var line2: string result = s.baseReadLineImpl(s, line2) diff --git a/lib/pure/strtabs.nim b/lib/pure/strtabs.nim index 7cf668d19..9047841a6 100644 --- a/lib/pure/strtabs.nim +++ b/lib/pure/strtabs.nim @@ -304,7 +304,7 @@ proc getValue(t: StringTableRef, flags: set[FormatFlag], key: string): string = when defined(js) or defined(nimscript) or defined(Standalone): result = "" else: - if useEnvironment in flags: result = getEnv(key).string + if useEnvironment in flags: result = getEnv(key) else: result = "" if result.len == 0: if useKey in flags: result = '$' & key diff --git a/lib/pure/terminal.nim b/lib/pure/terminal.nim index b56869616..14a2613fe 100644 --- a/lib/pure/terminal.nim +++ b/lib/pure/terminal.nim @@ -253,7 +253,7 @@ else: discard close(fd) if w > 0: return w var s = getEnv("COLUMNS") #Try standard env var - if len(s) > 0 and parseInt(string(s), w) > 0 and w > 0: + if len(s) > 0 and parseInt(s, w) > 0 and w > 0: return w return 80 #Finally default to venerable value @@ -271,7 +271,7 @@ else: discard close(fd) if h > 0: return h var s = getEnv("LINES") # Try standard env var - if len(s) > 0 and parseInt(string(s), h) > 0 and h > 0: + if len(s) > 0 and parseInt(s, h) > 0 and h > 0: return h return 0 # Could not determine height @@ -776,7 +776,7 @@ when defined(windows): ## Reads a `password` from stdin without printing it. `password` must not ## be ``nil``! Returns ``false`` if the end of the file has been reached, ## ``true`` otherwise. - password.string.setLen(0) + password.setLen(0) stdout.write(prompt) let hi = createFileA("CONIN$", GENERIC_READ or GENERIC_WRITE, 0, nil, OPEN_EXISTING, 0, 0) @@ -799,7 +799,7 @@ else: proc readPasswordFromStdin*(prompt: string, password: var string): bool {.tags: [ReadIOEffect, WriteIOEffect].} = - password.string.setLen(0) + password.setLen(0) let fd = stdin.getFileHandle() var cur, old: Termios discard fd.tcGetAttr(cur.addr) @@ -882,7 +882,7 @@ proc enableTrueColors*() = else: term.trueColorIsEnabled = true else: - term.trueColorIsSupported = string(getEnv("COLORTERM")).toLowerAscii() in [ + term.trueColorIsSupported = getEnv("COLORTERM").toLowerAscii() in [ "truecolor", "24bit"] term.trueColorIsEnabled = term.trueColorIsSupported diff --git a/lib/pure/unidecode/unidecode.nim b/lib/pure/unidecode/unidecode.nim index 166608aeb..9985b14b8 100644 --- a/lib/pure/unidecode/unidecode.nim +++ b/lib/pure/unidecode/unidecode.nim @@ -46,7 +46,7 @@ proc loadUnidecodeTable*(datafile = "unidecode.dat") = newSeq(translationTable, 0xffff) var i = 0 for line in lines(datafile): - translationTable[i] = line.string + translationTable[i] = line inc(i) proc unidecode*(s: string): string = diff --git a/lib/system/channels.nim b/lib/system/channels.nim index e4b172c16..51a6f44ee 100644 --- a/lib/system/channels.nim +++ b/lib/system/channels.nim @@ -151,7 +151,7 @@ type region: MemRegion PRawChannel = ptr RawChannel LoadStoreMode = enum mStore, mLoad - Channel* {.gcsafe.}[TMsg] = RawChannel ## a channel for thread communication + Channel*[TMsg] {.gcsafe.} = RawChannel ## a channel for thread communication const ChannelDeadMask = -2 @@ -248,7 +248,7 @@ when not usesDestructors: dstseq.reserved = seq.len for i in 0..seq.len-1: storeAux( - cast[pointer](dst +% align(GenericSeqSize, mt.base.align) +% i*% mt.base.size), + cast[pointer](dst +% align(GenericSeqSize, mt.base.align) +% i *% mt.base.size), cast[pointer](cast[ByteAddress](s2) +% align(GenericSeqSize, mt.base.align) +% i *% mt.base.size), mt.base, t, mode) @@ -265,8 +265,8 @@ when not usesDestructors: storeAux(dest, src, mt.node, t, mode) of tyArray, tyArrayConstr: for i in 0..(mt.size div mt.base.size)-1: - storeAux(cast[pointer](d +% i*% mt.base.size), - cast[pointer](s +% i*% mt.base.size), mt.base, t, mode) + storeAux(cast[pointer](d +% i *% mt.base.size), + cast[pointer](s +% i *% mt.base.size), mt.base, t, mode) of tyRef: var s = cast[PPointer](src)[] var x = cast[PPointer](dest) diff --git a/lib/system/io.nim b/lib/system/io.nim index 86f4be2b9..016db4bac 100644 --- a/lib/system/io.nim +++ b/lib/system/io.nim @@ -434,19 +434,19 @@ proc readLine*(f: File, line: var string): bool {.tags: [ReadIOEffect], var pos = 0 # Use the currently reserved space for a first try - var sp = max(line.string.len, 80) - line.string.setLen(sp) + var sp = max(line.len, 80) + line.setLen(sp) while true: # memset to \L so that we can tell how far fgets wrote, even on EOF, where # fgets doesn't append an \L - for i in 0..<sp: line.string[pos+i] = '\L' + for i in 0..<sp: line[pos+i] = '\L' var fgetsSuccess: bool while true: # fixes #9634; this pattern may need to be abstracted as a template if reused; # likely other io procs need this for correctness. - fgetsSuccess = c_fgets(addr line.string[pos], sp.cint, f) != nil + fgetsSuccess = c_fgets(addr line[pos], sp.cint, f) != nil if fgetsSuccess: break when not defined(NimScript): if errno == EINTR: @@ -456,20 +456,20 @@ proc readLine*(f: File, line: var string): bool {.tags: [ReadIOEffect], checkErr(f) break - let m = c_memchr(addr line.string[pos], '\L'.ord, cast[csize_t](sp)) + let m = c_memchr(addr line[pos], '\L'.ord, cast[csize_t](sp)) if m != nil: # \l found: Could be our own or the one by fgets, in any case, we're done - var last = cast[ByteAddress](m) - cast[ByteAddress](addr line.string[0]) - if last > 0 and line.string[last-1] == '\c': - line.string.setLen(last-1) + var last = cast[ByteAddress](m) - cast[ByteAddress](addr line[0]) + if last > 0 and line[last-1] == '\c': + line.setLen(last-1) return last > 1 or fgetsSuccess # We have to distinguish between two possible cases: # \0\l\0 => line ending in a null character. # \0\l\l => last line without newline, null was put there by fgets. - elif last > 0 and line.string[last-1] == '\0': - if last < pos + sp - 1 and line.string[last+1] != '\0': + elif last > 0 and line[last-1] == '\0': + if last < pos + sp - 1 and line[last+1] != '\0': dec last - line.string.setLen(last) + line.setLen(last) return last > 0 or fgetsSuccess else: # fgets will have inserted a null byte at the end of the string. @@ -477,7 +477,7 @@ proc readLine*(f: File, line: var string): bool {.tags: [ReadIOEffect], # No \l found: Increase buffer and read more inc pos, sp sp = 128 # read in 128 bytes at a time - line.string.setLen(pos+sp) + line.setLen(pos+sp) proc readLine*(f: File): string {.tags: [ReadIOEffect], benign.} = ## reads a line of text from the file `f`. May throw an IO exception. |