csources_v2/c_code/2_9/@m..@slib@sstd@sprivate@sossymlinks.nim.c
2022-12-16 10:54:01 +08:00

129 lines
3.6 KiB
C

/* Generated by Nim Compiler v1.9.0 */
#define NIM_INTBITS 64
#include "nimbase.h"
#include <unistd.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 tyTuple__UV3llMMYFckfui8YMBuUZA tyTuple__UV3llMMYFckfui8YMBuUZA;
struct NimStrPayload {
NI cap;
NIM_CHAR data[SEQ_DECL_SIZE];
};
struct NimStringV2 {
NI len;
NimStrPayload* p;
};
struct tyTuple__UV3llMMYFckfui8YMBuUZA {
NimStringV2 Field0;
NimStringV2 Field1;
};
static N_INLINE(NCSTRING, nimToCStringConv)(NimStringV2 s);
N_LIB_PRIVATE N_NOINLINE(void, raiseOSError__stdZoserrors_82)(NI32 errorCode, NimStringV2 additionalInfo);
N_LIB_PRIVATE N_NIMCALL(NI32, osLastError__stdZoserrors_85)(void);
N_LIB_PRIVATE N_NIMCALL(NimStringV2, dollar___stdZprivateZoscommon_78)(tyTuple__UV3llMMYFckfui8YMBuUZA* x);
N_LIB_PRIVATE N_NIMCALL(void, eqdestroy___stdZassertions_13)(NimStringV2* dest);
static N_INLINE(NIM_BOOL*, nimErrorFlag)(void);
N_NIMCALL(NimStringV2, mnewString)(NI len);
N_LIB_PRIVATE N_NIMCALL(void, eqsink___stdZassertions_19)(NimStringV2* dest, NimStringV2 src);
N_LIB_PRIVATE N_NIMCALL(void, setLengthStrV2)(NimStringV2* s, NI newLen);
extern NIM_BOOL nimInErrorMode__system_3980;
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;
}
static N_INLINE(NIM_BOOL*, nimErrorFlag)(void) {
NIM_BOOL* result;
result = (NIM_BOOL*)0;
result = (&nimInErrorMode__system_3980);
return result;
}
N_LIB_PRIVATE N_NIMCALL(void, createSymlink__stdZprivateZossymlinks_13)(NimStringV2 src, NimStringV2 dest) {
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
{
int T3_;
NimStringV2 colontmpD_;
NI32 T7_;
tyTuple__UV3llMMYFckfui8YMBuUZA T8_;
T3_ = (int)0;
T3_ = symlink(nimToCStringConv(src), nimToCStringConv(dest));
if (!!((T3_ == ((NI32)0)))) goto LA4_;
colontmpD_.len = 0; colontmpD_.p = NIM_NIL;
T7_ = (NI32)0;
T7_ = osLastError__stdZoserrors_85();
if (NIM_UNLIKELY(*nimErr_)) goto LA6_;
T8_.Field0 = src;
T8_.Field1 = dest;
colontmpD_ = dollar___stdZprivateZoscommon_78((&T8_));
if (NIM_UNLIKELY(*nimErr_)) goto LA6_;
raiseOSError__stdZoserrors_82(T7_, colontmpD_);
if (NIM_UNLIKELY(*nimErr_)) goto LA6_;
{
LA6_:;
}
{
eqdestroy___stdZassertions_13((&colontmpD_));
}
if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
}
LA4_: ;
}BeforeRet_: ;
}
N_LIB_PRIVATE N_NIMCALL(NimStringV2, expandSymlink__stdZprivateZossymlinks_19)(NimStringV2 symlinkPath) {
NimStringV2 result;
NI len;
NIM_BOOL* nimErr_;
{nimErr_ = nimErrorFlag();
result.len = 0; result.p = NIM_NIL;
result = mnewString(((NI)1024));
len = readlink(nimToCStringConv(symlinkPath), nimToCStringConv(result), ((NI)1024));
{
NI32 T5_;
if (!(len < ((NI)0))) goto LA3_;
T5_ = (NI32)0;
T5_ = osLastError__stdZoserrors_85();
if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
raiseOSError__stdZoserrors_82(T5_, symlinkPath);
if (NIM_UNLIKELY(*nimErr_)) goto BeforeRet_;
}
LA3_: ;
{
NimStringV2 T10_;
if (!(((NI)1024) < len)) goto LA8_;
T10_.len = 0; T10_.p = NIM_NIL;
T10_ = mnewString(((NI) ((NI)(len + ((NI)1)))));
eqsink___stdZassertions_19((&result), T10_);
len = readlink(nimToCStringConv(symlinkPath), nimToCStringConv(result), len);
}
LA8_: ;
setLengthStrV2((&result), ((NI) (len)));
}BeforeRet_: ;
return result;
}