/****************************************************************************
- * Copyright (c) 1998-2006,2007 Free Software Foundation, Inc. *
+ * Copyright (c) 1998-2007,2008 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 *
#include <curses.priv.h>
#include <ctype.h>
-MODULE_ID("$Id: lib_tracedmp.c,v 1.28 2007/04/21 21:10:54 tom Exp $")
+MODULE_ID("$Id: lib_tracedmp.c,v 1.31 2008/08/16 19:30:56 tom Exp $")
#ifdef TRACE
*/
for (j = 0; j < width; ++j) {
chtype test = CharOf(win->_line[n].text[j]);
- ep[j] = (UChar(test) == test
+ ep[j] = (char) ((UChar(test) == test
#if USE_WIDEC_SUPPORT
- && (win->_line[n].text[j].chars[1] == 0)
+ && (win->_line[n].text[j].chars[1] == 0)
#endif
- )
- ? (iscntrl(UChar(test))
- ? '.'
- : UChar(test))
- : '?';
+ )
+ ? (iscntrl(UChar(test))
+ ? '.'
+ : UChar(test))
+ : '?');
}
ep[j] = '\0';
_tracef("%s[%2d] %3ld%3ld ='%s'",
(long) win->_line[n].lastchar,
ep);
+ /* if there are multi-column characters on the line, print them now */
+ if_WIDEC({
+ bool multicolumn = FALSE;
+ for (j = 0; j < width; ++j)
+ if (WidecExt(win->_line[n].text[j]) != 0) {
+ multicolumn = TRUE;
+ break;
+ }
+ if (multicolumn) {
+ ep = my_buffer;
+ for (j = 0; j < width; ++j) {
+ int test = WidecExt(win->_line[n].text[j]);
+ if (test) {
+ ep[j] = (char) (test + '0');
+ } else {
+ ep[j] = ' ';
+ }
+ }
+ ep[j] = '\0';
+ _tracef("%*s[%2d]%*s='%s'", (int) strlen(name),
+ "widec", n, 8, " ", my_buffer);
+ }
+ });
+
/* dump A_COLOR part, will screw up if there are more than 96 */
havecolors = FALSE;
for (j = 0; j < width; ++j)
if (pair >= 52)
ep[j] = '?';
else if (pair >= 36)
- ep[j] = pair + 'A';
+ ep[j] = (char) (pair + 'A');
else if (pair >= 10)
- ep[j] = pair + 'a';
+ ep[j] = (char) (pair + 'a');
else if (pair >= 1)
- ep[j] = pair + '0';
+ ep[j] = (char) (pair + '0');
else
ep[j] = ' ';
}
}
#else
-empty_module(_nc_lib_tracedmp)
+EMPTY_MODULE(_nc_lib_tracedmp)
#endif /* TRACE */