fix for winblows
This commit is contained in:
21
src/shell.c
21
src/shell.c
@@ -20,14 +20,21 @@
|
|||||||
#endif
|
#endif
|
||||||
#if defined(_WIN32) || defined(_WIN64)
|
#if defined(_WIN32) || defined(_WIN64)
|
||||||
FILE *fmemopen(void *buf, size_t size, const char *mode) {
|
FILE *fmemopen(void *buf, size_t size, const char *mode) {
|
||||||
FILE *fp = tmpfile();
|
if (strchr(mode, 'r') == NULL) {
|
||||||
if (!fp) return NULL;
|
return NULL;
|
||||||
|
|
||||||
if (strchr(mode, 'w') || strchr(mode, '+')) {
|
|
||||||
fwrite(buf, 1, size, fp);
|
|
||||||
rewind(fp);
|
|
||||||
}
|
}
|
||||||
return fp;
|
|
||||||
|
FILE *tmp = tmpfile();
|
||||||
|
if (!tmp) return NULL;
|
||||||
|
|
||||||
|
if (fwrite(buf, 1, size, tmp) != size) {
|
||||||
|
fclose(tmp);
|
||||||
|
return NULL;
|
||||||
|
}
|
||||||
|
|
||||||
|
rewind(tmp);
|
||||||
|
|
||||||
|
return tmp;
|
||||||
}
|
}
|
||||||
#else
|
#else
|
||||||
#include "../external/linenoise/linenoise.h"
|
#include "../external/linenoise/linenoise.h"
|
||||||
|
|||||||
Reference in New Issue
Block a user