summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJakob Kaivo <jkk@ung.org>2024-05-27 12:51:57 -0400
committerJakob Kaivo <jkk@ung.org>2024-05-27 12:51:57 -0400
commit7d71ad2b8589bef1bdf26c3cfec5ab99b6bba3b9 (patch)
treee434cd77d18881fc33dc7212fc5b9a0083369a9c
parent04e5527eeca240ca81b0b95b58c50ef6a16b8030 (diff)
update last operation after flushing, reopening, or setting file position
-rw-r--r--src/stdio/fflush.c2
-rw-r--r--src/stdio/freopen.c1
-rw-r--r--src/stdio/fseek.c2
-rw-r--r--src/stdio/fsetpos.c1
4 files changed, 6 insertions, 0 deletions
diff --git a/src/stdio/fflush.c b/src/stdio/fflush.c
index cb5f49c6..a653e0d1 100644
--- a/src/stdio/fflush.c
+++ b/src/stdio/fflush.c
@@ -54,6 +54,8 @@ int fflush(FILE *stream)
RETURN_FAILURE(CONSTANT(EOF));
*/
+ stream->operation = OP_NONE;
+
return ret;
}
diff --git a/src/stdio/freopen.c b/src/stdio/freopen.c
index f2238ff9..f23d53af 100644
--- a/src/stdio/freopen.c
+++ b/src/stdio/freopen.c
@@ -107,6 +107,7 @@ FILE * freopen(const char * restrict filename, const char * restrict mode, FILE
stream->text = !(strchr(mode, 'b'));
stream->read = ((openmode & O_RDONLY) == O_RDONLY) || ((openmode & O_RDWR) == O_RDWR);
stream->write = ((openmode & O_WRONLY) == O_WRONLY) || ((openmode & O_RDWR) == O_RDWR);
+ stream->operation = OP_NONE;
/*
RETURN_SUCCESS(ARGUMENT(stream));
diff --git a/src/stdio/fseek.c b/src/stdio/fseek.c
index 9f4bd733..f9f3371a 100644
--- a/src/stdio/fseek.c
+++ b/src/stdio/fseek.c
@@ -20,6 +20,8 @@ int fseek(FILE *stream, long int offset, int whence)
} else if (whence == SEEK_SET) {
}
+ stream->operation = OP_NONE;
+
return 1;
}
diff --git a/src/stdio/fsetpos.c b/src/stdio/fsetpos.c
index 40545061..c75fed41 100644
--- a/src/stdio/fsetpos.c
+++ b/src/stdio/fsetpos.c
@@ -10,6 +10,7 @@ int fsetpos(FILE *stream, const fpos_t *pos)
(void)stream; (void)pos;
/* TODO */
+ stream->operation = OP_NONE;
return 1;
}