diff options
author | Bart Schaefer <schaefer@zsh.org> | 2023-09-16 13:08:59 -0700 |
---|---|---|
committer | Bart Schaefer <schaefer@zsh.org> | 2023-09-16 13:08:59 -0700 |
commit | 355cfc1b95ca65e7ab9ada5b59a82ed4f651556f (patch) | |
tree | 72dbef24e8e0d70ee83d27eef191f690466a0af0 /Src/Modules/mapfile.c | |
parent | aecef41f2e47e738214cf6c55a383b4eae87902f (diff) | |
download | zsh-355cfc1b95ca65e7ab9ada5b59a82ed4f651556f.tar.gz zsh-355cfc1b95ca65e7ab9ada5b59a82ed4f651556f.zip |
52153: mapfile without HAVE_MMAP should not trim newlines
Diffstat (limited to 'Src/Modules/mapfile.c')
-rw-r--r-- | Src/Modules/mapfile.c | 10 |
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; |