diff options
Diffstat (limited to 'generic/tclTestProcBodyObj.c')
| -rw-r--r-- | generic/tclTestProcBodyObj.c | 131 | 
1 files changed, 65 insertions, 66 deletions
| diff --git a/generic/tclTestProcBodyObj.c b/generic/tclTestProcBodyObj.c index e3f12a1..4d32c5a 100644 --- a/generic/tclTestProcBodyObj.c +++ b/generic/tclTestProcBodyObj.c @@ -9,33 +9,33 @@   *   * See the file "license.terms" for information on usage and redistribution of   * this file, and for a DISCLAIMER OF ALL WARRANTIES. - * - * RCS: @(#) $Id: tclTestProcBodyObj.c,v 1.4 2005/11/02 15:59:49 dkf Exp $   */ +#ifndef USE_TCL_STUBS +#   define USE_TCL_STUBS +#endif  #include "tclInt.h"  /*   * name and version of this package   */ -static char packageName[] = "procbodytest"; -static char packageVersion[] = "1.0"; +static const char packageName[] = "procbodytest"; +static const char packageVersion[] = "1.0";  /*   * Name of the commands exported by this package   */ -static char procCommand[] = "proc"; +static const char procCommand[] = "proc";  /*   * this struct describes an entry in the table of command names and command   * procs   */ -typedef struct CmdTable -{ -    char *cmdName;		/* command name */ +typedef struct CmdTable { +    const char *cmdName;		/* command name */      Tcl_ObjCmdProc *proc;	/* command proc */      int exportIt;		/* if 1, export the command */  } CmdTable; @@ -45,24 +45,22 @@ typedef struct CmdTable   */  static int	ProcBodyTestProcObjCmd(ClientData dummy, -			Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]); +			Tcl_Interp *interp, int objc, Tcl_Obj *const objv[]);  static int	ProcBodyTestInitInternal(Tcl_Interp *interp, int isSafe);  static int	RegisterCommand(Tcl_Interp* interp, -			char *namespace, CONST CmdTable *cmdTablePtr); -int             Procbodytest_Init(Tcl_Interp * interp); -int             Procbodytest_SafeInit(Tcl_Interp * interp); +			const char *namespace, const CmdTable *cmdTablePtr);  /*   * List of commands to create when the package is loaded; must go after the   * declarations of the enable command procedure.   */ -static CONST CmdTable commands[] = { +static const CmdTable commands[] = {      { procCommand,	ProcBodyTestProcObjCmd,	1 },      { 0, 0, 0 }  }; -static CONST CmdTable safeCommands[] = { +static const CmdTable safeCommands[] = {      { procCommand,	ProcBodyTestProcObjCmd,	1 },      { 0, 0, 0 }  }; @@ -72,21 +70,21 @@ static CONST CmdTable safeCommands[] = {   *   * Procbodytest_Init --   * - *  This function initializes the "procbodytest" package. + *	This function initializes the "procbodytest" package.   *   * Results: - *  A standard Tcl result. + *	A standard Tcl result.   *   * Side effects: - *  None. + *	None.   *   *----------------------------------------------------------------------   */  int -Procbodytest_Init(interp) -    Tcl_Interp *interp;		/* the Tcl interpreter for which the package -                                 * is initialized */ +Procbodytest_Init( +    Tcl_Interp *interp)		/* the Tcl interpreter for which the package +				 * is initialized */  {      return ProcBodyTestInitInternal(interp, 0);  } @@ -96,21 +94,21 @@ Procbodytest_Init(interp)   *   * Procbodytest_SafeInit --   * - *  This function initializes the "procbodytest" package. + *	This function initializes the "procbodytest" package.   *   * Results: - *  A standard Tcl result. + *	A standard Tcl result.   *   * Side effects: - *  None. + *	None.   *   *----------------------------------------------------------------------   */  int -Procbodytest_SafeInit(interp) -    Tcl_Interp *interp;		/* the Tcl interpreter for which the package -                                 * is initialized */ +Procbodytest_SafeInit( +    Tcl_Interp *interp)		/* the Tcl interpreter for which the package +				 * is initialized */  {      return ProcBodyTestInitInternal(interp, 1);  } @@ -120,36 +118,38 @@ Procbodytest_SafeInit(interp)   *   * RegisterCommand --   * - *  This function registers a command in the context of the given namespace. + *	This function registers a command in the context of the given + *	namespace.   *   * Results: - *  A standard Tcl result. + *	A standard Tcl result.   *   * Side effects: - *  None. + *	None.   *   *----------------------------------------------------------------------   */ -static int RegisterCommand(interp, namespace, cmdTablePtr) -    Tcl_Interp* interp;		/* the Tcl interpreter for which the operation +static int +RegisterCommand( +    Tcl_Interp* interp,		/* the Tcl interpreter for which the operation  				 * is performed */ -    char *namespace;		/* the namespace in which the command is +    const char *namespace,		/* the namespace in which the command is  				 * registered */ -    CONST CmdTable *cmdTablePtr;/* the command to register */ +    const CmdTable *cmdTablePtr)/* the command to register */  {      char buf[128];      if (cmdTablePtr->exportIt) { -        sprintf(buf, "namespace eval %s { namespace export %s }", -                namespace, cmdTablePtr->cmdName); -        if (Tcl_Eval(interp, buf) != TCL_OK) -            return TCL_ERROR; +	sprintf(buf, "namespace eval %s { namespace export %s }", +		namespace, cmdTablePtr->cmdName); +	if (Tcl_EvalEx(interp, buf, -1, 0) != TCL_OK) { +	    return TCL_ERROR; +	}      }      sprintf(buf, "%s::%s", namespace, cmdTablePtr->cmdName);      Tcl_CreateObjCommand(interp, buf, cmdTablePtr->proc, 0, 0); -      return TCL_OK;  } @@ -171,18 +171,18 @@ static int RegisterCommand(interp, namespace, cmdTablePtr)   */  static int -ProcBodyTestInitInternal(interp, isSafe) -    Tcl_Interp *interp;		/* the Tcl interpreter for which the package -                                 * is initialized */ -    int isSafe;			/* 1 if this is a safe interpreter */ +ProcBodyTestInitInternal( +    Tcl_Interp *interp,		/* the Tcl interpreter for which the package +				 * is initialized */ +    int isSafe)			/* 1 if this is a safe interpreter */  { -    CONST CmdTable *cmdTablePtr; +    const CmdTable *cmdTablePtr;      cmdTablePtr = (isSafe) ? &safeCommands[0] : &commands[0];      for ( ; cmdTablePtr->cmdName ; cmdTablePtr++) { -        if (RegisterCommand(interp, packageName, cmdTablePtr) != TCL_OK) { -            return TCL_ERROR; -        } +	if (RegisterCommand(interp, packageName, cmdTablePtr) != TCL_OK) { +	    return TCL_ERROR; +	}      }      return Tcl_PkgProvide(interp, packageName, packageVersion); @@ -222,13 +222,13 @@ ProcBodyTestInitInternal(interp, isSafe)   */  static int -ProcBodyTestProcObjCmd (dummy, interp, objc, objv) -    ClientData dummy;		/* context; not used */ -    Tcl_Interp *interp;		/* the current interpreter */ -    int objc;			/* argument count */ -    Tcl_Obj *CONST objv[];	/* arguments */ +ProcBodyTestProcObjCmd( +    ClientData dummy,		/* context; not used */ +    Tcl_Interp *interp,		/* the current interpreter */ +    int objc,			/* argument count */ +    Tcl_Obj *const objv[])	/* arguments */  { -    char *fullName; +    const char *fullName;      Tcl_Command procCmd;      Command *cmdPtr;      Proc *procPtr = NULL; @@ -245,23 +245,23 @@ ProcBodyTestProcObjCmd (dummy, interp, objc, objv)       * Find the Command pointer to this procedure       */ -    fullName = Tcl_GetStringFromObj(objv[3], NULL); +    fullName = Tcl_GetString(objv[3]);      procCmd = Tcl_FindCommand(interp, fullName, NULL, TCL_LEAVE_ERR_MSG);      if (procCmd == NULL) { -        return TCL_ERROR; +	return TCL_ERROR;      }      cmdPtr = (Command *) procCmd;      /*       * check that this is a procedure and not a builtin command: -     * If a procedure, cmdPtr->objProc is TclObjInterpProc. +     * If a procedure, cmdPtr->objClientData is TclIsProc(cmdPtr).       */ -    if (cmdPtr->objProc != TclGetObjInterpProc()) { -        Tcl_AppendStringsToObj(Tcl_GetObjResult(interp), +    if (cmdPtr->objClientData != TclIsProc(cmdPtr)) { +	Tcl_AppendStringsToObj(Tcl_GetObjResult(interp),  		"command \"", fullName, "\" is not a Tcl procedure", NULL); -        return TCL_ERROR; +	return TCL_ERROR;      }      /* @@ -270,10 +270,9 @@ ProcBodyTestProcObjCmd (dummy, interp, objc, objv)      procPtr = (Proc *) cmdPtr->objClientData;      if (procPtr == NULL) { -        Tcl_AppendStringsToObj(Tcl_GetObjResult(interp), -		"procedure \"", fullName, -		"\" does not have a Proc struct!", NULL); -        return TCL_ERROR; +	Tcl_AppendStringsToObj(Tcl_GetObjResult(interp), "procedure \"", +		fullName, "\" does not have a Proc struct!", NULL); +	return TCL_ERROR;      }      /* @@ -282,10 +281,10 @@ ProcBodyTestProcObjCmd (dummy, interp, objc, objv)      bodyObjPtr = TclNewProcBodyObj(procPtr);      if (bodyObjPtr == NULL) { -        Tcl_AppendStringsToObj(Tcl_GetObjResult(interp), +	Tcl_AppendStringsToObj(Tcl_GetObjResult(interp),  		"failed to create a procbody object for procedure \"", -                fullName, "\"", NULL); -        return TCL_ERROR; +		fullName, "\"", NULL); +	return TCL_ERROR;      }      Tcl_IncrRefCount(bodyObjPtr); @@ -295,7 +294,7 @@ ProcBodyTestProcObjCmd (dummy, interp, objc, objv)      myobjv[3] = bodyObjPtr;      myobjv[4] = NULL; -    result = Tcl_ProcObjCmd((ClientData) NULL, interp, objc, myobjv); +    result = Tcl_ProcObjCmd(NULL, interp, objc, myobjv);      Tcl_DecrRefCount(bodyObjPtr);      return result; | 
