commit 40888ac024d6f1c6e669d219672446e9a4972043
parent 615e0b26c900a4afbe94daa8ec607786c0b3c34b
Author: Richard Ipsum <richardipsum@vx21.xyz>
Date: Mon, 5 Apr 2021 13:09:36 +0100
path_exists: exit if stat == -1 and errno != ENOENT
Diffstat:
1 file changed, 10 insertions(+), 2 deletions(-)
diff --git a/tyarn.c b/tyarn.c
@@ -1,6 +1,6 @@
/* tyarn: minimal yarn implementation
*
- * Copyright © 2019 Richard Ipsum
+ * Copyright © 2019 - 2021 Richard Ipsum
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
@@ -97,8 +97,16 @@ static int tyarn_path_exists(lua_State *L)
struct stat s;
const char *path = luaL_checkstring(L, 1);
- lua_pushboolean(L, (stat(path, &s) == -1 && errno == ENOENT) ? false : true);
+ if (stat(path, &s) == -1) {
+ if (errno != ENOENT) {
+ fprintf(stderr, "stat `%s': %s\n", path, strerror(errno));
+ exit(1);
+ }
+ lua_pushboolean(L, false); /* ENOENT */
+ return 1;
+ }
+ lua_pushboolean(L, true);
return 1;
}