summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/Fl_win32.cxx5
-rw-r--r--test/demo.cxx8
2 files changed, 13 insertions, 0 deletions
diff --git a/src/Fl_win32.cxx b/src/Fl_win32.cxx
index 7b18f3100..6fc64c778 100644
--- a/src/Fl_win32.cxx
+++ b/src/Fl_win32.cxx
@@ -267,6 +267,11 @@ int fl_wait(double time_to_wait) {
if (Fl::idle || Fl::damage())
time_to_wait = 0.0;
+ // if there are no more windows and this timer is set
+ // to FOREVER, continue through or look up indefinetely
+ if (!Fl::first_window() && time_to_wait==1e20)
+ time_to_wait = 0.0;
+
fl_unlock_function();
time_to_wait = (time_to_wait > 10000 ? 10000 : time_to_wait);
diff --git a/test/demo.cxx b/test/demo.cxx
index ee75b2424..32a4687de 100644
--- a/test/demo.cxx
+++ b/test/demo.cxx
@@ -306,6 +306,14 @@ int load_the_menu(const char* fname)
}
for (;;) {
if (fgets(line,256,fin) == NULL) break;
+ // remove all carriage returns that Cygwin may have inserted
+ char *s = line, *d = line;
+ for (;;++d) {
+ while (*s=='\r') s++;
+ *d = *s++;
+ if (!*d) break;
+ }
+ // interprete the line
j = 0; i = 0;
while (line[i] == ' ' || line[i] == '\t') i++;
if (line[i] == '\n') continue;