diff options
author | jan.nijtmans <nijtmans@users.sourceforge.net> | 2024-01-22 09:18:02 (GMT) |
---|---|---|
committer | jan.nijtmans <nijtmans@users.sourceforge.net> | 2024-01-22 09:18:02 (GMT) |
commit | 6d0c9c3be28f6922a15f6680ba4b803aa393c45a (patch) | |
tree | f1e2d617f8676528e547665cf01d342cb8de00cc /generic | |
parent | 671dfee6ab0dd912ed2476890c037e66f395c190 (diff) | |
download | tk-6d0c9c3be28f6922a15f6680ba4b803aa393c45a.zip tk-6d0c9c3be28f6922a15f6680ba4b803aa393c45a.tar.gz tk-6d0c9c3be28f6922a15f6680ba4b803aa393c45a.tar.bz2 |
Use internal flag OPTION_NONNEG
Diffstat (limited to 'generic')
-rw-r--r-- | generic/tkTextTag.c | 46 |
1 files changed, 18 insertions, 28 deletions
diff --git a/generic/tkTextTag.c b/generic/tkTextTag.c index 27d1b98..dbe281e 100644 --- a/generic/tkTextTag.c +++ b/generic/tkTextTag.c @@ -62,6 +62,8 @@ ObjectIsEmpty( return (objPtr->length == 0); } +#define OPTION_NONNEG (1 << 10) + static int SetPixels(void *clientData, Tcl_Interp *interp, @@ -85,6 +87,9 @@ SetPixels(void *clientData, if (Tk_GetPixelsFromObj(interp, tkwin, *value, &pixel.value) != TCL_OK) { return TCL_ERROR; } + if ((flags & OPTION_NONNEG) && pixel.value < 0) { + pixel.value = 0; + } pixel.string = ckalloc((*value)->length + 1); strcpy(pixel.string, (*value)->bytes); } @@ -140,7 +145,7 @@ SetRelief(void *clientData, char *oldInternalPtr, int flags) { - IntStruct pixel = {NULL, TK_RELIEF_NULL}; + IntStruct relief = {NULL, TK_RELIEF_NULL}; IntStruct *internalPtr; if (internalOffset >= 0) { @@ -150,16 +155,16 @@ SetRelief(void *clientData, } if (!(flags & TK_OPTION_NULL_OK) || !ObjectIsEmpty(*value)) { - if (Tk_GetReliefFromObj(interp, *value, &pixel.value) != TCL_OK) { + if (Tk_GetReliefFromObj(interp, *value, &relief.value) != TCL_OK) { return TCL_ERROR; } - pixel.string = ckalloc((*value)->length + 1); - strcpy(pixel.string, (*value)->bytes); + relief.string = ckalloc((*value)->length + 1); + strcpy(relief.string, (*value)->bytes); } if (internalPtr != NULL) { *((IntStruct *)oldInternalPtr) = *((IntStruct *)internalPtr); - *((IntStruct *)internalPtr) = pixel; + *((IntStruct *)internalPtr) = relief; } return TCL_OK; }; @@ -174,7 +179,7 @@ SetJustify(void *clientData, char *oldInternalPtr, int flags) { - JustifyStruct pixel = {NULL, (Tk_Justify)-1}; + JustifyStruct justify = {NULL, (Tk_Justify)-1}; JustifyStruct *internalPtr; if (internalOffset >= 0) { @@ -184,16 +189,16 @@ SetJustify(void *clientData, } if (!(flags & TK_OPTION_NULL_OK) || !ObjectIsEmpty(*value)) { - if (Tk_GetJustifyFromObj(interp, *value, &pixel.value) != TCL_OK) { + if (Tk_GetJustifyFromObj(interp, *value, &justify.value) != TCL_OK) { return TCL_ERROR; } - pixel.string = ckalloc((*value)->length + 1); - strcpy(pixel.string, (*value)->bytes); + justify.string = ckalloc((*value)->length + 1); + strcpy(justify.string, (*value)->bytes); } if (internalPtr != NULL) { *((JustifyStruct *)oldInternalPtr) = *((JustifyStruct *)internalPtr); - *((JustifyStruct *)internalPtr) = pixel; + *((JustifyStruct *)internalPtr) = justify; } return TCL_OK; }; @@ -312,11 +317,11 @@ static const Tk_OptionSpec tagOptionSpecs[] = { {TK_OPTION_COLOR, "-selectforeground", NULL, NULL, NULL, -1, Tk_Offset(TkTextTag, selFgColor), TK_OPTION_NULL_OK, 0, 0}, {TK_OPTION_CUSTOM, "-spacing1", NULL, NULL, - NULL, -1, Tk_Offset(TkTextTag, spacing1String), TK_OPTION_NULL_OK, &pixelsOption,0}, + NULL, -1, Tk_Offset(TkTextTag, spacing1String), TK_OPTION_NULL_OK|OPTION_NONNEG, &pixelsOption,0}, {TK_OPTION_CUSTOM, "-spacing2", NULL, NULL, - NULL, -1, Tk_Offset(TkTextTag, spacing2String), TK_OPTION_NULL_OK, &pixelsOption,0}, + NULL, -1, Tk_Offset(TkTextTag, spacing2String), TK_OPTION_NULL_OK|OPTION_NONNEG, &pixelsOption,0}, {TK_OPTION_CUSTOM, "-spacing3", NULL, NULL, - NULL, -1, Tk_Offset(TkTextTag, spacing3String), TK_OPTION_NULL_OK, &pixelsOption,0}, + NULL, -1, Tk_Offset(TkTextTag, spacing3String), TK_OPTION_NULL_OK|OPTION_NONNEG, &pixelsOption,0}, {TK_OPTION_STRING, "-tabs", NULL, NULL, NULL, Tk_Offset(TkTextTag, tabStringPtr), -1, TK_OPTION_NULL_OK, 0, 0}, {TK_OPTION_STRING_TABLE, "-tabstyle", NULL, NULL, @@ -617,21 +622,6 @@ TkTextTagCmd( if (tagPtr->borderWidth < 0) { tagPtr->borderWidth = 0; } - if (tagPtr->spacing1String != NULL) { - if (tagPtr->spacing1 < 0) { - tagPtr->spacing1 = 0; - } - } - if (tagPtr->spacing2String != NULL) { - if (tagPtr->spacing2 < 0) { - tagPtr->spacing2 = 0; - } - } - if (tagPtr->spacing3String != NULL) { - if (tagPtr->spacing3 < 0) { - tagPtr->spacing3 = 0; - } - } if (tagPtr->tabArrayPtr != NULL) { ckfree(tagPtr->tabArrayPtr); tagPtr->tabArrayPtr = NULL; |