]> ncurses.scripts.mit.edu Git - ncurses.git/blobdiff - ncurses/trace/lib_tracedmp.c
ncurses 6.2 - patch 20200404
[ncurses.git] / ncurses / trace / lib_tracedmp.c
index 58732a06c24623397dabeddafe81410fa88ad726..3b7ea0749986d691158a9b7843c8c9bd2e1b381a 100644 (file)
@@ -1,5 +1,6 @@
 /****************************************************************************
- * Copyright (c) 1998-2007,2008 Free Software Foundation, Inc.              *
+ * Copyright 2020 Thomas E. Dickey                                          *
+ * Copyright 1998-2012,2016 Free Software Foundation, Inc.                  *
  *                                                                          *
  * Permission is hereby granted, free of charge, to any person obtaining a  *
  * copy of this software and associated documentation files (the            *
@@ -39,7 +40,7 @@
 #include <curses.priv.h>
 #include <ctype.h>
 
-MODULE_ID("$Id: lib_tracedmp.c,v 1.31 2008/08/16 19:30:56 tom Exp $")
+MODULE_ID("$Id: lib_tracedmp.c,v 1.36 2020/02/02 23:34:34 tom Exp $")
 
 #ifdef TRACE
 
@@ -68,13 +69,15 @@ _tracedump(const char *name, WINDOW *win)
     if (width < win->_maxx)
        ++width;
     if (++width + 1 > (int) my_length) {
-       my_length = 2 * (width + 1);
+       my_length = (unsigned) (2 * (width + 1));
        my_buffer = typeRealloc(char, my_length, my_buffer);
+       if (my_buffer == 0)
+           return;
     }
 
     for (n = 0; n <= win->_maxy; ++n) {
        char *ep = my_buffer;
-       bool haveattrs, havecolors;
+       bool havecolors;
 
        /*
         * Dump A_CHARTEXT part.  It is more important to make the grid line up
@@ -82,7 +85,7 @@ _tracedump(const char *name, WINDOW *win)
         * we map those to '.' and '?' respectively.
         */
        for (j = 0; j < width; ++j) {
-           chtype test = CharOf(win->_line[n].text[j]);
+           chtype test = (chtype) CharOf(win->_line[n].text[j]);
            ep[j] = (char) ((UChar(test) == test
 #if USE_WIDEC_SUPPORT
                             && (win->_line[n].text[j].chars[1] == 0)
@@ -153,9 +156,9 @@ _tracedump(const char *name, WINDOW *win)
 
        for (i = 0; i < 4; ++i) {
            const char *hex = " 123456789ABCDEF";
-           attr_t mask = (0xf << ((i + 4) * 4));
+           attr_t mask = (attr_t) (0xf << ((i + 4) * 4));
+           bool haveattrs = FALSE;
 
-           haveattrs = FALSE;
            for (j = 0; j < width; ++j)
                if (AttrOf(win->_line[n].text[j]) & mask) {
                    haveattrs = TRUE;