pkgsrc-wip/prozilla/patches/patch-ac
2004-06-21 12:34:13 +00:00

148 lines
3 KiB
Text

$NetBSD: patch-ac,v 1.3 2004/06/21 12:34:13 sourceforge_low Exp $
--- src/curses.c.orig 2001-08-18 01:38:26.000000000 +0200
+++ src/curses.c 2004-06-21 13:46:53.000000000 +0200
@@ -25,6 +25,7 @@
#include <unistd.h>
#include <stdio.h>
#include <string.h>
+#include <stdarg.h>
#include <pthread.h>
#ifdef HAVE_NCURSES_H
@@ -38,6 +39,7 @@
#include <ctype.h>
#include <assert.h>
#include <errno.h>
+#include <poll.h>
#include "interface.h"
#include "misc.h"
#include "runtime.h"
@@ -340,7 +342,10 @@
int cur_server;
extern pthread_t *threads;
+ struct pollfd set[1];
+ cbreak();
+ timeout(0);
while (1)
{
@@ -348,12 +353,32 @@
/*
* display the URL
*/
- napms(100);
curses_draw_display(connections, num_connections, mirrors,
num_servers);
+ if (all_dls_complete(connections, num_connections) == TRUE)
+ {
+ /*
+ * redraw the display again
+ */
+ /*
+ * Delay a bit to get the proper value
+ */
+ napms(300);
+ curses_draw_display(connections, num_connections, mirrors,
+ num_servers);
+ refresh();
+ break;
+ }
+
refresh();
+ set[0].fd = STDIN_FILENO;
+ set[0].events = POLLIN;
+ (void)poll(set, 1, 1000);
+ if (!(set[0].revents & POLLIN))
+ continue;
+
switch (getch())
{
case CTRL('R'):
@@ -432,21 +457,6 @@
default:
break;
}
-
- if (all_dls_complete(connections, num_connections) == TRUE)
- {
- /*
- * redraw the display again
- */
- /*
- * Delay a bit to get the proper value
- */
- napms(300);
- curses_draw_display(connections, num_connections, mirrors,
- num_servers);
- refresh();
- break;
- }
}
return DONE;
@@ -498,17 +508,6 @@
}
-
-
-/* because of different args for different ncurses, I had to write these
- * my self
- */
-
-#define kwattr_get(win,a,p,opts) ((void)((a) != 0 && (*(a) = (win)->_attrs)), (void)((p) != 0 && (*(p) = PAIR_NUMBER((win)->_attrs))),OK)
-
-#define kwattr_set(win,a,p,opts) ((win)->_attrs = (((a) & ~A_COLOR) | COLOR_PAIR(p)), OK)
-
-
/* Message: prints a message to the screen */
void curses_message(const char *args, ...)
{
@@ -537,7 +536,7 @@
* get the cursor position
*/
getyx(stdscr, y, x);
- kwattr_get(stdscr, &attrs, &i, NULL);
+ wattr_get(stdscr, &attrs, &i, NULL);
move(19, 0);
clrtoeol();
move(20, 0);
@@ -551,7 +550,7 @@
* Unlock the mutex
*/
refresh();
- kwattr_set(stdscr, attrs, i, NULL);
+ wattr_set(stdscr, attrs, i, NULL);
/*
* set the cursor to whhere it was */
@@ -569,13 +568,13 @@
attr_t attrs;
int x, y;
int ch;
- int i;
+ short i;
va_start(vp, args);
vsprintf(p, args, vp);
va_end(vp);
getyx(stdscr, y, x);
- kwattr_get(stdscr, &attrs, &i, NULL);
+ wattr_get(stdscr, &attrs, &i, NULL);
attrset(COLOR_PAIR(PROMPT_PAIR) | A_BOLD);
move(19, 0);
@@ -596,7 +595,7 @@
refresh();
noecho();
- kwattr_set(stdscr, attrs, i, NULL);
+ wattr_set(stdscr, attrs, i, NULL);
/*
* set the cursor to where it was
*/