INSTALL                   |   11 
 MANIFEST                  |    2 
 Makefile.in               |    9 
 Tekproc.c                 |   42 
 aclocal.m4                |   38 
 button.c                  |  113 -
 cachedGCs.c               |   25 
 charproc.c                |   94 -
 config.guess              |   15 
 config.sub                |   16 
 configure                 | 3862 +++++++++++++++++++++++-----------------------
 configure.in              |    7 
 cursor.c                  |   32 
 data.c                    |    6 
 data.h                    |    8 
 doublechr.c               |   13 
 fontutils.c               |   49 
 graphics.c                |   29 
 graphics.h                |   42 
 graphics_regis.c          |  146 +
 graphics_regis.h          |    8 
 graphics_sixel.c          |  187 +-
 graphics_sixel.h          |    8 
 input.c                   |   31 
 keysym2ucs.c              |    6 
 main.c                    |   23 
 menu.c                    |    6 
 misc.c                    |  152 +
 package/debian/changelog  |    6 
 package/freebsd/Makefile  |    2 
 package/xterm.spec        |    4 
 precompose.c              |    8 
 print.c                   |   26 
 ptydata.c                 |    7 
 ptyx.h                    |    8 
 scrollback.c              |    9 
 scrollbar.c               |   17 
 svg.c                     |    8 
 termcap                   |   14 
 terminfo                  |    9 
 trace.c                   |   49 
 trace.h                   |   12 
 unicode/README            |   13 
 unicode/convmap.pl        |    9 
 unicode/keysym.map        |    3 
 unicode/precompose.c.tail |    6 
 util.c                    |  214 +-
 version.c                 |    9 
 version.h                 |    6 
 wcwidth.c                 |   22 
 xstrings.c                |   24 
 xterm.h                   |    3 
 xterm.log.html            |  103 +
 xterm.man                 |   94 -
 xtermcap.c                |   24 
 xtermcfg.hin              |   19 
 56 files changed, 3030 insertions(+), 2678 deletions(-)

New commits:
commit c9cb401305a4c9866c5462a724410472c4e6db29
Author: Sven Joachim <svenj...@gmx.de>
Date:   Mon Jun 6 17:27:21 2016 +0200

    Imported Upstream version 325

diff --git a/INSTALL b/INSTALL
index f049a7c..e2f03b4 100644
--- a/INSTALL
+++ b/INSTALL
@@ -1,6 +1,6 @@
--- $XTermId: INSTALL,v 1.158 2015/08/10 23:38:32 tom Exp $
+-- $XTermId: INSTALL,v 1.159 2016/05/28 18:39:26 tom Exp $
 -------------------------------------------------------------------------------
--- Copyright 1997-2014,2015 by Thomas E. Dickey
+-- Copyright 1997-2015,2016 by Thomas E. Dickey
 --
 --                         All Rights Reserved
 --
@@ -777,6 +777,13 @@ The options (in alphabetic order):
        Activate the --disable-leaks option, and ensure that "-g" is added to
        CFLAGS.
 
+  --without-xinerama      do not use Xinerama extension for multiple screens
+
+       Xinerama is an X server extension that allows multiple physical
+       screens to behave as a single screen.  If you do not need the feature
+       (or do not want the extra library dependency), use this option to
+       suppress it.
+
   --with-xpm=DIR          use Xpm library for colored icon, may specify path
 
        Use Xpm library to show colored icon in window decoration, e.g.,
diff --git a/MANIFEST b/MANIFEST
index 818655f..98e5f3b 100644
--- a/MANIFEST
+++ b/MANIFEST
@@ -1,4 +1,4 @@
-MANIFEST for xterm-324, version xterm-324
+MANIFEST for xterm-325, version xterm-325
 
--------------------------------------------------------------------------------
 MANIFEST                        this file
 256colres.h                     resource-definitions for 256-color mode
diff --git a/Makefile.in b/Makefile.in
index 5064a12..17b273d 100644
--- a/Makefile.in
+++ b/Makefile.in
@@ -1,8 +1,8 @@
-## $XTermId: Makefile.in,v 1.234 2015/02/12 09:31:30 tom Exp $
+## $XTermId: Makefile.in,v 1.235 2016/05/15 16:45:53 tom Exp $
 # -----------------------------------------------------------------------------
 # this file is part of xterm
 #
-# Copyright 1997-2014,2015 by Thomas E. Dickey
+# Copyright 1997-2015,2016 by Thomas E. Dickey
 #
 #                         All Rights Reserved
 #
@@ -52,6 +52,7 @@ ETAGS         = @ETAGS@
 LN_S           = @LN_S@
 RM              = rm -f
 LINT           = @LINT@
+LINT_OPTS      = @LINT_OPTS@
 
 INSTALL                = @INSTALL@
 INSTALL_PROGRAM        = @INSTALL_PROGRAM@
@@ -563,8 +564,8 @@ koi8rxterm.ps : koi8rxterm.$(manext)
 koi8rxterm.txt : koi8rxterm.$(manext)
 
################################################################################
 lint :
-       $(LINT) $(CPPFLAGS) $(SRCS1)
-       $(LINT) $(CPPFLAGS) $(SRCS2)
+       $(LINT) $(LINT_OPTS) $(CPPFLAGS) $(SRCS1)
+       $(LINT) $(LINT_OPTS) $(CPPFLAGS) $(SRCS2)
 
 tags :
        $(CTAGS) $(SRCS) $(HDRS)
diff --git a/Tekproc.c b/Tekproc.c
index 6f8da47..a640643 100644
--- a/Tekproc.c
+++ b/Tekproc.c
@@ -1,7 +1,7 @@
-/* $XTermId: Tekproc.c,v 1.198 2014/07/12 22:55:02 tom Exp $ */
+/* $XTermId: Tekproc.c,v 1.199 2016/05/16 09:14:46 tom Exp $ */
 
 /*
- * Copyright 2001-2012,2014 by Thomas E. Dickey
+ * Copyright 2001-2014,2016 by Thomas E. Dickey
  *
  *                         All Rights Reserved
  *
@@ -416,12 +416,11 @@ Tekparse(TekWidget tw)
     TScreen *screen = TScreenOf(xw);
     TekScreen *tekscr = TekScreenOf(tw);
     int x, y;
-    IChar c = 0;
     IChar ch;
     int nextstate;
 
     for (;;) {
-       c = input();
+       IChar c = input();
        /*
         * The parsing tables all have 256 entries.  If we're supporting
         * wide characters, we handle them by treating them the same as
@@ -1036,12 +1035,15 @@ TekPage(TekWidget tw)
 static int
 getpoint(TekWidget tw)
 {
-    int c, x, y, e, lo_y = 0;
+    int x, y, e, lo_y = 0;
     TekScreen *tekscr = TekScreenOf(tw);
 
     x = tekscr->cur.x;
     y = tekscr->cur.y;
+
     for (;;) {
+       int c;
+
        if ((c = (int) input()) < ' ') {        /* control character */
            unput(c);
            return (0);
@@ -1083,16 +1085,12 @@ TCursorBack(TekWidget tw)
 {
     TekScreen *tekscr = TekScreenOf(tw);
     const struct Tek_Char *t;
-    int x, l;
-
-    x = (tekscr->cur_X -=
-        (t = &TekChar[tekscr->cur.fontsize])->hsize
-       );
+    int x = (tekscr->cur_X -= (t = &TekChar[tekscr->cur.fontsize])->hsize);
 
     if (((tekscr->margin == MARGIN1) && (x < 0))
        || ((tekscr->margin == MARGIN2) && (x < TEKWIDTH / 2))) {
-       if ((l = (tekscr->cur_Y + (t->vsize - 1)) / t->vsize + 1) >=
-           t->nlines) {
+       int l = ((tekscr->cur_Y + (t->vsize - 1)) / t->vsize + 1);
+       if (l >= t->nlines) {
            tekscr->margin = !tekscr->margin;
            l = 0;
        }
@@ -1105,14 +1103,11 @@ static void
 TCursorForward(TekWidget tw)
 {
     TekScreen *tekscr = TekScreenOf(tw);
-    const struct Tek_Char *t;
-    int l;
+    const struct Tek_Char *t = &TekChar[tekscr->cur.fontsize];
 
-    if ((tekscr->cur_X +=
-        (t = &TekChar[tekscr->cur.fontsize])->hsize
-       ) > TEKWIDTH
-       ) {
-       if ((l = tekscr->cur_Y / t->vsize - 1) < 0) {
+    if ((tekscr->cur_X += t->hsize) > TEKWIDTH) {
+       int l = (tekscr->cur_Y / t->vsize - 1);
+       if (l < 0) {
            tekscr->margin = !tekscr->margin;
            l = t->nlines - 1;
        }
@@ -1733,7 +1728,6 @@ void
 ChangeTekColors(TekWidget tw, TScreen *screen, ScrnColors * pNew)
 {
     TekScreen *tekscr = TekScreenOf(tw);
-    int i;
     XGCValues gcv;
 
     if (COLOR_DEFINED(pNew, TEK_FG)) {
@@ -1753,6 +1747,8 @@ ChangeTekColors(TekWidget tw, TScreen *screen, ScrnColors 
* pNew)
     }
 
     if (tw) {
+       int i;
+
        XSetForeground(XtDisplay(tw), tekscr->TnormalGC,
                       T_COLOR(screen, TEK_FG));
        XSetBackground(XtDisplay(tw), tekscr->TnormalGC,
@@ -1785,7 +1781,6 @@ TekReverseVideo(TekWidget tw)
     XtermWidget xw = term;
     TScreen *screen = TScreenOf(xw);
     TekScreen *tekscr = TekScreenOf(tw);
-    int i;
     Pixel tmp;
     XGCValues gcv;
 
@@ -1794,6 +1789,8 @@ TekReverseVideo(TekWidget tw)
     T_COLOR(screen, TEK_CURSOR) = T_COLOR(screen, TEK_FG);
 
     if (tw) {
+       int i;
+
        XSetForeground(XtDisplay(tw), tekscr->TnormalGC, T_COLOR(screen, 
TEK_FG));
        XSetBackground(XtDisplay(tw), tekscr->TnormalGC, T_COLOR(screen, 
TEK_BG));
 
@@ -1903,7 +1900,6 @@ TekCopy(TekWidget tw)
 
        TekLink *Tp;
        char buf[TIMESTAMP_LEN + 10];
-       char initbuf[5];
        int tekcopyfd;
 
        timestamp_filename(buf, "COPY");
@@ -1921,6 +1917,8 @@ TekCopy(TekWidget tw)
 
        tekcopyfd = open_userfile(screen->uid, screen->gid, buf, False);
        if (tekcopyfd >= 0) {
+           char initbuf[5];
+
            sprintf(initbuf, "%c%c%c%c",
                    ANSI_ESC, (char) (tekscr->page.fontsize + '8'),
                    ANSI_ESC, (char) (tekscr->page.linetype + '`'));
diff --git a/aclocal.m4 b/aclocal.m4
index 9ac69df..1aa0c3e 100644
--- a/aclocal.m4
+++ b/aclocal.m4
@@ -1,4 +1,4 @@
-dnl $XTermId: aclocal.m4,v 1.408 2016/03/11 00:54:28 tom Exp $
+dnl $XTermId: aclocal.m4,v 1.412 2016/05/28 18:42:52 tom Exp $
 dnl
 dnl ---------------------------------------------------------------------------
 dnl
@@ -254,11 +254,15 @@ ifelse([$3],,[    :]dnl
 ])dnl
 ])])dnl
 dnl ---------------------------------------------------------------------------
-dnl CF_CC_ENV_FLAGS version: 2 updated: 2015/04/12 15:39:00
+dnl CF_CC_ENV_FLAGS version: 3 updated: 2016/05/21 18:10:17
 dnl ---------------
 dnl Check for user's environment-breakage by stuffing CFLAGS/CPPFLAGS content
 dnl into CC.  This will not help with broken scripts that wrap the compiler 
with
 dnl options, but eliminates a more common category of user confusion.
+dnl
+dnl Caveat: this also disallows blanks in the pathname for the compiler, but
+dnl the nuisance of having inconsistent settings for compiler and preprocessor
+dnl outweighs that limitation.
 AC_DEFUN([CF_CC_ENV_FLAGS],
 [
 # This should have been defined by AC_PROG_CC
@@ -266,13 +270,16 @@ AC_DEFUN([CF_CC_ENV_FLAGS],
 
 AC_MSG_CHECKING(\$CC variable)
 case "$CC" in
-(*[[\ \        ]]-[[IUD]]*)
+(*[[\ \        ]]-*)
        AC_MSG_RESULT(broken)
        AC_MSG_WARN(your environment misuses the CC variable to hold 
CFLAGS/CPPFLAGS options)
        # humor him...
-       cf_flags=`echo "$CC" | sed -e 's/^[[^   ]]*[[   ]]//'`
+       cf_flags=`echo "$CC" | sed -e 's/^[[^   ]]*[[   ]][[    ]]*//'`
        CC=`echo "$CC" | sed -e 's/[[   ]].*//'`
        CF_ADD_CFLAGS($cf_flags)
+       CF_VERBOSE(resulting CC: '$CC')
+       CF_VERBOSE(resulting CFLAGS: '$CFLAGS')
+       CF_VERBOSE(resulting CPPFLAGS: '$CPPFLAGS')
        ;;
 (*)
        AC_MSG_RESULT(ok)
@@ -1893,6 +1900,14 @@ AC_SUBST(GROFF_NOTE)
 AC_SUBST(NROFF_NOTE)
 ])dnl
 dnl ---------------------------------------------------------------------------
+dnl CF_PROG_LINT version: 3 updated: 2016/05/22 15:25:54
+dnl ------------
+AC_DEFUN([CF_PROG_LINT],
+[
+AC_CHECK_PROGS(LINT, lint cppcheck splint)
+AC_SUBST(LINT_OPTS)
+])dnl
+dnl ---------------------------------------------------------------------------
 dnl CF_REGEX version: 12 updated: 2015/04/18 08:56:57
 dnl --------
 dnl Attempt to determine if we've got one of the flavors of regular-expression
@@ -3769,6 +3784,21 @@ CF_NO_LEAKS_OPTION(valgrind,
        [USE_VALGRIND])
 ])dnl
 dnl ---------------------------------------------------------------------------
+dnl CF_WITH_XINERAMA version: 1 updated: 2016/05/28 14:41:12
+dnl ----------------
+AC_DEFUN([CF_WITH_XINERAMA],
+[
+AC_MSG_CHECKING(if you want to use the Xinerama extension)
+AC_ARG_WITH(xinerama,
+[  --without-xinerama      do not use Xinerama extension for multiscreen 
support],
+       [cf_with_xinerama="$withval"],
+       [cf_with_xinerama=yes])
+AC_MSG_RESULT($cf_with_xinerama)
+if test "$cf_with_xinerama" = yes; then
+       CF_XINERAMA
+fi
+])dnl
+dnl ---------------------------------------------------------------------------
 dnl CF_WITH_XPM version: 3 updated: 2012/10/04 06:57:36
 dnl -----------
 dnl Test for Xpm library, update compiler/loader flags if it is wanted and
diff --git a/button.c b/button.c
index 630e212..1532d3d 100644
--- a/button.c
+++ b/button.c
@@ -1,4 +1,4 @@
-/* $XTermId: button.c,v 1.501 2016/03/06 19:16:35 tom Exp $ */
+/* $XTermId: button.c,v 1.505 2016/05/30 19:42:44 tom Exp $ */
 
 /*
  * Copyright 1999-2015,2016 by Thomas E. Dickey
@@ -562,7 +562,6 @@ InitLocatorFilter(XtermWidget xw)
     int row = 0, col = 0;
     Bool oor = 0;
     Bool ret;
-    int state;
 
     ret = XQueryPointer(screen->display, VWindow(screen),
                        &root, &child, &rx, &ry, &x, &y, &mask);
@@ -643,6 +642,8 @@ InitLocatorFilter(XtermWidget xw)
        (col > screen->loc_filter_right) ||
        (row < screen->loc_filter_top) ||
        (row > screen->loc_filter_bottom)) {
+       int state;
+
        /* Pointer is already outside the rectangle - report immediately */
        ButtonState(state, mask);
 
@@ -679,7 +680,6 @@ CheckLocatorPosition(XtermWidget xw, XButtonEvent *event)
     TScreen *screen = TScreenOf(xw);
     int row, col;
     Bool oor;
-    int state;
 
     LocatorCoords(row, col, event->x, event->y, oor);
 
@@ -703,6 +703,8 @@ CheckLocatorPosition(XtermWidget xw, XButtonEvent *event)
            reply.a_nparam = 1;
            reply.a_param[0] = 0;       /* Event - 0 = locator unavailable */
        } else {
+           int state;
+
            ButtonState(state, event->state);
 
            reply.a_nparam = 4;
@@ -838,10 +840,12 @@ rowOnCurrentLine(TScreen *screen,
                 int *deltap)   /* must be XButtonEvent */
 {
     int result = 1;
-    int l1, l2;
 
     *deltap = 0;
+
     if (line != screen->cur_row) {
+       int l1, l2;
+
        if (line < screen->cur_row)
            l1 = line, l2 = screen->cur_row;
        else
@@ -947,12 +951,13 @@ DiredButton(Widget w,
 
     if ((xw = getXtermWidget(w)) != 0) {
        TScreen *screen = TScreenOf(xw);
-       Char Line[6];
-       unsigned line, col;
 
        if (IsBtnEvent(event)
            && (event->xbutton.y >= screen->border)
            && (event->xbutton.x >= OriginX(screen))) {
+           Char Line[6];
+           unsigned line, col;
+
            line = (unsigned) ((event->xbutton.y - screen->border)
                               / FontHeight(screen));
            col = (unsigned) ((event->xbutton.x - OriginX(screen))
@@ -1036,14 +1041,16 @@ ViButton(Widget w,
     if ((xw = getXtermWidget(w)) != 0) {
        TScreen *screen = TScreenOf(xw);
        int pty = screen->respond;
-       Char Line[6];
-       int line;
 
        if (IsBtnEvent(event)) {
+           int line;
 
            line = screen->cur_row -
                ((event->xbutton.y - screen->border) / FontHeight(screen));
+
            if (line != 0) {
+               Char Line[6];
+
                Line[0] = ANSI_ESC;     /* force an exit from insert-mode */
                v_write(pty, Line, 1);
 
@@ -1229,8 +1236,6 @@ UTF8toLatin1(TScreen *screen, Char *s, unsigned long len, 
unsigned long *result)
 
     Cardinal offset = 0;
 
-    const Char *p;
-
     if (len != 0) {
        PtyData data;
 
@@ -1265,6 +1270,8 @@ UTF8toLatin1(TScreen *screen, Char *s, unsigned long len, 
unsigned long *result)
             * whatever the user wants).
             */
            if (fails) {
+               const Char *p;
+
                for (p = (const Char *) screen->default_string; *p != '\0'; 
++p) {
                    AddChar(&buffer, &used, offset, *p);
                }
@@ -1524,13 +1531,12 @@ static Atom *
 _SelectionTargets(Widget w)
 {
     Atom *result;
-    TScreen *screen;
     XtermWidget xw;
 
     if ((xw = getXtermWidget(w)) == 0) {
        result = NULL;
     } else {
-       screen = TScreenOf(xw);
+       TScreen *screen = TScreenOf(xw);
 
 #if OPT_WIDE_CHARS
        if (screen->wide_chars) {
@@ -1726,13 +1732,14 @@ xtermGetSelection(Widget w,
        }
 #endif
     } else {
-       struct _SelectionList *list;
 
        if (targets == NULL || targets[0] == None) {
            targets = _SelectionTargets(w);
        }
 
        if (targets != 0) {
+           struct _SelectionList *list;
+
            target = targets[0];
 
            if (targets[1] == None) {   /* last target in list */
@@ -1840,11 +1847,10 @@ ToNational(TScreen *screen, Char *buffer, unsigned 
*length)
 {
     int gsetL = screen->gsets[screen->curgl];
     int gsetR = screen->gsets[screen->curgr];
-    unsigned chr, out, gl, gr;
-    Char *p;
 
 #if OPT_WIDE_CHARS
     if ((screen->utf8_nrc_mode | screen->utf8_mode) != uFalse) {
+       Char *p;
        PtyData *data = TypeXtMallocX(PtyData, *length);
 
        memset(data, 0, sizeof(*data));
@@ -1853,6 +1859,8 @@ ToNational(TScreen *screen, Char *buffer, unsigned 
*length)
        memcpy(data->buffer, buffer, (size_t) *length);
        p = buffer;
        while (data->next < data->last) {
+           unsigned chr, out, gl, gr;
+
            if (!decodeUtf8(screen, data)) {
                data->utf_size = 1;
                data->utf_data = data->next[0];
@@ -1872,9 +1880,12 @@ ToNational(TScreen *screen, Char *buffer, unsigned 
*length)
     } else
 #endif
     {
+       Char *p;
+
        for (p = buffer; (int) (p - buffer) < (int) *length; ++p) {
-           chr = *p;
-           out = chr;
+           unsigned gl, gr;
+           unsigned chr = *p;
+           unsigned out = chr;
            if ((gl = xtermCharSetIn(screen, chr, gsetL)) != chr) {
                out = gl;
            } else if ((gr = xtermCharSetIn(screen, chr, gsetR)) != chr) {
@@ -1978,7 +1989,9 @@ _WriteSelectionData(XtermWidget xw, Char *line, size_t 
length)
     /* Doing this one line at a time may no longer be necessary
        because v_write has been re-written. */
 
+#if OPT_PASTE64
     TScreen *screen = TScreenOf(xw);
+#endif
     Char *lag, *end;
 
     /* in the VMS version, if tt_pasting isn't set to True then qio
@@ -2049,11 +2062,11 @@ removeControls(XtermWidget xw, char *value)
 {
     TScreen *screen = TScreenOf(xw);
     size_t dst = 0;
-    size_t src = 0;
 
     if (screen->allowPasteControls) {
        dst = strlen(value);
     } else {
+       size_t src = 0;
        while ((value[dst] = value[src]) != '\0') {
            int ch = CharOf(value[src++]);
            if (ch < 32) {
@@ -2098,7 +2111,7 @@ SelectionReceived(Widget w,
                  int *format)
 {
     char **text_list = NULL;
-    int text_list_count;
+    int text_list_count = 0;
     XTextProperty text_prop;
     TScreen *screen;
     Display *dpy;
@@ -2479,9 +2492,7 @@ EndExtend(XtermWidget xw,
          Bool use_cursor_loc)
 {
     CELL cell;
-    unsigned count;
     TScreen *screen = TScreenOf(xw);
-    Char line[64];
 
     if (use_cursor_loc) {
        cell = screen->cursorp;
@@ -2489,11 +2500,15 @@ EndExtend(XtermWidget xw,
        PointToCELL(screen, event->xbutton.y, event->xbutton.x, &cell);
     }
     ExtendExtend(xw, &cell);
+
     screen->lastButtonUpTime = event->xbutton.time;
     screen->lastButton = event->xbutton.button;
+
     if (!isSameCELL(&(screen->startSel), &(screen->endSel))) {
        if (screen->replyToEmacs) {
-           count = 0;
+           Char line[64];
+           unsigned count = 0;
+
            if (screen->control_eight_bits) {
                line[count++] = ANSI_CSI;
            } else {
@@ -2863,10 +2878,10 @@ static int
 LastTextCol(TScreen *screen, CLineData *ld, int row)
 {
     int i = -1;
-    const IAttr *ch;
 
     if (ld != 0) {
        if (okScrnRow(screen, row)) {
+           const IAttr *ch;
            for (i = screen->max_col,
                 ch = ld->attribs + i;
                 i >= 0 && !(*ch & CHARDRAWN);
@@ -3243,8 +3258,6 @@ do_select_regex(TScreen *screen, CELL *startc, CELL *endc)
     char *expr = screen->selectExpr[inx];
     regex_t preg;
     regmatch_t match;
-    char *search;
-    int *indexed;
 
     TRACE(("Select_REGEX[%d]:%s\n", inx, NonNull(expr)));
     if (okPosition(screen, &ld, startc) && expr != 0) {
@@ -3253,11 +3266,13 @@ do_select_regex(TScreen *screen, CELL *startc, CELL 
*endc)
            int lastRow = lastRowOfLine(screen, firstRow);
            unsigned size = lengthOfLines(screen, firstRow, lastRow);
            int actual = cellToColumn(screen, startc);
+           int *indexed;
 
            TRACE(("regcomp ok rows %d..%d bytes %d\n",
                   firstRow, lastRow, size));
 
            if ((indexed = TypeCallocN(int, size + 1)) != 0) {
+               char *search;
                if ((search = make_indexed_text(screen,
                                                firstRow,
                                                size,
@@ -3355,7 +3370,6 @@ ComputeSelect(XtermWidget xw,
 {
     TScreen *screen = TScreenOf(xw);
 
-    int length;
     int cclass;
     CELL first = *startc;
     CELL last = *endc;
@@ -3429,7 +3443,7 @@ ComputeSelect(XtermWidget xw,
 #endif
 
        if (okPosition(screen, &(ld.endSel), &(screen->endSel))) {
-           length = LastTextCol(screen, ld.endSel, screen->endSel.row);
+           int length = LastTextCol(screen, ld.endSel, screen->endSel.row);
            cclass = CClassOf(endSel);
            do {
                ++screen->endSel.col;
@@ -3608,7 +3622,6 @@ ReHiliteText(XtermWidget xw,
             CELL *lastp)
 {
     TScreen *screen = TScreenOf(xw);
-    int i;
     CELL first = *firstp;
     CELL last = *lastp;
 
@@ -3630,6 +3643,7 @@ ReHiliteText(XtermWidget xw,
        return;
 
     if (!isSameRow(&first, &last)) {   /* do multiple rows */
+       int i;
        if ((i = screen->max_col - first.col + 1) > 0) {        /* first row */
            ScrnRefresh(xw, first.row, first.col, 1, i, True);
        }
@@ -3656,13 +3670,13 @@ SaltTextAway(XtermWidget xw,
     TScreen *screen = TScreenOf(xw);
     int i, j = 0;
     int eol;
-    int tmp;
     Char *line;
     Char *lp;
     CELL first = *cellc;
     CELL last = *cell;
 
     if (isSameRow(&first, &last) && first.col > last.col) {
+       int tmp;
        EXCHANGE(first.col, last.col, tmp);
     }
 
@@ -3983,9 +3997,7 @@ ConvertSelection(Widget w,
     }
 
     if (*target == XA_TARGETS(dpy)) {
-       Atom *allocP;
        Atom *targetP;
-       Atom *std_targets;
        XPointer std_return = 0;
        unsigned long std_length;
 
@@ -3993,6 +4005,8 @@ ConvertSelection(Widget w,
                                        target, type, &std_return,
                                        &std_length, format)) {
            Atom *my_targets = _SelectionTargets(w);
+           Atom *allocP;
+           Atom *std_targets;
 
            TRACE(("XmuConvertStandardSelection - success\n"));
            std_targets = (Atom *) (void *) (std_return);
@@ -4341,7 +4355,6 @@ SaveText(TScreen *screen,
 {
     LineData *ld;
     int i = 0;
-    unsigned c;
     Char *result = lp;
 #if OPT_WIDE_CHARS
     unsigned previous = 0;
@@ -4358,6 +4371,7 @@ SaveText(TScreen *screen,
 #endif
     *eol = !LineTstWrapped(ld);
     for (i = scol; i < ecol; i++) {
+       unsigned c;
        assert(i < (int) ld->lineSize);
        c = E2A(ld->charData[i]);
 #if OPT_WIDE_CHARS
@@ -4371,10 +4385,9 @@ SaveText(TScreen *screen,
                   are in memory attached to the HIDDEN_CHAR */
                if_OPT_WIDE_CHARS(screen, {
                    if ((screen->utf8_nrc_mode | screen->utf8_mode) != uFalse) {
-                       unsigned ch;
                        size_t off;
                        for_each_combData(off, ld) {
-                           ch = ld->combData[off][i];
+                           unsigned ch = ld->combData[off][i];
                            if (ch == 0)
                                break;
                            lp = convertToUTF8(lp, ch);
@@ -4390,10 +4403,9 @@ SaveText(TScreen *screen,
        if ((screen->utf8_nrc_mode | screen->utf8_mode) != uFalse) {
            lp = convertToUTF8(lp, (c != 0) ? c : ' ');
            if_OPT_WIDE_CHARS(screen, {
-               unsigned ch;
                size_t off;
                for_each_combData(off, ld) {
-                   ch = ld->combData[off][i];
+                   unsigned ch = ld->combData[off][i];
                    if (ch == 0)
                        break;
                    lp = convertToUTF8(lp, ch);
@@ -4827,13 +4839,12 @@ static char **
 tokenizeFormat(String format)
 {
     char **result = 0;
-    int pass;
     int argc;
-    int n;
 
     format = x_skip_blanks(format);
     if (*format != '\0') {
        char *blob = x_strdup(format);
+       int pass;
 
        for (pass = 0; pass < 2; ++pass) {
            int used = 0;
@@ -4841,6 +4852,7 @@ tokenizeFormat(String format)
            int escaped = 0;
            int squoted = 0;
            int dquoted = 0;
+           int n;
 
            argc = 0;
            for (n = 0; format[n] != '\0'; ++n) {
@@ -4998,9 +5010,10 @@ expandFormat(XtermWidget xw,
            size_t need = 0;
 
            for (n = 0; format[n] != '\0'; ++n) {
-               char *value = 0;
 
                if (format[n] == '%') {
+                   char *value = 0;
+
                    switch (format[++n]) {
                    case '%':
                        if (pass) {
@@ -5089,10 +5102,10 @@ expandFormat(XtermWidget xw,
 static void
 executeCommand(pid_t pid, char **argv)
 {
-    char *child_cwd = ProcGetCWD(pid);
-
     (void) pid;
     if (argv != 0 && argv[0] != 0) {
+       char *child_cwd = ProcGetCWD(pid);
+
        if (fork() == 0) {
            if (child_cwd) {
                IGNORE_RC(chdir(child_cwd));    /* We don't care if this fails 
*/
@@ -5106,11 +5119,10 @@ executeCommand(pid_t pid, char **argv)
 static void
 freeArgv(char *blob, char **argv)
 {
-    int n;
-
     if (blob) {
        free(blob);
        if (argv) {
+           int n;
            for (n = 0; argv[n]; ++n)
                free(argv[n]);
            free(argv);
@@ -5125,11 +5137,11 @@ reallyExecFormatted(Widget w, char *format, char *data, 
CELL *start, CELL *finis
 
     if ((xw = getXtermWidget(w)) != 0) {
        char **argv;
-       char *blob;
-       int argc;
 
        if ((argv = tokenizeFormat(format)) != 0) {
-           blob = argv[0];
+           char *blob = argv[0];
+           int argc;
+
            for (argc = 0; argv[argc] != 0; ++argc) {
                argv[argc] = expandFormat(xw, argv[argc], data, start, finish);
            }
@@ -5169,13 +5181,13 @@ HandleExecSelectable(Widget w,
            CELL start, finish;
            char *data;
            char **argv;
-           char *blob;
-           int argc;
 
            data = getDataFromScreen(xw, params[1], &start, &finish);
            if (data != 0) {
                if ((argv = tokenizeFormat(params[0])) != 0) {
-                   blob = argv[0];
+                   char *blob = argv[0];
+                   int argc;
+
                    for (argc = 0; argv[argc] != 0; ++argc) {
                        argv[argc] = expandFormat(xw, argv[argc], data,
                                                  &start, &finish);
@@ -5235,11 +5247,10 @@ HandleInsertSelectable(Widget w,
            CELL start, finish;
            char *data;
            char *temp = x_strdup(params[0]);
-           char *exps;
 
            data = getDataFromScreen(xw, params[1], &start, &finish);
            if (data != 0) {
-               exps = expandFormat(xw, temp, data, &start, &finish);
+               char *exps = expandFormat(xw, temp, data, &start, &finish);
                if (exps != 0) {
                    unparseputs(xw, exps);
                    unparse_end(xw);
diff --git a/cachedGCs.c b/cachedGCs.c
index 2b346b7..84b74f2 100644
--- a/cachedGCs.c
+++ b/cachedGCs.c
@@ -1,7 +1,7 @@
-/* $XTermId: cachedGCs.c,v 1.63 2014/12/18 21:56:08 tom Exp $ */
+/* $XTermId: cachedGCs.c,v 1.64 2016/05/16 09:26:15 tom Exp $ */
 
 /*
- * Copyright 2007-2011,2014 by Thomas E. Dickey
+ * Copyright 2007-2014,2016 by Thomas E. Dickey
  *
  *                         All Rights Reserved
  *
@@ -527,12 +527,12 @@ setCgsFont(XtermWidget xw, VTwin *cgsWin, CgsEnum cgsId, 
XTermFonts * font)
 void
 clrCgsFonts(XtermWidget xw, VTwin *cgsWin, XTermFonts * font)
 {
-    CgsCache *me;
-    int j, k;
-
     if (HaveFont(font)) {
+       int j;
        for_each_gc(j) {
+           CgsCache *me;
            if ((me = myCache(xw, cgsWin, (CgsEnum) j)) != 0) {
+               int k;
                for (k = 0; k < DEPTH; ++k) {
                    if (SameFont(LIST(k).font, font)) {
                        TRACE2(("clrCgsFonts %s gc %p(%d) %s\n",
@@ -565,13 +565,13 @@ getCgsGC(XtermWidget xw, VTwin *cgsWin, CgsEnum cgsId)
 {
     CgsCache *me;
     GC result = 0;
-    int j, k;
-    unsigned used = 0;
 
     if ((me = myCache(xw, cgsWin, cgsId)) != 0) {
        TRACE2(("getCgsGC(%s, %s)\n",
                traceVTwin(xw, cgsWin), traceCgsEnum(cgsId)));
        if (me->mask != 0) {
+           int j;
+           unsigned used = 0;
 
            /* fill in the unchanged fields */
            if (!(me->mask & GC_CSet))
@@ -622,6 +622,7 @@ getCgsGC(XtermWidget xw, VTwin *cgsWin, CgsEnum cgsId)
            }
 
            if (result == 0) {
+               int k;
                /* if none were empty, pick the least-used slot, to modify */
                for (j = 0, k = -1; j < DEPTH; ++j) {
                    if (used >= LIST(j).used) {
@@ -769,12 +770,12 @@ copyCgs(XtermWidget xw, VTwin *cgsWin, CgsEnum dstCgsId, 
CgsEnum srcCgsId)
 void
 redoCgs(XtermWidget xw, Pixel fg, Pixel bg, CgsEnum cgsId)
 {
-    int n;
     VTwin *cgsWin = WhichVWin(TScreenOf(xw));
     CgsCache *me = myCache(xw, cgsWin, cgsId);
 
     if (me != 0) {
        CgsCacheData *save_data = me->data;
+       int n;
 
        for (n = 0; n < DEPTH; ++n) {
            if (LIST(n).gc != 0 && HaveFont(LIST(n).font)) {
@@ -806,12 +807,13 @@ void
 swapCgs(XtermWidget xw, VTwin *cgsWin, CgsEnum dstCgsId, CgsEnum srcCgsId)
 {
     if (dstCgsId != srcCgsId) {
-       CgsCache *dst;
        CgsCache *src;
-       CgsCache tmp;
 
        if ((src = myCache(xw, cgsWin, srcCgsId)) != 0) {
+           CgsCache *dst;
+
            if ((dst = myCache(xw, cgsWin, dstCgsId)) != 0) {
+               CgsCache tmp;
                int srcIndex = dataIndex(src);
                int dstIndex = dataIndex(dst);
 
@@ -831,9 +833,10 @@ GC
 freeCgs(XtermWidget xw, VTwin *cgsWin, CgsEnum cgsId)
 {
     CgsCache *me;
-    int j;
 
     if ((me = myCache(xw, cgsWin, cgsId)) != 0) {
+       int j;
+
        for (j = 0; j < DEPTH; ++j) {
            if (LIST(j).gc != 0) {
                TRACE(("freeCgs(%s, %s) gc %p(%d)\n",
diff --git a/charproc.c b/charproc.c
index d4cf1d9..f177f89 100644
--- a/charproc.c
+++ b/charproc.c
@@ -1,4 +1,4 @@
-/* $XTermId: charproc.c,v 1.1417 2016/02/12 00:18:59 tom Exp $ */
+/* $XTermId: charproc.c,v 1.1420 2016/05/30 19:31:33 tom Exp $ */
 
 /*
  * Copyright 1999-2015,2016 by Thomas E. Dickey
@@ -4128,14 +4128,12 @@ doparsing(XtermWidget xw, unsigned c, struct ParseState 
*sp)
        case CASE_RIS:
            TRACE(("CASE_RIS\n"));
            VTReset(xw, True, True);
-           ResetState(sp);
-           break;
+           /* NOTREACHED */
 
        case CASE_DECSTR:
            TRACE(("CASE_DECSTR\n"));
            VTReset(xw, False, False);
-           ResetState(sp);
-           break;
+           /* NOTREACHED */
 
        case CASE_REP:
            TRACE(("CASE_REP\n"));
@@ -4399,8 +4397,6 @@ static Char *v_bufend;            /* end of physical 
buffer */
 void
 v_write(int f, const Char *data, unsigned len)
 {
-    int riten;
-
     TRACE2(("v_write(%d:%s)\n", len, visibleChars(data, len)));
     if (v_bufstr == NULL) {
        if (len > 0) {
@@ -4414,7 +4410,7 @@ v_write(int f, const Char *data, unsigned len)
        }
     }
     if_DEBUG({
-       fprintf(stderr, "v_write called with %d bytes (%ld left over)",
+       fprintf(stderr, "v_write called with %u bytes (%ld left over)",
                len, (long) (v_bufptr - v_bufstr));
        if (len > 1 && len < 10)
            fprintf(stderr, " \"%.*s\"", len, (const char *) data);
@@ -4465,7 +4461,7 @@ v_write(int f, const Char *data, unsigned len)
                v_buffer = TypeRealloc(Char, size + len, v_buffer);
                if (v_buffer) {
                    if_DEBUG({
-                       fprintf(stderr, "expanded buffer to %d\n",
+                       fprintf(stderr, "expanded buffer to %u\n",
                                size + len);
                    });
                    v_bufstr = v_buffer;
@@ -4503,6 +4499,8 @@ v_write(int f, const Char *data, unsigned len)
 #define MAX_PTY_WRITE 128      /* 1/2 POSIX minimum MAX_INPUT */
 
     if (v_bufptr > v_bufstr) {
+       int riten;
+
 #ifdef VMS
        riten = tt_write(v_bufstr,
                         ((v_bufptr - v_bufstr <= VMS_TERM_BUFFER_SIZE)
@@ -4550,7 +4548,7 @@ v_write(int f, const Char *data, unsigned len)

Reply via email to