summaryrefslogtreecommitdiffstats
path: root/generic
diff options
context:
space:
mode:
authorjan.nijtmans <nijtmans@users.sourceforge.net>2024-01-23 20:46:58 (GMT)
committerjan.nijtmans <nijtmans@users.sourceforge.net>2024-01-23 20:46:58 (GMT)
commit03582e574085bb1a722ddb42239db6116db7c66a (patch)
treeb2acac1728a6dceb22148fb10c31e9f54749bad0 /generic
parentd1e742a7b7a9b4754993a7f19e61ecc674d14fa2 (diff)
downloadtk-03582e574085bb1a722ddb42239db6116db7c66a.zip
tk-03582e574085bb1a722ddb42239db6116db7c66a.tar.gz
tk-03582e574085bb1a722ddb42239db6116db7c66a.tar.bz2
Revise "bad screen distance" error-messages
Diffstat (limited to 'generic')
-rw-r--r--generic/tkConfig.c7
-rw-r--r--generic/tkGet.c9
-rw-r--r--generic/tkObj.c6
-rw-r--r--generic/tkTextTag.c20
-rw-r--r--generic/tkUtil.c2
5 files changed, 28 insertions, 16 deletions
diff --git a/generic/tkConfig.c b/generic/tkConfig.c
index 17a3c28..642a9e5 100644
--- a/generic/tkConfig.c
+++ b/generic/tkConfig.c
@@ -962,8 +962,13 @@ DoObjConfig(
if (nullOK && ObjectIsEmpty(valuePtr)) {
valuePtr = NULL;
newPixels = INT_MIN;
- } else if (Tk_GetPixelsFromObj(interp, tkwin, valuePtr,
+ } else if (Tk_GetPixelsFromObj(nullOK ? NULL : interp, tkwin, valuePtr,
&newPixels) != TCL_OK) {
+ if (nullOK && interp) {
+ Tcl_AppendResult(interp, "expected screen distance or \"\" but got \"",
+ Tcl_GetString(valuePtr), "\"", NULL);
+ Tcl_SetErrorCode(interp, "TK", "VALUE", "PIXELS", NULL);
+ }
return TCL_ERROR;
}
if (internalPtr != NULL) {
diff --git a/generic/tkGet.c b/generic/tkGet.c
index 2b0e7ee..f96b566 100644
--- a/generic/tkGet.c
+++ b/generic/tkGet.c
@@ -601,7 +601,7 @@ Tk_GetScreenMM(
error:
if (interp != NULL) {
Tcl_SetObjResult(interp, Tcl_ObjPrintf(
- "bad screen distance \"%s\"", string));
+ "expected screen distance but got \"%s\"", string));
Tcl_SetErrorCode(interp, "TK", "VALUE", "SCREEN_DISTANCE", NULL);
}
return TCL_ERROR;
@@ -713,8 +713,9 @@ TkGetDoublePixels(
}
if (!tkwin) {
if (interp != NULL) {
- Tcl_SetObjResult(interp, Tcl_NewStringObj("bad screen", -1));
- Tcl_SetErrorCode(interp, "TK", "VALUE", "FRACTIONAL_PIXELS", NULL);
+ Tcl_SetObjResult(interp, Tcl_ObjPrintf(
+ "expected screen distance but got \"%s\"", string));
+ Tcl_SetErrorCode(interp, "TK", "VALUE", "PIXELS", NULL);
}
return TCL_ERROR;
}
@@ -729,7 +730,7 @@ TkGetDoublePixels(
error:
if (interp != NULL) {
Tcl_SetObjResult(interp, Tcl_ObjPrintf(
- "bad screen distance \"%s\"", string));
+ "expected screen distance but got \"%s\"", string));
Tcl_SetErrorCode(interp, "TK", "VALUE", "FRACTIONAL_PIXELS", NULL);
}
return TCL_ERROR;
diff --git a/generic/tkObj.c b/generic/tkObj.c
index 8978886..7a4027a 100644
--- a/generic/tkObj.c
+++ b/generic/tkObj.c
@@ -546,7 +546,7 @@ SetPixelFromAny(
error:
if (interp != NULL) {
Tcl_SetObjResult(interp, Tcl_ObjPrintf(
- "bad screen distance \"%.50s\"", string));
+ "expected screen distance but got \"%s\"", string));
Tcl_SetErrorCode(interp, "TK", "VALUE", "PIXELS", NULL);
}
return TCL_ERROR;
@@ -830,8 +830,8 @@ SetMMFromAny(
if (rest == string) {
error:
Tcl_SetObjResult(interp, Tcl_ObjPrintf(
- "bad screen distance \"%s\"", string));
- Tcl_SetErrorCode(interp, "TK", "VALUE", "DISTANCE", NULL);
+ "expected screen distance but got \"%s\"", string));
+ Tcl_SetErrorCode(interp, "TK", "VALUE", "PIXELS", NULL);
return TCL_ERROR;
}
switch (*rest) {
diff --git a/generic/tkTextTag.c b/generic/tkTextTag.c
index add03c0..dd24b42 100644
--- a/generic/tkTextTag.c
+++ b/generic/tkTextTag.c
@@ -49,15 +49,21 @@ SetPixels(
Tk_Window tkwin,
Tcl_Obj **value,
char *recordPtr,
- int internalOffset,
+ Tcl_Size internalOffset,
char *oldInternalPtr,
int flags)
{
IntStruct pixel = {NULL, INT_MIN};
IntStruct *internalPtr = (IntStruct *)(recordPtr + internalOffset);
+ int nullOK = (flags & TK_OPTION_NULL_OK);
- if (!(flags & TK_OPTION_NULL_OK) || !ObjectIsEmpty(*value)) {
- if (Tk_GetPixelsFromObj(interp, tkwin, *value, &pixel.value) != TCL_OK) {
+ if (!nullOK || !ObjectIsEmpty(*value)) {
+ if (Tk_GetPixelsFromObj(nullOK ? NULL : interp, tkwin, *value, &pixel.value) != TCL_OK) {
+ if (nullOK) {
+ Tcl_SetObjResult(interp, Tcl_ObjPrintf(
+ "expected screen distance or \"\" but got \"%.50s\"", Tcl_GetString(*value)));
+ Tcl_SetErrorCode(interp, "TK", "VALUE", "PIXELS", NULL);
+ }
return TCL_ERROR;
}
if ((flags & OPTION_NONNEG) && pixel.value < 0) {
@@ -79,7 +85,7 @@ SetBoolean(
TCL_UNUSED(Tk_Window),
Tcl_Obj **value,
char *recordPtr,
- int internalOffset,
+ Tcl_Size internalOffset,
char *oldInternalPtr,
int flags)
{
@@ -111,7 +117,7 @@ SetRelief(
TCL_UNUSED(Tk_Window),
Tcl_Obj **value,
char *recordPtr,
- int internalOffset,
+ Tcl_Size internalOffset,
char *oldInternalPtr,
int flags)
{
@@ -143,7 +149,7 @@ SetJustify(
TCL_UNUSED(Tk_Window),
Tcl_Obj **value,
char *recordPtr,
- int internalOffset,
+ Tcl_Size internalOffset,
char *oldInternalPtr,
int flags)
{
@@ -172,7 +178,7 @@ static Tcl_Obj *GetStruct(
TCL_UNUSED(void *),
TCL_UNUSED(Tk_Window),
char *recordPtr,
- int internalOffset)
+ Tcl_Size internalOffset)
{
char **structPtr = (char **)(recordPtr + internalOffset);
diff --git a/generic/tkUtil.c b/generic/tkUtil.c
index 3f07142..6099c0c 100644
--- a/generic/tkUtil.c
+++ b/generic/tkUtil.c
@@ -494,7 +494,7 @@ TkPixelParseProc(
if ((result == TCL_OK) && (clientData == NULL) && (*doublePtr < 0.0)) {
Tcl_SetObjResult(interp, Tcl_ObjPrintf(
- "bad screen distance \"%s\"", value));
+ "expected screen distance but got \"%s\"", value));
Tcl_SetErrorCode(interp, "TK", "VALUE", "PIXELS", NULL);
return TCL_ERROR;
}