Posted to tcl by mjanssen at Fri May 04 09:33:14 GMT 2007view pretty

/*
 *----------------------------------------------------------------------
 *
 * Tcl_ModeObjCmd --
 *
 *----------------------------------------------------------------------
 */

	/* ARGSUSED */
int
Tcl_ModeObjCmd(
    ClientData dummy,		/* Not used. */
    Tcl_Interp *interp,		/* Current interpreter. */
    int objc,			/* Number of arguments. */
    Tcl_Obj *const objv[])	/* Argument objects. */
{
    Tcl_Channel chan;		/* The channel to puts on. */
    const char *channelId; /* Name of channel for puts. */
    int mode;			/* Mode in which channel is opened. */
	    
    if (objc != 2) {
        Tcl_WrongNumArgs(interp, 1, objv, "channelId");
        return TCL_ERROR;
    }

    channelId = Tcl_GetString(objv[1]);

    chan = Tcl_GetChannel(interp, channelId, &mode);
    if (chan == (Tcl_Channel) NULL) {
        return TCL_ERROR;
    }

    if ((mode & TCL_READABLE) != 0) {
        Tcl_AppendElement(interp, "r");
    }

    if ((mode & TCL_WRITABLE) != 0) {
        Tcl_AppendElement(interp, "w");
    }

    return TCL_OK;

}