summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authormallum <mallum@f5eea0f0-44ea-0310-b729-df5b855dafe5>2006-08-23 20:11:51 +0000
committermallum <mallum@f5eea0f0-44ea-0310-b729-df5b855dafe5>2006-08-23 20:11:51 +0000
commit96fb3131ff0cab2af52bdb4b84640c614c12ac70 (patch)
treeb3dee2992c079185ded4dd547b10b89b3acb4b6c
parentbcb55116433023f7f9907e99a3ee40ba92996d3c (diff)
2006-08-23 Matthew Allum <mallum@openedhand.com>
* xresponse.c: (get_xevent_timed), (wait_response), (usage): Patch from Tuukka Tolvanen to explain --wait 0 in help and avoid potential infinite loop ( #38466 )
-rw-r--r--ChangeLog6
-rw-r--r--xresponse.c22
2 files changed, 18 insertions, 10 deletions
diff --git a/ChangeLog b/ChangeLog
index d31a0d2..5209d2a 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,9 @@
+2006-08-23 Matthew Allum <mallum@openedhand.com>
+
+ * xresponse.c: (get_xevent_timed), (wait_response), (usage):
+ Patch from Tuukka Tolvanen to explain --wait 0 in help and
+ avoid potential infinite loop ( #38466 )
+
2005-07-07 mallum <mallum@openedhand.com>
* xresponse.c: (log_action), (usage), (main):
diff --git a/xresponse.c b/xresponse.c
index 325423d..73e4a2f 100644
--- a/xresponse.c
+++ b/xresponse.c
@@ -127,7 +127,7 @@ get_xevent_timed(Display *dpy,
struct timeval *tv) /* in seconds */
{
- if (tv == NULL || (tv->tv_sec == 0 && tv->tv_usec == 0))
+ if (tv == NULL)
{
XNextEvent(dpy, event_return);
return True;
@@ -282,12 +282,16 @@ wait_response(Display *dpy)
{
XEvent e;
struct timeval tv;
- int waitsecs, lastsecs;
+ struct timeval *timeout = NULL;
- tv.tv_sec = lastsecs = DamageWaitSecs;
- tv.tv_usec = 0;
+ if (DamageWaitSecs)
+ {
+ tv.tv_sec = DamageWaitSecs;
+ tv.tv_usec = 0;
+ timeout = &tv;
+ }
- while (get_xevent_timed(dpy, &e, &tv))
+ while (get_xevent_timed(dpy, &e, timeout))
{
if (e.type == DamageEventNum + XDamageNotify)
{
@@ -302,19 +306,15 @@ wait_response(Display *dpy)
dev->area.width, dev->area.height,
dev->area.x, dev->area.y);
}
- else waitsecs = lastsecs; /* Reset */
XDamageSubtract(dpy, dev->damage, None, None);
}
else
{
- waitsecs = lastsecs; /* Reset */
fprintf(stderr, "Got unwanted event type %d\n", e.type);
}
fflush(LogFile);
-
- lastsecs = waitsecs;
}
return True;
@@ -329,7 +329,9 @@ usage(char *progname)
"-d|--drag <XxY,XxY,XxY,XxY..> Simulate mouse drag and collect damage\n"
"-m|--monitor <WIDTHxHEIGHT+X+Y> Watch area for damage ( default fullscreen )\n"
- "-w|--wait <seconds> Max time to wait for damage ( default 5 secs)\n"
+ "-w|--wait <seconds> Max time to wait for damage, set to 0 to\n"
+ " monitor for ever.\n"
+ " ( default 5 secs)\n"
"-s|--stamp <string> Write 'string' to log file\n\n"
"-i|--inspect Just display damage events\n"
"-v|--verbose Output response to all command line options \n\n",