diff options
author | treectrl <treectrl> | 2005-07-23 00:36:48 (GMT) |
---|---|---|
committer | treectrl <treectrl> | 2005-07-23 00:36:48 (GMT) |
commit | 41c0d4bcd94ef822809cf44b62f7ce4f4fe9f99a (patch) | |
tree | 9f67f62b5fc20b829f2185551bdd1a00187ddb3b | |
parent | c67b4ff5d5b830b14c292afeeb66d0ad5840f0c1 (diff) | |
download | tktreectrl-41c0d4bcd94ef822809cf44b62f7ce4f4fe9f99a.zip tktreectrl-41c0d4bcd94ef822809cf44b62f7ce4f4fe9f99a.tar.gz tktreectrl-41c0d4bcd94ef822809cf44b62f7ce4f4fe9f99a.tar.bz2 |
Eliminate "type-punned pointer" warnings from GCC.
-rw-r--r-- | generic/tkTreeColumn.c | 33 | ||||
-rw-r--r-- | generic/tkTreeItem.c | 60 | ||||
-rw-r--r-- | generic/tkTreeStyle.c | 33 |
3 files changed, 80 insertions, 46 deletions
diff --git a/generic/tkTreeColumn.c b/generic/tkTreeColumn.c index 6a79525..0508519 100644 --- a/generic/tkTreeColumn.c +++ b/generic/tkTreeColumn.c @@ -7,7 +7,7 @@ * Copyright (c) 2002-2003 Christian Krone * Copyright (c) 2003 ActiveState Corporation * - * RCS: @(#) $Id: tkTreeColumn.c,v 1.35 2005/07/15 01:26:35 treectrl Exp $ + * RCS: @(#) $Id: tkTreeColumn.c,v 1.36 2005/07/23 00:36:48 treectrl Exp $ */ #include "tkTreeCtrl.h" @@ -1803,15 +1803,17 @@ int TreeColumnCmd(ClientData clientData, Tcl_Interp *interp, int objc, case COMMAND_BBOX: { int x = 0; + TreeColumn _column; Column *column, *walk; if (objc != 4) { Tcl_WrongNumArgs(interp, 3, objv, "column"); return TCL_ERROR; } - if (TreeColumn_FromObj(tree, objv[3], (TreeColumn *) &column, + if (TreeColumn_FromObj(tree, objv[3], &_column, CFO_NOT_ALL | CFO_NOT_NULL | CFO_NOT_TAIL) != TCL_OK) return TCL_ERROR; + column = (Column *) _column; if (!tree->showHeader || !column->visible) break; /* Update layout */ @@ -1886,15 +1888,17 @@ int TreeColumnCmd(ClientData clientData, Tcl_Interp *interp, int objc, case COMMAND_CONFIGURE: { + TreeColumn _column; Column *column; if (objc < 4) { Tcl_WrongNumArgs(interp, 3, objv, "column ?option? ?value?"); return TCL_ERROR; } - if (TreeColumn_FromObj(tree, objv[3], (TreeColumn *) &column, + if (TreeColumn_FromObj(tree, objv[3], &_column, CFO_NOT_NULL) != TCL_OK) return TCL_ERROR; + column = (Column *) _column; if (objc <= 5 && (column == (Column *) COLUMN_ALL)) { FormatResult(interp, "can't specify \"all\" without an option-value pair"); return TCL_ERROR; @@ -1955,6 +1959,7 @@ int TreeColumnCmd(ClientData clientData, Tcl_Interp *interp, int objc, case COMMAND_DELETE: { int columnIndex; + TreeColumn _column; Column *column, *prev; TreeItem item; TreeItemColumn itemColumn; @@ -1965,9 +1970,10 @@ int TreeColumnCmd(ClientData clientData, Tcl_Interp *interp, int objc, Tcl_WrongNumArgs(interp, 3, objv, "column"); return TCL_ERROR; } - if (TreeColumn_FromObj(tree, objv[3], (TreeColumn *) &column, + if (TreeColumn_FromObj(tree, objv[3], &_column, CFO_NOT_NULL | CFO_NOT_TAIL) != TCL_OK) return TCL_ERROR; + column = (Column *) _column; /* T column delete "all" */ if (column == (Column *) COLUMN_ALL) { @@ -2102,15 +2108,17 @@ int TreeColumnCmd(ClientData clientData, Tcl_Interp *interp, int objc, case COMMAND_WIDTH: { + TreeColumn _column; Column *column; if (objc != 4) { Tcl_WrongNumArgs(interp, 3, objv, "column"); return TCL_ERROR; } - if (TreeColumn_FromObj(tree, objv[3], (TreeColumn *) &column, + if (TreeColumn_FromObj(tree, objv[3], &_column, CFO_NOT_ALL | CFO_NOT_NULL) != TCL_OK) return TCL_ERROR; + column = (Column *) _column; /* Update layout if needed */ (void) Tree_WidthOfColumns(tree); Tcl_SetObjResult(interp, Tcl_NewIntObj(column->useWidth)); @@ -2170,6 +2178,7 @@ int TreeColumnCmd(ClientData clientData, Tcl_Interp *interp, int objc, /* T column move C before */ case COMMAND_MOVE: { + TreeColumn _move, _before; Column *move, *before; Tcl_HashEntry *hPtr; Tcl_HashSearch search; @@ -2180,12 +2189,14 @@ int TreeColumnCmd(ClientData clientData, Tcl_Interp *interp, int objc, Tcl_WrongNumArgs(interp, 3, objv, "column before"); return TCL_ERROR; } - if (TreeColumn_FromObj(tree, objv[3], (TreeColumn *) &move, + if (TreeColumn_FromObj(tree, objv[3], &_move, CFO_NOT_ALL | CFO_NOT_NULL | CFO_NOT_TAIL) != TCL_OK) return TCL_ERROR; - if (TreeColumn_FromObj(tree, objv[4], (TreeColumn *) &before, + move = (Column *) _move; + if (TreeColumn_FromObj(tree, objv[4], &_before, CFO_NOT_ALL | CFO_NOT_NULL) != TCL_OK) return TCL_ERROR; + before = (Column *) _before; if (move == before) break; if (move->index == before->index - 1) @@ -2315,6 +2326,7 @@ int TreeColumnCmd(ClientData clientData, Tcl_Interp *interp, int objc, case COMMAND_NEEDEDWIDTH: { + TreeColumn _column; Column *column; int width; @@ -2322,9 +2334,10 @@ int TreeColumnCmd(ClientData clientData, Tcl_Interp *interp, int objc, Tcl_WrongNumArgs(interp, 3, objv, "column"); return TCL_ERROR; } - if (TreeColumn_FromObj(tree, objv[3], (TreeColumn *) &column, + if (TreeColumn_FromObj(tree, objv[3], &_column, CFO_NOT_ALL | CFO_NOT_NULL) != TCL_OK) return TCL_ERROR; + column = (Column *) _column; /* Update layout if needed */ (void) Tree_TotalWidth(tree); width = TreeColumn_WidthOfItems((TreeColumn) column); @@ -2336,6 +2349,7 @@ int TreeColumnCmd(ClientData clientData, Tcl_Interp *interp, int objc, /* T column order C ?-visible? */ case COMMAND_ORDER: { + TreeColumn _column; Column *column; int visible = FALSE; int index = 0; @@ -2355,9 +2369,10 @@ int TreeColumnCmd(ClientData clientData, Tcl_Interp *interp, int objc, return TCL_ERROR; } } - if (TreeColumn_FromObj(tree, objv[3], (TreeColumn *) &column, + if (TreeColumn_FromObj(tree, objv[3], &_column, CFO_NOT_ALL | CFO_NOT_NULL) != TCL_OK) return TCL_ERROR; + column = (Column *) _column; if (visible) { Column *walk = (Column *) tree->columns; while (walk != NULL) { diff --git a/generic/tkTreeItem.c b/generic/tkTreeItem.c index 7a26f29..4d4dbb1 100644 --- a/generic/tkTreeItem.c +++ b/generic/tkTreeItem.c @@ -5,7 +5,7 @@ * * Copyright (c) 2002-2005 Tim Baker * - * RCS: @(#) $Id: tkTreeItem.c,v 1.49 2005/07/16 18:03:41 treectrl Exp $ + * RCS: @(#) $Id: tkTreeItem.c,v 1.50 2005/07/23 00:37:42 treectrl Exp $ */ #include "tkTreeCtrl.h" @@ -2209,6 +2209,7 @@ static int ItemCreateCmd(ClientData clientData, Tcl_Interp *interp, int objc, OPT_OPEN, OPT_PARENT, OPT_PREVSIBLING, OPT_RETURNID, OPT_VISIBLE }; int index, i, count = 1, button = 0, returnId = 1, open = 1, visible = 1; int height = 0; + TreeItem _item; Item *item, *parent = NULL, *prevSibling = NULL, *nextSibling = NULL; Item *head = NULL, *tail = NULL; Tcl_Obj *listObj = NULL; @@ -2248,10 +2249,11 @@ static int ItemCreateCmd(ClientData clientData, Tcl_Interp *interp, int objc, } break; case OPT_NEXTSIBLING: - if (TreeItem_FromObj(tree, objv[i + 1], - (TreeItem *) &nextSibling, IFO_NOTROOT) != TCL_OK) { + if (TreeItem_FromObj(tree, objv[i + 1], &_item, IFO_NOTROOT) + != TCL_OK) { return TCL_ERROR; } + nextSibling = (Item *) _item; parent = prevSibling = NULL; break; case OPT_OPEN: @@ -2261,17 +2263,18 @@ static int ItemCreateCmd(ClientData clientData, Tcl_Interp *interp, int objc, } break; case OPT_PARENT: - if (TreeItem_FromObj(tree, objv[i + 1], (TreeItem *) &parent, - 0) != TCL_OK) { + if (TreeItem_FromObj(tree, objv[i + 1], &_item, 0) != TCL_OK) { return TCL_ERROR; } + parent = (Item *) _item; prevSibling = nextSibling = NULL; break; case OPT_PREVSIBLING: - if (TreeItem_FromObj(tree, objv[i + 1], - (TreeItem *) &prevSibling, IFO_NOTROOT) != TCL_OK) { + if (TreeItem_FromObj(tree, objv[i + 1], &_item, IFO_NOTROOT) + != TCL_OK) { return TCL_ERROR; } + prevSibling = (Item *) _item; parent = nextSibling = NULL; break; case OPT_RETURNID: @@ -2394,14 +2397,16 @@ static int ItemElementCmd(ClientData clientData, Tcl_Interp *interp, int objc, int index; int columnIndex; Column *column; + TreeItem _item; Item *item; if (Tcl_GetIndexFromObj(interp, objv[3], commandNames, "command", 0, &index) != TCL_OK) return TCL_ERROR; - if (TreeItem_FromObj(tree, objv[4], (TreeItem *) &item, 0) != TCL_OK) + if (TreeItem_FromObj(tree, objv[4], &_item, 0) != TCL_OK) return TCL_ERROR; + item = (Item *) _item; if (Item_FindColumnFromObj(tree, item, objv[5], &column, &columnIndex) != TCL_OK) return TCL_ERROR; @@ -2587,6 +2592,7 @@ static int ItemStyleCmd(ClientData clientData, Tcl_Interp *interp, int objc, static CONST char *commandNames[] = { "elements", "map", "set", (char *) NULL }; enum { COMMAND_ELEMENTS, COMMAND_MAP, COMMAND_SET }; int index; + TreeItem _item; Item *item; if (Tcl_GetIndexFromObj(interp, objv[3], commandNames, "command", 0, @@ -2594,9 +2600,10 @@ static int ItemStyleCmd(ClientData clientData, Tcl_Interp *interp, int objc, return TCL_ERROR; } - if (TreeItem_FromObj(tree, objv[4], (TreeItem *) &item, 0) != TCL_OK) { + if (TreeItem_FromObj(tree, objv[4], &_item, 0) != TCL_OK) { return TCL_ERROR; } + item = (Item *) _item; switch (index) { /* T item style elements I C */ @@ -3131,6 +3138,7 @@ int ItemSortCmd(ClientData clientData, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]) { TreeCtrl *tree = (TreeCtrl *) clientData; + TreeItem _item; Item *item, *first, *last, *walk, *lastChild; Column *column; int i, j, count, elemIndex, index, indexF = 0, indexL = 0; @@ -3143,8 +3151,9 @@ int ItemSortCmd(ClientData clientData, Tcl_Interp *interp, int objc, int notReally = FALSE; int result = TCL_OK; - if (TreeItem_FromObj(tree, objv[3], (TreeItem *) &item, 0) != TCL_OK) + if (TreeItem_FromObj(tree, objv[3], &_item, 0) != TCL_OK) return TCL_ERROR; + item = (Item *) _item; /* If the item has no children, then nothing is done and no error * is generated. */ @@ -3279,8 +3288,9 @@ int ItemSortCmd(ClientData clientData, Tcl_Interp *interp, int objc, break; } case OPT_FIRST: - if (TreeItem_FromObj(tree, objv[i + 1], (TreeItem *) &first, 0) != TCL_OK) + if (TreeItem_FromObj(tree, objv[i + 1], &_item, 0) != TCL_OK) return TCL_ERROR; + first = (Item *) _item; if (first->parent != item) { FormatResult(interp, "item %s%d is not a child of item %s%d", @@ -3295,8 +3305,9 @@ int ItemSortCmd(ClientData clientData, Tcl_Interp *interp, int objc, sortData.columns[sortData.count - 1].sortBy = SORT_LONG; break; case OPT_LAST: - if (TreeItem_FromObj(tree, objv[i + 1], (TreeItem *) &last, 0) != TCL_OK) + if (TreeItem_FromObj(tree, objv[i + 1], &_item, 0) != TCL_OK) return TCL_ERROR; + last = (Item *) _item; if (last->parent != item) { FormatResult(interp, "item %s%d is not a child of item %s%d", @@ -3559,6 +3570,7 @@ static int ItemStateCmd(ClientData clientData, Tcl_Interp *interp, int objc, COMMAND_FORCOLUMN, COMMAND_GET, COMMAND_SET }; int index; + TreeItem _item; Item *item; if (Tcl_GetIndexFromObj(interp, objv[3], commandNames, "command", 0, @@ -3580,9 +3592,10 @@ static int ItemStateCmd(ClientData clientData, Tcl_Interp *interp, int objc, Tcl_WrongNumArgs(interp, 5, objv, "column ?stateList?"); return TCL_ERROR; } - if (TreeItem_FromObj(tree, objv[4], (TreeItem *) &item, 0) + if (TreeItem_FromObj(tree, objv[4], &_item, 0) != TCL_OK) return TCL_ERROR; + item = (Item *) _item; if (Item_FindColumnFromObj(tree, item, objv[5], &column, &columnIndex) != TCL_OK) return TCL_ERROR; @@ -3634,8 +3647,9 @@ static int ItemStateCmd(ClientData clientData, Tcl_Interp *interp, int objc, Tcl_WrongNumArgs(interp, 5, objv, "?state?"); return TCL_ERROR; } - if (TreeItem_FromObj(tree, objv[4], (TreeItem *) &item, 0) != TCL_OK) + if (TreeItem_FromObj(tree, objv[4], &_item, 0) != TCL_OK) return TCL_ERROR; + item = (Item *) _item; if (objc == 6) { states[STATE_OP_ON] = 0; if (Tree_StateFromObj(tree, objv[5], states, NULL, @@ -4028,6 +4042,7 @@ int TreeItemCmd(ClientData clientData, Tcl_Interp *interp, int objc, }; int index; int numArgs = objc - 3; + TreeItem _item, _item2; Item *item = NULL, *item2 = NULL, *child; if (objc < 3) { @@ -4047,10 +4062,11 @@ int TreeItemCmd(ClientData clientData, Tcl_Interp *interp, int objc, } if ((numArgs >= 1) && !(argInfo[index].flags & AF_NOT_ITEM)) { - if (TreeItem_FromObj(tree, objv[3], (TreeItem *) &item, + if (TreeItem_FromObj(tree, objv[3], &_item, argInfo[index].flags & 0xFFFF) != TCL_OK) { return TCL_ERROR; } + item = (Item *) _item; if ((argInfo[index].flags & AF_PARENT) && (item->parent == NULL)) { FormatResult(interp, "item %s%d must have a parent", tree->itemPrefix, item->id); @@ -4058,10 +4074,11 @@ int TreeItemCmd(ClientData clientData, Tcl_Interp *interp, int objc, } } if ((numArgs >= 2) && !(argInfo[index].flags2 & AF_NOT_ITEM)) { - if (TreeItem_FromObj(tree, objv[4], (TreeItem *) &item2, + if (TreeItem_FromObj(tree, objv[4], &_item2, argInfo[index].flags2 & 0xFFFF) != TCL_OK) { return TCL_ERROR; } + item2 = (Item *) _item2; if ((argInfo[index].flags2 & AF_NOT_EQUAL) && (item == item2)) { FormatResult(interp, "item %s%d same as second item", tree->itemPrefix, item->id); @@ -4257,18 +4274,19 @@ int TreeItemCmd(ClientData clientData, Tcl_Interp *interp, int objc, if (Tcl_GetIndexFromObj(interp, objv[4], opName, "comparison operator", 0, &op) != TCL_OK) return TCL_ERROR; - if (TreeItem_FromObj(tree, objv[5], (TreeItem *) &item2, 0) != TCL_OK) + if (TreeItem_FromObj(tree, objv[5], &_item2, 0) != TCL_OK) return TCL_ERROR; - if (TreeItem_RootAncestor(tree, (TreeItem) item) != - TreeItem_RootAncestor(tree, (TreeItem) item2)) { + item2 = (Item *) _item2; + if (TreeItem_RootAncestor(tree, _item) != + TreeItem_RootAncestor(tree, _item2)) { FormatResult(interp, "item %s%d and item %s%d don't share a common ancestor", tree->itemPrefix, item->id, tree->itemPrefix, item2->id); return TCL_ERROR; } - TreeItem_ToIndex(tree, (TreeItem) item, &index1, NULL); - TreeItem_ToIndex(tree, (TreeItem) item2, &index2, NULL); + TreeItem_ToIndex(tree, _item, &index1, NULL); + TreeItem_ToIndex(tree, _item2, &index2, NULL); switch (op) { case 0: compare = index1 < index2; break; case 1: compare = index1 <= index2; break; diff --git a/generic/tkTreeStyle.c b/generic/tkTreeStyle.c index f731a42..2cbc32a 100644 --- a/generic/tkTreeStyle.c +++ b/generic/tkTreeStyle.c @@ -5,7 +5,7 @@ * * Copyright (c) 2002-2005 Tim Baker * - * RCS: @(#) $Id: tkTreeStyle.c,v 1.40 2005/07/15 01:35:22 treectrl Exp $ + * RCS: @(#) $Id: tkTreeStyle.c,v 1.41 2005/07/23 00:38:11 treectrl Exp $ */ #include "tkTreeCtrl.h" @@ -3586,6 +3586,7 @@ static int StyleLayoutCmd(ClientData clientData, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]) { TreeCtrl *tree = (TreeCtrl *) clientData; + TreeStyle _style; Style *style; Element *elem; ElementLink saved, *eLink; @@ -3603,8 +3604,9 @@ static int StyleLayoutCmd(ClientData clientData, Tcl_Interp *interp, int objc, return TCL_ERROR; } - if (TreeStyle_FromObj(tree, objv[3], (TreeStyle *) &style) != TCL_OK) + if (TreeStyle_FromObj(tree, objv[3], &_style) != TCL_OK) return TCL_ERROR; + style = (Style *) _style; if (Element_FromObj(tree, objv[4], &elem) != TCL_OK) return TCL_ERROR; @@ -4040,6 +4042,8 @@ int TreeStyleCmd(ClientData clientData, Tcl_Interp *interp, int objc, COMMAND_CGET, COMMAND_CONFIGURE, COMMAND_CREATE, COMMAND_DELETE, COMMAND_ELEMENTS, COMMAND_LAYOUT, COMMAND_NAMES }; int index; + TreeStyle _style; + Style *style; if (objc < 3) { @@ -4058,15 +4062,15 @@ int TreeStyleCmd(ClientData clientData, Tcl_Interp *interp, int objc, case COMMAND_CGET: { Tcl_Obj *resultObjPtr; - Style *style; if (objc != 5) { Tcl_WrongNumArgs(interp, 3, objv, "name option"); return TCL_ERROR; } - if (TreeStyle_FromObj(tree, objv[3], (TreeStyle *) &style) != TCL_OK) + if (TreeStyle_FromObj(tree, objv[3], &_style) != TCL_OK) return TCL_ERROR; + style = (Style *) _style; resultObjPtr = Tk_GetOptionValue(interp, (char *) style, style->optionTable, objv[4], tree->tkwin); if (resultObjPtr == NULL) @@ -4078,15 +4082,15 @@ int TreeStyleCmd(ClientData clientData, Tcl_Interp *interp, int objc, case COMMAND_CONFIGURE: { Tcl_Obj *resultObjPtr = NULL; - Style *style; if (objc < 4) { Tcl_WrongNumArgs(interp, 3, objv, "name ?option? ?value option value ...?"); return TCL_ERROR; } - if (TreeStyle_FromObj(tree, objv[3], (TreeStyle *) &style) != TCL_OK) + if (TreeStyle_FromObj(tree, objv[3], &_style) != TCL_OK) return TCL_ERROR; + style = (Style *) _style; if (objc <= 5) { resultObjPtr = Tk_GetOptionInfo(interp, (char *) style, @@ -4114,7 +4118,6 @@ int TreeStyleCmd(ClientData clientData, Tcl_Interp *interp, int objc, int len; Tcl_HashEntry *hPtr; int isNew; - Style *style; if (objc < 4) { @@ -4144,7 +4147,6 @@ int TreeStyleCmd(ClientData clientData, Tcl_Interp *interp, int objc, case COMMAND_DELETE: { - Style *style; int i; if (objc < 3) @@ -4154,10 +4156,10 @@ int TreeStyleCmd(ClientData clientData, Tcl_Interp *interp, int objc, } for (i = 3; i < objc; i++) { - if (TreeStyle_FromObj(tree, objv[i], (TreeStyle *) &style) != TCL_OK) + if (TreeStyle_FromObj(tree, objv[i], &_style) != TCL_OK) return TCL_ERROR; - Style_Deleted(tree, style); - TreeStyle_FreeResources(tree, (TreeStyle) style); + Style_Deleted(tree, (Style *) _style); + TreeStyle_FreeResources(tree, _style); } break; } @@ -4165,7 +4167,6 @@ int TreeStyleCmd(ClientData clientData, Tcl_Interp *interp, int objc, /* T style elements S ?{E ...}? */ case COMMAND_ELEMENTS: { - Style *style; Element *elem, **elemList = NULL; int i, j, count = 0; int staticMap[STATIC_SIZE], *map = staticMap; @@ -4177,8 +4178,9 @@ int TreeStyleCmd(ClientData clientData, Tcl_Interp *interp, int objc, Tcl_WrongNumArgs(interp, 3, objv, "name ?elementList?"); return TCL_ERROR; } - if (TreeStyle_FromObj(tree, objv[3], (TreeStyle *) &style) != TCL_OK) + if (TreeStyle_FromObj(tree, objv[3], &_style) != TCL_OK) return TCL_ERROR; + style = (Style *) _style; if (objc == 5) { if (Tcl_ListObjGetElements(interp, objv[4], &listObjc, &listObjv) != TCL_OK) @@ -4249,15 +4251,14 @@ int TreeStyleCmd(ClientData clientData, Tcl_Interp *interp, int objc, Tcl_Obj *listObj; Tcl_HashSearch search; Tcl_HashEntry *hPtr; - TreeStyle style; listObj = Tcl_NewListObj(0, NULL); hPtr = Tcl_FirstHashEntry(&tree->styleHash, &search); while (hPtr != NULL) { - style = (TreeStyle) Tcl_GetHashValue(hPtr); + _style = (TreeStyle) Tcl_GetHashValue(hPtr); Tcl_ListObjAppendElement(interp, listObj, - TreeStyle_ToObj(style)); + TreeStyle_ToObj(_style)); hPtr = Tcl_NextHashEntry(&search); } Tcl_SetObjResult(interp, listObj); |