projects
/
ncurses.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
ncurses 6.2 - patch 20200418
[ncurses.git]
/
test
/
ins_wide.c
diff --git
a/test/ins_wide.c
b/test/ins_wide.c
index 38ffd7637d00b27041110d85096ddb09abacfe3c..9f733924a44a29cf5f29b3b22251cd48ca7c6b96 100644
(file)
--- a/
test/ins_wide.c
+++ b/
test/ins_wide.c
@@
-1,5
+1,6
@@
/****************************************************************************
/****************************************************************************
- * Copyright (c) 2002-2010,2012 Free Software Foundation, Inc. *
+ * Copyright 2020 Thomas E. Dickey *
+ * Copyright 2002-2016,2017 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 *
* *
* Permission is hereby granted, free of charge, to any person obtaining a *
* copy of this software and associated documentation files (the *
@@
-26,7
+27,7
@@
* authorization. *
****************************************************************************/
/*
* authorization. *
****************************************************************************/
/*
- * $Id: ins_wide.c,v 1.
17 2012/06/09 20:29:33
tom Exp $
+ * $Id: ins_wide.c,v 1.
25 2020/02/02 23:34:34
tom Exp $
*
* Demonstrate the wins_wstr() and wins_wch functions.
* Thomas Dickey - 2002/11/23
*
* Demonstrate the wins_wstr() and wins_wch functions.
* Thomas Dickey - 2002/11/23
@@
-132,7
+133,7
@@
ColOf(wchar_t *buffer, int length, int margin)
result += 2;
break;
default:
result += 2;
break;
default:
- result += wcwidth(ch);
+ result += wcwidth(
(wchar_t)
ch);
if (ch < 32)
++result;
break;
if (ch < 32)
++result;
break;
@@
-236,12
+237,22
@@
test_inserts(int level)
static char cmd[80];
setlocale(LC_ALL, "");
static char cmd[80];
setlocale(LC_ALL, "");
- putenv(strcpy(cmd, "TABSIZE=8"));
+ _nc_STRCPY(cmd, "TABSIZE=8", sizeof(cmd));
+ putenv(cmd);
initscr();
(void) cbreak(); /* take input chars one at a time, no wait for \n */
(void) noecho(); /* don't echo input */
keypad(stdscr, TRUE);
initscr();
(void) cbreak(); /* take input chars one at a time, no wait for \n */
(void) noecho(); /* don't echo input */
keypad(stdscr, TRUE);
+
+ /*
+ * Show the characters inserted in color, to distinguish from those
+ * that are shifted.
+ */
+ if (has_colors()) {
+ start_color();
+ init_pair(1, COLOR_WHITE, COLOR_BLUE);
+ }
}
limit = LINES - 5;
}
limit = LINES - 5;
@@
-275,13
+286,7
@@
test_inserts(int level)
doupdate();
doupdate();
- /*
- * Show the characters inserted in color, to distinguish from those that
- * are shifted.
- */
if (has_colors()) {
if (has_colors()) {
- start_color();
- init_pair(1, COLOR_WHITE, COLOR_BLUE);
wbkgdset(work, (chtype) (COLOR_PAIR(1) | ' '));
}
wbkgdset(work, (chtype) (COLOR_PAIR(1) | ' '));
}
@@
-291,11
+296,13
@@
test_inserts(int level)
case key_RECUR:
test_inserts(level + 1);
case key_RECUR:
test_inserts(level + 1);
- touchwin(look);
+ if (look)
+ touchwin(look);
touchwin(work);
touchwin(show);
touchwin(work);
touchwin(show);
- wnoutrefresh(look);
+ if (look)
+ wnoutrefresh(look);
wnoutrefresh(work);
wnoutrefresh(show);
wnoutrefresh(work);
wnoutrefresh(show);
@@
-385,7
+392,9
@@
test_inserts(int level)
}
break;
default:
}
break;
default:
- buffer[length++] = ch;
+ if (length >= BUFSIZ - 2)
+ break;
+ buffer[length++] = (wchar_t) ch;
buffer[length] = '\0';
/* put the string in, one character at a time */
buffer[length] = '\0';
/* put the string in, one character at a time */
@@
-439,10
+448,10
@@
test_inserts(int level)
}
}
if (level > 0) {
}
}
if (level > 0) {
- delwin(show);
delwin(work);
delwin(look);
}
delwin(work);
delwin(look);
}
+ delwin(show);
}
static void
}
static void
@@
-450,7
+459,7
@@
usage(void)
{
static const char *tbl[] =
{
{
static const char *tbl[] =
{
- "Usage: ins
erts
[options]"
+ "Usage: ins
_wide
[options]"
,""
,"Options:"
," -f FILE read data from given file"
,""
,"Options:"
," -f FILE read data from given file"