From 89a6725b0b1fd8edef4978bd2203dc86ddb6ebdc Mon Sep 17 00:00:00 2001 From: joye Date: Wed, 26 Mar 2014 16:55:06 +0000 Subject: *** empty log message *** --- src/bltConfig.C | 22 +++++++--------------- src/bltGrAxis.C | 7 +++++-- src/bltGrMarker.C | 6 +++--- src/bltGrPenOp.C | 52 ++++++++++++++++++++++++++++++---------------------- 4 files changed, 45 insertions(+), 42 deletions(-) diff --git a/src/bltConfig.C b/src/bltConfig.C index 2f7b211..331961d 100644 --- a/src/bltConfig.C +++ b/src/bltConfig.C @@ -68,8 +68,8 @@ static int PointSetProc(ClientData clientData, Tcl_Interp *interp, int offset, char* save, int flags) { XPoint* pointPtr = (XPoint*)(widgRec + offset); - int x, y; + int x, y; if (Blt_GetXY(interp, tkwin, Tcl_GetString(*objPtr), &x, &y) != TCL_OK) return TCL_ERROR; @@ -109,33 +109,27 @@ static int DashesSetProc(ClientData clientData, Tcl_Interp *interp, int length; const char* string = Tcl_GetStringFromObj(*objPtr, &length); - if (!string) { + if (!string || !string[0]) { dashesPtr->values[0] = 0; return TCL_OK; } - if (!string[0]) - dashesPtr->values[0] = 0; - else if (!strncmp(string, "dot", length)) { - /* 1 */ + if (!strncmp(string, "dot", length)) { dashesPtr->values[0] = 1; dashesPtr->values[1] = 0; } else if (!strncmp(string, "dash", length)) { - /* 5 2 */ dashesPtr->values[0] = 5; dashesPtr->values[1] = 2; dashesPtr->values[2] = 0; } else if (!strncmp(string, "dashdot", length)) { - /* 2 4 2 */ dashesPtr->values[0] = 2; dashesPtr->values[1] = 4; dashesPtr->values[2] = 2; dashesPtr->values[3] = 0; } else if (!strncmp(string, "dashdotdot", length)) { - /* 2 4 2 2 */ dashesPtr->values[0] = 2; dashesPtr->values[1] = 4; dashesPtr->values[2] = 2; @@ -148,7 +142,8 @@ static int DashesSetProc(ClientData clientData, Tcl_Interp *interp, if (Tcl_ListObjGetElements(interp, *objPtr, &objc, &objv) != TCL_OK) return TCL_ERROR; - if (objc > 11) { /* This is the postscript limit */ + // This is the postscript limit + if (objc > 11) { Tcl_AppendResult(interp, "too many values in dash list \"", string, "\"", (char *)NULL); return TCL_ERROR; @@ -160,10 +155,7 @@ static int DashesSetProc(ClientData clientData, Tcl_Interp *interp, if (Tcl_GetIntFromObj(interp, objv[ii], &value) != TCL_OK) return TCL_ERROR; - /* - * Backward compatibility: - * Allow list of 0 to turn off dashes - */ + // Backward compatibility: Allow list of 0 to turn off dashes if ((value == 0) && (objc == 1)) break; @@ -176,7 +168,7 @@ static int DashesSetProc(ClientData clientData, Tcl_Interp *interp, dashesPtr->values[ii] = (unsigned char)value; } - // Make sure the array ends with a NUL byte + // Make sure the array ends with a NULL byte dashesPtr->values[ii] = 0; } diff --git a/src/bltGrAxis.C b/src/bltGrAxis.C index 9b66be5..53ffdf8 100644 --- a/src/bltGrAxis.C +++ b/src/bltGrAxis.C @@ -169,9 +169,12 @@ static int LimitSetProc(ClientData clientData, Tcl_Interp* interp, { double* limitPtr = (double*)(widgRec + offset); const char* string = Tcl_GetString(*objPtr); - if (string[0] == '\0') + if (!string || !string[0]) { *limitPtr = NAN; - else if (Blt_ExprDoubleFromObj(interp, *objPtr, limitPtr) != TCL_OK) + return TCL_OK; + } + + if (Blt_ExprDoubleFromObj(interp, *objPtr, limitPtr) != TCL_OK) return TCL_ERROR; return TCL_OK; diff --git a/src/bltGrMarker.C b/src/bltGrMarker.C index cd995da..6c72cd7 100644 --- a/src/bltGrMarker.C +++ b/src/bltGrMarker.C @@ -94,15 +94,15 @@ static int CoordsSetProc(ClientData clientData, Tcl_Interp* interp, if (!coordsPtrPtr) return TCL_OK; - *coordsPtrPtr = NULL; - int objc; Tcl_Obj** objv; if (Tcl_ListObjGetElements(interp, *objPtr, &objc, &objv) != TCL_OK) return TCL_ERROR; - if (objc == 0) + if (objc == 0) { + *coordsPtrPtr = NULL; return TCL_OK; + } if (objc & 1) { Tcl_AppendResult(interp, "odd number of marker coordinates specified",NULL); diff --git a/src/bltGrPenOp.C b/src/bltGrPenOp.C index fc302f2..8da39ec 100644 --- a/src/bltGrPenOp.C +++ b/src/bltGrPenOp.C @@ -54,39 +54,41 @@ typedef int (GraphPenProc)(Tcl_Interp* interp, Graph* graphPtr, int objc, static Tk_CustomOptionSetProc PenSetProc; static Tk_CustomOptionGetProc PenGetProc; +static Tk_CustomOptionFreeProc PenFreeProc; Tk_ObjCustomOption barPenObjOption = { - "barPen", PenSetProc, PenGetProc, NULL, NULL, (ClientData)CID_ELEM_BAR + "barPen", PenSetProc, PenGetProc, RestoreProc, PenFreeProc, + (ClientData)CID_ELEM_BAR }; Tk_ObjCustomOption linePenObjOption = { - "linePen", PenSetProc, PenGetProc, NULL, NULL, (ClientData)CID_ELEM_LINE + "linePen", PenSetProc, PenGetProc, RestoreProc, PenFreeProc, + (ClientData)CID_ELEM_LINE }; static int PenSetProc(ClientData clientData, Tcl_Interp* interp, Tk_Window tkwin, Tcl_Obj** objPtr, char* widgRec, - int offset, char* save, int flags) + int offset, char* savePtr, int flags) { Pen** penPtrPtr = (Pen**)(widgRec + offset); + *(double*)savePtr = *(double*)penPtrPtr; + + if (!penPtrPtr) + return TCL_OK; + const char* string = Tcl_GetString(*objPtr); - if ((string[0] == '\0') && (flags & TK_OPTION_NULL_OK)) { - Blt_FreePen(*penPtrPtr); + if (!string || !string[0]) { *penPtrPtr = NULL; - } - else { - Pen* penPtr; - Graph* graphPtr = Blt_GetGraphFromWindowData(tkwin); - ClassId classId = (ClassId)(long(clientData)); + return TCL_OK; + } - if (classId == CID_NONE) - classId = graphPtr->classId; + Graph* graphPtr = Blt_GetGraphFromWindowData(tkwin); + ClassId classId = (ClassId)(long(clientData)); + Pen* penPtr; + if (Blt_GetPenFromObj(interp, graphPtr, *objPtr, classId, &penPtr) != TCL_OK) + return TCL_ERROR; - if (Blt_GetPenFromObj(interp, graphPtr, *objPtr, classId,&penPtr) != TCL_OK) - return TCL_ERROR; - - Blt_FreePen(*penPtrPtr); - *penPtrPtr = penPtr; - } + *penPtrPtr = penPtr; return TCL_OK; }; @@ -95,13 +97,19 @@ static Tcl_Obj* PenGetProc(ClientData clientData, Tk_Window tkwin, char *widgRec, int offset) { Pen* penPtr = *(Pen**)(widgRec + offset); - - if (penPtr == NULL) + if (!penPtr) return Tcl_NewStringObj("", -1); - else - return Tcl_NewStringObj(penPtr->name, -1); + + return Tcl_NewStringObj(penPtr->name, -1); }; +static void PenFreeProc(ClientData clientData, Tk_Window tkwin, char *ptr) +{ + Pen* penPtr = *(Pen**)ptr; + if (penPtr) + Blt_FreePen(penPtr); +} + // Create int Blt_CreatePen(Graph* graphPtr, Tcl_Interp* interp, -- cgit v0.12