这篇教程C++ xsString函数代码示例写得很实用,希望能帮到您。
本文整理汇总了C++中xsString函数的典型用法代码示例。如果您正苦于以下问题:C++ xsString函数的具体用法?C++ xsString怎么用?C++ xsString使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。 在下文中一共展示了xsString函数的30个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的C++代码示例。 示例1: KprDebugMachineEchoItemvoid KprDebugMachineEchoItem(KprDebugMachine self, int theView, char* path, int line, char* name, char* value){ KprDebug debug = self->debug; xsMachine* the = debug->the; if (xsTypeOf(debug->behavior) == xsUndefinedType) goto bail; { xsTry { xsVar(0) = xsAccess(debug->behavior); xsVar(1) = xsGet(xsVar(0), xsID(self->address)); xsVar(2) = xsNewInstanceOf(xsObjectPrototype); if (path) xsNewHostProperty(xsVar(2), xsID("path"), xsString(path), xsDefault, xsDontScript); if (line >= 0) xsNewHostProperty(xsVar(2), xsID("line"), xsInteger(line), xsDefault, xsDontScript); if (name) xsNewHostProperty(xsVar(2), xsID("name"), xsString(name), xsDefault, xsDontScript); if (value) xsNewHostProperty(xsVar(2), xsID("value"), xsString(value), xsDefault, xsDontScript); if (xsFindResult(xsVar(1), xsID_push)) { (void)xsCallFunction1(xsResult, xsVar(1), xsVar(2)); } } xsCatch { } }bail: return;}
开发者ID:dadongdong,项目名称:kinomajs,代码行数:29,
示例2: kpr2jsSplitPathvoid kpr2jsSplitPath(xsMachine* the){ char *aPath; char *aSeparator = NULL; char *aDot = NULL; int aLength; char aDirectory[1024]; char aName[1024]; char anExtension[1024]; aPath = xsToString(xsArg(0)); aSeparator = strrchr(aPath, mxSeparator); if (aSeparator == NULL) aSeparator = aPath; else aSeparator++; aDot = strrchr(aSeparator, '.'); if (aDot == NULL) aDot = aSeparator + strlen(aSeparator); aLength = aSeparator - aPath; strncpy(aDirectory, aPath, aLength); aDirectory[aLength - 1] = 0; aLength = aDot - aSeparator; strncpy(aName, aSeparator, aLength); aName[aLength] = 0; strcpy(anExtension, aDot); xsResult = xsNewInstanceOf(xsArrayPrototype); xsSet(xsResult, 0, xsString(aDirectory)); xsSet(xsResult, 1, xsString(aName)); xsSet(xsResult, 2, xsString(anExtension));}
开发者ID:dadongdong,项目名称:kinomajs,代码行数:31,
示例3: FskSSLNewFskErrFskSSLNew(void **fsslp, const char *host, int port, Boolean blocking, long flags, int priority){ FskSSL *fssl; FskErr err; if ((err = FskMemPtrNewClear(sizeof(FskSSL), (FskMemPtr*)(void*)&fssl)) != kFskErrNone) return err; if ((err = newSSLVM(&fssl->vm)) != kFskErrNone) { FskMemPtrDispose(fssl); return err; } xsBeginHost(fssl->vm->the); xsTry { const char *prStr; xsVars(2); /* construct the options */ xsVar(0) = xsNewInstanceOf(xsObjectPrototype); if (blocking) xsSet(xsVar(0), xsID("blocking"), xsTrue); if (flags & kConnectFlagsSynchronous) xsSet(xsVar(0), xsID("synchronous"), xsTrue); switch (priority) { default: case kFskNetSocketLowestPriority: prStr = "lowest"; break; case kFskNetSocketLowPriority: prStr = "low"; break; case kFskNetSocketMediumPriority: prStr = "medium"; break; case kFskNetSocketHighPriority: prStr = "high"; break; case kFskNetSocketHighestPriority: prStr = "highest"; break; } (void)xsSet(xsVar(0), xsID("priority"), xsString((xsStringValue)prStr)); (void)xsSet(xsVar(0), xsID("raw"), xsTrue); xsVar(1) = xsNew3(xsGet(xsGlobal, xsID("Stream")), xsID("Socket"), xsString((xsStringValue)host), xsInteger(port), xsVar(0)); fssl->socket = xsVar(1); xsRemember(fssl->socket); xsVar(1) = xsNew0(xsGet(xsGlobal, xsID("FskSSL")), xsID("Session")); fssl->ssl = xsVar(1); xsRemember(fssl->ssl); } xsCatch { if (xsHas(xsException, xsID("code"))) err = xsToInteger(xsGet(xsException, xsID("code"))); if (err == kFskErrNone) err = kFskErrOperationFailed; } xsEndHost(fssl->vm->the); if (err == kFskErrNone) { if (fsslp != NULL) *fsslp = fssl; } else { disposeSSLVM(fssl->vm); FskMemPtrDispose(fssl); } return err;}
开发者ID:afrog33k,项目名称:kinomajs,代码行数:55,
示例4: KPR_Message_patchvoid KPR_Message_patch(xsMachine* the){ xsResult = xsGet(xsGlobal, xsID("Message")); xsNewHostProperty(xsResult, xsID("CHUNK"), xsString("CHUNK"), xsDontDelete | xsDontSet, xsDontScript | xsDontDelete | xsDontSet); xsNewHostProperty(xsResult, xsID("DOM"), xsString("DOM"), xsDontDelete | xsDontSet, xsDontScript | xsDontDelete | xsDontSet); xsNewHostProperty(xsResult, xsID("JSON"), xsString("JSON"), xsDontDelete | xsDontSet, xsDontScript | xsDontDelete | xsDontSet); xsNewHostProperty(xsResult, xsID("TEXT"), xsString("TEXT"), xsDontDelete | xsDontSet, xsDontScript | xsDontDelete | xsDontSet); xsNewHostProperty(xsResult, xsID("URI"), xsNewHostFunction(KPR_Message_URI, 1), xsDefault, xsDontScript); xsNewHostProperty(xsResult, xsID("cancelReferrer"), xsNewHostFunction(KPR_Message_cancelReferrer, 1), xsDefault, xsDontScript); xsNewHostProperty(xsResult, xsID("notify"), xsNewHostFunction(KPR_Message_notify, 1), xsDefault, xsDontScript);}
开发者ID:giapdangle,项目名称:kinomajs,代码行数:11,
示例5: KprApplicationNewFskErr KprApplicationNew(KprApplication* it, char* url, char* id, Boolean breakOnStart, Boolean breakOnExceptions){ KprCoordinatesRecord coordinates = { kprLeftRight, kprTopBottom, 0, 0, 0, 0, 0, 0 }; xsAllocation allocation = { 2 * 1024 * 1024, 1024 * 1024, 64 * 1024, 8 * 1024, 2048, 16000, 1993 }; FskErr err = kFskErrNone; KprApplication self; bailIfError(FskMemPtrNewClear(sizeof(KprApplicationRecord), it)); self = *it; FskInstrumentedItemNew(self, NULL, &KprApplicationInstrumentation); self->dispatch = &KprApplicationDispatchRecord; self->flags = kprContainer | kprClip | kprVisible; KprContentInitialize((KprContent)self, &coordinates, NULL, NULL); bailIfError(KprURLMerge(gShell->url, url, &self->url)); if (id) { self->id = FskStrDoCopy(id); bailIfNULL(self->id); } self->the = xsAliasMachine(&allocation, gShell->root, self->url, self); if (!self->the) BAIL(kFskErrMemFull); FskInstrumentedItemSendMessageNormal(self, kprInstrumentedContentCreateMachine, self); xsBeginHost(self->the); xsResult = xsNewHostFunction(KPR_include, 1); xsSet(xsResult, xsID("uri"), xsString(self->url)); xsNewHostProperty(xsGlobal, xsID("include"), xsResult, xsDontDelete | xsDontSet, xsDontScript | xsDontDelete | xsDontSet); xsResult = xsNewHostFunction(KPR_require, 1); xsSet(xsResult, xsID("uri"), xsString(self->url)); xsNewHostProperty(xsGlobal, xsID("require"), xsResult, xsDontDelete | xsDontSet, xsDontScript | xsDontDelete | xsDontSet); xsResult = xsNewInstanceOf(xsGet(xsGet(xsGlobal, xsID("KPR")), xsID("application"))); self->slot = xsResult; xsSetHostData(xsResult, self); (void)xsCall1(xsGet(xsGlobal, xsID("Object")), xsID("seal"), xsResult); xsNewHostProperty(xsGlobal, xsID("application"), xsResult, xsDontDelete | xsDontSet, xsDontScript | xsDontDelete | xsDontSet); xsNewHostProperty(xsGlobal, xsID("shell"), xsNull, xsDontDelete | xsDontSet, xsDontScript | xsDontDelete | xsDontSet); if (breakOnStart) xsDebugger(); if (breakOnExceptions) (void)xsCall1(xsGet(xsGet(xsGlobal, xsID("xs")), xsID("debug")), xsID("setBreakOnException"), xsBoolean(breakOnExceptions)); (void)xsCall1(xsGlobal, xsID("include"), xsString(self->url)); xsEndHost(self->the); KprContentChainPrepend(&gShell->applicationChain, self, 0, NULL);bail: return err;}
开发者ID:giapdangle,项目名称:kinomajs,代码行数:53,
示例6: Zeroconf_browser_callbackvoid Zeroconf_browser_callback(KprZeroconfBrowser self, char* function, KprZeroconfServiceInfo service){ xsBeginHostSandboxCode(self->the, self->code); if (xsTypeOf(self->behavior) == xsUndefinedType) goto bail; xsVars(3); { xsTry { xsVar(0) = xsAccess(self->behavior); xsVar(1) = xsNewInstanceOf(xsObjectPrototype); xsSet(xsVar(1), xsID("name"), xsString(service->name)); xsSet(xsVar(1), xsID("type"), xsString(service->type)); if (service->host) xsSet(xsVar(1), xsID("host"), xsString(service->host)); if (service->ip) { xsSet(xsVar(1), xsID("ip"), xsString(service->ip)); xsSet(xsVar(1), xsID("port"), xsInteger(service->port)); } if (service->txt) { char* txt = service->txt; UInt32 position = 0, size = FskStrLen(txt); UInt32 length = 0; xsVar(2) = xsNewInstanceOf(xsObjectPrototype); xsSet(xsVar(1), xsID("txt"), xsVar(2)); length = txt[position++] & 0xFF; while ((position + length) <= size) { char end; char* equal; if (!length) break; end = txt[position + length]; txt[position + length] = 0; equal = FskStrChr(txt + position, '='); if (equal) { *equal = 0; xsSet(xsVar(2), xsID(txt + position), xsString(equal + 1)); *equal = '='; } txt[position + length] = end; position += length; length = txt[position++] & 0xFF; } } if (xsFindResult(xsVar(0), xsID(function))) { (void)xsCallFunction1(xsResult, xsVar(0), xsVar(1)); } } xsCatch { } }bail: xsEndHostSandboxCode();}
开发者ID:kouis3940,项目名称:kinomajs,代码行数:51,
示例7: xs_gpio_get_directionvoid xs_gpio_get_direction(xsMachine* the){ FskGPIO gpio = xsGetHostData(xsThis); if (gpio) { GPIOdirection direction; FskGPIOPlatformGetDirection(gpio, &direction); if (in == direction) xsResult = xsString("in"); //@@ input - to match constructor else if (out == direction) xsResult = xsString("out"); //@@ output - to match constructor else xsResult = xsString("undefined"); }}
开发者ID:kouis3940,项目名称:kinomajs,代码行数:14,
示例8: kpr2jsGetPlatformvoid kpr2jsGetPlatform(xsMachine* the){#if mxWindows xsResult = xsString("Windows");#elif mxMacOSX xsResult = xsString("MacOSX");#elif mxLinux xsResult = xsString("Linux");#elif mxSolaris xsResult = xsString("Solaris");#else#pragma error("need a platform")#endif}
开发者ID:dadongdong,项目名称:kinomajs,代码行数:14,
示例9: xsToolReadStringvoid xsToolReadString(xsMachine* the){ char* aPath; FILE* aFile; size_t aSize; char *aBuffer; aPath = xsToString(xsArg(0));#if mxWindows { char* aSlash; aSlash = aPath; while (*aSlash) { if (*aSlash == '/') *aSlash = '//'; aSlash++; } }#endif aFile = fopen(aPath, "rb"); if (aFile) { fseek(aFile, 0, SEEK_END); aSize = ftell(aFile); fseek(aFile, 0, SEEK_SET); aBuffer = malloc(aSize + 1); if (aBuffer) { aSize = fread(aBuffer, 1, aSize, aFile); aBuffer[aSize] = 0; xsResult = xsString(aBuffer); free(aBuffer); } fclose(aFile); }}
开发者ID:dadongdong,项目名称:kinomajs,代码行数:34,
示例10: xsToolGetEnvironmentValuevoid xsToolGetEnvironmentValue(xsMachine* the){ char* aName = xsToString(xsArg(0)); char* aValue = getenv(aName); if (aValue) xsResult = xsString(aValue);}
开发者ID:dadongdong,项目名称:kinomajs,代码行数:7,
示例11: KprDebugMachineLoadViewvoid KprDebugMachineLoadView(KprDebugMachine self, int theView, char* thePath, int theLine){ FskErr err = kFskErrNone; KprDebug debug = self->debug; xsMachine* the = debug->the;// FskFileInfo info;// FskFileMapping map = NULL;// FskDebugStr("%s: %d - %s:%d", __FUNCTION__, theView, thePath, theLine); if (xsTypeOf(debug->behavior) == xsUndefinedType) goto bail; xsVar(0) = xsAccess(debug->behavior); if (xsFindResult(xsVar(0), xsID("onMachineFileChanged"))) { (void)xsCallFunction5(xsResult, xsVar(0), xsString(self->address), xsInteger(theView), xsNull, thePath ? xsString(thePath) : xsNull, xsInteger(theLine)); }// if (kFskErrNone == FskFileGetFileInfo(thePath, &info) && (kFskDirectoryItemIsFile == info.filetype)) {// unsigned char *data;// FskInt64 size;// BAIL_IF_ERR(err = FskFileMap(thePath, &data, &size, 0, &map));// xsVar(0) = xsAccess(debug->behavior);// // if (xsFindResult(xsVar(0), xsID("onMachineFileChanged"))) {// (void)xsCallFunction5(xsResult, xsVar(0), xsString(self->address), xsInteger(theView), xsNull, xsString(thePath), xsInteger(theLine));// }// }bail:// FskFileDisposeMap(map); xsThrowIfFskErr(err);}
开发者ID:dadongdong,项目名称:kinomajs,代码行数:28,
示例12: KPR_host_get_idvoid KPR_host_get_id(xsMachine* the){ KprContainer self = xsGetHostData(xsThis); KprApplication application = (KprApplication)self->first; if (application->id) xsResult = xsString(application->id);}
开发者ID:giapdangle,项目名称:kinomajs,代码行数:7,
示例13: KPR_Message_URIvoid KPR_Message_URI(xsMachine* the){ char* url = NULL; xsThrowIfFskErr(KprMessageURL(xsGetContext(the), xsToString(xsArg(0)), &url)); xsResult = xsString(url); FskMemPtrDispose(url);}
开发者ID:basuke,项目名称:kinomajs,代码行数:7,
示例14: KPR_message_get_methodvoid KPR_message_get_method(xsMachine *the){ KprMessage self = xsGetHostData(xsThis); xsStringValue method = KprMessageGetMethod(self); if (method) xsResult = xsString(method);}
开发者ID:basuke,项目名称:kinomajs,代码行数:7,
示例15: KprDebugMachineDataReadervoid KprDebugMachineDataReader(FskThreadDataHandler handler UNUSED, FskThreadDataSource source UNUSED, void *refCon){ FskErr err = kFskErrNone; KprDebugMachine self = refCon; KprDebug debug = self->debug; int size; err = FskNetSocketRecvTCP(self->socket, self->buffer, XS_BUFFER_COUNT, &size); if (size > 0) { xsBeginHostSandboxCode(debug->the, debug->code); xsVars(4); KprDebugMachineParse(self, self->buffer, size); if (self->done) { self->state = XS_HEADER_STATE; self->dataIndex = 0; if (self->broken) { xsCall0(xsGet(xsGlobal, xsID_KPR), xsID_gotoFront); } else { xsCall1(debug->slot, xsID_go, xsString(self->address)); KprDebugMachineCallback(self, "gone"); } } xsEndHostSandboxCode(); } if (err) { KprDebugMachineDispose(self); }}
开发者ID:dadongdong,项目名称:kinomajs,代码行数:30,
示例16: KPR_message_getResponseHeadervoid KPR_message_getResponseHeader(xsMachine* the){ KprMessage self = kprGetHostData(xsThis, this, message); xsStringValue result = KprMessageGetResponseHeader(self, xsToString(xsArg(0))); if (result) xsResult = xsString(result);}
开发者ID:basuke,项目名称:kinomajs,代码行数:7,
示例17: KPR_system_saveFilevoid KPR_system_saveFile(xsMachine* the){ FskErr err; xsIntegerValue argc = xsToInteger(xsArgc); xsStringValue name = NULL; xsStringValue prompt = NULL; xsStringValue initialPath = NULL; xsStringValue path = NULL; xsStringValue url = NULL; if ((argc > 0) && xsTest(xsArg(0))) { if (xsFindResult(xsArg(0), xsID_name)) name = xsToStringCopy(xsResult); if (xsFindResult(xsArg(0), xsID_prompt)) prompt = xsToStringCopy(xsResult); if (xsFindResult(xsArg(0), xsID_url)) KprURLToPath(xsToString(xsResult), &initialPath); } err = FskFileChooseSave(name, prompt, initialPath, &path); if ((kFskErrNone == err) && (NULL != path)) { KprPathToURL(path, &url); (void)xsCallFunction1(xsArg(1), xsNull, xsString(url)); } FskMemPtrDispose(url); FskMemPtrDispose(path); FskMemPtrDispose(initialPath); FskMemPtrDispose(prompt); FskMemPtrDispose(name);}
开发者ID:basuke,项目名称:kinomajs,代码行数:28,
示例18: KPR_canvasRenderingContext2D_get_enumstatic void KPR_canvasRenderingContext2D_get_enum(xsMachine *the, UInt32 (*getter)(FskConstCanvas2dContext), xsStringValue* array, UInt32 start, UInt32 stop){ FskCanvas2dContext ctx = xsGetHostData(xsThis); UInt32 value = (*getter)(ctx); if ((start <= value) && (value <= stop)) xsResult = xsString(array[value - start]);}
开发者ID:afrog33k,项目名称:kinomajs,代码行数:7,
示例19: KPR_canvasRenderingContext2D_pickHitRegionvoid KPR_canvasRenderingContext2D_pickHitRegion(xsMachine *the){ FskCanvas2dContext ctx = xsGetHostData(xsThis); xsNumberValue x = xsToNumber(xsArg(0)), y = xsToNumber(xsArg(1)); const char *id = NULL, *control = NULL; if (kFskErrNone == FskCanvas2dPickHitRegion(ctx, x, y, &id, &control)) { xsResult = xsNewInstanceOf(xsObjectPrototype); if (id) xsNewHostProperty(xsResult, xsID("id"), xsString((char*)id), xsDefault, xsDontScript); // TODO: Would we send a mouse event to the id? if (control) xsNewHostProperty(xsResult, xsID("control"), xsString((char*)control), xsDefault, xsDontScript); // TODO: We should call the control directly. } else { // How do we indicate failure? xsResult = NULL; }}
开发者ID:afrog33k,项目名称:kinomajs,代码行数:17,
示例20: process_execArgvvoid process_execArgv(xsMachine* the){ int i; xsResult = xsNewInstanceOf(xsArrayPrototype); for (i = gargi; i < gargc; i++) { xsSetAt(xsResult, xsInteger(i - gargi), xsString(gargv[i])); }}
开发者ID:basuke,项目名称:kinomajs,代码行数:8,
示例21: KPR_mergeURIvoid KPR_mergeURI(xsMachine *the){ xsStringValue base = xsToString(xsArg(0)); xsStringValue url = xsToString(xsArg(1)); xsStringValue target; xsThrowIfFskErr(KprURLMerge(base, url, &target)); xsResult = xsString(target); FskMemPtrDispose(target);}
开发者ID:giapdangle,项目名称:kinomajs,代码行数:9,
示例22: KPR_debug_get_machinesvoid KPR_debug_get_machines(xsMachine *the){ KprDebug self = xsGetHostData(xsThis); KprDebugMachine machine = NULL; xsEnterSandbox(); xsVars(1); { xsResult = xsNewInstanceOf(xsArrayPrototype); for (machine = self->machine; machine; machine = machine->next) { xsVar(0) = xsNewInstanceOf(xsObjectPrototype); xsNewHostProperty(xsVar(0), xsID("address"), xsString(machine->address), xsDefault, xsDontScript); if (machine->title) xsNewHostProperty(xsVar(0), xsID("title"), xsString(machine->title), xsDefault, xsDontScript); xsCall1(xsResult, xsID_push, xsVar(0)); } } xsLeaveSandbox();}
开发者ID:dadongdong,项目名称:kinomajs,代码行数:18,
示例23: xsToolGetIPAddressvoid xsToolGetIPAddress(xsMachine* the){ char hostname[128]; struct hostent *he; gethostname(hostname, sizeof(hostname)); he = gethostbyname(hostname); if (he) xsResult = xsString(inet_ntoa(*(struct in_addr*)he->h_addr));}
开发者ID:dadongdong,项目名称:kinomajs,代码行数:9,
示例24: xsToolReplacePathvoid xsToolReplacePath(xsMachine* the){ char* aName = xsToString(xsArg(1)); char* aValue = getenv(aName); if (aValue) xsResult = xsString(aValue); else xsResult = xsArg(1);}
开发者ID:dadongdong,项目名称:kinomajs,代码行数:9,
示例25: fxParsevoid fxParse(xsMachine* the, void* theStream, xsGetter theGetter, xsStringValue thePath, xsIntegerValue theLine, xsFlag theFlag){ xsStreamGetter streamGetter; xsSlot* stack = the->stack; xsIntegerValue c = xsToInteger(stack[0]); stack[c] = xsGet(xsGet(xsGlobal, xsID("xs")), xsID("infoset")); stack[c - 1] = xsNewHostObject(NULL); streamGetter.stream = theStream; streamGetter.getter = theGetter; xsSetHostData(stack[c - 1], &streamGetter); if (thePath && theLine) stack[c - 2] = xsCall3(stack[c], xsID("scan"), stack[c - 1], xsString(thePath), xsInteger(theLine)); else if (thePath) stack[c - 2] = xsCall2(stack[c], xsID("scan"), stack[c - 1], xsString(thePath)); else stack[c - 2] = xsCall1(stack[c], xsID("scan"), stack[c - 1]); stack[c] = xsCall2(stack[c], xsID("parse"), stack[c - 2], xsInteger(theFlag)); the->stack = stack + c;}
开发者ID:basuke,项目名称:kinomajs,代码行数:19,
示例26: KPR_system_getenvvoid KPR_system_getenv(xsMachine *the){ xsIntegerValue c = xsToInteger(xsArgc); if ((c >= 1) && (xsTypeOf(xsArg(0)) == xsStringType)) { char* variable = xsToString(xsArg(0)); char* value = getenv(variable); if (value) xsResult = xsString(value); }}
开发者ID:dadongdong,项目名称:kinomajs,代码行数:10,
示例27: KPR_application_get_divoid KPR_application_get_di(xsMachine* the){ KprApplication self = xsGetHostData(xsThis); if (self->id) { char* di; xsThrowIfFskErr(KprAuthorityReverse(self->id, &di)); xsResult = xsString(di); FskMemPtrDispose(di); }}
开发者ID:giapdangle,项目名称:kinomajs,代码行数:10,
示例28: FskSSLLoadCertsFskErrFskSSLLoadCerts(void *a, FskSocketCertificateRecord *cert){ FskSSL *fssl = a; FskErr err = kFskErrNone; xsBeginHost(fssl->vm->the); xsTry { xsVars(2); xsVar(0) = xsUndefined; xsVar(1) = xsUndefined; if (cert != NULL) { if (cert->certificates != NULL && cert->certificatesSize > 0) { xsVar(0) = xsNew1(xsGlobal, xsID("Chunk"), xsInteger(cert->certificatesSize)); FskMemCopy(xsGetHostData(xsVar(0)), cert->certificates, cert->certificatesSize); } if (cert->policies != NULL) { if (cert->certificates == NULL) xsVar(0) = xsNew0(xsGlobal, xsID("Chunk")); // create a null chunk just for setting the polices xsSet(xsVar(0), xsID("policies"), xsString(cert->policies)); } if (cert->hostname != NULL) { xsSet(fssl->socket, xsID("hostname"), xsString(cert->hostname)); // too easy but should work... } if (cert->key != NULL && cert->keySize > 0) { xsVar(1) = xsNew1(xsGlobal, xsID("Chunk"), xsInteger(cert->keySize)); FskMemCopy(xsGetHostData(xsVar(1)), cert->key, cert->keySize); } } xsCall2_noResult(fssl->ssl, xsID("loadCerts"), xsVar(0), xsVar(1)); } xsCatch { if (xsHas(xsException, xsID("code"))) err = xsToInteger(xsGet(xsException, xsID("code"))); if (err == kFskErrNone) err = kFskErrOperationFailed; } xsEndHost(fssl->vm->the); return err;}
开发者ID:afrog33k,项目名称:kinomajs,代码行数:42,
示例29: xsToolResolvePathvoid xsToolResolvePath(xsMachine* the){#if mxWindows char* srcPath; char* aSlash; char aPath[1024]; DWORD attributes; int aResult = 0; srcPath = xsToString(xsArg(0)); aSlash = srcPath; while (*aSlash) { if (*aSlash == '/') *aSlash = '//'; aSlash++; } if (_fullpath(aPath, srcPath, 1024) != NULL) { attributes = GetFileAttributes(aPath); if (attributes != 0xFFFFFFFF) { if (xsToInteger(xsArgc) == 1) aResult = 1; else if (xsToBoolean(xsArg(1))) aResult = (attributes & FILE_ATTRIBUTE_DIRECTORY) ? 1 : 0; else aResult = (attributes & FILE_ATTRIBUTE_DIRECTORY) ? 0 : 1; } }#else char* srcPath; char aPath[PATH_MAX]; struct stat a_stat; int aResult = 0; srcPath = xsToString(xsArg(0)); if (realpath(srcPath, aPath) != NULL) { if (stat(aPath, &a_stat) == 0) { if (xsToInteger(xsArgc) == 1) aResult = 1; else if (xsToBoolean(xsArg(1))) aResult = S_ISDIR(a_stat.st_mode) ? 1 : 0; else aResult = S_ISREG(a_stat.st_mode) ? 1 : 0; } }#endif if (aResult) { if (xsToBoolean(xsArg(1))) { aResult = strlen(aPath) - 1; if (aPath[aResult] == mxSeparator) aPath[aResult] = 0; } xsResult = xsString(aPath); }}
开发者ID:dadongdong,项目名称:kinomajs,代码行数:54,
示例30: KPR_system_alertvoid KPR_system_alert(xsMachine* the){ int argc = xsToInteger(xsArgc); MSGBOXPARAMSW params; xsStringValue string; xsIntegerValue result; xsVars(1); params.cbSize = sizeof(params); params.hwndOwner = NULL; params.hInstance = FskMainGetHInstance(); params.lpszText = NULL; params.lpszCaption = xsStringToWideString("Kinoma Code"); params.dwStyle = MB_ICONSTOP; params.dwContextHelpId = 0; params.lpfnMsgBoxCallback = NULL; params.dwLanguageId = MAKELANGID(LANG_NEUTRAL, SUBLANG_DEFAULT); if ((argc > 0) && xsTest(xsArg(0))) { if (xsFindString(xsArg(0), xsID_type, &string)) { if (!FskStrCompare(string, "about")) params.dwStyle = MB_ICONINFORMATION; else if (!FskStrCompare(string, "stop")) params.dwStyle = MB_ICONSTOP; else if (!FskStrCompare(string, "note")) params.dwStyle = MB_ICONEXCLAMATION; } if (xsFindResult(xsArg(0), xsID_prompt)) { xsVar(0) = xsResult; } if (xsFindResult(xsArg(0), xsID_info)) { xsVar(0) = xsCall1(xsVar(0), xsID("concat"), xsString("/n/n")); xsVar(0) = xsCall1(xsVar(0), xsID("concat"), xsResult); } params.lpszText = xsStringToWideString(xsToString(xsVar(0))); if (xsFindResult(xsArg(0), xsID_buttons)) { if (xsIsInstanceOf(xsResult, xsArrayPrototype)) { xsIntegerValue c = xsToInteger(xsGet(xsResult, xsID_length)); if (c == 3) params.dwStyle |= MB_YESNOCANCEL; else if (c == 2) params.dwStyle |= MB_OKCANCEL; else params.dwStyle |= MB_OK; } } } result = MessageBoxIndirectW(¶ms); if (params.lpszText) CoTaskMemFree((LPVOID *)params.lpszText); if (params.lpszCaption) CoTaskMemFree((LPVOID *)params.lpszCaption); if ((argc > 1) && xsTest(xsArg(1))) (void)xsCallFunction1(xsArg(1), xsNull, ((result == IDYES) || (result == IDOK)) ? xsTrue : (result == IDNO) ? xsFalse : xsUndefined);}
开发者ID:basuke,项目名称:kinomajs,代码行数:53,
注:本文中的xsString函数示例整理自Github/MSDocs等源码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。 C++ xsToString函数代码示例 C++ xsID函数代码示例 |