mirror of
https://github.com/nim-lang/Nim.git
synced 2025-12-30 01:44:37 +00:00
added another system.open; bugfix: koch clean may not break .git dirs anymore
This commit is contained in:
2
koch.nim
2
koch.nim
@@ -180,7 +180,7 @@ proc cleanAux(dir: string) =
|
||||
of "nimcache":
|
||||
echo "removing dir: ", path
|
||||
removeDir(path)
|
||||
of "dist", ".bzr":
|
||||
of "dist", ".git":
|
||||
nil
|
||||
else:
|
||||
cleanAux(path)
|
||||
|
||||
@@ -1477,15 +1477,22 @@ when not defined(EcmaScript) and not defined(NimrodVM):
|
||||
## Opens a file named `filename` with given `mode`.
|
||||
##
|
||||
## Default mode is readonly. Returns true iff the file could be opened.
|
||||
## This throws no exception if the file could not be opened. The reason is
|
||||
## that the programmer needs to provide an appropriate error message
|
||||
## anyway.
|
||||
## This throws no exception if the file could not be opened.
|
||||
|
||||
proc Open*(f: var TFile, filehandle: TFileHandle,
|
||||
mode: TFileMode = fmRead): Bool
|
||||
## Creates a ``TFile`` from a `filehandle` with given `mode`.
|
||||
##
|
||||
## Default mode is readonly. Returns true iff the file could be opened.
|
||||
|
||||
proc Open*(filename: string,
|
||||
mode: TFileMode = fmRead, bufSize: int = -1): TFile =
|
||||
## Opens a file named `filename` with given `mode`.
|
||||
##
|
||||
## Default mode is readonly. Raises an ``IO`` exception if the file
|
||||
## could not be opened.
|
||||
if not open(result, filename, mode, bufSize):
|
||||
raise newException(EIO, "cannot open: " & filename)
|
||||
|
||||
proc reopen*(f: TFile, filename: string, mode: TFileMode = fmRead): bool
|
||||
## reopens the file `f` with given `filename` and `mode`. This
|
||||
@@ -1582,10 +1589,7 @@ when not defined(EcmaScript) and not defined(NimrodVM):
|
||||
iterator lines*(filename: string): string =
|
||||
## Iterate over any line in the file named `filename`.
|
||||
## If the file does not exist `EIO` is raised.
|
||||
var
|
||||
f: TFile
|
||||
if not open(f, filename):
|
||||
raise newException(EIO, "cannot open: " & filename)
|
||||
var f = open(filename)
|
||||
var res = ""
|
||||
while not endOfFile(f):
|
||||
rawReadLine(f, res)
|
||||
|
||||
1
todo.txt
1
todo.txt
@@ -1,3 +1,4 @@
|
||||
- clean up the tests!
|
||||
- thread support: threadvar on Windows seems broken;
|
||||
add --deadlock_prevention:on|off switch
|
||||
- built-in serialization
|
||||
|
||||
@@ -67,7 +67,8 @@ Additions
|
||||
- The *interactive mode* (REPL) has been improved and documented for the
|
||||
first time.
|
||||
- Added the ``linearScanEnd``, ``unroll``, ``shallow`` pragmas.
|
||||
- Added ``system.reset``.
|
||||
- Added ``system.reset`` and a version of ``system.open`` that
|
||||
returns a ``TFile`` and raises an exception in case of an error.
|
||||
- The compiler now might use a hashing for string case statements depending
|
||||
on the number of string literals in the case statement.
|
||||
|
||||
|
||||
Reference in New Issue
Block a user