/****************************************************************************
- * Copyright (c) 2008 Free Software Foundation, Inc. *
+ * Copyright (c) 2008-2010,2012 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 *
* authorization. *
****************************************************************************/
/*
- * $Id: clip_printw.c,v 1.1 2008/12/20 21:03:06 tom Exp $
+ * $Id: clip_printw.c,v 1.9 2012/11/18 00:39:48 tom Exp $
*
* demonstrate how to use printw without wrapping.
*/
#include <test.priv.h>
+#ifdef HAVE_VW_PRINTW
+
#define SHOW(n) ((n) == ERR ? "ERR" : "OK")
#define COLOR_DEFAULT (-1)
unsigned v;
int status;
int pair;
- unsigned attr;
+ attr_t attr;
int count;
int ch;
const char *c_msg;
} STATUS;
static int
-clip_wprintw(WINDOW *win, const char *fmt,...)
+clip_wprintw(WINDOW *win, NCURSES_CONST char *fmt,...)
{
int y0, x0, y1, x1, width;
WINDOW *sub;
start_color();
for (n = 0; n < SIZEOF(table); ++n) {
- init_pair(table[n].pair, table[n].fg, table[n].bg);
+ init_pair((short) table[n].pair,
+ (short) table[n].fg,
+ (short) table[n].bg);
}
}
if (state < SIZEOF(table)) {
}
static const char *
-video_params(unsigned state, unsigned *attr)
+video_params(unsigned state, attr_t *attr)
{
/* *INDENT-OFF* */
static struct {
- unsigned attr;
+ attr_t attr;
const char *msg;
} table[] = {
{ A_NORMAL, "normal" },
fill_window(WINDOW *win)
{
int y, x;
+ int y0 = -1, x0 = -1;
getyx(win, y, x);
wmove(win, 0, 0);
while (waddstr(win, "0123456789 abcdefghijklmnopqrstuvwxyz ") != ERR) {
+ int y1, x1;
+ getyx(win, y1, x1);
+ if (y1 == y0 && x1 == x0)
+ break;
+ x0 = x1;
+ y0 = y1;
}
wmove(win, y, x);
}
delwin(win1);
touchwin(win);
} else {
+ if (win1)
+ delwin(win1);
beep();
}
}
getmaxyx(win, y_max, x_max);
for (row = 0; row < (int) SIZEOF(table) && row < y_max; ++row) {
- mvwprintw(win, row, 0, "%.*s", x_max, table[row]);
+ MvWPrintw(win, row, 0, "%.*s", x_max, table[row]);
}
while (wgetch(win) != 'q')
beep();
do {
switch (st.ch) {
case '.': /* change from current position */
- wattrset(win, st.attr | COLOR_PAIR(st.pair));
+ (void) wattrset(win, (int) (st.attr | (chtype) COLOR_PAIR(st.pair)));
if (st.count > 0) {
- need = st.count + 1;
+ need = (unsigned) st.count + 1;
sprintf(fmt, "%%c%%%ds%%c", st.count);
} else {
- need = getmaxx(win) - 1;
+ need = (unsigned) getmaxx(win) - 1;
strcpy(fmt, "%c%s%c");
}
- if ((buffer = typeMalloc(char, need)) != 0) {
+ if ((buffer = typeMalloc(char, need + 1)) != 0) {
for (j = 0; j < need; ++j) {
- buffer[j] = 'A' + (j % 26);
+ buffer[j] = (char) ('A' + (j % 26));
}
buffer[need - 1] = '\0';
st.status = clip_wprintw(win, fmt, '[', buffer, ']');
+ free(buffer);
}
break;
case 'w':
ExitProgram(EXIT_SUCCESS);
}
+
+#else
+int
+main(void)
+{
+ printf("This program requires the curses vw_printw function\n");
+ ExitProgram(EXIT_FAILURE);
+}
+#endif