diff options
| author | Hisham Muhammad <hisham@gobolinux.org> | 2016-04-25 16:56:26 -0300 |
|---|---|---|
| committer | Hisham Muhammad <hisham@gobolinux.org> | 2016-04-25 16:56:26 -0300 |
| commit | 436bc441fa34a086adfae776941e6e7c111a4582 (patch) | |
| tree | 7e7d312bdc896ec440e4f38a59cef07ddf7c6e13 | |
| parent | e519c13036066efedbf8e8afbe78a579a75364fc (diff) | |
| parent | c1e9c70214f9731b32a9ed713963e0326d167aa0 (diff) | |
| download | luafilesystem-436bc441fa34a086adfae776941e6e7c111a4582.tar.gz luafilesystem-436bc441fa34a086adfae776941e6e7c111a4582.tar.bz2 luafilesystem-436bc441fa34a086adfae776941e6e7c111a4582.zip | |
Merge pull request #68 from mpeterv/setmode-refactor
Minor refactoring of setmode
| -rw-r--r-- | src/lfs.c | 17 |
1 files changed, 6 insertions, 11 deletions
| @@ -117,10 +117,10 @@ typedef struct dir_data { | |||
| 117 | 117 | ||
| 118 | #ifdef _WIN32 | 118 | #ifdef _WIN32 |
| 119 | #ifdef __BORLANDC__ | 119 | #ifdef __BORLANDC__ |
| 120 | #define lfs_setmode(L,file,m) ((void)L, setmode(_fileno(file), m)) | 120 | #define lfs_setmode(file, m) (setmode(_fileno(file), m)) |
| 121 | #define STAT_STRUCT struct stati64 | 121 | #define STAT_STRUCT struct stati64 |
| 122 | #else | 122 | #else |
| 123 | #define lfs_setmode(L,file,m) ((void)L, _setmode(_fileno(file), m)) | 123 | #define lfs_setmode(file, m) (_setmode(_fileno(file), m)) |
| 124 | #define STAT_STRUCT struct _stati64 | 124 | #define STAT_STRUCT struct _stati64 |
| 125 | #endif | 125 | #endif |
| 126 | #define STAT_FUNC _stati64 | 126 | #define STAT_FUNC _stati64 |
| @@ -128,7 +128,7 @@ typedef struct dir_data { | |||
| 128 | #else | 128 | #else |
| 129 | #define _O_TEXT 0 | 129 | #define _O_TEXT 0 |
| 130 | #define _O_BINARY 0 | 130 | #define _O_BINARY 0 |
| 131 | #define lfs_setmode(L,file,m) ((void)L, (void)file, (void)m, 0) | 131 | #define lfs_setmode(file, m) ((void)file, (void)m, 0) |
| 132 | #define STAT_STRUCT struct stat | 132 | #define STAT_STRUCT struct stat |
| 133 | #define STAT_FUNC stat | 133 | #define STAT_FUNC stat |
| 134 | #define LSTAT_FUNC lstat | 134 | #define LSTAT_FUNC lstat |
| @@ -347,25 +347,20 @@ static int lfs_g_setmode (lua_State *L, FILE *f, int arg) { | |||
| 347 | static const int mode[] = {_O_BINARY, _O_TEXT}; | 347 | static const int mode[] = {_O_BINARY, _O_TEXT}; |
| 348 | static const char *const modenames[] = {"binary", "text", NULL}; | 348 | static const char *const modenames[] = {"binary", "text", NULL}; |
| 349 | int op = luaL_checkoption(L, arg, NULL, modenames); | 349 | int op = luaL_checkoption(L, arg, NULL, modenames); |
| 350 | int res = lfs_setmode(L, f, mode[op]); | 350 | int res = lfs_setmode(f, mode[op]); |
| 351 | if (res != -1) { | 351 | if (res != -1) { |
| 352 | int i; | 352 | int i; |
| 353 | lua_pushboolean(L, 1); | 353 | lua_pushboolean(L, 1); |
| 354 | for (i = 0; modenames[i] != NULL; i++) { | 354 | for (i = 0; modenames[i] != NULL; i++) { |
| 355 | if (mode[i] == res) { | 355 | if (mode[i] == res) { |
| 356 | lua_pushstring(L, modenames[i]); | 356 | lua_pushstring(L, modenames[i]); |
| 357 | goto exit; | 357 | return 2; |
| 358 | } | 358 | } |
| 359 | } | 359 | } |
| 360 | lua_pushnil(L); | 360 | lua_pushnil(L); |
| 361 | exit: | ||
| 362 | return 2; | 361 | return 2; |
| 363 | } else { | 362 | } else { |
| 364 | int en = errno; | 363 | return pusherror(L, NULL); |
| 365 | lua_pushnil(L); | ||
| 366 | lua_pushfstring(L, "%s", strerror(en)); | ||
| 367 | lua_pushinteger(L, en); | ||
| 368 | return 3; | ||
| 369 | } | 364 | } |
| 370 | } | 365 | } |
| 371 | 366 | ||
