diff options
author | treectrl <treectrl> | 2006-12-06 03:57:31 (GMT) |
---|---|---|
committer | treectrl <treectrl> | 2006-12-06 03:57:31 (GMT) |
commit | 574af6eb646fd3b1c1ebe408a64aad06d9631a98 (patch) | |
tree | d7c105c3bc7510af3859368b8a64102d80a13a28 | |
parent | 3d62a8f0775d84b62cbb84803a9f1d30bdc58010 (diff) | |
download | tktreectrl-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.
-rw-r--r-- | generic/tkTreeElem.c | 21 |
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; } |