summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--generic/tkTreeItem.c299
1 files changed, 150 insertions, 149 deletions
diff --git a/generic/tkTreeItem.c b/generic/tkTreeItem.c
index e39da40..ce22ad6 100644
--- a/generic/tkTreeItem.c
+++ b/generic/tkTreeItem.c
@@ -5,7 +5,7 @@
*
* Copyright (c) 2002-2006 Tim Baker
*
- * RCS: @(#) $Id: tkTreeItem.c,v 1.72 2006/10/28 01:20:33 treectrl Exp $
+ * RCS: @(#) $Id: tkTreeItem.c,v 1.73 2006/10/29 02:33:02 treectrl Exp $
*/
#include "tkTreeCtrl.h"
@@ -59,7 +59,9 @@ static CONST char *ItemUid = "Item", *ItemColumnUid = "ItemColumn";
/*
* Macro to test whether an item is the unique root item
*/
-#define ISROOT(i) ((i)->depth == -1)
+#define IS_ROOT(i) ((i)->depth == -1)
+
+#define IS_ALL(i) (((TreeItem) i) == ITEM_ALL)
#define IS_DELETED(i) (((i)->flags & ITEM_FLAG_DELETED) != 0)
@@ -493,7 +495,7 @@ Item_UpdateIndex(TreeCtrl *tree,
if (item->parent != NULL) {
parentOpen = (item->parent->state & STATE_OPEN) != 0;
parentVis = item->parent->indexVis != -1;
- if (ISROOT(item->parent) && !tree->showRoot) {
+ if (IS_ROOT(item->parent) && !tree->showRoot) {
parentOpen = TRUE;
parentVis = item->parent->isVisible;
}
@@ -806,7 +808,7 @@ TreeItem_ChangeState(
/* This item has a button */
if (item->hasButton && tree->showButtons
- && (!ISROOT(item) || tree->showRootButton)) {
+ && (!IS_ROOT(item) || tree->showRootButton)) {
Tk_Image image1, image2;
Pixmap bitmap1, bitmap2;
@@ -1474,6 +1476,7 @@ typedef struct Qualifiers {
int states[3]; /* Item states that must be on or off. */
TagExpr expr; /* Tag expression. */
int exprOK; /* TRUE if expr is valid. */
+ int depth; /* >= 0 for depth, -1 for unspecified */
} Qualifiers;
/*
@@ -1502,6 +1505,7 @@ Qualifiers_Init(
q->visible = -1;
q->states[0] = q->states[1] = q->states[2] = 0;
q->exprOK = FALSE;
+ q->depth = -1;
}
/*
@@ -1535,14 +1539,14 @@ Qualifiers_Scan(
int qual, j = startIndex;
static CONST char *qualifiers[] = {
- "state", "tag", "visible", "!visible", NULL
+ "depth", "state", "tag", "visible", "!visible", NULL
};
enum qualEnum {
- QUAL_STATE, QUAL_TAG, QUAL_VISIBLE, QUAL_NOT_VISIBLE
+ QUAL_DEPTH, QUAL_STATE, QUAL_TAG, QUAL_VISIBLE, QUAL_NOT_VISIBLE
};
/* Number of arguments used by qualifiers[]. */
static int qualArgs[] = {
- 2, 2, 1, 1
+ 2, 2, 2, 1, 1
};
*argsUsed = 0;
@@ -1557,6 +1561,12 @@ Qualifiers_Scan(
goto errorExit;
}
switch ((enum qualEnum) qual) {
+ case QUAL_DEPTH:
+ {
+ if (Tcl_GetIntFromObj(interp, objv[j + 1], &q->depth) != TCL_OK)
+ goto errorExit;
+ break;
+ }
case QUAL_STATE:
{
if (Tree_StateFromListObj(tree, objv[j + 1], q->states,
@@ -1632,6 +1642,8 @@ Qualifies(
return 0;
if (q->exprOK && !TagExpr_Eval(&q->expr, item->tagInfo))
return 0;
+ if ((q->depth >= 0) && (item->depth + 1 != q->depth))
+ return 0;
return 1;
}
@@ -1667,7 +1679,6 @@ Qualifiers_Free(
*
* Parse a Tcl_Obj item description to get a list of items.
*
- * all
* -- returning a single item --
* "active MODIFIERS"
* "anchor MODIFIERS"
@@ -1679,10 +1690,11 @@ Qualifiers_Free(
* "rnc row col MODIFIERS"
* "ID MODIFIERS"
* -- returning multiple items --
+ * all QUALIFIERS
* list listOfItemDescs
* range QUALIFIERS
* tag tagExpr QUALIFIERS
- * "TAG QUALFIERS"
+ * "TAG-EXPR QUALFIERS"
*
* MODIFIERS:
* -- returning a single item --
@@ -1709,6 +1721,7 @@ Qualifiers_Free(
* descendants QUALIFIERS
*
* QUALIFIERS:
+ * depth integer
* state stateList
* visible
* !visible
@@ -1740,25 +1753,26 @@ TreeItemList_FromObj(
)
{
Tcl_Interp *interp = tree->interp;
- int objc;
- int index, listIndex, id;
+ int i, objc, index, listIndex, id;
Tcl_HashEntry *hPtr;
+ Tcl_HashSearch search;
Tcl_Obj **objv, *elemPtr;
Item *item = NULL;
Qualifiers q;
+ int qualArgsTotal = 0;
static CONST char *indexName[] = {
"active", "all", "anchor", "end", "first", "last", "list",
- "nearest", "range", "rnc", "root", "tag", (char *) NULL
+ "nearest", "range", "rnc", "root", (char *) NULL
};
enum indexEnum {
INDEX_ACTIVE, INDEX_ALL, INDEX_ANCHOR, INDEX_END, INDEX_FIRST,
INDEX_LAST, INDEX_LIST, INDEX_NEAREST, INDEX_RANGE, INDEX_RNC,
- INDEX_ROOT, INDEX_TAG
+ INDEX_ROOT
};
/* Number of arguments used by indexName[]. */
static int indexArgs[] = {
- 1, 1, 1, 1, 1, 1, 2, 3, 3, 3, 1, 2
+ 1, 1, 1, 1, 1, 1, 2, 3, 3, 3, 1
};
/* Boolean: can indexName[] be followed by 1 or more qualifiers. */
static int indexQual[] = {
@@ -1799,13 +1813,14 @@ TreeItemList_FromObj(
elemPtr = objv[listIndex];
if (Tcl_GetIndexFromObj(NULL, elemPtr, indexName, NULL, 0, &index)
== TCL_OK) {
- int qualArgsTotal = 0;
if (objc - listIndex < indexArgs[index]) {
Tcl_AppendResult(interp, "missing arguments to \"",
Tcl_GetString(elemPtr), "\" keyword", NULL);
goto errorExit;
}
+
+ qualArgsTotal = 0;
if (indexQual[index]) {
if (Qualifiers_Scan(&q, objc, objv, listIndex + indexArgs[index],
&qualArgsTotal) != TCL_OK) {
@@ -1821,9 +1836,6 @@ TreeItemList_FromObj(
}
case INDEX_ALL:
{
- Tcl_HashEntry *hPtr;
- Tcl_HashSearch search;
-
if (qualArgsTotal) {
hPtr = Tcl_FirstHashEntry(&tree->itemHash, &search);
while (hPtr != NULL) {
@@ -1874,11 +1886,12 @@ TreeItemList_FromObj(
{
int listObjc;
Tcl_Obj **listObjv;
- int i, count;
+ int count;
if (Tcl_ListObjGetElements(interp, objv[listIndex + 1],
- &listObjc, &listObjv) != TCL_OK)
+ &listObjc, &listObjv) != TCL_OK) {
goto errorExit;
+ }
for (i = 0; i < listObjc; i++) {
TreeItemList item2s;
if (TreeItemList_FromObj(tree, listObjv[i], &item2s, flags)
@@ -1892,7 +1905,7 @@ TreeItemList_FromObj(
count = TreeItemList_Count(items);
for (i = 0; i < count; i++) {
TreeItem item = TreeItemList_Nth(items, i);
- if (item == ITEM_ALL)
+ if (IS_ALL(item))
break;
}
if (i < count) {
@@ -1906,10 +1919,14 @@ TreeItemList_FromObj(
{
int x, y;
- if (Tcl_GetIntFromObj(NULL, objv[listIndex + 1], &x) != TCL_OK)
- goto baditem;
- if (Tcl_GetIntFromObj(NULL, objv[listIndex + 2], &y) != TCL_OK)
- goto baditem;
+ if (Tk_GetPixelsFromObj(interp, tree->tkwin,
+ objv[listIndex + 1], &x) != TCL_OK) {
+ goto errorExit;
+ }
+ if (Tk_GetPixelsFromObj(interp, tree->tkwin,
+ objv[listIndex + 2], &y) != TCL_OK) {
+ goto errorExit;
+ }
item = (Item *) Tree_ItemUnderPoint(tree, &x, &y, TRUE);
break;
}
@@ -1940,10 +1957,10 @@ TreeItemList_FromObj(
{
int row, col;
- if (Tcl_GetIntFromObj(NULL, objv[listIndex + 1], &row) != TCL_OK)
- goto baditem;
- if (Tcl_GetIntFromObj(NULL, objv[listIndex + 2], &col) != TCL_OK)
- goto baditem;
+ if (Tcl_GetIntFromObj(interp, objv[listIndex + 1], &row) != TCL_OK)
+ goto errorExit;
+ if (Tcl_GetIntFromObj(interp, objv[listIndex + 2], &col) != TCL_OK)
+ goto errorExit;
item = (Item *) Tree_RNCToItem(tree, row, col);
break;
}
@@ -1952,89 +1969,61 @@ TreeItemList_FromObj(
item = (Item *) tree->root;
break;
}
- case INDEX_TAG:
- {
- TagExpr expr;
- Tcl_HashEntry *hPtr;
- Tcl_HashSearch search;
-
- if (TagExpr_Init(tree, objv[listIndex + 1], &expr) != TCL_OK)
- goto errorExit;
- hPtr = Tcl_FirstHashEntry(&tree->itemHash, &search);
- while (hPtr != NULL) {
- item = (Item *) Tcl_GetHashValue(hPtr);
- if (TagExpr_Eval(&expr, item->tagInfo) &&
- Qualifies(&q, item)) {
- TreeItemList_Append(items, (TreeItem) item);
- }
- hPtr = Tcl_NextHashEntry(&search);
- }
- TagExpr_Free(&expr);
- item = NULL;
- break;
- }
- }
- /* If 1 item, use it and clear the list. */
- if (TreeItemList_Count(items) == 1) {
- item = (Item *) TreeItemList_Nth(items, 0);
- items->count = 0;
}
- /* If "all" but only root exists, use it. */
- if ((item == (Item *) ITEM_ALL) && (tree->itemCount == 1) &&
- !(flags & IFO_NOT_ROOT))
- item = (Item *) tree->root;
+ listIndex += indexArgs[index] + qualArgsTotal;
- /* If > 1 item, no modifiers may follow. */
- if ((TreeItemList_Count(items) > 1) || (item == (Item *) ITEM_ALL)) {
- if (listIndex + indexArgs[index] + qualArgsTotal < objc) {
- FormatResult(interp,
- "unexpected arguments after \"%s\" keyword",
- indexName[index]);
- goto errorExit;
+ /* No indexName[] was found. */
+ } else {
+ int gotId = FALSE;
+ TagExpr expr;
+
+ /* Try an itemPrefix + item ID. */
+ if (tree->itemPrefixLen) {
+ char *end, *t = Tcl_GetString(elemPtr);
+ if (strncmp(t, tree->itemPrefix, tree->itemPrefixLen) == 0) {
+ t += tree->itemPrefixLen;
+ id = strtoul(t, &end, 10);
+ if ((end != t) && (*end == '\0'))
+ gotId = TRUE;
}
- }
- listIndex += indexArgs[index] + qualArgsTotal;
- /* No indexName[] was found. Try an itemPrefix + item ID. */
- } else if (tree->itemPrefixLen) {
- char *end, *t = Tcl_GetString(elemPtr);
- if (strncmp(t, tree->itemPrefix, tree->itemPrefixLen) != 0)
- goto baditem;
- t += tree->itemPrefixLen;
- id = strtoul(t, &end, 10);
- if ((end == t) || (*end != '\0'))
- goto baditem;
-
- hPtr = Tcl_FindHashEntry(&tree->itemHash, (char *) id);
- if (!hPtr) {
- if (flags & IFO_NOT_NULL)
- goto noitem;
- /* Empty list returned */
- goto goodExit;
+ /* Try an item ID. */
+ } else if (Tcl_GetIntFromObj(NULL, elemPtr, &id) == TCL_OK) {
+ gotId = TRUE;
}
- item = (Item *) Tcl_GetHashValue(hPtr);
- listIndex++;
-
- /* Try an item ID. */
- } else if (Tcl_GetIntFromObj(NULL, elemPtr, &id) == TCL_OK) {
- hPtr = Tcl_FindHashEntry(&tree->itemHash, (char *) id);
- if (!hPtr) {
- if (flags & IFO_NOT_NULL)
- goto noitem;
- /* Empty list returned */
- goto goodExit;
+ if (gotId) {
+ hPtr = Tcl_FindHashEntry(&tree->itemHash, (char *) id);
+ if (hPtr != NULL) {
+ item = (Item *) Tcl_GetHashValue(hPtr);
+ } else {
+ item = NULL;
+ }
+ listIndex++;
+ goto gotFirstPart;
}
- item = (Item *) Tcl_GetHashValue(hPtr);
- listIndex++;
- /* Try a tag expression. */
- } else {
- TagExpr expr;
- Tcl_HashEntry *hPtr;
- Tcl_HashSearch search;
- int qualArgsTotal = 0;
+ /* Try a list of qualifiers. This has the same effect as
+ * "all QUALIFIERS". */
+ if (Qualifiers_Scan(&q, objc, objv, listIndex, &qualArgsTotal)
+ != TCL_OK) {
+ goto errorExit;
+ }
+ if (qualArgsTotal) {
+ hPtr = Tcl_FirstHashEntry(&tree->itemHash, &search);
+ while (hPtr != NULL) {
+ item = (Item *) Tcl_GetHashValue(hPtr);
+ if (Qualifies(&q, item)) {
+ TreeItemList_Append(items, (TreeItem) item);
+ }
+ hPtr = Tcl_NextHashEntry(&search);
+ }
+ item = NULL;
+ listIndex += qualArgsTotal;
+ goto gotFirstPart;
+ }
+ /* Try a tag expression. */
if (objc > 1) {
if (Qualifiers_Scan(&q, objc, objv, listIndex + 1,
&qualArgsTotal) != TCL_OK) {
@@ -2053,24 +2042,34 @@ TreeItemList_FromObj(
}
TagExpr_Free(&expr);
item = NULL;
+ listIndex += 1 + qualArgsTotal;
+ }
- /* If 1 item, use it and clear the list. */
- if (TreeItemList_Count(items) == 1) {
- item = (Item *) TreeItemList_Nth(items, 0);
- items->count = 0;
- }
+gotFirstPart:
+ /* If 1 item, use it and clear the list. */
+ if (TreeItemList_Count(items) == 1) {
+ item = (Item *) TreeItemList_Nth(items, 0);
+ items->count = 0;
+ }
- /* If > 1 item, no modifiers may follow. */
- if (TreeItemList_Count(items) > 1) {
- if (listIndex + 1 + qualArgsTotal < objc) {
- FormatResult(interp,
- "unexpected arguments after \"%s\"",
- Tcl_GetString(elemPtr));
- goto errorExit;
+ /* If "all" but only root exists, use it. */
+ if (IS_ALL(item) && (tree->itemCount == 1) && !(flags & IFO_NOT_ROOT)) {
+ item = (Item *) tree->root;
+ }
+
+ /* If > 1 item, no modifiers may follow. */
+ if ((TreeItemList_Count(items) > 1) || IS_ALL(item)) {
+ if (listIndex < objc) {
+ Tcl_AppendResult(interp, "unexpected arguments after \"",
+ (char *) NULL);
+ for (i = 0; i < listIndex; i++) {
+ Tcl_AppendResult(interp, Tcl_GetString(objv[i]), (char *) NULL);
+ if (i != listIndex - 1)
+ Tcl_AppendResult(interp, " ", (char *) NULL);
}
+ Tcl_AppendResult(interp, "\"", (char *) NULL);
+ goto errorExit;
}
-
- listIndex += 1 + qualArgsTotal;
}
/* This means a valid specification was given, but there is no such item */
@@ -2083,7 +2082,6 @@ TreeItemList_FromObj(
/* Process any modifiers following the item we matched above. */
for (; listIndex < objc; /* nothing */) {
- int qualArgsTotal = 0;
elemPtr = objv[listIndex];
if (Tcl_GetIndexFromObj(interp, elemPtr, modifiers, "modifier", 0,
@@ -2095,6 +2093,8 @@ TreeItemList_FromObj(
Tcl_GetString(elemPtr), "\" modifier", NULL);
goto errorExit;
}
+
+ qualArgsTotal = 0;
if (modQual[index]) {
Qualifiers_Free(&q);
Qualifiers_Init(tree, &q);
@@ -2271,10 +2271,17 @@ TreeItemList_FromObj(
break;
}
}
- if ((TreeItemList_Count(items) > 1) || (item == (Item *) ITEM_ALL)) {
- if (listIndex + modArgs[index] + qualArgsTotal < objc) {
+ if ((TreeItemList_Count(items) > 1) || IS_ALL(item)) {
+ int end = listIndex + modArgs[index] + qualArgsTotal;
+ if (end < objc) {
Tcl_AppendResult(interp, "unexpected arguments after \"",
- modifiers[index], "\" modifier", NULL);
+ (char *) NULL);
+ for (i = 0; i < end; i++) {
+ Tcl_AppendResult(interp, Tcl_GetString(objv[i]), (char *) NULL);
+ if (i != end - 1)
+ Tcl_AppendResult(interp, " ", (char *) NULL);
+ }
+ Tcl_AppendResult(interp, "\"", (char *) NULL);
goto errorExit;
}
}
@@ -2286,8 +2293,8 @@ TreeItemList_FromObj(
}
listIndex += modArgs[index] + qualArgsTotal;
}
- if ((flags & IFO_NOT_MANY) && ((item == (Item *) ITEM_ALL) ||
- (TreeItemList_Count(items) > 1))) {
+ if ((flags & IFO_NOT_MANY) && (IS_ALL(item) ||
+ (TreeItemList_Count(items) > 1))) {
FormatResult(interp, "can't specify > 1 item for this command");
goto errorExit;
}
@@ -2296,16 +2303,16 @@ TreeItemList_FromObj(
int i;
for (i = 0; i < TreeItemList_Count(items); i++) {
item = (Item *) TreeItemList_Nth(items, i);
- if (ISROOT(item) && (flags & IFO_NOT_ROOT))
+ if (IS_ROOT(item) && (flags & IFO_NOT_ROOT))
goto notRoot;
if ((item->parent == NULL) && (flags & IFO_NOT_ORPHAN))
goto notOrphan;
}
}
- } else if (item == (Item *) ITEM_ALL) {
+ } else if (IS_ALL(item)) {
TreeItemList_Append(items, ITEM_ALL);
} else {
- if (ISROOT(item) && (flags & IFO_NOT_ROOT)) {
+ if (IS_ROOT(item) && (flags & IFO_NOT_ROOT)) {
notRoot:
FormatResult(interp, "can't specify \"root\" for this command");
goto errorExit;
@@ -2411,7 +2418,7 @@ ItemForEach_Start(
iter->error = 0;
iter->items = NULL;
- if (item == ITEM_ALL || item2 == ITEM_ALL) {
+ if (IS_ALL(item) || IS_ALL(item2)) {
Tcl_HashEntry *hPtr = Tcl_FirstHashEntry(&tree->itemHash, &iter->search);
iter->all = TRUE;
return iter->item = (TreeItem) Tcl_GetHashValue(hPtr);
@@ -2501,7 +2508,7 @@ Item_ToggleOpen(
mask = TreeItem_ChangeState(tree, (TreeItem) item, stateOff, stateOn);
- if (ISROOT(item) && !tree->showRoot)
+ if (IS_ROOT(item) && !tree->showRoot)
return;
#if 0
@@ -2744,7 +2751,7 @@ TreeItem_UpdateDepth(
Item *self = (Item *) item_;
Item *child;
- if (ISROOT(self))
+ if (IS_ROOT(self))
return;
if (self->parent != NULL)
self->depth = self->parent->depth + 1;
@@ -3255,14 +3262,14 @@ int TreeItem_Height(
int buttonHeight = 0;
int useHeight;
- if (!self->isVisible || (ISROOT(self) && !tree->showRoot))
+ if (!self->isVisible || (IS_ROOT(self) && !tree->showRoot))
return 0;
/* Get requested height of the style in each column */
useHeight = Item_HeightOfStyles(tree, self);
/* Can't have less height than our button */
- if (tree->showButtons && self->hasButton && (!ISROOT(self) || tree->showRootButton)) {
+ if (tree->showButtons && self->hasButton && (!IS_ROOT(self) || tree->showRootButton)) {
buttonHeight = ButtonHeight(tree, self->state);
}
@@ -3502,7 +3509,7 @@ int TreeItem_Indent(
Item *self = (Item *) item_;
int indent;
- if (ISROOT(self))
+ if (IS_ROOT(self))
return (tree->showRoot && tree->showButtons && tree->showRootButton) ? tree->useIndent : 0;
if (tree->updateIndex)
@@ -3960,7 +3967,7 @@ TreeItem_DrawLines(
hasPrev = (item != NULL);
/* Check for ReallyVisible parent */
- if ((self->parent != NULL) && (!ISROOT(self->parent) || tree->showRoot))
+ if ((self->parent != NULL) && (!IS_ROOT(self->parent) || tree->showRoot))
hasPrev = TRUE;
/* Check for ReallyVisible next sibling */
@@ -3970,7 +3977,7 @@ TreeItem_DrawLines(
hasNext = (item != NULL);
/* Option: Don't connect children of root item */
- if ((self->parent != NULL) && ISROOT(self->parent) && !tree->showRootLines)
+ if ((self->parent != NULL) && IS_ROOT(self->parent) && !tree->showRootLines)
hasPrev = hasNext = FALSE;
/* Vertical line to parent and/or previous/next sibling */
@@ -4022,7 +4029,7 @@ TreeItem_DrawLines(
lineLeft -= tree->useIndent;
/* Option: Don't connect children of root item */
- if ((parent->parent != NULL) && ISROOT(parent->parent) && !tree->showRootLines)
+ if ((parent->parent != NULL) && IS_ROOT(parent->parent) && !tree->showRootLines)
continue;
/* Check for ReallyVisible next sibling */
@@ -4081,7 +4088,7 @@ TreeItem_DrawButton(
if (!self->hasButton)
return;
- if (ISROOT(self) && !tree->showRootButton)
+ if (IS_ROOT(self) && !tree->showRootButton)
return;
#if defined(MAC_TCL) || defined(MAC_OSX_TK)
@@ -4409,8 +4416,8 @@ int TreeItem_ReallyVisible(
if (!self->isVisible)
return 0;
if (self->parent == NULL)
- return ISROOT(self) ? tree->showRoot : 0;
- if (ISROOT(self->parent)) {
+ return IS_ROOT(self) ? tree->showRoot : 0;
+ if (IS_ROOT(self->parent)) {
if (!self->parent->isVisible)
return 0;
if (!tree->showRoot)
@@ -5418,7 +5425,6 @@ doneMAP:
changedI = FALSE;
for (i = 0; i < count; i++) {
COLUMN_FOR_EACH(treeColumn, &cs[i].columns, NULL, &citer) {
- if (treeColumn == tree->columnTail) continue; /* FIXME */
if (cs[i].style == NULL) {
column = Item_FindColumn(tree, item,
TreeColumn_Index(treeColumn));
@@ -6500,7 +6506,6 @@ ItemStateCmd(
ITEM_FOR_EACH(_item, &itemList, NULL, &iter) {
item = (Item *) _item;
COLUMN_FOR_EACH(treeColumn, &columns, NULL, &citer) {
- if (treeColumn == tree->columnTail) continue; /* FIXME */
columnIndex = TreeColumn_Index(treeColumn);
column = Item_CreateColumn(tree, item, columnIndex, NULL);
stateOn = states[STATE_OP_ON];
@@ -7379,8 +7384,7 @@ TreeItemCmd(
if (objc <= 5) {
Tcl_Obj *resultObjPtr;
- if ((_item == ITEM_ALL) ||
- (TreeItemList_Count(&itemList) > 1)) {
+ if (IS_ALL(_item) || (TreeItemList_Count(&itemList) > 1)) {
FormatResult(interp, "can't specify > 1 item for this command");
goto errorExit;
}
@@ -7453,7 +7457,7 @@ TreeItemCmd(
ITEM_FOR_EACH(_item, &itemList, &item2List, &iter) {
item = (Item *) _item;
- if (ISROOT(item))
+ if (IS_ROOT(item))
continue;
if (IS_DELETED(item))
continue;
@@ -7549,8 +7553,7 @@ TreeItemCmd(
ItemForEach iter;
if (objc == 4) {
- if ((_item == ITEM_ALL) ||
- (TreeItemList_Count(&itemList) > 1)) {
+ if (IS_ALL(_item) || (TreeItemList_Count(&itemList) > 1)) {
FormatResult(interp, "can't specify > 1 item for this command");
goto errorExit;
}
@@ -7797,7 +7800,7 @@ TreeItemCmd(
ItemForEach iter;
ColumnForEach citer;
- if ((objc < 6) && ((_item == ITEM_ALL) ||
+ if ((objc < 6) && (IS_ALL(_item) ||
(TreeItemList_Count(&itemList) > 1))) {
FormatResult(interp, "can't specify > 1 item for this command");
goto errorExit;
@@ -7851,7 +7854,6 @@ TreeItemCmd(
item = (Item *) _item;
for (i = 0; i < count; i++) {
COLUMN_FOR_EACH(treeColumn, &cs[i].columns, NULL, &citer) {
- if (treeColumn == tree->columnTail) continue; /* FIXME */
column = Item_CreateColumn(tree, item,
TreeColumn_Index(treeColumn), NULL);
if (column->span != cs[i].span) {
@@ -7896,7 +7898,7 @@ doneSPAN:
ItemForEach iter;
ColumnForEach citer;
- if ((objc < 6) && ((_item == ITEM_ALL) ||
+ if ((objc < 6) && (IS_ALL(_item) ||
(TreeItemList_Count(&itemList) > 1))) {
FormatResult(interp, "can't specify > 1 item for this command");
goto errorExit;
@@ -7955,7 +7957,6 @@ doneSPAN:
item = (Item *) _item;
for (i = 0; i < count; i++) {
COLUMN_FOR_EACH(treeColumn, &co[i].columns, NULL, &citer) {
- if (treeColumn == tree->columnTail) continue; /* FIXME */
columnIndex = TreeColumn_Index(treeColumn);
column = Item_FindColumn(tree, item, columnIndex);
if ((column == NULL) || (column->style == NULL)) {