1419 lines
45 KiB
C
1419 lines
45 KiB
C
/* Generated by Nim Compiler v1.9.0 */
|
|
#define NIM_INTBITS 32
|
|
|
|
#include "nimbase.h"
|
|
#include <io.h>
|
|
#include <stdio.h>
|
|
#include <fcntl.h>
|
|
#include <string.h>
|
|
#include <errno.h>
|
|
#undef LANGUAGE_C
|
|
#undef MIPSEB
|
|
#undef MIPSEL
|
|
#undef PPC
|
|
#undef R3000
|
|
#undef R4000
|
|
#undef i386
|
|
#undef linux
|
|
#undef mips
|
|
#undef near
|
|
#undef far
|
|
#undef powerpc
|
|
#undef unix
|
|
#define nimfr_(x, y)
|
|
#define nimln_(x, y)
|
|
typedef struct NimStrPayload NimStrPayload;
|
|
typedef struct NimStringV2 NimStringV2;
|
|
typedef struct tyObject_IOError__N09bhl56nRkUaUsonzshECg tyObject_IOError__N09bhl56nRkUaUsonzshECg;
|
|
typedef struct tyObject_CatchableError__qrLSDoe2oBoAqNtJ9badtnA tyObject_CatchableError__qrLSDoe2oBoAqNtJ9badtnA;
|
|
typedef struct Exception Exception;
|
|
typedef struct RootObj RootObj;
|
|
typedef struct TNimTypeV2 TNimTypeV2;
|
|
typedef struct tySequence__uB9b75OUPRENsBAu4AnoePA tySequence__uB9b75OUPRENsBAu4AnoePA;
|
|
typedef struct tySequence__uB9b75OUPRENsBAu4AnoePA_Content tySequence__uB9b75OUPRENsBAu4AnoePA_Content;
|
|
typedef struct tyObject_WideCStringObj__BwbUsAz4qeNPsD7q6SJ32A tyObject_WideCStringObj__BwbUsAz4qeNPsD7q6SJ32A;
|
|
typedef struct tyObject_EOFError__d9btBfCv6DANm6rubyJTljg tyObject_EOFError__d9btBfCv6DANm6rubyJTljg;
|
|
typedef struct tySequence__sM4lkSb7zS6F7OVMvW9cffQ tySequence__sM4lkSb7zS6F7OVMvW9cffQ;
|
|
typedef struct tySequence__sM4lkSb7zS6F7OVMvW9cffQ_Content tySequence__sM4lkSb7zS6F7OVMvW9cffQ_Content;
|
|
typedef struct tyObject_StackTraceEntry__oLyohQ7O2XOvGnflOss8EA tyObject_StackTraceEntry__oLyohQ7O2XOvGnflOss8EA;
|
|
struct NimStrPayload {
|
|
NI cap;
|
|
NIM_CHAR data[SEQ_DECL_SIZE];
|
|
};
|
|
struct NimStringV2 {
|
|
NI len;
|
|
NimStrPayload* p;
|
|
};
|
|
typedef N_STDCALL_PTR(unsigned int, tyProc__h8Aw7ZfCFoDOErV4ZZpsEA) (void);
|
|
typedef N_STDCALL_PTR(NI32, tyProc__JQ9aO3SHJmfNBdx8TB2Hp9aQ) (unsigned int codepage);
|
|
typedef struct {
|
|
N_NIMCALL_PTR(void, ClP_0) (void* ClE_0);
|
|
void* ClE_0;
|
|
} tyProc__HzVCwACFYM9cx9aV62PdjtuA;
|
|
typedef N_CLOSURE_PTR(void, TM__xNF6mvRQ4Pd1hTNM9cEHXwQ_14) (void* ClE_0);
|
|
typedef N_CLOSURE_PTR(void, TM__xNF6mvRQ4Pd1hTNM9cEHXwQ_17) (void* ClE_0);
|
|
struct TNimTypeV2 {
|
|
void* destructor;
|
|
NI size;
|
|
NI16 align;
|
|
NI16 depth;
|
|
NU32* display;
|
|
void* traceImpl;
|
|
void* typeInfoV1;
|
|
NI flags;
|
|
};
|
|
struct RootObj {
|
|
TNimTypeV2* m_type;
|
|
};
|
|
struct tySequence__uB9b75OUPRENsBAu4AnoePA {
|
|
NI len; tySequence__uB9b75OUPRENsBAu4AnoePA_Content* p;
|
|
};
|
|
struct Exception {
|
|
RootObj Sup;
|
|
Exception* parent;
|
|
NCSTRING name;
|
|
NimStringV2 message;
|
|
tySequence__uB9b75OUPRENsBAu4AnoePA trace;
|
|
Exception* up;
|
|
};
|
|
struct tyObject_CatchableError__qrLSDoe2oBoAqNtJ9badtnA {
|
|
Exception Sup;
|
|
};
|
|
struct tyObject_IOError__N09bhl56nRkUaUsonzshECg {
|
|
tyObject_CatchableError__qrLSDoe2oBoAqNtJ9badtnA Sup;
|
|
};
|
|
typedef NU8 tyEnum_FileMode__4sJyy9aOSN8X63XdWXl5iDg;
|
|
struct tyObject_WideCStringObj__BwbUsAz4qeNPsD7q6SJ32A {
|
|
NI bytes;
|
|
NI16* data;
|
|
};
|
|
typedef NI16 tyUncheckedArray__Tyd4y3haUOOHTj71TPIRag[1];
|
|
typedef NCSTRING tyArray__vVEuDkYJYRa9c5i5k5FxKmw[5];
|
|
typedef N_STDCALL_PTR(NI32, tyProc__q54pnGq5V09aJPfifZaON9cQ) (int hConsoleInput, void* lpBuffer, NI32 nNumberOfCharsToRead, NI32* lpNumberOfCharsRead, void* pInputControl);
|
|
typedef N_STDCALL_PTR(NI32, tyProc__9bXer9a4ps9aSGctILcxWReVw) (void);
|
|
typedef N_STDCALL_PTR(NI32, tyProc__aO673xGTLLxou7P7GxoCXA) (NI32 dwFlags, void* lpSource, NI32 dwMessageId, NI32 dwLanguageId, void* lpBuffer, NI32 nSize, void* arguments);
|
|
typedef N_STDCALL_PTR(void, tyProc__im9buRnIvptJfzdASYMEbBA) (void* p);
|
|
struct tyObject_EOFError__d9btBfCv6DANm6rubyJTljg {
|
|
tyObject_IOError__N09bhl56nRkUaUsonzshECg Sup;
|
|
};
|
|
struct tySequence__sM4lkSb7zS6F7OVMvW9cffQ {
|
|
NI len; tySequence__sM4lkSb7zS6F7OVMvW9cffQ_Content* p;
|
|
};
|
|
typedef NU8 tyEnum_FileSeekPos__9bTJB6D0CIMmNFgwvcGSE3Q;
|
|
struct tyObject_StackTraceEntry__oLyohQ7O2XOvGnflOss8EA {
|
|
NCSTRING procname;
|
|
NI line;
|
|
NCSTRING filename;
|
|
};
|
|
|
|
|
|
#ifndef tySequence__uB9b75OUPRENsBAu4AnoePA_Content_PP
|
|
#define tySequence__uB9b75OUPRENsBAu4AnoePA_Content_PP
|
|
struct tySequence__uB9b75OUPRENsBAu4AnoePA_Content { NI cap; tyObject_StackTraceEntry__oLyohQ7O2XOvGnflOss8EA data[SEQ_DECL_SIZE];};
|
|
#endif
|
|
|
|
|
|
|
|
#ifndef tySequence__sM4lkSb7zS6F7OVMvW9cffQ_Content_PP
|
|
#define tySequence__sM4lkSb7zS6F7OVMvW9cffQ_Content_PP
|
|
struct tySequence__sM4lkSb7zS6F7OVMvW9cffQ_Content { NI cap; NimStringV2 data[SEQ_DECL_SIZE];};
|
|
#endif
|
|
|
|
N_LIB_PRIVATE N_NIMCALL(void*, nimLoadLibrary)(NimStringV2 path);
|
|
N_LIB_PRIVATE N_NIMCALL(void, nimLoadLibraryError)(NimStringV2 path);
|
|
N_LIB_PRIVATE N_NIMCALL(void*, nimGetProcAddr)(void* lib, NCSTRING name);
|
|
N_LIB_PRIVATE N_NIMCALL(void, addExitProc__stdZexitprocs_218)(tyProc__HzVCwACFYM9cx9aV62PdjtuA cl);
|
|
N_LIB_PRIVATE N_NIMCALL(void, restoreConsoleOutputCP__stdZsyncio_603)(void);
|
|
static N_INLINE(void, nimZeroMem)(void* p, NI size);
|
|
static N_INLINE(void, nimSetMem__systemZmemory_7)(void* a, int v, NI size);
|
|
static N_INLINE(NIM_BOOL*, nimErrorFlag)(void);
|
|
N_LIB_PRIVATE N_NIMCALL(void, restoreConsoleCP__stdZsyncio_604)(void);
|
|
N_LIB_PRIVATE N_NIMCALL(void, writeWindows__stdZsyncio_231)(FILE* f, NimStringV2 s, NIM_BOOL doRaise);
|
|
static N_INLINE(NCSTRING, nimToCStringConv)(NimStringV2 s);
|
|
N_LIB_PRIVATE N_NOINLINE(void, raiseEIO__stdZsyncio_107)(NimStringV2 msg);
|
|
N_LIB_PRIVATE N_NIMCALL(void*, nimNewObj)(NI size, NI alignment);
|
|
N_LIB_PRIVATE N_NIMCALL(void, raiseExceptionEx)(Exception* e, NCSTRING ename, NCSTRING procname, NCSTRING filename, NI line);
|
|
N_LIB_PRIVATE N_NIMCALL(void, eqdestroy___stdZassertions_13)(NimStringV2* dest);
|
|
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, open__stdZsyncio_528)(FILE** f, NimStringV2 filename, tyEnum_FileMode__4sJyy9aOSN8X63XdWXl5iDg mode, NI bufSize);
|
|
N_LIB_PRIVATE N_NIMCALL(void*, fopen__stdZsyncio_501)(NCSTRING filename, NCSTRING mode);
|
|
N_LIB_PRIVATE N_NIMCALL(tyObject_WideCStringObj__BwbUsAz4qeNPsD7q6SJ32A, newWideCString__stdZwidestrs_281)(NCSTRING s);
|
|
static N_INLINE(NI16*, toWideCString__stdZwidestrs_41)(tyObject_WideCStringObj__BwbUsAz4qeNPsD7q6SJ32A x);
|
|
N_LIB_PRIVATE N_NIMCALL(void, eqdestroy___stdZwidestrs_6)(tyObject_WideCStringObj__BwbUsAz4qeNPsD7q6SJ32A* a);
|
|
static N_INLINE(void, appendString)(NimStringV2* dest, NimStringV2 src);
|
|
static N_INLINE(void, copyMem__system_1719)(void* dest, void* source, NI size);
|
|
static N_INLINE(void, nimCopyMem)(void* dest, void* source, NI size);
|
|
N_LIB_PRIVATE N_NIMCALL(NimStringV2, rawNewString)(NI space);
|
|
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, isatty__stdZsyncio_335)(FILE* f);
|
|
N_LIB_PRIVATE N_NIMCALL(int, getFileHandle__stdZsyncio_276)(FILE* f);
|
|
N_LIB_PRIVATE N_NIMCALL(tyObject_WideCStringObj__BwbUsAz4qeNPsD7q6SJ32A, newWideCString__stdZwidestrs_260)(NCSTRING source, NI L);
|
|
N_LIB_PRIVATE N_NIMCALL(int, getOsFileHandle__stdZsyncio_279)(FILE* f);
|
|
N_LIB_PRIVATE N_NIMCALL(NimStringV2, dollar___stdZwidestrs_356)(NI16* s);
|
|
N_LIB_PRIVATE N_NIMCALL(NimStringV2, dollar___systemZdollars_3)(NI x);
|
|
N_LIB_PRIVATE N_NIMCALL(void, close__stdZsyncio_265)(FILE* f);
|
|
N_LIB_PRIVATE N_NIMCALL(void, eqsink___stdZassertions_19)(NimStringV2* dest, NimStringV2 src);
|
|
N_LIB_PRIVATE N_NIMCALL(void, setLengthStrV2)(NimStringV2* s, NI newLen);
|
|
static N_INLINE(void, nimPrepareStrMutationV2)(NimStringV2* s);
|
|
N_LIB_PRIVATE N_NIMCALL(void, nimPrepareStrMutationImpl__system_2301)(NimStringV2* s);
|
|
static N_INLINE(NIM_BOOL, eqeq___system_7539)(NCSTRING x, NCSTRING y);
|
|
N_LIB_PRIVATE N_NIMCALL(void, checkErr__stdZsyncio_153)(FILE* f);
|
|
N_LIB_PRIVATE N_NIMCALL(NimStringV2, cstrToNimstr)(NCSTRING str);
|
|
N_LIB_PRIVATE N_NIMCALL(NimStringV2, readAll__stdZsyncio_481)(FILE* file);
|
|
N_LIB_PRIVATE N_NIMCALL(NI64, rawFileSize__stdZsyncio_464)(FILE* file);
|
|
N_LIB_PRIVATE N_NIMCALL(NimStringV2, readAllFile__stdZsyncio_472)(FILE* file, NI64 len);
|
|
N_NIMCALL(NimStringV2, mnewString)(NI len);
|
|
N_LIB_PRIVATE N_NIMCALL(NI, readBuffer__stdZsyncio_156)(FILE* f, void* buffer, NI len);
|
|
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, endOfFile__stdZsyncio_468)(FILE* f);
|
|
N_LIB_PRIVATE N_NIMCALL(NimStringV2, readAllBuffer__stdZsyncio_459)(FILE* file);
|
|
N_LIB_PRIVATE N_NIMCALL(void, prepareAdd)(NimStringV2* s, NI addlen);
|
|
N_NIMCALL(NimStringV2, rawNewString)(NI cap);
|
|
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, readLine__stdZsyncio_310)(FILE* f, NimStringV2* line);
|
|
N_LIB_PRIVATE N_NOINLINE(void, raiseEOF__stdZsyncio_110)(void);
|
|
N_LIB_PRIVATE N_NIMCALL(NI, writeBuffer__stdZsyncio_187)(FILE* f, void* buffer, NI len);
|
|
N_LIB_PRIVATE N_NIMCALL(void, write__stdZsyncio_248)(FILE* f, NimStringV2 s);
|
|
N_LIB_PRIVATE N_NIMCALL(tySequence__sM4lkSb7zS6F7OVMvW9cffQ, newSeq__pureZdynlib_76)(NI len);
|
|
static const struct {
|
|
NI cap; NIM_CHAR data[8+1];
|
|
} TM__xNF6mvRQ4Pd1hTNM9cEHXwQ_4 = { 8 | NIM_STRLIT_FLAG, "kernel32" };
|
|
static const NimStringV2 TM__xNF6mvRQ4Pd1hTNM9cEHXwQ_5 = {8, (NimStrPayload*)&TM__xNF6mvRQ4Pd1hTNM9cEHXwQ_4};
|
|
static const struct {
|
|
NI cap; NIM_CHAR data[8+1];
|
|
} TM__xNF6mvRQ4Pd1hTNM9cEHXwQ_6 = { 8 | NIM_STRLIT_FLAG, "kernel32" };
|
|
static const NimStringV2 TM__xNF6mvRQ4Pd1hTNM9cEHXwQ_7 = {8, (NimStrPayload*)&TM__xNF6mvRQ4Pd1hTNM9cEHXwQ_6};
|
|
extern TNimTypeV2 NTIv2__N09bhl56nRkUaUsonzshECg_;
|
|
static const struct {
|
|
NI cap; NIM_CHAR data[27+1];
|
|
} TM__xNF6mvRQ4Pd1hTNM9cEHXwQ_18 = { 27 | NIM_STRLIT_FLAG, "cannot write string to file" };
|
|
static const NimStringV2 TM__xNF6mvRQ4Pd1hTNM9cEHXwQ_19 = {27, (NimStrPayload*)&TM__xNF6mvRQ4Pd1hTNM9cEHXwQ_18};
|
|
static const NimStringV2 TM__xNF6mvRQ4Pd1hTNM9cEHXwQ_20 = {27, (NimStrPayload*)&TM__xNF6mvRQ4Pd1hTNM9cEHXwQ_18};
|
|
static const struct {
|
|
NI cap; NIM_CHAR data[13+1];
|
|
} TM__xNF6mvRQ4Pd1hTNM9cEHXwQ_21 = { 13 | NIM_STRLIT_FLAG, "cannot open: " };
|
|
static const NimStringV2 TM__xNF6mvRQ4Pd1hTNM9cEHXwQ_22 = {13, (NimStrPayload*)&TM__xNF6mvRQ4Pd1hTNM9cEHXwQ_21};
|
|
static const struct {
|
|
NI cap; NIM_CHAR data[7+1];
|
|
} TM__xNF6mvRQ4Pd1hTNM9cEHXwQ_31 = { 7 | NIM_STRLIT_FLAG, "error: " };
|
|
static const NimStringV2 TM__xNF6mvRQ4Pd1hTNM9cEHXwQ_32 = {7, (NimStrPayload*)&TM__xNF6mvRQ4Pd1hTNM9cEHXwQ_31};
|
|
static const struct {
|
|
NI cap; NIM_CHAR data[2+1];
|
|
} TM__xNF6mvRQ4Pd1hTNM9cEHXwQ_33 = { 2 | NIM_STRLIT_FLAG, " `" };
|
|
static const NimStringV2 TM__xNF6mvRQ4Pd1hTNM9cEHXwQ_34 = {2, (NimStrPayload*)&TM__xNF6mvRQ4Pd1hTNM9cEHXwQ_33};
|
|
static const struct {
|
|
NI cap; NIM_CHAR data[1+1];
|
|
} TM__xNF6mvRQ4Pd1hTNM9cEHXwQ_35 = { 1 | NIM_STRLIT_FLAG, "`" };
|
|
static const NimStringV2 TM__xNF6mvRQ4Pd1hTNM9cEHXwQ_36 = {1, (NimStrPayload*)&TM__xNF6mvRQ4Pd1hTNM9cEHXwQ_35};
|
|
static const struct {
|
|
NI cap; NIM_CHAR data[0+1];
|
|
} TM__xNF6mvRQ4Pd1hTNM9cEHXwQ_37 = { 0 | NIM_STRLIT_FLAG, "" };
|
|
static const NimStringV2 TM__xNF6mvRQ4Pd1hTNM9cEHXwQ_38 = {0, (NimStrPayload*)&TM__xNF6mvRQ4Pd1hTNM9cEHXwQ_37};
|
|
static const struct {
|
|
NI cap; NIM_CHAR data[7+1];
|
|
} TM__xNF6mvRQ4Pd1hTNM9cEHXwQ_39 = { 7 | NIM_STRLIT_FLAG, "errno: " };
|
|
static const NimStringV2 TM__xNF6mvRQ4Pd1hTNM9cEHXwQ_40 = {7, (NimStrPayload*)&TM__xNF6mvRQ4Pd1hTNM9cEHXwQ_39};
|
|
static const NimStringV2 TM__xNF6mvRQ4Pd1hTNM9cEHXwQ_41 = {2, (NimStrPayload*)&TM__xNF6mvRQ4Pd1hTNM9cEHXwQ_33};
|
|
static const NimStringV2 TM__xNF6mvRQ4Pd1hTNM9cEHXwQ_42 = {1, (NimStrPayload*)&TM__xNF6mvRQ4Pd1hTNM9cEHXwQ_35};
|
|
static const NimStringV2 TM__xNF6mvRQ4Pd1hTNM9cEHXwQ_43 = {0, (NimStrPayload*)&TM__xNF6mvRQ4Pd1hTNM9cEHXwQ_37};
|
|
static const NimStringV2 TM__xNF6mvRQ4Pd1hTNM9cEHXwQ_44 = {13, (NimStrPayload*)&TM__xNF6mvRQ4Pd1hTNM9cEHXwQ_21};
|
|
extern TNimTypeV2 NTIv2__d9btBfCv6DANm6rubyJTljg_;
|
|
static const struct {
|
|
NI cap; NIM_CHAR data[11+1];
|
|
} TM__xNF6mvRQ4Pd1hTNM9cEHXwQ_45 = { 11 | NIM_STRLIT_FLAG, "EOF reached" };
|
|
static const NimStringV2 TM__xNF6mvRQ4Pd1hTNM9cEHXwQ_46 = {11, (NimStrPayload*)&TM__xNF6mvRQ4Pd1hTNM9cEHXwQ_45};
|
|
static const NimStringV2 TM__xNF6mvRQ4Pd1hTNM9cEHXwQ_47 = {13, (NimStrPayload*)&TM__xNF6mvRQ4Pd1hTNM9cEHXwQ_21};
|
|
static const NimStringV2 TM__xNF6mvRQ4Pd1hTNM9cEHXwQ_48 = {13, (NimStrPayload*)&TM__xNF6mvRQ4Pd1hTNM9cEHXwQ_21};
|
|
static const struct {
|
|
NI cap; NIM_CHAR data[24+1];
|
|
} TM__xNF6mvRQ4Pd1hTNM9cEHXwQ_49 = { 24 | NIM_STRLIT_FLAG, "cannot set file position" };
|
|
static const NimStringV2 TM__xNF6mvRQ4Pd1hTNM9cEHXwQ_50 = {24, (NimStrPayload*)&TM__xNF6mvRQ4Pd1hTNM9cEHXwQ_49};
|
|
static const struct {
|
|
NI cap; NIM_CHAR data[29+1];
|
|
} TM__xNF6mvRQ4Pd1hTNM9cEHXwQ_51 = { 29 | NIM_STRLIT_FLAG, "cannot retrieve file position" };
|
|
static const NimStringV2 TM__xNF6mvRQ4Pd1hTNM9cEHXwQ_52 = {29, (NimStrPayload*)&TM__xNF6mvRQ4Pd1hTNM9cEHXwQ_51};
|
|
N_LIB_PRIVATE NIM_CONST tyArray__vVEuDkYJYRa9c5i5k5FxKmw FormatOpen__stdZsyncio_515 = {"rbN",
|
|
"wbN",
|
|
"w+bN",
|
|
"r+bN",
|
|
"abN"}
|
|
;
|
|
N_LIB_PRIVATE unsigned int consoleOutputCP__stdZsyncio_601;
|
|
static void* TM__xNF6mvRQ4Pd1hTNM9cEHXwQ_2;
|
|
tyProc__h8Aw7ZfCFoDOErV4ZZpsEA Dl_503317078_;
|
|
N_LIB_PRIVATE unsigned int consoleCP__stdZsyncio_602;
|
|
tyProc__h8Aw7ZfCFoDOErV4ZZpsEA Dl_503317079_;
|
|
tyProc__JQ9aO3SHJmfNBdx8TB2Hp9aQ Dl_503317074_;
|
|
extern NIM_BOOL nimInErrorMode__system_3980;
|
|
tyProc__JQ9aO3SHJmfNBdx8TB2Hp9aQ Dl_503317076_;
|
|
tyProc__q54pnGq5V09aJPfifZaON9cQ Dl_503316798_;
|
|
tyProc__9bXer9a4ps9aSGctILcxWReVw Dl_503316804_;
|
|
tyProc__aO673xGTLLxou7P7GxoCXA Dl_503316805_;
|
|
tyProc__im9buRnIvptJfzdASYMEbBA Dl_503316813_;
|
|
N_LIB_PRIVATE N_NIMCALL(void, restoreConsoleOutputCP__stdZsyncio_603)(void) {
|
|
NI32 T1_;
|
|
T1_ = (NI32)0;
|
|
T1_ = Dl_503317074_(consoleOutputCP__stdZsyncio_601);
|
|
(void)(T1_);
|
|
}
|
|
static N_INLINE(void, nimSetMem__systemZmemory_7)(void* a, int v, NI size) {
|
|
void* T1_;
|
|
T1_ = (void*)0;
|
|
T1_ = memset(a, v, ((size_t) (size)));
|
|
}
|
|
static N_INLINE(NIM_BOOL*, nimErrorFlag)(void) {
|
|
NIM_BOOL* result;
|
|
result = (NIM_BOOL*)0;
|
|
result = (&nimInErrorMode__system_3980);
|
|
return result;
|
|
}
|
|
static N_INLINE(void, nimZeroMem)(void* p, NI size) {
|
|
NIM_BOOL* nimErr_;
|
|
{nimErr_ = nimErrorFlag();
|
|
nimSetMem__systemZmemory_7(p, ((int)0), size);
|
|
if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
|
|
}BeforeRet_: ;
|
|
}
|
|
N_LIB_PRIVATE N_NIMCALL(void, restoreConsoleCP__stdZsyncio_604)(void) {
|
|
NI32 T1_;
|
|
T1_ = (NI32)0;
|
|
T1_ = Dl_503317076_(consoleCP__stdZsyncio_602);
|
|
(void)(T1_);
|
|
}
|
|
N_LIB_PRIVATE N_NIMCALL(int, getFileHandle__stdZsyncio_276)(FILE* f) {
|
|
int result;
|
|
result = (int)0;
|
|
result = _fileno(f);
|
|
return result;
|
|
}
|
|
static N_INLINE(NCSTRING, nimToCStringConv)(NimStringV2 s) {
|
|
NCSTRING result;
|
|
result = (NCSTRING)0;
|
|
{
|
|
if (!(s.len == ((NI)0))) goto LA3_;
|
|
result = "";
|
|
}
|
|
goto LA1_;
|
|
LA3_: ;
|
|
{
|
|
result = ((NCSTRING) ((*s.p).data));
|
|
}
|
|
LA1_: ;
|
|
return result;
|
|
}
|
|
N_LIB_PRIVATE N_NOINLINE(void, raiseEIO__stdZsyncio_107)(NimStringV2 msg) {
|
|
tyObject_IOError__N09bhl56nRkUaUsonzshECg* T2_;
|
|
NimStringV2 blitTmp;
|
|
NIM_BOOL* nimErr_;
|
|
{nimErr_ = nimErrorFlag();
|
|
T2_ = NIM_NIL;
|
|
T2_ = (tyObject_IOError__N09bhl56nRkUaUsonzshECg*) nimNewObj(sizeof(tyObject_IOError__N09bhl56nRkUaUsonzshECg), NIM_ALIGNOF(tyObject_IOError__N09bhl56nRkUaUsonzshECg));
|
|
(*T2_).Sup.Sup.Sup.m_type = (&NTIv2__N09bhl56nRkUaUsonzshECg_);
|
|
(*T2_).Sup.Sup.name = "IOError";
|
|
blitTmp = msg;
|
|
msg.len = 0; msg.p = NIM_NIL;
|
|
(*T2_).Sup.Sup.message = blitTmp;
|
|
(*T2_).Sup.Sup.parent = ((Exception*) NIM_NIL);
|
|
raiseExceptionEx((Exception*)T2_, "IOError", "raiseEIO", "syncio.nim", 158);
|
|
goto LA1_;
|
|
{
|
|
LA1_:;
|
|
}
|
|
{
|
|
eqdestroy___stdZassertions_13((&msg));
|
|
}
|
|
if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
|
|
}BeforeRet_: ;
|
|
}
|
|
N_LIB_PRIVATE N_NIMCALL(void, writeWindows__stdZsyncio_231)(FILE* f, NimStringV2 s, NIM_BOOL doRaise) {
|
|
int i;
|
|
NIM_BOOL* nimErr_;
|
|
{nimErr_ = nimErrorFlag();
|
|
i = fprintf(f, "%s", nimToCStringConv(s));
|
|
{
|
|
while (1) {
|
|
if (!(i < ((NI32) (s.len)))) goto LA2 ;
|
|
{
|
|
int w;
|
|
if (!((NU8)(s.p->data[i]) == (NU8)(0))) goto LA5_;
|
|
w = fputc(0, f);
|
|
{
|
|
if (!!((w == ((NI32)0)))) goto LA9_;
|
|
{
|
|
if (!doRaise) goto LA13_;
|
|
raiseEIO__stdZsyncio_107(TM__xNF6mvRQ4Pd1hTNM9cEHXwQ_19);
|
|
if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
|
|
}
|
|
LA13_: ;
|
|
goto LA1;
|
|
}
|
|
LA9_: ;
|
|
i += ((NI)1);
|
|
}
|
|
goto LA3_;
|
|
LA5_: ;
|
|
{
|
|
int w_2;
|
|
w_2 = fprintf(f, "%s", (&s.p->data[i]));
|
|
{
|
|
if (!(w_2 <= ((NI32)0))) goto LA18_;
|
|
{
|
|
if (!doRaise) goto LA22_;
|
|
raiseEIO__stdZsyncio_107(TM__xNF6mvRQ4Pd1hTNM9cEHXwQ_20);
|
|
if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
|
|
}
|
|
LA22_: ;
|
|
goto LA1;
|
|
}
|
|
LA18_: ;
|
|
i += w_2;
|
|
}
|
|
LA3_: ;
|
|
} LA2: ;
|
|
} LA1: ;
|
|
}BeforeRet_: ;
|
|
}
|
|
N_LIB_PRIVATE N_NIMCALL(void, write__stdZsyncio_248)(FILE* f, NimStringV2 s) {
|
|
NIM_BOOL* nimErr_;
|
|
{nimErr_ = nimErrorFlag();
|
|
writeWindows__stdZsyncio_231(f, s, NIM_TRUE);
|
|
if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
|
|
}BeforeRet_: ;
|
|
}
|
|
N_LIB_PRIVATE N_NIMCALL(void, flushFile__stdZsyncio_274)(FILE* f) {
|
|
int T1_;
|
|
T1_ = (int)0;
|
|
T1_ = fflush(f);
|
|
(void)(T1_);
|
|
}
|
|
static N_INLINE(NI16*, toWideCString__stdZwidestrs_41)(tyObject_WideCStringObj__BwbUsAz4qeNPsD7q6SJ32A x) {
|
|
NI16* result;
|
|
result = (NI16*)0;
|
|
result = x.data;
|
|
return result;
|
|
}
|
|
N_LIB_PRIVATE N_NIMCALL(void*, fopen__stdZsyncio_501)(NCSTRING filename, NCSTRING mode) {
|
|
void* result;
|
|
tyObject_WideCStringObj__BwbUsAz4qeNPsD7q6SJ32A f;
|
|
tyObject_WideCStringObj__BwbUsAz4qeNPsD7q6SJ32A m;
|
|
NI16* T1_;
|
|
NI16* T2_;
|
|
NIM_BOOL* nimErr_;
|
|
{nimErr_ = nimErrorFlag();
|
|
result = (void*)0;
|
|
nimZeroMem((void*)(&f), sizeof(tyObject_WideCStringObj__BwbUsAz4qeNPsD7q6SJ32A));
|
|
nimZeroMem((void*)(&m), sizeof(tyObject_WideCStringObj__BwbUsAz4qeNPsD7q6SJ32A));
|
|
f = newWideCString__stdZwidestrs_281(filename);
|
|
if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
|
|
m = newWideCString__stdZwidestrs_281(mode);
|
|
if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
|
|
T1_ = (NI16*)0;
|
|
T1_ = toWideCString__stdZwidestrs_41(f);
|
|
if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
|
|
T2_ = (NI16*)0;
|
|
T2_ = toWideCString__stdZwidestrs_41(m);
|
|
if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
|
|
result = _wfopen(T1_, T2_);
|
|
eqdestroy___stdZwidestrs_6((&m));
|
|
if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
|
|
eqdestroy___stdZwidestrs_6((&f));
|
|
if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
|
|
}BeforeRet_: ;
|
|
return result;
|
|
}
|
|
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, open__stdZsyncio_528)(FILE** f, NimStringV2 filename, tyEnum_FileMode__4sJyy9aOSN8X63XdWXl5iDg mode, NI bufSize) {
|
|
NIM_BOOL result;
|
|
void* p;
|
|
NIM_BOOL* nimErr_;
|
|
{nimErr_ = nimErrorFlag();
|
|
result = (NIM_BOOL)0;
|
|
p = fopen__stdZsyncio_501(nimToCStringConv(filename), FormatOpen__stdZsyncio_515[(mode)- 0]);
|
|
if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
|
|
{
|
|
FILE* f2;
|
|
if (!!((p == NIM_NIL))) goto LA3_;
|
|
f2 = ((FILE*) (p));
|
|
result = NIM_TRUE;
|
|
(*f) = ((FILE*) (p));
|
|
{
|
|
NIM_BOOL T7_;
|
|
int T11_;
|
|
T7_ = (NIM_BOOL)0;
|
|
T7_ = (((NI)0) < bufSize);
|
|
if (!(T7_)) goto LA8_;
|
|
T7_ = ((NU32)(((NU) (bufSize))) <= (NU32)(((NU)IL64(4294967295))));
|
|
LA8_: ;
|
|
if (!T7_) goto LA9_;
|
|
T11_ = (int)0;
|
|
T11_ = setvbuf((*f), NIM_NIL, _IOFBF, ((size_t) (bufSize)));
|
|
(void)(T11_);
|
|
}
|
|
goto LA5_;
|
|
LA9_: ;
|
|
{
|
|
int T15_;
|
|
if (!(bufSize == ((NI)0))) goto LA13_;
|
|
T15_ = (int)0;
|
|
T15_ = setvbuf((*f), NIM_NIL, _IONBF, ((size_t)0));
|
|
(void)(T15_);
|
|
}
|
|
goto LA5_;
|
|
LA13_: ;
|
|
LA5_: ;
|
|
}
|
|
LA3_: ;
|
|
}BeforeRet_: ;
|
|
return result;
|
|
}
|
|
static N_INLINE(void, nimCopyMem)(void* dest, void* source, NI size) {
|
|
void* T1_;
|
|
T1_ = (void*)0;
|
|
T1_ = memcpy(dest, source, ((size_t) (size)));
|
|
}
|
|
static N_INLINE(void, copyMem__system_1719)(void* dest, void* source, NI size) {
|
|
nimCopyMem(dest, source, size);
|
|
}
|
|
static N_INLINE(void, appendString)(NimStringV2* dest, NimStringV2 src) {
|
|
{
|
|
if (!(((NI)0) < src.len)) goto LA3_;
|
|
copyMem__system_1719(((void*) ((&(*(*dest).p).data[(*dest).len]))), ((void*) ((&(*src.p).data[((NI)0)]))), ((NI) ((NI)(src.len + ((NI)1)))));
|
|
(*dest).len += src.len;
|
|
}
|
|
LA3_: ;
|
|
}
|
|
N_LIB_PRIVATE N_NIMCALL(FILE*, open__stdZsyncio_559)(NimStringV2 filename, tyEnum_FileMode__4sJyy9aOSN8X63XdWXl5iDg mode, NI bufSize) {
|
|
FILE* result;
|
|
NIM_BOOL* nimErr_;
|
|
{nimErr_ = nimErrorFlag();
|
|
result = (FILE*)0;
|
|
{
|
|
NIM_BOOL T3_;
|
|
tyObject_IOError__N09bhl56nRkUaUsonzshECg* T6_;
|
|
NimStringV2 T7_;
|
|
T3_ = (NIM_BOOL)0;
|
|
T3_ = open__stdZsyncio_528(&result, filename, mode, bufSize);
|
|
if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
|
|
if (!!(T3_)) goto LA4_;
|
|
T6_ = NIM_NIL;
|
|
T6_ = (tyObject_IOError__N09bhl56nRkUaUsonzshECg*) nimNewObj(sizeof(tyObject_IOError__N09bhl56nRkUaUsonzshECg), NIM_ALIGNOF(tyObject_IOError__N09bhl56nRkUaUsonzshECg));
|
|
(*T6_).Sup.Sup.Sup.m_type = (&NTIv2__N09bhl56nRkUaUsonzshECg_);
|
|
(*T6_).Sup.Sup.name = "IOError";
|
|
T7_.len = 0; T7_.p = NIM_NIL;
|
|
T7_ = rawNewString(filename.len + 13);
|
|
appendString((&T7_), TM__xNF6mvRQ4Pd1hTNM9cEHXwQ_22);
|
|
appendString((&T7_), filename);
|
|
(*T6_).Sup.Sup.message = T7_;
|
|
(*T6_).Sup.Sup.parent = ((Exception*) NIM_NIL);
|
|
raiseExceptionEx((Exception*)T6_, "IOError", "open", "syncio.nim", 766);
|
|
goto BeforeRet_;
|
|
}
|
|
LA4_: ;
|
|
}BeforeRet_: ;
|
|
return result;
|
|
}
|
|
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, isatty__stdZsyncio_335)(FILE* f) {
|
|
NIM_BOOL result;
|
|
int T1_;
|
|
int T2_;
|
|
NIM_BOOL* nimErr_;
|
|
{nimErr_ = nimErrorFlag();
|
|
result = (NIM_BOOL)0;
|
|
T1_ = (int)0;
|
|
T1_ = getFileHandle__stdZsyncio_276(f);
|
|
if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
|
|
T2_ = (int)0;
|
|
T2_ = _isatty(T1_);
|
|
result = !((T2_ == ((NI32)0)));
|
|
}BeforeRet_: ;
|
|
return result;
|
|
}
|
|
N_LIB_PRIVATE N_NIMCALL(int, getOsFileHandle__stdZsyncio_279)(FILE* f) {
|
|
int result;
|
|
int T1_;
|
|
NI T2_;
|
|
NIM_BOOL* nimErr_;
|
|
{nimErr_ = nimErrorFlag();
|
|
result = (int)0;
|
|
T1_ = (int)0;
|
|
T1_ = getFileHandle__stdZsyncio_276(f);
|
|
if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
|
|
T2_ = (NI)0;
|
|
T2_ = _get_osfhandle(T1_);
|
|
result = ((int) (T2_));
|
|
}BeforeRet_: ;
|
|
return result;
|
|
}
|
|
N_LIB_PRIVATE N_NIMCALL(void, close__stdZsyncio_265)(FILE* f) {
|
|
{
|
|
int T5_;
|
|
if (!!((f == 0))) goto LA3_;
|
|
T5_ = (int)0;
|
|
T5_ = fclose(f);
|
|
(void)(T5_);
|
|
}
|
|
LA3_: ;
|
|
}
|
|
static N_INLINE(void, nimPrepareStrMutationV2)(NimStringV2* s) {
|
|
{
|
|
NIM_BOOL T3_;
|
|
T3_ = (NIM_BOOL)0;
|
|
T3_ = !(((*s).p == ((NimStrPayload*) NIM_NIL)));
|
|
if (!(T3_)) goto LA4_;
|
|
T3_ = ((NI)((*(*s).p).cap & ((NI)1073741824)) == ((NI)1073741824));
|
|
LA4_: ;
|
|
if (!T3_) goto LA5_;
|
|
nimPrepareStrMutationImpl__system_2301(s);
|
|
}
|
|
LA5_: ;
|
|
}
|
|
static N_INLINE(NIM_BOOL, eqeq___system_7539)(NCSTRING x, NCSTRING y) {
|
|
NIM_BOOL result;
|
|
result = (NIM_BOOL)0;
|
|
{
|
|
if (!(((void*) (x)) == ((void*) (y)))) goto LA3_;
|
|
result = NIM_TRUE;
|
|
}
|
|
goto LA1_;
|
|
LA3_: ;
|
|
{
|
|
NIM_BOOL T6_;
|
|
T6_ = (NIM_BOOL)0;
|
|
T6_ = (x == 0);
|
|
if (T6_) goto LA7_;
|
|
T6_ = (y == 0);
|
|
LA7_: ;
|
|
if (!T6_) goto LA8_;
|
|
result = NIM_FALSE;
|
|
}
|
|
goto LA1_;
|
|
LA8_: ;
|
|
{
|
|
int T11_;
|
|
T11_ = (int)0;
|
|
T11_ = strcmp(x, y);
|
|
result = (T11_ == ((NI32)0));
|
|
}
|
|
LA1_: ;
|
|
return result;
|
|
}
|
|
N_LIB_PRIVATE N_NIMCALL(void, checkErr__stdZsyncio_153)(FILE* f) {
|
|
NIM_BOOL* nimErr_;
|
|
{nimErr_ = nimErrorFlag();
|
|
{
|
|
int T3_;
|
|
NimStringV2 msg;
|
|
NimStringV2 colontmpD_;
|
|
NimStringV2 colontmpD__2;
|
|
NimStringV2 T7_;
|
|
NCSTRING T8_;
|
|
NimStringV2 blitTmp;
|
|
T3_ = (int)0;
|
|
T3_ = ferror(f);
|
|
if (!!((T3_ == ((NI32)0)))) goto LA4_;
|
|
msg.len = 0; msg.p = NIM_NIL;
|
|
colontmpD_.len = 0; colontmpD_.p = NIM_NIL;
|
|
colontmpD__2.len = 0; colontmpD__2.p = NIM_NIL;
|
|
T7_.len = 0; T7_.p = NIM_NIL;
|
|
colontmpD_ = dollar___systemZdollars_3(((NI) (errno)));
|
|
if (NIM_UNLIKELY(*nimErr_)) goto LA6_;
|
|
T8_ = (NCSTRING)0;
|
|
T8_ = strerror(errno);
|
|
colontmpD__2 = cstrToNimstr(T8_);
|
|
T7_ = rawNewString(colontmpD_.len + colontmpD__2.len + 10);
|
|
appendString((&T7_), TM__xNF6mvRQ4Pd1hTNM9cEHXwQ_40);
|
|
appendString((&T7_), colontmpD_);
|
|
appendString((&T7_), TM__xNF6mvRQ4Pd1hTNM9cEHXwQ_41);
|
|
appendString((&T7_), colontmpD__2);
|
|
appendString((&T7_), TM__xNF6mvRQ4Pd1hTNM9cEHXwQ_42);
|
|
msg = T7_;
|
|
clearerr(f);
|
|
blitTmp = msg;
|
|
msg.len = 0; msg.p = NIM_NIL;
|
|
raiseEIO__stdZsyncio_107(blitTmp);
|
|
if (NIM_UNLIKELY(*nimErr_)) goto LA6_;
|
|
{
|
|
LA6_:;
|
|
}
|
|
{
|
|
eqdestroy___stdZassertions_13((&colontmpD__2));
|
|
eqdestroy___stdZassertions_13((&colontmpD_));
|
|
eqdestroy___stdZassertions_13((&msg));
|
|
}
|
|
if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
|
|
}
|
|
LA4_: ;
|
|
}BeforeRet_: ;
|
|
}
|
|
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, readLine__stdZsyncio_310)(FILE* f, NimStringV2* line) {
|
|
NIM_BOOL result;
|
|
NIM_BOOL oldNimErrFin6_;
|
|
NI pos;
|
|
NI sp;
|
|
NIM_BOOL* nimErr_;
|
|
{nimErr_ = nimErrorFlag();
|
|
result = (NIM_BOOL)0;
|
|
{
|
|
NIM_BOOL T3_;
|
|
tyObject_WideCStringObj__BwbUsAz4qeNPsD7q6SJ32A buffer;
|
|
NI32 numberOfCharsRead;
|
|
NI16* T37_;
|
|
NimStringV2 T38_;
|
|
T3_ = (NIM_BOOL)0;
|
|
T3_ = isatty__stdZsyncio_335(f);
|
|
if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
|
|
if (!T3_) goto LA4_;
|
|
nimZeroMem((void*)(&buffer), sizeof(tyObject_WideCStringObj__BwbUsAz4qeNPsD7q6SJ32A));
|
|
numberOfCharsRead = ((NI32)0);
|
|
buffer = newWideCString__stdZwidestrs_260("", ((NI)2048));
|
|
if (NIM_UNLIKELY(*nimErr_)) goto LA6_;
|
|
{
|
|
int T9_;
|
|
NI32 T10_;
|
|
NimStringV2 errorMsg;
|
|
NimStringV2 colontmpD_;
|
|
NI32 error;
|
|
NI16* msgbuf;
|
|
NimStringV2 T23_;
|
|
T9_ = (int)0;
|
|
T9_ = getOsFileHandle__stdZsyncio_279(f);
|
|
if (NIM_UNLIKELY(*nimErr_)) goto LA6_;
|
|
T10_ = (NI32)0;
|
|
T10_ = Dl_503316798_(T9_, ((void*) ((&buffer.data[((NI)0)]))), ((NI32)2048), (&numberOfCharsRead), NIM_NIL);
|
|
if (!(T10_ == ((NI32)0))) goto LA11_;
|
|
errorMsg.len = 0; errorMsg.p = NIM_NIL;
|
|
colontmpD_.len = 0; colontmpD_.p = NIM_NIL;
|
|
error = Dl_503316804_();
|
|
msgbuf = (NI16*)0;
|
|
{
|
|
NI32 T16_;
|
|
T16_ = (NI32)0;
|
|
T16_ = Dl_503316805_(((NI32)4864), NIM_NIL, error, ((NI32)0), ((void*) (&msgbuf)), ((NI32)0), NIM_NIL);
|
|
if (!!((T16_ == ((NI32)0)))) goto LA17_;
|
|
errorMsg = dollar___stdZwidestrs_356(msgbuf);
|
|
if (NIM_UNLIKELY(*nimErr_)) goto LA13_;
|
|
{
|
|
if (!!((msgbuf == ((NI16*) NIM_NIL)))) goto LA21_;
|
|
Dl_503316813_(((void*) (msgbuf)));
|
|
}
|
|
LA21_: ;
|
|
}
|
|
LA17_: ;
|
|
T23_.len = 0; T23_.p = NIM_NIL;
|
|
colontmpD_ = dollar___systemZdollars_3(((NI) (error)));
|
|
if (NIM_UNLIKELY(*nimErr_)) goto LA13_;
|
|
T23_ = rawNewString(colontmpD_.len + errorMsg.len + 10);
|
|
appendString((&T23_), TM__xNF6mvRQ4Pd1hTNM9cEHXwQ_32);
|
|
appendString((&T23_), colontmpD_);
|
|
appendString((&T23_), TM__xNF6mvRQ4Pd1hTNM9cEHXwQ_34);
|
|
appendString((&T23_), errorMsg);
|
|
appendString((&T23_), TM__xNF6mvRQ4Pd1hTNM9cEHXwQ_36);
|
|
raiseEIO__stdZsyncio_107(T23_);
|
|
if (NIM_UNLIKELY(*nimErr_)) goto LA13_;
|
|
{
|
|
LA13_:;
|
|
}
|
|
{
|
|
eqdestroy___stdZassertions_13((&colontmpD_));
|
|
eqdestroy___stdZassertions_13((&errorMsg));
|
|
}
|
|
if (NIM_UNLIKELY(*nimErr_)) goto LA6_;
|
|
}
|
|
LA11_: ;
|
|
numberOfCharsRead -= ((NI)2);
|
|
{
|
|
NI32 i;
|
|
NI32 res;
|
|
i = (NI32)0;
|
|
res = ((NI32)0);
|
|
{
|
|
while (1) {
|
|
if (!(res < numberOfCharsRead)) goto LA28 ;
|
|
i = res;
|
|
{
|
|
if (!(((NU16) (buffer.data[i])) == ((NU16)26))) goto LA31_;
|
|
close__stdZsyncio_265(f);
|
|
if (NIM_UNLIKELY(*nimErr_)) goto LA6_;
|
|
{
|
|
if (!(i == ((NI32)0))) goto LA35_;
|
|
eqsink___stdZassertions_19((&(*line)), TM__xNF6mvRQ4Pd1hTNM9cEHXwQ_38);
|
|
result = NIM_FALSE;
|
|
eqdestroy___stdZwidestrs_6((&buffer));
|
|
if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
|
|
goto BeforeRet_;
|
|
}
|
|
LA35_: ;
|
|
numberOfCharsRead = i;
|
|
goto LA26;
|
|
}
|
|
LA31_: ;
|
|
res += ((NI)1);
|
|
} LA28: ;
|
|
}
|
|
} LA26: ;
|
|
buffer.data[numberOfCharsRead] = ((NI16)0);
|
|
T37_ = (NI16*)0;
|
|
T37_ = toWideCString__stdZwidestrs_41(buffer);
|
|
if (NIM_UNLIKELY(*nimErr_)) goto LA6_;
|
|
T38_.len = 0; T38_.p = NIM_NIL;
|
|
T38_ = dollar___stdZwidestrs_356(T37_);
|
|
if (NIM_UNLIKELY(*nimErr_)) goto LA6_;
|
|
eqsink___stdZassertions_19((&(*line)), T38_);
|
|
result = NIM_TRUE;
|
|
eqdestroy___stdZwidestrs_6((&buffer));
|
|
if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
|
|
goto BeforeRet_;
|
|
{
|
|
LA6_:;
|
|
}
|
|
{
|
|
oldNimErrFin6_ = *nimErr_; *nimErr_ = NIM_FALSE;
|
|
eqdestroy___stdZwidestrs_6((&buffer));
|
|
if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
|
|
*nimErr_ = oldNimErrFin6_;
|
|
}
|
|
if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
|
|
}
|
|
LA4_: ;
|
|
pos = ((NI)0);
|
|
sp = (((*line).len >= ((NI)80)) ? (*line).len : ((NI)80));
|
|
setLengthStrV2((&(*line)), ((NI) (sp)));
|
|
{
|
|
while (1) {
|
|
NIM_BOOL fgetsSuccess;
|
|
void* m;
|
|
{
|
|
NI i_2;
|
|
NI i_3;
|
|
i_2 = (NI)0;
|
|
i_3 = ((NI)0);
|
|
{
|
|
while (1) {
|
|
if (!(i_3 < sp)) goto LA45 ;
|
|
i_2 = i_3;
|
|
nimPrepareStrMutationV2((&(*line)));
|
|
(*line).p->data[(NI)(pos + i_2)] = 10;
|
|
i_3 += ((NI)1);
|
|
} LA45: ;
|
|
}
|
|
}
|
|
fgetsSuccess = (NIM_BOOL)0;
|
|
{
|
|
while (1) {
|
|
{
|
|
NCSTRING T49_;
|
|
NIM_BOOL T50_;
|
|
T49_ = (NCSTRING)0;
|
|
T49_ = fgets(((NCSTRING) ((&(*line).p->data[pos]))), ((int) (sp)), f);
|
|
T50_ = (NIM_BOOL)0;
|
|
T50_ = eqeq___system_7539(T49_, ((NCSTRING) NIM_NIL));
|
|
fgetsSuccess = !(T50_);
|
|
{
|
|
if (!fgetsSuccess) goto LA53_;
|
|
goto LA46;
|
|
}
|
|
LA53_: ;
|
|
{
|
|
if (!(errno == EINTR)) goto LA57_;
|
|
errno = ((int)0);
|
|
clearerr(f);
|
|
goto LA48;
|
|
}
|
|
LA57_: ;
|
|
checkErr__stdZsyncio_153(f);
|
|
if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
|
|
goto LA46;
|
|
} LA48: ;
|
|
}
|
|
} LA46: ;
|
|
m = memchr(((void*) ((&(*line).p->data[pos]))), ((int)10), ((size_t) (sp)));
|
|
{
|
|
NI last;
|
|
NIM_BOOL T82_;
|
|
if (!!((m == NIM_NIL))) goto LA61_;
|
|
last = (NI)(((NI) (ptrdiff_t) (m)) - ((NI) (ptrdiff_t) ((&(*line).p->data[((NI)0)]))));
|
|
{
|
|
NIM_BOOL T65_;
|
|
NIM_BOOL T69_;
|
|
T65_ = (NIM_BOOL)0;
|
|
T65_ = (((NI)0) < last);
|
|
if (!(T65_)) goto LA66_;
|
|
T65_ = ((NU8)((*line).p->data[(NI)(last - ((NI)1))]) == (NU8)(13));
|
|
LA66_: ;
|
|
if (!T65_) goto LA67_;
|
|
setLengthStrV2((&(*line)), ((NI) ((NI)(last - ((NI)1)))));
|
|
T69_ = (NIM_BOOL)0;
|
|
T69_ = (((NI)1) < last);
|
|
if (T69_) goto LA70_;
|
|
T69_ = fgetsSuccess;
|
|
LA70_: ;
|
|
result = T69_;
|
|
goto BeforeRet_;
|
|
}
|
|
goto LA63_;
|
|
LA67_: ;
|
|
{
|
|
NIM_BOOL T72_;
|
|
T72_ = (NIM_BOOL)0;
|
|
T72_ = (((NI)0) < last);
|
|
if (!(T72_)) goto LA73_;
|
|
T72_ = ((NU8)((*line).p->data[(NI)(last - ((NI)1))]) == (NU8)(0));
|
|
LA73_: ;
|
|
if (!T72_) goto LA74_;
|
|
{
|
|
NIM_BOOL T78_;
|
|
T78_ = (NIM_BOOL)0;
|
|
T78_ = (last < (NI)((NI)(pos + sp) - ((NI)1)));
|
|
if (!(T78_)) goto LA79_;
|
|
T78_ = !(((NU8)((*line).p->data[(NI)(last + ((NI)1))]) == (NU8)(0)));
|
|
LA79_: ;
|
|
if (!T78_) goto LA80_;
|
|
last -= ((NI)1);
|
|
}
|
|
LA80_: ;
|
|
}
|
|
goto LA63_;
|
|
LA74_: ;
|
|
LA63_: ;
|
|
setLengthStrV2((&(*line)), ((NI) (last)));
|
|
T82_ = (NIM_BOOL)0;
|
|
T82_ = (((NI)0) < last);
|
|
if (T82_) goto LA83_;
|
|
T82_ = fgetsSuccess;
|
|
LA83_: ;
|
|
result = T82_;
|
|
goto BeforeRet_;
|
|
}
|
|
goto LA59_;
|
|
LA61_: ;
|
|
{
|
|
sp -= ((NI)1);
|
|
}
|
|
LA59_: ;
|
|
pos += sp;
|
|
sp = ((NI)128);
|
|
setLengthStrV2((&(*line)), ((NI) ((NI)(pos + sp))));
|
|
}
|
|
}
|
|
}BeforeRet_: ;
|
|
return result;
|
|
}
|
|
N_LIB_PRIVATE N_NIMCALL(NI64, rawFileSize__stdZsyncio_464)(FILE* file) {
|
|
NI64 result;
|
|
NI64 oldPos;
|
|
int T1_;
|
|
int T2_;
|
|
result = (NI64)0;
|
|
oldPos = ftell(file);
|
|
T1_ = (int)0;
|
|
T1_ = fseek(file, IL64(0), ((int)2));
|
|
(void)(T1_);
|
|
result = ftell(file);
|
|
T2_ = (int)0;
|
|
T2_ = fseek(file, oldPos, ((int)0));
|
|
(void)(T2_);
|
|
return result;
|
|
}
|
|
N_LIB_PRIVATE N_NIMCALL(NI, readBuffer__stdZsyncio_156)(FILE* f, void* buffer, NI len) {
|
|
NI result;
|
|
size_t T1_;
|
|
NIM_BOOL* nimErr_;
|
|
{nimErr_ = nimErrorFlag();
|
|
result = (NI)0;
|
|
T1_ = (size_t)0;
|
|
T1_ = fread(buffer, ((size_t)1), ((size_t) (len)), f);
|
|
result = ((NI) (T1_));
|
|
{
|
|
if (!!((result == ((NI) (len))))) goto LA4_;
|
|
checkErr__stdZsyncio_153(f);
|
|
if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
|
|
}
|
|
LA4_: ;
|
|
}BeforeRet_: ;
|
|
return result;
|
|
}
|
|
N_LIB_PRIVATE N_NIMCALL(NIM_BOOL, endOfFile__stdZsyncio_468)(FILE* f) {
|
|
NIM_BOOL result;
|
|
int c;
|
|
int T1_;
|
|
{ result = (NIM_BOOL)0;
|
|
c = fgetc(f);
|
|
T1_ = (int)0;
|
|
T1_ = ungetc(c, f);
|
|
(void)(T1_);
|
|
result = (c < ((NI32)0));
|
|
goto BeforeRet_;
|
|
}BeforeRet_: ;
|
|
return result;
|
|
}
|
|
N_LIB_PRIVATE N_NIMCALL(NimStringV2, readAllBuffer__stdZsyncio_459)(FILE* file) {
|
|
NimStringV2 result;
|
|
NimStringV2 buffer;
|
|
NIM_BOOL* nimErr_;
|
|
{nimErr_ = nimErrorFlag();
|
|
result.len = 0; result.p = NIM_NIL;
|
|
buffer.len = 0; buffer.p = NIM_NIL;
|
|
result = TM__xNF6mvRQ4Pd1hTNM9cEHXwQ_43;
|
|
buffer = mnewString(((NI)4000));
|
|
{
|
|
while (1) {
|
|
NI bytesRead;
|
|
bytesRead = readBuffer__stdZsyncio_156(file, ((void*) ((&buffer.p->data[((NI)0)]))), ((NI)4000));
|
|
if (NIM_UNLIKELY(*nimErr_)) goto LA1_;
|
|
{
|
|
if (!(bytesRead == ((NI)4000))) goto LA6_;
|
|
prepareAdd((&result), buffer.len + 0);
|
|
appendString((&result), buffer);
|
|
}
|
|
goto LA4_;
|
|
LA6_: ;
|
|
{
|
|
setLengthStrV2((&buffer), ((NI) (bytesRead)));
|
|
prepareAdd((&result), buffer.len + 0);
|
|
appendString((&result), buffer);
|
|
goto LA2;
|
|
}
|
|
LA4_: ;
|
|
}
|
|
} LA2: ;
|
|
{
|
|
LA1_:;
|
|
}
|
|
{
|
|
eqdestroy___stdZassertions_13((&buffer));
|
|
}
|
|
if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
|
|
}BeforeRet_: ;
|
|
return result;
|
|
}
|
|
N_LIB_PRIVATE N_NIMCALL(NimStringV2, readAllFile__stdZsyncio_472)(FILE* file, NI64 len) {
|
|
NimStringV2 result;
|
|
NI bytes;
|
|
NIM_BOOL* nimErr_;
|
|
{nimErr_ = nimErrorFlag();
|
|
result.len = 0; result.p = NIM_NIL;
|
|
result = mnewString(((NI) (len)));
|
|
bytes = readBuffer__stdZsyncio_156(file, ((void*) ((&result.p->data[((NI)0)]))), ((NI) (len)));
|
|
if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
|
|
{
|
|
NIM_BOOL T3_;
|
|
T3_ = (NIM_BOOL)0;
|
|
T3_ = endOfFile__stdZsyncio_468(file);
|
|
if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
|
|
if (!T3_) goto LA4_;
|
|
{
|
|
if (!(((NI64) (bytes)) < len)) goto LA8_;
|
|
setLengthStrV2((&result), ((NI) (bytes)));
|
|
}
|
|
LA8_: ;
|
|
}
|
|
goto LA1_;
|
|
LA4_: ;
|
|
{
|
|
NimStringV2 colontmpD_;
|
|
colontmpD_.len = 0; colontmpD_.p = NIM_NIL;
|
|
colontmpD_ = readAllBuffer__stdZsyncio_459(file);
|
|
if (NIM_UNLIKELY(*nimErr_)) goto LA11_;
|
|
prepareAdd((&result), colontmpD_.len + 0);
|
|
appendString((&result), colontmpD_);
|
|
{
|
|
LA11_:;
|
|
}
|
|
{
|
|
eqdestroy___stdZassertions_13((&colontmpD_));
|
|
}
|
|
if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
|
|
}
|
|
LA1_: ;
|
|
}BeforeRet_: ;
|
|
return result;
|
|
}
|
|
N_LIB_PRIVATE N_NIMCALL(NimStringV2, readAll__stdZsyncio_481)(FILE* file) {
|
|
NimStringV2 result;
|
|
NI64 colontmpD_;
|
|
NI64 colontmpD__2;
|
|
NI64 len;
|
|
NIM_BOOL* nimErr_;
|
|
{nimErr_ = nimErrorFlag();
|
|
result.len = 0; result.p = NIM_NIL;
|
|
colontmpD_ = (NI64)0;
|
|
colontmpD__2 = (NI64)0;
|
|
{
|
|
if (!!((file == stdin))) goto LA3_;
|
|
colontmpD_ = rawFileSize__stdZsyncio_464(file);
|
|
if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
|
|
len = colontmpD_;
|
|
}
|
|
goto LA1_;
|
|
LA3_: ;
|
|
{
|
|
colontmpD__2 = IL64(-1);
|
|
len = colontmpD__2;
|
|
}
|
|
LA1_: ;
|
|
{
|
|
if (!(IL64(0) < len)) goto LA8_;
|
|
result = readAllFile__stdZsyncio_472(file, len);
|
|
if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
|
|
}
|
|
goto LA6_;
|
|
LA8_: ;
|
|
{
|
|
result = readAllBuffer__stdZsyncio_459(file);
|
|
if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
|
|
}
|
|
LA6_: ;
|
|
}BeforeRet_: ;
|
|
return result;
|
|
}
|
|
N_LIB_PRIVATE N_NIMCALL(NimStringV2, readFile__stdZsyncio_605)(NimStringV2 filename) {
|
|
NimStringV2 result;
|
|
FILE* f;
|
|
NIM_BOOL oldNimErrFin6_;
|
|
NIM_BOOL* nimErr_;
|
|
{nimErr_ = nimErrorFlag();
|
|
result.len = 0; result.p = NIM_NIL;
|
|
f = ((FILE*) NIM_NIL);
|
|
{
|
|
NIM_BOOL T3_;
|
|
T3_ = (NIM_BOOL)0;
|
|
T3_ = open__stdZsyncio_528(&f, filename, ((tyEnum_FileMode__4sJyy9aOSN8X63XdWXl5iDg)0), ((NI)-1));
|
|
if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
|
|
if (!T3_) goto LA4_;
|
|
result = readAll__stdZsyncio_481(f);
|
|
if (NIM_UNLIKELY(*nimErr_)) goto LA6_;
|
|
{
|
|
LA6_:;
|
|
}
|
|
{
|
|
oldNimErrFin6_ = *nimErr_; *nimErr_ = NIM_FALSE;
|
|
close__stdZsyncio_265(f);
|
|
if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
|
|
*nimErr_ = oldNimErrFin6_;
|
|
}
|
|
if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
|
|
}
|
|
goto LA1_;
|
|
LA4_: ;
|
|
{
|
|
tyObject_IOError__N09bhl56nRkUaUsonzshECg* T10_;
|
|
NimStringV2 T11_;
|
|
T10_ = NIM_NIL;
|
|
T10_ = (tyObject_IOError__N09bhl56nRkUaUsonzshECg*) nimNewObj(sizeof(tyObject_IOError__N09bhl56nRkUaUsonzshECg), NIM_ALIGNOF(tyObject_IOError__N09bhl56nRkUaUsonzshECg));
|
|
(*T10_).Sup.Sup.Sup.m_type = (&NTIv2__N09bhl56nRkUaUsonzshECg_);
|
|
(*T10_).Sup.Sup.name = "IOError";
|
|
T11_.len = 0; T11_.p = NIM_NIL;
|
|
T11_ = rawNewString(filename.len + 13);
|
|
appendString((&T11_), TM__xNF6mvRQ4Pd1hTNM9cEHXwQ_44);
|
|
appendString((&T11_), filename);
|
|
(*T10_).Sup.Sup.message = T11_;
|
|
(*T10_).Sup.Sup.parent = ((Exception*) NIM_NIL);
|
|
raiseExceptionEx((Exception*)T10_, "IOError", "readFile", "syncio.nim", 854);
|
|
goto BeforeRet_;
|
|
}
|
|
LA1_: ;
|
|
}BeforeRet_: ;
|
|
return result;
|
|
}
|
|
N_LIB_PRIVATE N_NIMCALL(NI, readChars__stdZsyncio_168)(FILE* f, NIM_CHAR* a, NI aLen_0) {
|
|
NI result;
|
|
NIM_BOOL* nimErr_;
|
|
{nimErr_ = nimErrorFlag();
|
|
result = (NI)0;
|
|
result = readBuffer__stdZsyncio_156(f, ((void*) ((&a[((NI)0)]))), ((NI) (aLen_0)));
|
|
if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
|
|
}BeforeRet_: ;
|
|
return result;
|
|
}
|
|
N_LIB_PRIVATE N_NOINLINE(void, raiseEOF__stdZsyncio_110)(void) {
|
|
tyObject_EOFError__d9btBfCv6DANm6rubyJTljg* T1_;
|
|
{ T1_ = NIM_NIL;
|
|
T1_ = (tyObject_EOFError__d9btBfCv6DANm6rubyJTljg*) nimNewObj(sizeof(tyObject_EOFError__d9btBfCv6DANm6rubyJTljg), NIM_ALIGNOF(tyObject_EOFError__d9btBfCv6DANm6rubyJTljg));
|
|
(*T1_).Sup.Sup.Sup.Sup.m_type = (&NTIv2__d9btBfCv6DANm6rubyJTljg_);
|
|
(*T1_).Sup.Sup.Sup.name = "EOFError";
|
|
(*T1_).Sup.Sup.Sup.message = TM__xNF6mvRQ4Pd1hTNM9cEHXwQ_46;
|
|
(*T1_).Sup.Sup.Sup.parent = ((Exception*) NIM_NIL);
|
|
raiseExceptionEx((Exception*)T1_, "EOFError", "raiseEOF", "syncio.nim", 161);
|
|
goto BeforeRet_;
|
|
}BeforeRet_: ;
|
|
}
|
|
N_LIB_PRIVATE N_NIMCALL(NimStringV2, readLine__stdZsyncio_419)(FILE* f) {
|
|
NimStringV2 result;
|
|
NIM_BOOL* nimErr_;
|
|
{nimErr_ = nimErrorFlag();
|
|
result.len = 0; result.p = NIM_NIL;
|
|
result = rawNewString(((NI)80));
|
|
{
|
|
NIM_BOOL T3_;
|
|
T3_ = (NIM_BOOL)0;
|
|
T3_ = readLine__stdZsyncio_310(f, (&result));
|
|
if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
|
|
if (!!(T3_)) goto LA4_;
|
|
raiseEOF__stdZsyncio_110();
|
|
if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
|
|
}
|
|
LA4_: ;
|
|
}BeforeRet_: ;
|
|
return result;
|
|
}
|
|
N_LIB_PRIVATE N_NIMCALL(NI, writeBuffer__stdZsyncio_187)(FILE* f, void* buffer, NI len) {
|
|
NI result;
|
|
size_t T1_;
|
|
NIM_BOOL* nimErr_;
|
|
{nimErr_ = nimErrorFlag();
|
|
result = (NI)0;
|
|
T1_ = (size_t)0;
|
|
T1_ = fwrite(buffer, ((size_t)1), ((size_t) (len)), f);
|
|
result = ((NI) (T1_));
|
|
checkErr__stdZsyncio_153(f);
|
|
if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
|
|
}BeforeRet_: ;
|
|
return result;
|
|
}
|
|
N_LIB_PRIVATE N_NIMCALL(NI, readBytes__icZrodfiles_163)(FILE* f, NU8* a, NI aLen_0, NI start, NI len) {
|
|
NI result;
|
|
NIM_BOOL* nimErr_;
|
|
{nimErr_ = nimErrorFlag();
|
|
result = (NI)0;
|
|
result = readBuffer__stdZsyncio_156(f, ((void*) ((&a[start]))), len);
|
|
if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
|
|
}BeforeRet_: ;
|
|
return result;
|
|
}
|
|
N_LIB_PRIVATE N_NIMCALL(NI, writeBytes__icZrodfiles_127)(FILE* f, NU8* a, NI aLen_0, NI start, NI len) {
|
|
NI result;
|
|
NI8* x;
|
|
NIM_BOOL* nimErr_;
|
|
{nimErr_ = nimErrorFlag();
|
|
result = (NI)0;
|
|
x = ((NI8*) (a));
|
|
result = writeBuffer__stdZsyncio_187(f, ((void*) ((&x[start]))), len);
|
|
if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
|
|
}BeforeRet_: ;
|
|
return result;
|
|
}
|
|
N_LIB_PRIVATE N_NIMCALL(void, writeFile__stdZsyncio_610)(NimStringV2 filename, NimStringV2 content) {
|
|
FILE* f;
|
|
NIM_BOOL oldNimErrFin6_;
|
|
NIM_BOOL* nimErr_;
|
|
{nimErr_ = nimErrorFlag();
|
|
f = ((FILE*) NIM_NIL);
|
|
{
|
|
NIM_BOOL T3_;
|
|
T3_ = (NIM_BOOL)0;
|
|
T3_ = open__stdZsyncio_528(&f, filename, ((tyEnum_FileMode__4sJyy9aOSN8X63XdWXl5iDg)1), ((NI)-1));
|
|
if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
|
|
if (!T3_) goto LA4_;
|
|
write__stdZsyncio_248(f, content);
|
|
if (NIM_UNLIKELY(*nimErr_)) goto LA6_;
|
|
{
|
|
LA6_:;
|
|
}
|
|
{
|
|
oldNimErrFin6_ = *nimErr_; *nimErr_ = NIM_FALSE;
|
|
close__stdZsyncio_265(f);
|
|
if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
|
|
*nimErr_ = oldNimErrFin6_;
|
|
}
|
|
if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
|
|
}
|
|
goto LA1_;
|
|
LA4_: ;
|
|
{
|
|
tyObject_IOError__N09bhl56nRkUaUsonzshECg* T10_;
|
|
NimStringV2 T11_;
|
|
T10_ = NIM_NIL;
|
|
T10_ = (tyObject_IOError__N09bhl56nRkUaUsonzshECg*) nimNewObj(sizeof(tyObject_IOError__N09bhl56nRkUaUsonzshECg), NIM_ALIGNOF(tyObject_IOError__N09bhl56nRkUaUsonzshECg));
|
|
(*T10_).Sup.Sup.Sup.m_type = (&NTIv2__N09bhl56nRkUaUsonzshECg_);
|
|
(*T10_).Sup.Sup.name = "IOError";
|
|
T11_.len = 0; T11_.p = NIM_NIL;
|
|
T11_ = rawNewString(filename.len + 13);
|
|
appendString((&T11_), TM__xNF6mvRQ4Pd1hTNM9cEHXwQ_47);
|
|
appendString((&T11_), filename);
|
|
(*T10_).Sup.Sup.message = T11_;
|
|
(*T10_).Sup.Sup.parent = ((Exception*) NIM_NIL);
|
|
raiseExceptionEx((Exception*)T10_, "IOError", "writeFile", "syncio.nim", 867);
|
|
goto BeforeRet_;
|
|
}
|
|
LA1_: ;
|
|
}BeforeRet_: ;
|
|
}
|
|
N_LIB_PRIVATE N_NIMCALL(tySequence__sM4lkSb7zS6F7OVMvW9cffQ, readLines__stdZsyncio_628)(NimStringV2 filename, NI n) {
|
|
tySequence__sM4lkSb7zS6F7OVMvW9cffQ result;
|
|
FILE* f;
|
|
NIM_BOOL oldNimErrFin6_;
|
|
NIM_BOOL* nimErr_;
|
|
{nimErr_ = nimErrorFlag();
|
|
result.len = 0; result.p = NIM_NIL;
|
|
f = ((FILE*) NIM_NIL);
|
|
{
|
|
NIM_BOOL T3_;
|
|
T3_ = (NIM_BOOL)0;
|
|
T3_ = open__stdZsyncio_528(&f, filename, ((tyEnum_FileMode__4sJyy9aOSN8X63XdWXl5iDg)0), ((NI)-1));
|
|
if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
|
|
if (!T3_) goto LA4_;
|
|
result = newSeq__pureZdynlib_76(n);
|
|
{
|
|
NI i;
|
|
NI colontmp_;
|
|
NI res;
|
|
i = (NI)0;
|
|
colontmp_ = (NI)0;
|
|
colontmp_ = (NI)(((NI) (n)) - ((NI)1));
|
|
res = ((NI)0);
|
|
{
|
|
while (1) {
|
|
if (!(res <= colontmp_)) goto LA9 ;
|
|
i = res;
|
|
{
|
|
NIM_BOOL T12_;
|
|
T12_ = (NIM_BOOL)0;
|
|
T12_ = readLine__stdZsyncio_310(f, (&result.p->data[i]));
|
|
if (NIM_UNLIKELY(*nimErr_)) goto LA6_;
|
|
if (!!(T12_)) goto LA13_;
|
|
raiseEOF__stdZsyncio_110();
|
|
if (NIM_UNLIKELY(*nimErr_)) goto LA6_;
|
|
}
|
|
LA13_: ;
|
|
res += ((NI)1);
|
|
} LA9: ;
|
|
}
|
|
}
|
|
{
|
|
LA6_:;
|
|
}
|
|
{
|
|
oldNimErrFin6_ = *nimErr_; *nimErr_ = NIM_FALSE;
|
|
close__stdZsyncio_265(f);
|
|
if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
|
|
*nimErr_ = oldNimErrFin6_;
|
|
}
|
|
if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
|
|
}
|
|
goto LA1_;
|
|
LA4_: ;
|
|
{
|
|
tyObject_IOError__N09bhl56nRkUaUsonzshECg* T18_;
|
|
NimStringV2 T19_;
|
|
T18_ = NIM_NIL;
|
|
T18_ = (tyObject_IOError__N09bhl56nRkUaUsonzshECg*) nimNewObj(sizeof(tyObject_IOError__N09bhl56nRkUaUsonzshECg), NIM_ALIGNOF(tyObject_IOError__N09bhl56nRkUaUsonzshECg));
|
|
(*T18_).Sup.Sup.Sup.m_type = (&NTIv2__N09bhl56nRkUaUsonzshECg_);
|
|
(*T18_).Sup.Sup.name = "IOError";
|
|
T19_.len = 0; T19_.p = NIM_NIL;
|
|
T19_ = rawNewString(filename.len + 13);
|
|
appendString((&T19_), TM__xNF6mvRQ4Pd1hTNM9cEHXwQ_48);
|
|
appendString((&T19_), filename);
|
|
(*T18_).Sup.Sup.message = T19_;
|
|
(*T18_).Sup.Sup.parent = ((Exception*) NIM_NIL);
|
|
raiseExceptionEx((Exception*)T18_, "IOError", "readLines", "syncio.nim", 897);
|
|
goto BeforeRet_;
|
|
}
|
|
LA1_: ;
|
|
}BeforeRet_: ;
|
|
return result;
|
|
}
|
|
N_LIB_PRIVATE N_NIMCALL(void, setFilePos__stdZsyncio_565)(FILE* f, NI64 pos, tyEnum_FileSeekPos__9bTJB6D0CIMmNFgwvcGSE3Q relativeTo) {
|
|
NIM_BOOL* nimErr_;
|
|
{nimErr_ = nimErrorFlag();
|
|
{
|
|
int T3_;
|
|
T3_ = (int)0;
|
|
T3_ = fseek(f, pos, ((int) (relativeTo)));
|
|
if (!!((T3_ == ((NI32)0)))) goto LA4_;
|
|
raiseEIO__stdZsyncio_107(TM__xNF6mvRQ4Pd1hTNM9cEHXwQ_50);
|
|
if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
|
|
}
|
|
LA4_: ;
|
|
}BeforeRet_: ;
|
|
}
|
|
N_LIB_PRIVATE N_NIMCALL(NI64, getFilePos__stdZsyncio_581)(FILE* f) {
|
|
NI64 result;
|
|
NIM_BOOL* nimErr_;
|
|
{nimErr_ = nimErrorFlag();
|
|
result = (NI64)0;
|
|
result = ftell(f);
|
|
{
|
|
if (!(result < IL64(0))) goto LA3_;
|
|
raiseEIO__stdZsyncio_107(TM__xNF6mvRQ4Pd1hTNM9cEHXwQ_52);
|
|
if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
|
|
}
|
|
LA3_: ;
|
|
}BeforeRet_: ;
|
|
return result;
|
|
}
|
|
N_LIB_PRIVATE N_NIMCALL(void, write__stdZsyncio_452)(FILE* f, NimStringV2* a, NI aLen_0) {
|
|
NIM_BOOL* nimErr_;
|
|
{nimErr_ = nimErrorFlag();
|
|
{
|
|
NimStringV2* x;
|
|
NI i;
|
|
x = (NimStringV2*)0;
|
|
i = ((NI)0);
|
|
{
|
|
while (1) {
|
|
if (!(i < aLen_0)) goto LA3 ;
|
|
x = (&a[i]);
|
|
write__stdZsyncio_248(f, (*x));
|
|
if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
|
|
i += ((NI)1);
|
|
} LA3: ;
|
|
}
|
|
}
|
|
}BeforeRet_: ;
|
|
}
|
|
N_LIB_PRIVATE N_NIMCALL(void, atmdotdotatslibatsstdatssynciodotnim_Init000)(void) {
|
|
{
|
|
int T1_;
|
|
int T2_;
|
|
int T3_;
|
|
NIM_BOOL* nimErr_;
|
|
nimErr_ = nimErrorFlag();
|
|
T1_ = (int)0;
|
|
T1_ = _fileno(stdin);
|
|
_setmode(T1_, _O_BINARY);
|
|
T2_ = (int)0;
|
|
T2_ = _fileno(stdout);
|
|
_setmode(T2_, _O_BINARY);
|
|
T3_ = (int)0;
|
|
T3_ = _fileno(stderr);
|
|
_setmode(T3_, _O_BINARY);
|
|
consoleOutputCP__stdZsyncio_601 = Dl_503317078_();
|
|
consoleCP__stdZsyncio_602 = Dl_503317079_();
|
|
{
|
|
NI32 T8_;
|
|
tyProc__HzVCwACFYM9cx9aV62PdjtuA T9_;
|
|
if (!!((consoleOutputCP__stdZsyncio_601 == ((NU32)65001)))) goto LA6_;
|
|
T8_ = (NI32)0;
|
|
T8_ = Dl_503317074_(((NU32)65001));
|
|
(void)(T8_);
|
|
nimZeroMem((void*)(&T9_), sizeof(tyProc__HzVCwACFYM9cx9aV62PdjtuA));
|
|
T9_.ClP_0 = ((TM__xNF6mvRQ4Pd1hTNM9cEHXwQ_14) (restoreConsoleOutputCP__stdZsyncio_603)); T9_.ClE_0 = NIM_NIL;
|
|
addExitProc__stdZexitprocs_218(T9_);
|
|
if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
|
|
}
|
|
LA6_: ;
|
|
{
|
|
NI32 T14_;
|
|
tyProc__HzVCwACFYM9cx9aV62PdjtuA T15_;
|
|
if (!!((consoleCP__stdZsyncio_602 == ((NU32)65001)))) goto LA12_;
|
|
T14_ = (NI32)0;
|
|
T14_ = Dl_503317076_(((NU32)65001));
|
|
(void)(T14_);
|
|
nimZeroMem((void*)(&T15_), sizeof(tyProc__HzVCwACFYM9cx9aV62PdjtuA));
|
|
T15_.ClP_0 = ((TM__xNF6mvRQ4Pd1hTNM9cEHXwQ_17) (restoreConsoleCP__stdZsyncio_604)); T15_.ClE_0 = NIM_NIL;
|
|
addExitProc__stdZexitprocs_218(T15_);
|
|
if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
|
|
}
|
|
LA12_: ;
|
|
BeforeRet_: ;
|
|
}
|
|
}
|
|
|
|
N_LIB_PRIVATE N_NIMCALL(void, atmdotdotatslibatsstdatssynciodotnim_DatInit000)(void) {
|
|
if (!((TM__xNF6mvRQ4Pd1hTNM9cEHXwQ_2 = nimLoadLibrary(TM__xNF6mvRQ4Pd1hTNM9cEHXwQ_5))
|
|
)) nimLoadLibraryError(TM__xNF6mvRQ4Pd1hTNM9cEHXwQ_7);
|
|
Dl_503317078_ = (tyProc__h8Aw7ZfCFoDOErV4ZZpsEA) nimGetProcAddr(TM__xNF6mvRQ4Pd1hTNM9cEHXwQ_2, "GetConsoleOutputCP");
|
|
Dl_503317079_ = (tyProc__h8Aw7ZfCFoDOErV4ZZpsEA) nimGetProcAddr(TM__xNF6mvRQ4Pd1hTNM9cEHXwQ_2, "GetConsoleCP");
|
|
Dl_503317074_ = (tyProc__JQ9aO3SHJmfNBdx8TB2Hp9aQ) nimGetProcAddr(TM__xNF6mvRQ4Pd1hTNM9cEHXwQ_2, "SetConsoleOutputCP");
|
|
Dl_503317076_ = (tyProc__JQ9aO3SHJmfNBdx8TB2Hp9aQ) nimGetProcAddr(TM__xNF6mvRQ4Pd1hTNM9cEHXwQ_2, "SetConsoleCP");
|
|
Dl_503316798_ = (tyProc__q54pnGq5V09aJPfifZaON9cQ) nimGetProcAddr(TM__xNF6mvRQ4Pd1hTNM9cEHXwQ_2, "ReadConsoleW");
|
|
Dl_503316804_ = (tyProc__9bXer9a4ps9aSGctILcxWReVw) nimGetProcAddr(TM__xNF6mvRQ4Pd1hTNM9cEHXwQ_2, "GetLastError");
|
|
Dl_503316805_ = (tyProc__aO673xGTLLxou7P7GxoCXA) nimGetProcAddr(TM__xNF6mvRQ4Pd1hTNM9cEHXwQ_2, "FormatMessageW");
|
|
Dl_503316813_ = (tyProc__im9buRnIvptJfzdASYMEbBA) nimGetProcAddr(TM__xNF6mvRQ4Pd1hTNM9cEHXwQ_2, "LocalFree");
|
|
}
|
|
|