summaryrefslogtreecommitdiff
path: root/Src/Modules
diff options
context:
space:
mode:
authorBart Schaefer <schaefer@zsh.org>2023-09-16 13:08:59 -0700
committerBart Schaefer <schaefer@zsh.org>2023-09-16 13:08:59 -0700
commit355cfc1b95ca65e7ab9ada5b59a82ed4f651556f (patch)
tree72dbef24e8e0d70ee83d27eef191f690466a0af0 /Src/Modules
parentaecef41f2e47e738214cf6c55a383b4eae87902f (diff)
downloadzsh-355cfc1b95ca65e7ab9ada5b59a82ed4f651556f.tar.gz
zsh-355cfc1b95ca65e7ab9ada5b59a82ed4f651556f.zip
52153: mapfile without HAVE_MMAP should not trim newlines
Diffstat (limited to 'Src/Modules')
-rw-r--r--Src/Modules/mapfile.c10
1 files changed, 4 insertions, 6 deletions
diff --git a/Src/Modules/mapfile.c b/Src/Modules/mapfile.c
index dd86fb596..84cdfea18 100644
--- a/Src/Modules/mapfile.c
+++ b/Src/Modules/mapfile.c
@@ -170,6 +170,8 @@ get_contents(char *fname)
#ifdef USE_MMAP
caddr_t mmptr;
struct stat sbuf;
+#else
+ off_t size;
#endif
char *val;
unmetafy(fname = ztrdup(fname), &fd);
@@ -196,12 +198,8 @@ get_contents(char *fname)
close(fd);
#else /* don't USE_MMAP */
val = NULL;
- if ((fd = open(fname, O_RDONLY | O_NOCTTY)) >= 0) {
- LinkList ll;
-
- if ((ll = readoutput(fd, 1, 0)))
- val = peekfirst(ll);
- }
+ if ((size = zstuff(&val, fname)) > 0)
+ val = metafy(val, size, META_HEAPDUP);
#endif /* USE_MMAP */
free(fname);
return val;