]> git.kaiwu.me - quickjs.git/commitdiff
Use ftello() & fseeko() on any OS based on GNU libc
authorPino Toscano <toscano.pino@tiscali.it>
Sun, 9 Jun 2024 07:21:01 +0000 (09:21 +0200)
committerCharlie Gordon <github@chqrlie.org>
Sun, 21 Jul 2024 08:24:01 +0000 (10:24 +0200)
Strictly speaking, they are available in POSIX.1-2008 [1][2], so they
could be used on more platforms/OSes. To be cautious, enable them when
using GNU libc, since they have been available with that libc for a
very long time.

[1] https://pubs.opengroup.org/onlinepubs/9699919799/functions/ftell.html
[2] https://pubs.opengroup.org/onlinepubs/9699919799/functions/fseek.html

quickjs-libc.c

index 81371507f5cee6e35544caed83815e7806c190c7..40482a50c002d8980cb8501cc11a84d5411baa5d 100644 (file)
@@ -1090,7 +1090,7 @@ static JSValue js_std_file_tell(JSContext *ctx, JSValueConst this_val,
     int64_t pos;
     if (!f)
         return JS_EXCEPTION;
-#if defined(__linux__)
+#if defined(__linux__) || defined(__GLIBC__)
     pos = ftello(f);
 #else
     pos = ftell(f);
@@ -1113,7 +1113,7 @@ static JSValue js_std_file_seek(JSContext *ctx, JSValueConst this_val,
         return JS_EXCEPTION;
     if (JS_ToInt32(ctx, &whence, argv[1]))
         return JS_EXCEPTION;
-#if defined(__linux__)
+#if defined(__linux__) || defined(__GLIBC__)
     ret = fseeko(f, pos, whence);
 #else
     ret = fseek(f, pos, whence);