summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorOliver Kiddle <opk@zsh.org>2021-04-11 22:26:36 +0200
committerOliver Kiddle <opk@zsh.org>2021-04-11 22:26:36 +0200
commit704d10989e0db83bd6460e847a9f89017e290474 (patch)
tree06053a32217b9f55772b630baa7a554f89be7ad3
parent638815623368683e685a8d706e57634f6fec6401 (diff)
downloadzsh-704d10989e0db83bd6460e847a9f89017e290474.tar.gz
zsh-704d10989e0db83bd6460e847a9f89017e290474.zip
48504: use SEEK_ macros in fseek() calls
-rw-r--r--ChangeLog6
-rw-r--r--Src/hist.c4
-rw-r--r--Src/input.c4
-rw-r--r--Src/watch.c4
4 files changed, 12 insertions, 6 deletions
diff --git a/ChangeLog b/ChangeLog
index 8007f51a2..6e32e8864 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,11 @@
2021-04-11 Oliver Kiddle <opk@zsh.org>
+ * 48504: Src/hist.c, Src/input.c, Src/watch.c:
+ use SEEK_ macros in fseek() calls
+
+ * Michael Stapelberg: 45396: Src/hist.c: readhistfile:
+ avoid thousands of lseek(2) syscalls via ftell()
+
* Marc Chantreux: 48466: Completion/Unix/Command/_surfraw:
correct indentation and remove tabs and trailing spaces
diff --git a/Src/hist.c b/Src/hist.c
index 2e5ac97d9..42cae030c 100644
--- a/Src/hist.c
+++ b/Src/hist.c
@@ -2664,7 +2664,7 @@ readhistfile(char *fn, int err, int readflags)
pushheap();
if (readflags & HFILE_FAST && lasthist.text) {
if (lasthist.fpos < lasthist.fsiz) {
- fseek(in, lasthist.fpos, 0);
+ fseek(in, lasthist.fpos, SEEK_SET);
searching = 1;
}
else {
@@ -2741,7 +2741,7 @@ readhistfile(char *fn, int err, int readflags)
&& histstrcmp(pt, lasthist.text) == 0)
searching = 0;
else {
- fseek(in, 0, 0);
+ fseek(in, 0, SEEK_SET);
histfile_linect = 0;
searching = -1;
}
diff --git a/Src/input.c b/Src/input.c
index e9989ffe4..f568cc135 100644
--- a/Src/input.c
+++ b/Src/input.c
@@ -495,9 +495,9 @@ stuff(char *fn)
zerr("can't open %s", fn);
return 1;
}
- fseek(in, 0, 2);
+ fseek(in, 0, SEEK_END);
len = ftell(in);
- fseek(in, 0, 0);
+ fseek(in, 0, SEEK_SET);
buf = (char *)zalloc(len + 1);
if (!(fread(buf, len, 1, in))) {
zerr("read error on %s", fn);
diff --git a/Src/watch.c b/Src/watch.c
index 93b3cb134..c41704315 100644
--- a/Src/watch.c
+++ b/Src/watch.c
@@ -169,9 +169,9 @@ getlogtime(WATCH_STRUCT_UTMP *u, int inout)
return u->ut_time;
if (!(in = fopen(WATCH_WTMP_FILE, "r")))
return time(NULL);
- fseek(in, 0, 2);
+ fseek(in, 0, SEEK_END);
do {
- if (fseek(in, ((first) ? -1 : -2) * sizeof(WATCH_STRUCT_UTMP), 1)) {
+ if (fseek(in, ((first) ? -1 : -2) * sizeof(WATCH_STRUCT_UTMP), SEEK_CUR)) {
fclose(in);
return time(NULL);
}