rem: newList = Tcl_Merge(fieldInfo.argc, fieldInfo.argv);
add: newList = Tcl_Merge(fieldInfo.argc, (CONST char**)fieldInfo.argv);
context: Tcl_SetKeyedListField(interp, fieldName, fieldValue, keyedList)    Tcl_Interp     *interp;    CONST char     *fieldName;    CONST char     *fieldValue;    CONST char     *keyedList;{    char           *nameSeparPtr;    char           *newField = NULL, *newList;    fieldInfo_t     fieldInfo;    char           *elemArgv[2];    if (fieldName[0] == '\0') {        Tcl_AppendResult(interp, "empty field name", (char *) NULL);        return NULL;    }    if (keyedList == NULL)        keyedList = "";    /*     * Check for sub-names, temporarly delimit the top name with a '\0'.     */    nameSeparPtr = strchr((char *) fieldName, '.');    if (nameSeparPtr != NULL)        *nameSeparPtr = '\0';    if (SplitAndFindField(interp, fieldName, keyedList, &fieldInfo) != TCL_OK)        goto errorExit;    /*     * Either recursively retrieve build the field value or just use the     * supplied value.     */    elemArgv[0] = (char *) fieldName;    if (nameSeparPtr != NULL) {        char            saveChar;        if (fieldInfo.valuePtr != NULL) {            saveChar = fieldInfo.valuePtr[fieldInfo.valueSize];            fieldInfo.valuePtr[fieldInfo.valueSize] = '\0';        }        elemArgv[1] = Tcl_SetKeyedListField(interp, nameSeparPtr + 1,            fieldValue, fieldInfo.valuePtr);        if (fieldInfo.valuePtr != NULL)            fieldInfo.valuePtr[fieldInfo.valueSize] = saveChar;        if (elemArgv[1] == NULL)            goto errorExit;        newField = Tcl_Merge(2, elemArgv);        ckfree(elemArgv[1]);    } else {        elemArgv[1] = (char *) fieldValue;        newField = Tcl_Merge(2, elemArgv);    }    /*     * If the field does not current exist in the keyed list, append it,     * otherwise replace it.     */    if (fieldInfo.foundIdx == -1) {        fieldInfo.foundIdx = fieldInfo.argc;        fieldInfo.argc++;    }    fieldInfo.argv[fieldInfo.foundIdx] = newField;    newList = Tcl_Merge(fieldInfo.argc, fieldInfo.argv);    if (nameSeparPtr != NULL)        *nameSeparPtr = '.';    ckfree((char *) newField);    ckfree((char *) fieldInfo.argv);    return newList;errorExit:    if (nameSeparPtr != NULL)        *nameSeparPtr = '.';    if (newField != NULL)        ckfree((char *) newField);    if (fieldInfo.argv != NULL)        ckfree((char *) fieldInfo.argv);    return NULL;}