summaryrefslogtreecommitdiffstats
path: root/graphics/tclblt/patches/uninitialized.patch
diff options
context:
space:
mode:
Diffstat (limited to 'graphics/tclblt/patches/uninitialized.patch')
-rw-r--r--graphics/tclblt/patches/uninitialized.patch278
1 files changed, 278 insertions, 0 deletions
diff --git a/graphics/tclblt/patches/uninitialized.patch b/graphics/tclblt/patches/uninitialized.patch
new file mode 100644
index 0000000000..241473dc29
--- /dev/null
+++ b/graphics/tclblt/patches/uninitialized.patch
@@ -0,0 +1,278 @@
+Description: Patch initializes all variables for which GCC gave warnings
+ about uninitialized or maybe uninitialized variables.
+Author: Sergei Golovan
+Last-Modified: Wed, 09 Jul 2014 19:17:02 +0400
+
+--- a/generic/bltArrayObj.c
++++ b/generic/bltArrayObj.c
+@@ -69,6 +69,7 @@
+ }
+ if (nElem%2) {
+ if (interp != NULL) {
++ string = Tcl_GetString(objPtr);
+ Tcl_AppendResult(interp, "odd length: ", string, 0);
+ }
+ return TCL_ERROR;
+--- a/generic/bltBgexec.c
++++ b/generic/bltBgexec.c
+@@ -559,6 +559,7 @@
+ *lengthPtr = length;
+ return string;
+ }
++ *lengthPtr = length;
+ return NULL;
+ }
+
+@@ -603,6 +604,7 @@
+ return string;
+ }
+ }
++ *lengthPtr = 0;
+ return NULL;
+ }
+ /*
+--- a/generic/bltTreeCmd.c
++++ b/generic/bltTreeCmd.c
+@@ -8086,7 +8086,7 @@
+ Blt_TreeKeySearch keyIter;
+ int vobjc, kobjc, i, result = TCL_OK, len, cnt = 0, isar;
+ int nobreak = 0, noupdate = 0, unset = 0, init = 0, aLen;
+- char *var, *string, *aName, *aPat = NULL;
++ char *var, *string, *aName = NULL, *aPat = NULL;
+ int klen, kl, j;
+ int *keySet = NULL;
+ unsigned int inode;
+--- a/generic/bltVector.c
++++ b/generic/bltVector.c
+@@ -1896,7 +1896,7 @@
+ return TCL_OK;
+ }
+ for (i=2; i<objc; i+=2) {
+- int option, *ovar;
++ int option, *ovar = NULL;
+ if (Tcl_GetIndexFromObj(interp, objv[i], optionArr, "option",
+ 0, &option) != TCL_OK) {
+ return TCL_OK;
+--- a/generic/bltGrAxis.c
++++ b/generic/bltGrAxis.c
+@@ -1426,7 +1426,15 @@
+
+ nMajor = nMinor = 0;
+ majorStep = minorStep = 0.0;
+- if (min < max) {
++ if (min > max) {
++ double m;
++ m = min;
++ min = max;
++ max = m;
++ } else if (min == max) {
++ max = min + 1.0;
++ }
++ /* if (min < max) { */
+ min = (min != 0.0) ? log10(FABS(min)) : 0.0;
+ max = (max != 0.0) ? log10(FABS(max)) : 1.0;
+
+@@ -1474,7 +1482,7 @@
+ (DEFINED(axisPtr->reqMax)))) {
+ tickMax = max;
+ }
+- }
++ /* } */
+ axisPtr->majorSweep.step = majorStep;
+ axisPtr->majorSweep.initial = floor(tickMin);
+ axisPtr->majorSweep.nSteps = nMajor;
+@@ -1556,7 +1564,15 @@
+
+ nTicks = 0;
+ tickMin = tickMax = 0.0;
+- if (min < max) {
++ if (min > max) {
++ double m;
++ m = min;
++ min = max;
++ max = m;
++ } else if (min == max) {
++ max = min + 1.0;
++ }
++ /* if (min < max) { */
+ range = max - min;
+
+ /* Calculate the major tick stepping. */
+@@ -1578,7 +1594,7 @@
+ axisMax = tickMax = ceil(max / step) * step + 0.0;
+
+ nTicks = Round((tickMax - tickMin) / step) + 1;
+- }
++ /* } */
+ axisPtr->majorSweep.step = step;
+ axisPtr->majorSweep.initial = tickMin;
+ axisPtr->majorSweep.nSteps = nTicks;
+--- a/generic/bltGrLine.c
++++ b/generic/bltGrLine.c
+@@ -3085,8 +3085,9 @@
+ register Point2D *pointPtr, *endPtr;
+ int i;
+
+- i = -1; /* Suppress compiler warning. */
++ i = searchPtr->index;
+ minDist = searchPtr->dist;
++ closest = searchPtr->point;
+ for (linkPtr = Blt_ChainFirstLink(linePtr->traces); linkPtr != NULL;
+ linkPtr = Blt_ChainNextLink(linkPtr)) {
+ tracePtr = Blt_ChainGetValue(linkPtr);
+@@ -3140,8 +3141,9 @@
+ int i;
+ register Segment2D *s;
+
+- i = 0;
++ i = searchPtr->index;
+ minDist = searchPtr->dist;
++ closest = searchPtr->point;
+ s = linePtr->strips;
+ for (count = 0; count < linePtr->nStrips; count++, s++) {
+ dist = (*distProc)(searchPtr->x, searchPtr->y, &(s->p), &(s->q), &b);
+--- a/generic/bltBeep.c
++++ b/generic/bltBeep.c
+@@ -58,9 +58,7 @@
+ argv[0], " ?volumePercent?\"", (char *)NULL);
+ return TCL_ERROR;
+ }
+- if (argc == 1) {
+- percent = 50; /* Default setting */
+- } else if (argc == 2) {
++ if (argc == 2) {
+ if (Tcl_GetInt(interp, argv[1], &percent) != TCL_OK) {
+ return TCL_ERROR;
+ }
+@@ -69,6 +67,8 @@
+ argv[1], "\"", (char *)NULL);
+ return TCL_ERROR;
+ }
++ } else {
++ percent = 50; /* Default setting */
+ }
+ XBell(Tk_Display(Tk_MainWindow(interp)), percent);
+ return TCL_OK;
+--- a/generic/bltConfig.c
++++ b/generic/bltConfig.c
+@@ -977,6 +977,7 @@
+ int dropOffset;
+
+ colorPtr = NULL;
++ color2Ptr = NULL;
+ dropOffset = 0;
+ if ((string != NULL) && (string[0] != '\0')) {
+ int nElem;
+--- a/generic/bltHtext.c
++++ b/generic/bltHtext.c
+@@ -3100,6 +3100,8 @@
+ forceCopy = 0;
+ } else {
+ htPtr->last = htPtr->first - 1;
++ lineNum = htPtr->first;
++ lastY = 0;
+ }
+
+ /* Draw each line */
+--- a/generic/bltImage.c
++++ b/generic/bltImage.c
+@@ -2738,7 +2738,7 @@
+ if (opacity2<0.0) {
+ a1 = (1.0 - a2);
+ } else {
+- a2 = (opacity2<0.0 ? 0.0 : (opacity2>1.0?1.0:opacity2));
++ a1 = (opacity2<0.0 ? 0.0 : (opacity2>1.0?1.0:opacity2));
+ }
+
+ for (endPtr = destPtr + count; destPtr < endPtr; srcPtr++, src2Ptr++, destPtr++) {
+--- a/generic/bltTabnotebook.c
++++ b/generic/bltTabnotebook.c
+@@ -2430,7 +2430,7 @@
+ int cavityWidth, cavityHeight;
+ int width, height;
+ int dx, dy;
+- int x, y;
++ int x = 0, y = 0;
+
+ nbPtr = tabPtr->nbPtr;
+ pad = nbPtr->inset + nbPtr->inset2;
+--- a/generic/bltTabset.c
++++ b/generic/bltTabset.c
+@@ -5771,14 +5771,6 @@
+ * side when correcting for left/right slants.
+ */
+ switch (setPtr->side) {
+- case SIDE_TOP:
+- case SIDE_BOTTOM:
+- if (setPtr->slant == SLANT_LEFT) {
+- x += setPtr->overlap;
+- } else if (setPtr->slant == SLANT_RIGHT) {
+- x -= setPtr->overlap;
+- }
+- break;
+ case SIDE_LEFT:
+ case SIDE_RIGHT:
+ if (setPtr->slant == SLANT_LEFT) {
+@@ -5787,6 +5779,15 @@
+ y -= setPtr->overlap;
+ }
+ break;
++ case SIDE_TOP:
++ case SIDE_BOTTOM:
++ default:
++ if (setPtr->slant == SLANT_LEFT) {
++ x += setPtr->overlap;
++ } else if (setPtr->slant == SLANT_RIGHT) {
++ x -= setPtr->overlap;
++ }
++ break;
+ }
+
+ /*
+@@ -5817,7 +5818,7 @@
+ iw = imgWidth = ImageWidth(image);
+ ih = imgHeight = ImageHeight(image);
+ }
+- img2Width = img2Height = 0;
++ iw2 = ih2 = img2Width = img2Height = 0;
+ if (image2 != NULL) {
+ iw2 = img2Width = ImageWidth(image2);
+ ih2 = img2Height = ImageHeight(image2);
+@@ -5847,6 +5848,7 @@
+ tx = x + (tabPtr->screenWidth - tabPtr->textWidth) / 2;
+ break;
+ case SIDE_TOP:
++ default:
+ tx = x + (tabPtr->screenWidth - tabPtr->textWidth) / 2;
+ ty = y + dy + tabPtr->iPadY.side1 + IMAGE_PAD;
+ ix = x + (tabPtr->screenWidth - iw) / 2;
+@@ -5915,6 +5917,7 @@
+ i2x = x + (tabPtr->screenWidth - iw2) / 2;
+ break;
+ case SIDE_TOP:
++ default:
+ i2y = iy + imgHeight + IMAGE_PAD + setPtr->gapLeft;
+ i2x = x + (tabPtr->screenWidth - iw2) / 2;
+ break;
+--- a/generic/tkButton.c
++++ b/generic/tkButton.c
+@@ -1701,7 +1701,7 @@
+ GC newGC;
+ unsigned long mask;
+ Tk_Image image;
+- char *oldTextVar, *oldSelVar;
++ char *oldTextVar = NULL, *oldSelVar = NULL;
+ Blt_Tree oldTree;
+ int oldNode, result = TCL_OK;
+ char * oldABdStr = butPtr->activeBdImageString;
+@@ -1721,8 +1721,8 @@
+
+ if (Blt_ConfigureWidget(interp, butPtr->tkwin, configSpecs,
+ argc, argv, (char *)butPtr, flags) != TCL_OK) {
+- if (oldTextVar) ckfree(oldTextVar);
+- if (oldTextVar) ckfree(oldSelVar);
++ if (oldTextVar != NULL) ckfree(oldTextVar);
++ if (oldSelVar != NULL) ckfree(oldSelVar);
+ return TCL_ERROR;
+ }
+ /*