summary refs log tree commit diff stats
path: root/lib/pure/memfiles.nim
diff options
context:
space:
mode:
authorc-blake <c-blake@users.noreply.github.com>2024-09-04 05:01:55 -0400
committerGitHub <noreply@github.com>2024-09-04 17:01:55 +0800
commit6908fb4011945d746b80b4da9975e065fd32989e (patch)
tree14793b298e3bc73e73c2c077ea63d717411e5ad3 /lib/pure/memfiles.nim
parent080b0a03bd724ea50c5b90553c0aedc47be56a5e (diff)
downloadNim-6908fb4011945d746b80b4da9975e065fd32989e.tar.gz
Make `$` on 0-length `MemSlice` produce Nim "" as per DMisener idea (#24015)
in https://forum.nim-lang.org/t/12463 which seems reasonable enough to
me.

stdlib has several dozens of places doing result.setLen now, but if
`experimental:strictDefs` move sot on by default and there is no easy
way to locally suppress the warning we can revisit this.
Diffstat (limited to 'lib/pure/memfiles.nim')
-rw-r--r--lib/pure/memfiles.nim2
1 files changed, 1 insertions, 1 deletions
diff --git a/lib/pure/memfiles.nim b/lib/pure/memfiles.nim
index b10f7ad91..8eec551c4 100644
--- a/lib/pure/memfiles.nim
+++ b/lib/pure/memfiles.nim
@@ -412,7 +412,7 @@ proc `==`*(x, y: MemSlice): bool =
 proc `$`*(ms: MemSlice): string {.inline.} =
   ## Return a Nim string built from a MemSlice.
   result.setLen(ms.size)
-  copyMem(addr(result[0]), ms.data, ms.size)
+  copyMem(result.cstring, ms.data, ms.size)
 
 iterator memSlices*(mfile: MemFile, delim = '\l', eat = '\r'): MemSlice {.inline.} =
   ## Iterates over \[optional `eat`] `delim`-delimited slices in MemFile `mfile`.