remove useless failure-check from freopen (can't happen)
[musl] / src / stdio / freopen.c
index 8d3af9f..5b4f126 100644 (file)
@@ -7,7 +7,7 @@
 /* Locking is not necessary because, in the event of failure, the stream
  * passed to freopen is invalid as soon as freopen is called. */
 
-FILE *freopen(const char *filename, const char *mode, FILE *f)
+FILE *freopen(const char *restrict filename, const char *restrict mode, FILE *restrict f)
 {
        int fl;
        FILE *f2;
@@ -17,13 +17,13 @@ FILE *freopen(const char *filename, const char *mode, FILE *f)
        if (!filename) {
                f2 = fopen("/dev/null", mode);
                if (!f2) goto fail;
-               fl = __syscall_fcntl(f2->fd, F_GETFL, 0);
-               if (fl < 0 || __syscall_fcntl(f->fd, F_SETFL, fl) < 0)
+               fl = __syscall(SYS_fcntl, f2->fd, F_GETFL, 0);
+               if (syscall(SYS_fcntl, f->fd, F_SETFL, fl) < 0)
                        goto fail2;
        } else {
                f2 = fopen(filename, mode);
                if (!f2) goto fail;
-               if (__syscall_dup2(f2->fd, f->fd) < 0)
+               if (syscall(SYS_dup2, f2->fd, f->fd) < 0)
                        goto fail2;
        }
 
@@ -32,7 +32,6 @@ FILE *freopen(const char *filename, const char *mode, FILE *f)
        f->write = f2->write;
        f->seek = f2->seek;
        f->close = f2->close;
-       f->flush = f2->flush;
 
        fclose(f2);
        return f;