⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 tcltest.c

📁 linux系统下的音频通信
💻 C
📖 第 1 页 / 共 5 页
字号:
	    resultPtr->type = TCL_DOUBLE;	    resultPtr->doubleValue = ((d0 > d1)? d0 : d1);	} else {	    Tcl_SetResult(interp, "T2: wrong type for arg 2", TCL_STATIC);	    result = TCL_ERROR;	}    } else {	Tcl_SetResult(interp, "T2: wrong type for arg 1", TCL_STATIC);	result = TCL_ERROR;    }    return result;}/* *---------------------------------------------------------------------- * * CleanupTestSetassocdataTests -- * *	This function is called when an interpreter is deleted to clean *	up any data left over from running the testsetassocdata command. * * Results: *	None. * * Side effects: *	Releases storage. * *---------------------------------------------------------------------- */	/* ARGSUSED */static voidCleanupTestSetassocdataTests(clientData, interp)    ClientData clientData;		/* Data to be released. */    Tcl_Interp *interp;			/* Interpreter being deleted. */{    ckfree((char *) clientData);}/* *---------------------------------------------------------------------- * * TestsetassocdataCmd -- * *	This procedure implements the "testsetassocdata" command. It is used *	to test Tcl_SetAssocData. * * Results: *	A standard Tcl result. * * Side effects: *	Modifies or creates an association between a key and associated *	data for this interpreter. * *---------------------------------------------------------------------- */static intTestsetassocdataCmd(clientData, interp, argc, argv)    ClientData clientData;		/* Not used. */    Tcl_Interp *interp;			/* Current interpreter. */    int argc;				/* Number of arguments. */    char **argv;			/* Argument strings. */{    char *buf;    char *oldData;    Tcl_InterpDeleteProc *procPtr;        if (argc != 3) {        Tcl_AppendResult(interp, "wrong # arguments: should be \"", argv[0],                " data_key data_item\"", (char *) NULL);        return TCL_ERROR;    }    buf = ckalloc((unsigned) strlen(argv[2]) + 1);    strcpy(buf, argv[2]);    /*     * If we previously associated a malloced value with the variable,     * free it before associating a new value.     */    oldData = (char *) Tcl_GetAssocData(interp, argv[1], &procPtr);    if ((oldData != NULL) && (procPtr == CleanupTestSetassocdataTests)) {	ckfree(oldData);    }        Tcl_SetAssocData(interp, argv[1], CleanupTestSetassocdataTests, 	(ClientData) buf);    return TCL_OK;}/* *---------------------------------------------------------------------- * * TestsetplatformCmd -- * *	This procedure implements the "testsetplatform" command. It is *	used to change the tclPlatform global variable so all file *	name conversions can be tested on a single platform. * * Results: *	A standard Tcl result. * * Side effects: *	Sets the tclPlatform global variable. * *---------------------------------------------------------------------- */static intTestsetplatformCmd(clientData, interp, argc, argv)    ClientData clientData;		/* Not used. */    Tcl_Interp *interp;			/* Current interpreter. */    int argc;				/* Number of arguments. */    char **argv;			/* Argument strings. */{    size_t length;    TclPlatformType *platform;#ifdef __WIN32__    platform = TclWinGetPlatform();#else    platform = &tclPlatform;#endif        if (argc != 2) {        Tcl_AppendResult(interp, "wrong # arguments: should be \"", argv[0],                " platform\"", (char *) NULL);        return TCL_ERROR;    }    length = strlen(argv[1]);    if (strncmp(argv[1], "unix", length) == 0) {	*platform = TCL_PLATFORM_UNIX;    } else if (strncmp(argv[1], "mac", length) == 0) {	*platform = TCL_PLATFORM_MAC;    } else if (strncmp(argv[1], "windows", length) == 0) {	*platform = TCL_PLATFORM_WINDOWS;    } else {        Tcl_AppendResult(interp, "unsupported platform: should be one of ",		"unix, mac, or windows", (char *) NULL);	return TCL_ERROR;    }    return TCL_OK;}/* *---------------------------------------------------------------------- * * TestsetrecursionlimitCmd -- * *	This procedure implements the "testsetrecursionlimit" command. It is *	used to change the interp recursion limit (to test the effects *      of Tcl_SetRecursionLimit). * * Results: *	A standard Tcl result. * * Side effects: *	Sets the interp's recursion limit. * *---------------------------------------------------------------------- */static intTestsetrecursionlimitCmd(dummy, interp, objc, objv)    ClientData dummy;		/* Not used. */    Tcl_Interp *interp;		/* Current interpreter. */    int objc;			/* Number of arguments. */    Tcl_Obj *CONST objv[];	/* The argument objects. */{    int     value;    if (objc != 2) {    	Tcl_WrongNumArgs(interp, 1, objv, "integer");	return TCL_ERROR;    }    if (Tcl_GetIntFromObj(interp, objv[1], &value) != TCL_OK) {	return TCL_ERROR;    }    value = Tcl_SetRecursionLimit(interp, value);    Tcl_SetIntObj(Tcl_GetObjResult(interp), value);    return TCL_OK;}/* *---------------------------------------------------------------------- * * TeststaticpkgCmd -- * *	This procedure implements the "teststaticpkg" command. *	It is used to test the procedure Tcl_StaticPackage. * * Results: *	A standard Tcl result. * * Side effects: *	When the packge given by argv[1] is loaded into an interpeter, *	variable "x" in that interpreter is set to "loaded". * *---------------------------------------------------------------------- */static intTeststaticpkgCmd(dummy, interp, argc, argv)    ClientData dummy;			/* Not used. */    Tcl_Interp *interp;			/* Current interpreter. */    int argc;				/* Number of arguments. */    char **argv;			/* Argument strings. */{    int safe, loaded;    if (argc != 4) {	Tcl_AppendResult(interp, "wrong # arguments: should be \"",		argv[0], " pkgName safe loaded\"", (char *) NULL);	return TCL_ERROR;    }    if (Tcl_GetInt(interp, argv[2], &safe) != TCL_OK) {	return TCL_ERROR;    }    if (Tcl_GetInt(interp, argv[3], &loaded) != TCL_OK) {	return TCL_ERROR;    }    Tcl_StaticPackage((loaded) ? interp : NULL, argv[1], StaticInitProc,	    (safe) ? StaticInitProc : NULL);    return TCL_OK;}static intStaticInitProc(interp)    Tcl_Interp *interp;			/* Interpreter in which package					 * is supposedly being loaded. */{    Tcl_SetVar(interp, "x", "loaded", TCL_GLOBAL_ONLY);    return TCL_OK;}/* *---------------------------------------------------------------------- * * TesttranslatefilenameCmd -- * *	This procedure implements the "testtranslatefilename" command. *	It is used to test the Tcl_TranslateFileName command. * * Results: *	A standard Tcl result. * * Side effects: *	None. * *---------------------------------------------------------------------- */static intTesttranslatefilenameCmd(dummy, interp, argc, argv)    ClientData dummy;			/* Not used. */    Tcl_Interp *interp;			/* Current interpreter. */    int argc;				/* Number of arguments. */    char **argv;			/* Argument strings. */{    Tcl_DString buffer;    char *result;    if (argc != 2) {	Tcl_AppendResult(interp, "wrong # arguments: should be \"",		argv[0], " path\"", (char *) NULL);	return TCL_ERROR;    }    result = Tcl_TranslateFileName(interp, argv[1], &buffer);    if (result == NULL) {	return TCL_ERROR;    }    Tcl_AppendResult(interp, result, NULL);    Tcl_DStringFree(&buffer);    return TCL_OK;}/* *---------------------------------------------------------------------- * * TestupvarCmd -- * *	This procedure implements the "testupvar2" command.  It is used *	to test Tcl_UpVar and Tcl_UpVar2. * * Results: *	A standard Tcl result. * * Side effects: *	Creates or modifies an "upvar" reference. * *---------------------------------------------------------------------- */	/* ARGSUSED */static intTestupvarCmd(dummy, interp, argc, argv)    ClientData dummy;			/* Not used. */    Tcl_Interp *interp;			/* Current interpreter. */    int argc;				/* Number of arguments. */    char **argv;			/* Argument strings. */{    int flags = 0;        if ((argc != 5) && (argc != 6)) {	Tcl_AppendResult(interp, "wrong # arguments: should be \"",		argv[0], " level name ?name2? dest global\"", (char *) NULL);	return TCL_ERROR;    }    if (argc == 5) {	if (strcmp(argv[4], "global") == 0) {	    flags = TCL_GLOBAL_ONLY;	} else if (strcmp(argv[4], "namespace") == 0) {	    flags = TCL_NAMESPACE_ONLY;	}	return Tcl_UpVar(interp, argv[1], argv[2], argv[3], flags);    } else {	if (strcmp(argv[5], "global") == 0) {	    flags = TCL_GLOBAL_ONLY;	} else if (strcmp(argv[5], "namespace") == 0) {	    flags = TCL_NAMESPACE_ONLY;	}	return Tcl_UpVar2(interp, argv[1], argv[2], 		(argv[3][0] == 0) ? (char *) NULL : argv[3], argv[4],		flags);    }}/* *---------------------------------------------------------------------- * * TestwordendCmd -- * *	This procedure implements the "testwordend" command.  It is used *	to test TclWordEnd. * * Results: *	A standard Tcl result. * * Side effects: *	None. * *---------------------------------------------------------------------- */	/* ARGSUSED */static intTestwordendObjCmd(dummy, interp, objc, objv)    ClientData dummy;		/* Not used. */    Tcl_Interp *interp;		/* Current interpreter. */    int objc;			/* Number of arguments. */    Tcl_Obj *CONST objv[];	/* The argument objects. */{    Tcl_Obj *objPtr;    char *string, *end;    int length;    if (objc != 2) {    	Tcl_WrongNumArgs(interp, 1, objv, "string");	return TCL_ERROR;    }    objPtr = Tcl_GetObjResult(interp);    string = Tcl_GetStringFromObj(objv[1], &length);    end = TclWordEnd(string, string+length, 0, NULL);    Tcl_AppendToObj(objPtr, end, length - (end - string));    return TCL_OK;}/* *---------------------------------------------------------------------- * * TestsetobjerrorcodeCmd -- * *	This procedure implements the "testsetobjerrorcodeCmd". *	This tests up to five elements passed to the *	Tcl_SetObjErrorCode command. * * Results: *	A standard Tcl result. Always returns TCL_ERROR so that *	the error code can be tested. * * Side effects: *	None. * *---------------------------------------------------------------------- */	/* ARGSUSED */static intTestsetobjerrorcodeCmd(dummy, interp, objc, objv)    ClientData dummy;		/* Not used. */    Tcl_Interp *interp;		/* Current interpreter. */    int objc;			/* Number of arguments. */    Tcl_Obj *CONST objv[];	/* The argument objects. */{    Tcl_Obj *listObjPtr;    if (objc > 1) {	listObjPtr = Tcl_ConcatObj(objc - 1, objv + 1);    } else {	listObjPtr = Tcl_NewObj();    }    Tcl_IncrRefCount(listObjPtr);    Tcl_SetObjErrorCode(interp, listObjPtr);    Tcl_DecrRefCount(listObjPtr);    return TCL_ERROR;}/* *---------------------------------------------------------------------- * * TestfeventCmd -- * *	This procedure implements the "testfevent" command.  It is *	used for testing the "fileevent" command. * * Results: *	A standard Tcl result. * * Side effects: *	Creates and deletes interpreters. * *---------------------------------------------------------------------- */	

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -