summaryrefslogtreecommitdiffstats
path: root/generic
diff options
context:
space:
mode:
authortreectrl <treectrl>2006-12-06 03:57:31 (GMT)
committertreectrl <treectrl>2006-12-06 03:57:31 (GMT)
commit574af6eb646fd3b1c1ebe408a64aad06d9631a98 (patch)
treed7c105c3bc7510af3859368b8a64102d80a13a28 /generic
parent3d62a8f0775d84b62cbb84803a9f1d30bdc58010 (diff)
downloadtktreectrl-574af6eb646fd3b1c1ebe408a64aad06d9631a98.zip
tktreectrl-574af6eb646fd3b1c1ebe408a64aad06d9631a98.tar.gz
tktreectrl-574af6eb646fd3b1c1ebe408a64aad06d9631a98.tar.bz2
Return an error message when unable to get a double or long from a text element while sorting.
Diffstat (limited to 'generic')
-rw-r--r--generic/tkTreeElem.c21
1 files changed, 13 insertions, 8 deletions
diff --git a/generic/tkTreeElem.c b/generic/tkTreeElem.c
index c0cd626..1944fa4 100644
--- a/generic/tkTreeElem.c
+++ b/generic/tkTreeElem.c
@@ -5,7 +5,7 @@
*
* Copyright (c) 2002-2006 Tim Baker
*
- * RCS: @(#) $Id: tkTreeElem.c,v 1.58 2006/12/06 00:52:04 treectrl Exp $
+ * RCS: @(#) $Id: tkTreeElem.c,v 1.59 2006/12/06 03:57:31 treectrl Exp $
*/
#include "tkTreeCtrl.h"
@@ -3253,19 +3253,21 @@ int Element_GetSortData(TreeCtrl *tree, Element *elem, int type, long *lv, doubl
if (dataObj != NULL && dataType != TDT_NULL)
(*sv) = Tcl_GetString(dataObj);
else
- (*sv) = elemX->text;
+ (*sv) = elemX->textCfg;
break;
case SORT_DOUBLE:
if (dataObj != NULL && dataType == TDT_DOUBLE) {
if (Tcl_GetDoubleFromObj(tree->interp, dataObj, dv) != TCL_OK)
return TCL_ERROR;
- } else if (elemX->textCfg != NULL) {
+ break;
+ }
+ if (elemX->textCfg != NULL) {
if (Tcl_GetDouble(tree->interp, elemX->textCfg, dv) != TCL_OK)
return TCL_ERROR;
- } else {
- return TCL_ERROR;
+ break;
}
- break;
+ FormatResult(tree->interp, "can't get a double from an empty -text value");
+ return TCL_ERROR;
case SORT_LONG:
if (dataObj != NULL && dataType != TDT_NULL) {
if (dataType == TDT_LONG || dataType == TDT_TIME) {
@@ -3281,10 +3283,13 @@ int Element_GetSortData(TreeCtrl *tree, Element *elem, int type, long *lv, doubl
break;
}
}
- if (elemX->textCfg != NULL)
+ if (elemX->textCfg != NULL) {
if (TclGetLong(tree->interp, elemX->textCfg, lv) != TCL_OK)
return TCL_ERROR;
- break;
+ break;
+ }
+ FormatResult(tree->interp, "can't get a long from an empty -text value");
+ return TCL_ERROR;
}
return TCL_OK;
}