diff options
author | Vincent Sanders <vince@kyllikki.org> | 2015-03-31 22:41:37 +0100 |
---|---|---|
committer | Vincent Sanders <vince@kyllikki.org> | 2015-03-31 22:41:37 +0100 |
commit | 82c7a7a4baf4a7a15381ee720799dc41c3d54909 (patch) | |
tree | 5f3b47ce1c0aca854323a8c7a06c94db5e05c373 /utils/utils.c | |
parent | 87a38ca5c1624cb86d8c031b38166a00494d6be0 (diff) | |
download | netsurf-82c7a7a4baf4a7a15381ee720799dc41c3d54909.tar.gz netsurf-82c7a7a4baf4a7a15381ee720799dc41c3d54909.tar.bz2 |
Fix RISC OS not having a pread/pwrite implementation.
Diffstat (limited to 'utils/utils.c')
-rw-r--r-- | utils/utils.c | 32 |
1 files changed, 32 insertions, 0 deletions
diff --git a/utils/utils.c b/utils/utils.c index 5c8acd6f0..722e32302 100644 --- a/utils/utils.c +++ b/utils/utils.c @@ -32,6 +32,7 @@ #include <regex.h> #include <time.h> #include <errno.h> +#include <unistd.h> #include "utils/config.h" #include "utils/log.h" @@ -628,3 +629,34 @@ nserror nsc_snptimet(char *str, size_t size, time_t *timep) return NSERROR_OK; } + +#ifndef HAVE_PREAD + +ssize_t pread(int fd, void *buf, size_t count, off_t offset) +{ + off_t sk; + + sk = lseek(fd, offset, SEEK_SET); + if (sk == -1) { + return (off_t)-1; + } + return read(fd, buf, count); +} + +#endif + + +#ifndef HAVE_PWRITE + +ssize_t pwrite(int fd, const void *buf, size_t count, off_t offset) +{ + off_t sk; + + sk = lseek(fd, offset, SEEK_SET); + if (sk == (off_t)-1) { + return -1; + } + return write(fd, buf, count); +} + +#endif |