Module Name:    xsrc
Committed By:   mrg
Date:           Thu Jul  4 05:17:50 UTC 2024

Modified Files:
        xsrc/external/mit/libXaw/dist/src: Pixmap.c Text.c TextAction.c
Removed Files:
        xsrc/external/mit/libXaw/dist/src: sharedlib.c
        xsrc/external/mit/libpthread-stubs/dist: config.guess config.h.in
            config.sub depcomp ltmain.sh stubs.c

Log Message:
merge libXaw 1.0.16, libfontenc 1.1.8, libpthread-stubs 0.5, and
util-macros 1.20.1.


To generate a diff of this commit:
cvs rdiff -u -r1.3 -r1.4 xsrc/external/mit/libXaw/dist/src/Pixmap.c \
    xsrc/external/mit/libXaw/dist/src/TextAction.c
cvs rdiff -u -r1.4 -r1.5 xsrc/external/mit/libXaw/dist/src/Text.c
cvs rdiff -u -r1.1.1.2 -r0 xsrc/external/mit/libXaw/dist/src/sharedlib.c
cvs rdiff -u -r1.1.1.2 -r0 \
    xsrc/external/mit/libpthread-stubs/dist/config.guess \
    xsrc/external/mit/libpthread-stubs/dist/config.h.in \
    xsrc/external/mit/libpthread-stubs/dist/config.sub \
    xsrc/external/mit/libpthread-stubs/dist/depcomp \
    xsrc/external/mit/libpthread-stubs/dist/ltmain.sh \
    xsrc/external/mit/libpthread-stubs/dist/stubs.c

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.

Modified files:

Index: xsrc/external/mit/libXaw/dist/src/Pixmap.c
diff -u xsrc/external/mit/libXaw/dist/src/Pixmap.c:1.3 xsrc/external/mit/libXaw/dist/src/Pixmap.c:1.4
--- xsrc/external/mit/libXaw/dist/src/Pixmap.c:1.3	Thu Mar 23 05:26:15 2023
+++ xsrc/external/mit/libXaw/dist/src/Pixmap.c	Thu Jul  4 05:17:50 2024
@@ -469,14 +469,15 @@ _XawFindCache(XawCache *xaw,
 static XawCache *
 _XawGetCache(XawCache *xaw, Screen *screen, Colormap colormap, int depth)
 {
-  XawCache *s_cache, *c_cache, *d_cache, *cache, *pcache;
+  XawCache *cache;
 
   cache = _XawFindCache(xaw, screen, colormap, depth, FIND_ALL);
 
   if (!cache)
     {
-      s_cache = _XawFindCache(xaw,
-			      screen, colormap, depth, FIND_SCREEN);
+      XawCache *c_cache, *d_cache, *pcache;
+      XawCache *s_cache = _XawFindCache(xaw,
+					screen, colormap, depth, FIND_SCREEN);
       if (!s_cache)
 	{
 	  pcache = (XawCache *)XtMalloc(sizeof(XawCache));
@@ -664,7 +665,7 @@ GetResourcePixmapPath(Display *display)
     XrmRepresentation rep_type;
     XrmValue value;
     static char *default_path =
-	"%H/%T/%N:%P/include/X11/%T/%N:/usr/X11R6/include/X11/%T/%N:/usr/include/X11/%T/%N:%N";
+	(char*)"%H/%T/%N:%P/include/X11/%T/%N:/usr/X11R6/include/X11/%T/%N:/usr/include/X11/%T/%N:%N";
 
     xrm_name[0] = XrmPermStringToQuark("pixmapFilePath");
     xrm_name[1] = NULLQUARK;
@@ -713,7 +714,7 @@ GetFileName(XawParams *params, Screen *s
     {
       if (!sub[0].substitution)
 	sub[0].substitution = getenv("HOME");
-      sub[1].substitution = (char *)params->name;
+      sub[1].substitution = (_XtString)params->name;
       if (pixmap_path == NULL)
 	GetResourcePixmapPath(DisplayOfScreen(screen));
       return XtFindFile(pixmap_path, sub, XtNumber(sub), NULL);
@@ -728,7 +729,6 @@ BitmapLoader(XawParams *params, Screen *
 {
   Pixel fg, bg;
   XColor color, exact;
-  Pixmap pixmap;
   unsigned int width, height;
   unsigned char *data = NULL;
   int hotX, hotY;
@@ -765,10 +765,11 @@ BitmapLoader(XawParams *params, Screen *
   if (XReadBitmapFileData(filename, &width, &height, &data,
 			  &hotX, &hotY) == BitmapSuccess)
     {
-      pixmap = XCreatePixmapFromBitmapData(DisplayOfScreen(screen),
-					   RootWindowOfScreen(screen),
-					   (char *)data,
-					   width, height, fg, bg, (unsigned)depth);
+      Pixmap pixmap =
+	  XCreatePixmapFromBitmapData(DisplayOfScreen(screen),
+				      RootWindowOfScreen(screen),
+				      (char *)data,
+				      width, height, fg, bg, (unsigned)depth);
       if (data)
 	XFree(data);
       *pixmap_return = pixmap;
@@ -833,7 +834,7 @@ GradientLoader(XawParams *params, Screen
 
   value = NULL;
   if ((argval = XawFindArgVal(params, "start")) != NULL)
-    value = (char *)argval->value;
+    value = (char*)argval->value;
   if (value && !XAllocNamedColor(DisplayOfScreen(screen), colormap, value,
 			    &start, &color))
     return (False);
@@ -844,7 +845,7 @@ GradientLoader(XawParams *params, Screen
     }
   value = NULL;
   if ((argval = XawFindArgVal(params, "end")) != NULL)
-    value = (char *)argval->value;
+    value = (char*)argval->value;
   if (value && !XAllocNamedColor(DisplayOfScreen(screen), colormap, value,
 			    &end, &color))
     return (False);
Index: xsrc/external/mit/libXaw/dist/src/TextAction.c
diff -u xsrc/external/mit/libXaw/dist/src/TextAction.c:1.3 xsrc/external/mit/libXaw/dist/src/TextAction.c:1.4
--- xsrc/external/mit/libXaw/dist/src/TextAction.c:1.3	Thu Mar 23 05:26:15 2023
+++ xsrc/external/mit/libXaw/dist/src/TextAction.c	Thu Jul  4 05:17:50 2024
@@ -403,14 +403,14 @@ _SelectionReceived(Widget w, XtPointer c
 
     StartAction(ctx, NULL);
     if (XawTextFormat(ctx, XawFmtWide)) {
-	XTextProperty textprop;
 	wchar_t **wlist;
 	int count;
-
-	textprop.encoding = *type;
-	textprop.value = (unsigned char *)value;
-	textprop.nitems = strlen(value);
-	textprop.format = 8;
+	XTextProperty textprop = {
+	    .encoding = *type,
+	    .value = (unsigned char *)value,
+	    .nitems = strlen(value),
+	    .format = 8
+	};
 
 	if (XwcTextPropertyToTextList(d, &textprop, &wlist, &count)
 	    !=	Success
@@ -950,7 +950,6 @@ ConvertSelection(Widget w, Atom *selecti
     TextWidget ctx = (TextWidget)w;
     Widget src = ctx->text.source;
     XawTextEditType edit_mode;
-    Arg args[1];
     XawTextSelectionSalt *salt = NULL;
     XawTextSelection *s;
 
@@ -960,9 +959,12 @@ ConvertSelection(Widget w, Atom *selecti
 
 	if (SrcCvtSel(src, selection, target, type, value, length, format))
 	    return (True);
+	else {
+	    Arg args[1];
 
-	XtSetArg(args[0], XtNeditType,&edit_mode);
-	XtGetValues(src, args, 1);
+	    XtSetArg(args[0], XtNeditType,&edit_mode);
+	    XtGetValues(src, args, 1);
+	}
 
 	XmuConvertStandardSelection(w, ctx->text.time, selection,
 				    target, type, (XPointer *)&std_targets,
@@ -1035,21 +1037,22 @@ ConvertSelection(Widget w, Atom *selecti
 		*length = strlen(*value);
 	}
 	else {
-	    *value = XtMalloc(((size_t)(salt->length + 1) * sizeof(unsigned char)));
+	    *value = XtMalloc((Cardinal)((size_t)(salt->length + 1) * sizeof(unsigned char)));
 	    strcpy (*value, salt->contents);
 	    *length = (unsigned long)salt->length;
 	}
 	/* Got *value,*length, now in COMPOUND_TEXT format. */
 	if (XawTextFormat(ctx, XawFmtWide)) {
 	    if (*type == XA_STRING) {
-		XTextProperty textprop;
 		wchar_t **wlist;
 		int count;
+		XTextProperty textprop = {
+		    .encoding = XA_COMPOUND_TEXT(d),
+		    .value = (unsigned char *)*value,
+		    .nitems = strlen(*value),
+		    .format = 8
+		};
 
-		textprop.encoding = XA_COMPOUND_TEXT(d);
-		textprop.value = (unsigned char *)*value;
-		textprop.nitems = strlen(*value);
-		textprop.format = 8;
 		if (XwcTextPropertyToTextList(d, &textprop, &wlist, &count)
 		     < Success
 		    || count < 1) {
@@ -1067,14 +1070,15 @@ ConvertSelection(Widget w, Atom *selecti
 		XwcFreeStringList((wchar_t**) wlist);
 	    }
 	    else if (*type == XA_UTF8_STRING(d)) {
-		XTextProperty textprop;
 		char **list;
 		int count;
+		XTextProperty textprop = {
+		    .encoding = XA_COMPOUND_TEXT(d),
+		    .value = (unsigned char *)*value,
+		    .nitems = strlen(*value),
+		    .format = 8
+		};
 
-		textprop.encoding = XA_COMPOUND_TEXT(d);
-		textprop.value = (unsigned char *)*value;
-		textprop.nitems = strlen(*value);
-		textprop.format = 8;
 		if (Xutf8TextPropertyToTextList(d, &textprop, &list, &count)
 		    < Success
 		    || count < 1) {
@@ -1194,7 +1198,7 @@ _LoseSelection(Widget w, Atom *selection
 			tail = kill_ring;
 			kill_ring = kill_ring->next;
 		    }
-		    if (kill_ring->refcount == 0) {
+		    if (tail != NULL && kill_ring->refcount == 0) {
 			--num_kill_rings;
 			tail->next = NULL;
 			XtFree(kill_ring->contents);
@@ -1289,16 +1293,24 @@ _DeleteOrKill(TextWidget ctx, XawTextPos
 	if (!append)
 	    salt->contents = string;
 	else {
-	    salt->contents = XtMalloc((length + size + 1));
+	    salt->contents = XtMalloc((Cardinal)(length + size + 1));
 	    if (from >= old_from) {
-		strncpy(salt->contents, ring, (size_t)size);
-		salt->contents[size] = '\0';
+		if (ring != NULL) {
+		    strncpy(salt->contents, ring, (size_t)size);
+		    salt->contents[size] = '\0';
+		} else {
+		    salt->contents[size = 0] = '\0';
+		}
 		strncat(salt->contents, string, (size_t)length);
 	    }
 	    else {
 		strncpy(salt->contents, string, (size_t)length);
 		salt->contents[length] = '\0';
-		strncat(salt->contents, ring, (size_t)size);
+		if (ring != NULL) {
+		    strncat(salt->contents, ring, (size_t)size);
+		} else {
+		    size = 0;
+		}
 	    }
 	    salt->contents[length + size] = '\0';
 	    XtFree(ring);
@@ -1330,7 +1342,7 @@ _DeleteOrKill(TextWidget ctx, XawTextPos
     text.firstPos = 0;
 
     text.format = (unsigned long)_XawTextFormat(ctx);
-    text.ptr = "";
+    text.ptr = (char*)"";
 
     if (_XawTextReplace(ctx, from, to, &text)) {
 	XBell(XtDisplay(ctx), 50);
@@ -1399,7 +1411,8 @@ DeleteChar(Widget w, XEvent *event, XawT
     short mul = MULT(ctx);
 
     if (mul < 0) {
-	ctx->text.mult = mul = (short)(-mul);
+	mul = -mul;
+	ctx->text.mult = mul;
 	dir = dir == XawsdLeft ? XawsdRight : XawsdLeft;
     }
     DeleteOrKill(ctx, event, dir, XawstPositions, True, False);
@@ -1600,11 +1613,10 @@ StripSpaces(TextWidget ctx, XawTextPosit
 
     text.firstPos = 0;
     text.format = XawFmt8Bit;
-    text.ptr = " ";
+    text.ptr = (char*)" ";
     text.length = 1;
 
-    position = XawTextSourceRead(ctx->text.source, position,
-				 &block, (int)(right - left));
+    XawTextSourceRead(ctx->text.source, position, &block, (int)(right - left));
     done = False;
     space = False;
     /* convert tabs and returns to spaces */
@@ -1637,11 +1649,10 @@ StripSpaces(TextWidget ctx, XawTextPosit
 	    done = True;
     }
 
-    text.ptr = "";
+    text.ptr = (char*)"";
     text.length = 0;
     position = tmp = left;
-    position = XawTextSourceRead(ctx->text.source, position,
-				 &block, (int)(right - left));
+    XawTextSourceRead(ctx->text.source, position, &block, (int)(right - left));
     ipos = ctx->text.insertPos;
     done = False;
     while (!done) {
@@ -1717,12 +1728,11 @@ Tabify(TextWidget ctx, XawTextPosition l
     int tab_index = 0, tab_column = 0, TAB_SIZE = DEFAULT_TAB_SIZE;
 
     text.firstPos = 0;
-    text.ptr = "\t";
+    text.ptr = (char*)"\t";
     text.format = XawFmt8Bit;
     text.length = 1;
 
-    position = XawTextSourceRead(ctx->text.source, position,
-				 &block, (int)(right - left));
+    XawTextSourceRead(ctx->text.source, position, &block, (int)(right - left));
     ipos = ctx->text.insertPos;
     done = zero = False;
     if (tab_count)
@@ -1859,14 +1869,13 @@ Untabify(TextWidget ctx, XawTextPosition
     short *char_tabs = sink->text_sink.char_tabs;
     int tab_count = sink->text_sink.tab_count;
     int tab_index = 0, tab_column = 0, tab_base = 0;
-    static char *tabs = "        ";
+    static char *tabs = (char*)"        ";
 
     text.firstPos = 0;
     text.format = XawFmt8Bit;
     text.ptr = tabs;
 
-    position = XawTextSourceRead(ctx->text.source, position,
-				 &block, (int)(right - left));
+    XawTextSourceRead(ctx->text.source, position, &block, (int)(right - left));
     ipos = ctx->text.insertPos;
     done = False;
     zero = False;
@@ -2182,7 +2191,7 @@ DoFormatText(TextWidget ctx, XawTextPosi
 	    position = tmp;
 	if (position > left && position - left > ctx->text.left_column
 	    && position != right) {
-	    text.ptr = "\n";
+	    text.ptr = (char*)"\n";
 	    text.length = 1;
 	    CHECK_SAVE();
 	    if (_XawTextReplace(ctx, position, position + 1, &text))
@@ -2235,7 +2244,6 @@ DoFormatText(TextWidget ctx, XawTextPosi
 		}
 		XawStackFree(text.ptr, buf);
 		position += count;
-		right += count;
 		if (num_pos) {
 		    for (cpos = 0; cpos < num_pos; cpos++)
 			if (pos[cpos] > left)
@@ -2297,7 +2305,6 @@ DoFormatText(TextWidget ctx, XawTextPosi
 			inc += ii;
 		    }
 		    position += count;
-		    right += count;
 		    XawStackFree(text.ptr, buf);
 		}
 		break;
@@ -2322,18 +2329,17 @@ Indent(Widget w, XEvent *event, String *
     TextWidget ctx = (TextWidget)w;
     TextSrcObject src = (TextSrcObject)ctx->text.source;
     XawTextPosition from, to, tmp, end = 0, *pos, *posbuf[32];
-    char buf[32];
     XawTextBlock text;
     int i, spaces = MULT(ctx);
     char *lbuf = NULL, *rbuf;
-    unsigned llen = 0, rlen, size;
+    unsigned llen = 0;
     Bool undo = src->textSrc.enable_undo && src->textSrc.undo_state == False;
     Bool format = ctx->text.auto_fill
 	&& ctx->text.left_column < ctx->text.right_column;
 
     text.firstPos = 0;
     text.format = XawFmt8Bit;
-    text.ptr = "";
+    text.ptr = (char*)"";
 
     StartAction(ctx, event);
 
@@ -2370,6 +2376,8 @@ Indent(Widget w, XEvent *event, String *
     tmp = from;
 
     if (spaces > 0) {
+	char buf[32];
+
 	text.ptr = XawStackAlloc((unsigned)spaces, buf);
 	for (i = 0; i < spaces; i++)
 	    text.ptr[i] = ' ';
@@ -2424,7 +2432,9 @@ Indent(Widget w, XEvent *event, String *
 	Tabify(ctx, from, to, pos, (int)src->textSrc.num_text, NULL);
 
     if (undo) {
-	rlen = (unsigned)(llen + (ctx->text.lastPos - end));
+	unsigned rlen = (unsigned)(llen + (ctx->text.lastPos - end));
+	unsigned size;
+
 	rbuf = _XawTextGetText(ctx, from, from + rlen);
 
 	text.format = (unsigned long)_XawTextFormat(ctx);
@@ -2601,7 +2611,7 @@ InsertNewLineAndIndent(Widget w, XEvent 
 	char *ptr;
 
 	length = (int)strlen(line_to_ip);
-	text.ptr = XtMalloc(((size_t)(2 + length) * sizeof(char)));
+	text.ptr = XtMalloc((Cardinal)((size_t)(2 + length) * sizeof(char)));
 	ptr = text.ptr;
 	ptr[0] = XawLF;
 	strcpy(++ptr, line_to_ip);
@@ -3020,7 +3030,7 @@ AutoFill(TextWidget ctx)
 	    return;
 
 	text.format = XawFmt8Bit;
-	text.ptr = "\n";
+	text.ptr = (char*)"\n";
     }
     text.length = 1;
     text.firstPos = 0;
@@ -3293,7 +3303,7 @@ InsertString(Widget w, XEvent *event, St
 
     StartAction(ctx, event);
     for (i = (int)*num_params; i; i--, params++) {	/* DO FOR EACH PARAMETER */
-	text.ptr = IfHexConvertHexElseReturnParam(*params, &text.length);
+	text.ptr = IfHexConvertHexElseReturnParam((char*) *params, &text.length);
 
 	if (text.length == 0)
 	    continue;
@@ -3368,7 +3378,7 @@ DisplayCaret(Widget w, XEvent *event, St
 
     if (*num_params > 0) {	/* default arg is "True" */
 	XrmValue from, to;
-	from.size = (unsigned)strlen(from.addr = (char *)params[0]);
+	from.size = (unsigned)strlen(from.addr = (char*)params[0]);
 	XtConvert(w, XtRString, &from, XtRBoolean, &to);
 
 	if (to.addr != NULL)
@@ -3414,7 +3424,6 @@ Numeric(Widget w, XEvent *event, String 
 	    return;
 	}
 	else if (mult == 32767) {
-	    mult = ctx->text.mult = (short)(- (params[0][0] - '0'));
 	    return;
 	}
 	else {
@@ -3518,19 +3527,20 @@ static XawTextPosition
 StripOutOldCRs(TextWidget ctx, XawTextPosition from, XawTextPosition to,
 	       XawTextPosition *pos, int num_pos)
 {
-    XawTextPosition startPos, endPos, eop_begin, eop_end, temp;
+    XawTextPosition startPos, endPos, eop_begin, eop_end;
     Widget src = ctx->text.source;
     XawTextBlock text;
     char *buf;
-    static wchar_t wc_two_spaces[3];
     int idx;
 
     /* Initialize our TextBlock with two spaces. */
     text.firstPos = 0;
     text.format = (unsigned long)_XawTextFormat(ctx);
-    if (text.format == XawFmt8Bit)
-      text.ptr= "  ";
-    else {
+    if (text.format == XawFmt8Bit) {
+        text.ptr= (char*)" ";
+    } else {
+	static wchar_t wc_two_spaces[3];
+
 	wc_two_spaces[0] = _Xaw_atowc(XawSP);
 	wc_two_spaces[1] = _Xaw_atowc(XawSP);
 	wc_two_spaces[2] = 0;
@@ -3538,11 +3548,13 @@ StripOutOldCRs(TextWidget ctx, XawTextPo
     }
 
     /* Strip out CR's. */
-    eop_begin = eop_end = startPos = endPos = from;
+    eop_begin = eop_end = startPos = from;
 
     /* CONSTCOND */
     while (TRUE) {
-	endPos=SrcScan(src, startPos, XawstEOL, XawsdRight, 1, False);
+	XawTextPosition temp;
+
+	endPos = SrcScan(src, startPos, XawstEOL, XawsdRight, 1, False);
 
 	temp = SrcScan(src, endPos, XawstWhiteSpace, XawsdLeft, 1, False);
 	temp = SrcScan(src, temp,   XawstWhiteSpace, XawsdRight,1, False);
@@ -3624,19 +3636,19 @@ static void
 InsertNewCRs(TextWidget ctx, XawTextPosition from, XawTextPosition to,
 	     XawTextPosition *pos, int num_pos)
 {
-    XawTextPosition startPos, endPos, space, eol;
+    XawTextPosition startPos;
     XawTextBlock text;
-    int i, width, height, len, wwidth, idx;
-    char *buf;
-    static wchar_t wide_CR[2];
+    int i, width, height, wwidth, idx;
 
     text.firstPos = 0;
     text.length = 1;
     text.format = (unsigned long)_XawTextFormat(ctx);
 
-    if (text.format == XawFmt8Bit)
-	text.ptr = "\n";
-    else {
+    if (text.format == XawFmt8Bit) {
+	text.ptr = (char*)"\n";
+    } else {
+	static wchar_t wide_CR[2];
+
 	wide_CR[0] = _Xaw_atowc(XawLF);
 	wide_CR[1] = 0;
 	text.ptr = (char*)wide_CR;
@@ -3655,6 +3667,10 @@ InsertNewCRs(TextWidget ctx, XawTextPosi
 
     /* CONSTCOND */
     while (TRUE) {
+	int len;
+	char *buf;
+	XawTextPosition endPos, space, eol;
+
 	XawTextSinkFindPosition(ctx->text.sink, startPos,
 				(int)ctx->text.r_margin.left, wwidth,
 				True, &eol, &width, &height);
@@ -3733,14 +3749,12 @@ FormRegion(TextWidget ctx, XawTextPositi
 	    ctx->text.justify == XawjustifyFull) {
 	    Untabify(ctx, from, to, pos, num_pos, NULL);
 	    to += ctx->text.lastPos - len;
-	    len = ctx->text.insertPos;
 	    (void)BlankLine((Widget)ctx, from, &inc);
 	    if (from + inc >= to)
 		return (XawEditDone);
 	}
 	if (!StripSpaces(ctx, from + inc, to, pos, num_pos, NULL))
 	    return (XawReplaceError);
-	to += ctx->text.lastPos - len;
 
 	FormatText(ctx, from, ctx->text.justify != XawjustifyFull, pos, num_pos);
     }

Index: xsrc/external/mit/libXaw/dist/src/Text.c
diff -u xsrc/external/mit/libXaw/dist/src/Text.c:1.4 xsrc/external/mit/libXaw/dist/src/Text.c:1.5
--- xsrc/external/mit/libXaw/dist/src/Text.c:1.4	Thu Mar 23 05:26:15 2023
+++ xsrc/external/mit/libXaw/dist/src/Text.c	Thu Jul  4 05:17:50 2024
@@ -474,9 +474,7 @@ static XtResource resources[] = {
 	{ toVal->size = sizeof(type); toVal->addr = (XPointer)address; }
 
 static XrmQuark QWrapNever, QWrapLine, QWrapWord;
-#ifndef notdef
 static XrmQuark QScrollNever, QScrollWhenNeeded, QScrollAlways;
-#endif
 static XrmQuark QJustifyLeft, QJustifyRight, QJustifyCenter, QJustifyFull;
 
 /*ARGSUSED*/
@@ -795,7 +793,7 @@ CreateVScrollBar(TextWidget ctx)
     XtAddCallback(vbar, XtNscrollProc, VScroll, (XtPointer)ctx);
     XtAddCallback(vbar, XtNjumpProc, VJump, (XtPointer)ctx);
 
-    ctx->text.r_margin.left += (XtWidth(vbar) + XtBorderWidth(vbar));
+    ctx->text.r_margin.left += (Position) (XtWidth(vbar) + XtBorderWidth(vbar));
     ctx->text.left_margin = ctx->text.margin.left = ctx->text.r_margin.left;
 
     PositionVScrollBar(ctx);
@@ -950,7 +948,7 @@ XawTextInitialize(Widget request _X_UNUS
     if (XtHeight(ctx) == DEFAULT_TEXT_HEIGHT) {
 	XtHeight(ctx) = (Dimension)VMargins(ctx);
 	if (ctx->text.sink != NULL)
-	    XtHeight(ctx) += XawTextSinkMaxHeight(ctx->text.sink, 1);
+	    XtHeight(ctx) += (Dimension) XawTextSinkMaxHeight(ctx->text.sink, 1);
     }
 
     if (ctx->text.scroll_vert == XawtextScrollAlways)
@@ -1069,14 +1067,16 @@ void
 _XawTextNeedsUpdating(TextWidget ctx,
 		      XawTextPosition left, XawTextPosition right)
 {
-    XmuSegment segment;
-
     if (left >= right)
 	return;
+    else  {
+	XmuSegment segment = {
+	    .x1 = (int)left,
+	    .x2 = (int)right
+	};
 
-    segment.x1 = (int)left;
-    segment.x2 = (int)right;
-    (void)XmuScanlineOrSegment(ctx->text.update, &segment);
+	(void)XmuScanlineOrSegment(ctx->text.update, &segment);
+    }
 }
 
 /*
@@ -1124,18 +1124,15 @@ _XawTextGetText(TextWidget ctx, XawTextP
 char *
 _XawTextGetSTRING(TextWidget ctx, XawTextPosition left, XawTextPosition right)
 {
-    unsigned char *s;
-    unsigned char c;
-    long i, j, n;
-    wchar_t *ws, wc;
-
     /* allow ESC in accordance with ICCCM */
     if (XawTextFormat(ctx, XawFmtWide)) {
 	MultiSinkObject sink = (MultiSinkObject)ctx->text.sink;
-	ws = (wchar_t *)_XawTextGetText(ctx, left, right);
-	n = (long)wcslen(ws);
+	wchar_t *ws = (wchar_t *)_XawTextGetText(ctx, left, right);
+	long n = (long)wcslen(ws);
+	long i, j;
+
 	for (j = 0, i = 0; j < n; j++) {
-	    wc = ws[j];
+	    wchar_t wc = ws[j];
 	    if (XwcTextEscapement (sink->multi_sink.fontset, &wc, 1)
 		|| (wc == _Xaw_atowc(XawTAB)) || (wc == _Xaw_atowc(XawLF))
 		|| (wc == _Xaw_atowc(XawESC)))
@@ -1145,12 +1142,13 @@ _XawTextGetSTRING(TextWidget ctx, XawTex
 	return ((char *)ws);
     }
     else {
-	s = (unsigned char *)_XawTextGetText(ctx, left, right);
+	unsigned char *s = (unsigned char *)_XawTextGetText(ctx, left, right);
 	/* only HT and NL control chars are allowed, strip out others */
-	n = (long)strlen((char *)s);
-	i = 0;
+	long n = (long)strlen((char *)s);
+	long i = 0, j;
+
 	for (j = 0; j < n; j++)	{
-	    c = s[j];
+	    unsigned char c = s[j];
 	    if (((c >= 0x20) && c <= 0x7f)
 		||(c >= 0xa0) || (c == XawTAB) || (c == XawLF)
 		|| (c == XawESC)) {
@@ -1222,14 +1220,15 @@ static Bool
 LineAndXYForPosition(TextWidget ctx, XawTextPosition pos,
 		     int *line, int *x, int *y)
 {
-    XawTextPosition linePos, endPos;
     Boolean visible;
-    int realW, realH;
 
     *line = 0;
     *x = ctx->text.left_margin;
     *y = ctx->text.margin.top + 1;
     if ((visible = IsPositionVisible(ctx, pos)) != False) {
+	XawTextPosition linePos, endPos;
+	int realW, realH;
+
 	*line = LineForPosition(ctx, pos);
 	*y = ctx->text.lt.info[*line].y;
 	linePos = ctx->text.lt.info[*line].position;
@@ -1252,12 +1251,11 @@ void
 _XawTextBuildLineTable(TextWidget ctx, XawTextPosition position,
 		       _XtBoolean force_rebuild)
 {
-    Dimension height = 0;
     int lines = 0;
     Cardinal size;
 
     if ((int)XtHeight(ctx) > VMargins(ctx)) {
-	height = (Dimension)(XtHeight(ctx) - VMargins(ctx));
+	Dimension height = (Dimension)(XtHeight(ctx) - VMargins(ctx));
 	lines = XawTextSinkMaxLines(ctx->text.sink, height);
     }
     size = (Cardinal)(sizeof(XawTextLineTableEntry) * (size_t)(lines + 1));
@@ -1385,7 +1383,7 @@ _BuildLineTable(TextWidget ctx, XawTextP
 	if (lt->textWidth != (Cardinal)width) {
 	    if (lt->textWidth > (Cardinal)width)
 		ctx->text.clear_to_eol = True;
-	    lt->textWidth = (unsigned)width;
+	    lt->textWidth = (Dimension)width;
 	}
 	y = (Position)(y + height);
 
@@ -1486,9 +1484,11 @@ GetWidestLine(TextWidget ctx)
 void
 _XawTextSetScrollBars(TextWidget ctx)
 {
-    float first, last, denom, widest;
+    float first;
 
     if (ctx->text.scroll_vert == XawtextScrollAlways) {
+	float last;
+
 	if (ctx->text.lastPos == 0)
 	    first = 0.0;
 	else
@@ -1504,7 +1504,10 @@ _XawTextSetScrollBars(TextWidget ctx)
     }
 
     if (ctx->text.scroll_horiz == XawtextScrollAlways) {
-	denom = (float)GetWidestLine(ctx);
+	unsigned value = GetWidestLine(ctx);
+	float denom = (float)value;
+	float widest;
+
 	if (denom <= 0)
 	    denom = (float)((int)XtWidth(ctx) - RHMargins(ctx));
 	if (denom <= 0)
@@ -1712,7 +1715,6 @@ XawTextScroll(TextWidget ctx, int vlines
     else {
 	update_from = lt->info[lt->lines - vlines].position;
 	update_to = lt->info[lt->lines].position;
-	y1 = lt->info[lt->lines - vlines].y;
 	y2 = lt->info[vlines].y;
 	DoCopyArea(ctx, ctx->text.r_margin.left, y2,
 		   (unsigned)vwidth, (unsigned)(lt->info[lt->lines].y - y2),
@@ -1762,10 +1764,11 @@ HJump(Widget w, XtPointer closure, XtPoi
 {
     TextWidget ctx = (TextWidget)closure;
     float percent = *(float *)callData;
+    unsigned value = GetWidestLine(ctx);
     long pixels;
 
     pixels = ctx->text.left_margin -
-	     (ctx->text.r_margin.left - (int)(percent * (float)GetWidestLine(ctx)));
+	     (ctx->text.r_margin.left - (int)(percent * (float)value));
 
     HScroll(w, (XtPointer)ctx, (XtPointer)pixels);
 }
@@ -1956,7 +1959,6 @@ TextConvertSelection(Widget w, Atom *sel
     TextWidget ctx = (TextWidget)w;
     Widget src = ctx->text.source;
     XawTextEditType edit_mode;
-    Arg args[1];
     XawTextSelectionSalt *salt = NULL;
     XawTextSelection *s;
 
@@ -1966,9 +1968,12 @@ TextConvertSelection(Widget w, Atom *sel
 
 	if (SrcCvtSel(src, selection, target, type, value, length, format))
 	    return (True);
+	else {
+	    Arg args[1];
 
-	XtSetArg(args[0], XtNeditType, &edit_mode);
-	XtGetValues(src, args, ONE);
+	    XtSetArg(args[0], XtNeditType, &edit_mode);
+	    XtGetValues(src, args, ONE);
+	}
 
 	XmuConvertStandardSelection(w, ctx->text.time, selection,
 				    target, type, (XPointer*)&std_targets,
@@ -2045,20 +2050,21 @@ TextConvertSelection(Widget w, Atom *sel
 	        *length = strlen((char *)*value);
 	}
 	else {
-	    *value = XtMalloc(((size_t)(salt->length + 1) * sizeof(unsigned char)));
+	    *value = XtMalloc((Cardinal)((size_t)(salt->length + 1) * sizeof(unsigned char)));
 	    strcpy ((char *)*value, salt->contents);
 	    *length = (unsigned long)salt->length;
 	}
 	/* Got *value,*length, now in COMPOUND_TEXT format. */
 	if (XawTextFormat(ctx, XawFmtWide) && *type == XA_STRING) {
-	    XTextProperty textprop;
 	    wchar_t **wlist;
 	    int count;
+	    XTextProperty textprop = {
+		.encoding = XA_COMPOUND_TEXT(d),
+		.value = (unsigned char *)*value,
+		.nitems = strlen(*value),
+		.format = 8
+	    };
 
-	    textprop.encoding = XA_COMPOUND_TEXT(d);
-	    textprop.value = (unsigned char *)*value;
-	    textprop.nitems = strlen(*value);
-	    textprop.format = 8;
 	    if (XwcTextPropertyToTextList(d, &textprop, &wlist, &count)
 		 < Success
 		|| count < 1) {
@@ -2075,14 +2081,15 @@ TextConvertSelection(Widget w, Atom *sel
 	    *length = textprop.nitems;
 	    XwcFreeStringList(wlist);
 	} else if (*type == XA_UTF8_STRING(d)) {
-	    XTextProperty textprop;
 	    char **list;
 	    int count;
+	    XTextProperty textprop = {
+		.encoding = XA_COMPOUND_TEXT(d),
+		.value = (unsigned char *)*value,
+		.nitems = strlen(*value),
+		.format = 8
+	    };
 
-	    textprop.encoding = XA_COMPOUND_TEXT(d);
-	    textprop.value = (unsigned char *)*value;
-	    textprop.nitems = strlen(*value);
-	    textprop.format = 8;
 	    if (Xutf8TextPropertyToTextList(d, &textprop, &list, &count)
 		 < Success
 		|| count < 1) {
@@ -2352,10 +2359,10 @@ _SetSelection(TextWidget ctx, XawTextPos
 
     if (left < right) {
 	Widget w = (Widget)ctx;
-	int buffer;
 
 	while (count) {
 	    Atom selection = selections[--count];
+	    int buffer;
 
 	    /*
 	     * If this is a cut buffer
@@ -2396,7 +2403,7 @@ _SetSelection(TextWidget ctx, XawTextPos
 		while (len > max_len) {
 		    len -= max_len;
 		    tptr += max_len;
-		    amount = Min (len, max_len);
+		    amount = (unsigned) Min (len, max_len);
 		    XChangeProperty(XtDisplay(w), RootWindow(XtDisplay(w), 0),
 				    selection, XA_STRING, 8, PropModeAppend,
 				    tptr, (int)amount);
@@ -2679,12 +2686,13 @@ OldDisplayText(Widget w, XawTextPosition
 
     TextWidget ctx = (TextWidget)w;
     int x, y, line;
-    XawTextPosition start, end, last, final;
+    XawTextPosition last;
     XmuScanline *scan;
     XmuSegment *seg;
     XmuArea *clip = NULL;
     Bool cleol = ctx->text.clear_to_eol;
     Bool has_selection = ctx->text.s.right > ctx->text.s.left;
+    XawTextPosition start;
 
     left = left < ctx->text.lt.top ? ctx->text.lt.top : left;
 
@@ -2697,7 +2705,10 @@ OldDisplayText(Widget w, XawTextPosition
     if (cleol)
 	clip = XmuCreateArea();
 
-    for (start = left; start < right && line < ctx->text.lt.lines; line++) {
+    for (start = left;
+	 start < right && line < ctx->text.lt.lines; line++) {
+	XawTextPosition end, final;
+
 	if ((end = ctx->text.lt.info[line + 1].position) > right)
 	    end = right;
 
@@ -2756,10 +2767,11 @@ DisplayText(Widget w, XawTextPosition le
 
     TextWidget ctx = (TextWidget)w;
     int y, line;
-    XawTextPosition from, to, lastPos;
+    XawTextPosition lastPos;
     Bool cleol = ctx->text.clear_to_eol;
     Bool has_selection = ctx->text.s.right > ctx->text.s.left;
     XawTextPaintList *paint_list;
+    XawTextPosition from;
 
     left = left < ctx->text.lt.top ? ctx->text.lt.top : left;
 
@@ -2773,8 +2785,11 @@ DisplayText(Widget w, XawTextPosition le
 
     paint_list = ((TextSinkObject)ctx->text.sink)->text_sink.paint;
 
-    for (from = left; from < right && line < ctx->text.lt.lines; line++) {
-	if ((to = ctx->text.lt.info[line + 1].position) > right)
+    for (from = left;
+	 from < right && line < ctx->text.lt.lines; line++) {
+	XawTextPosition to = ctx->text.lt.info[line + 1].position;
+
+	if (to > right)
 	    to = right;
 
 	if (to > lastPos)
@@ -2834,7 +2849,7 @@ static void
 DoSelection(TextWidget ctx, XawTextPosition pos, Time time, Bool motion)
 {
     XawTextPosition newLeft, newRight;
-    XawTextSelectType newType, *sarray;
+    XawTextSelectType newType;
     Widget src = ctx->text.source;
 
     if (motion)
@@ -2842,7 +2857,8 @@ DoSelection(TextWidget ctx, XawTextPosit
     else {
 	if ((labs((long) time - (long) ctx->text.lasttime) < MULTI_CLICK_TIME)
 	    && (pos >= ctx->text.s.left && pos <= ctx->text.s.right)) {
-	    sarray = ctx->text.sarray;
+	    XawTextSelectType *sarray = ctx->text.sarray;
+
 	    for (; *sarray != XawselectNull && *sarray != ctx->text.s.type;
 		 sarray++)
 		;
@@ -3062,7 +3078,7 @@ _XawTextClearAndCenterDisplay(TextWidget
 	left_margin == ctx->text.left_margin) {
 	int insert_line = LineForPosition(ctx, ctx->text.insertPos);
 	int scroll_by = insert_line - (ctx->text.lt.lines >> 1);
-	Boolean clear_to_eol = ctx->text.clear_to_eol;
+	Boolean clear_to_eol;
 
 	XawTextScroll(ctx, scroll_by, 0);
 	SinkClearToBG(ctx->text.sink, 0, 0, XtWidth(ctx), XtHeight(ctx));
@@ -3348,11 +3364,11 @@ CountLines(TextWidget ctx, XawTextPositi
     if (ctx->text.wrap == XawtextWrapNever || left >= right)
 	return (1);
     else {
-	XawTextPosition tmp;
 	int dim, lines = 0, wwidth = GetMaxTextWidth(ctx);
 
 	while (left < right) {
-	    tmp = left;
+	    XawTextPosition tmp = left;
+
 	    XawTextSinkFindPosition(ctx->text.sink, left,
 				    ctx->text.left_margin,
 				    wwidth, ctx->text.wrap == XawtextWrapWord,

Reply via email to