--- rxvt-unicode/src/iom.C 2004/01/17 01:20:01 1.9 +++ rxvt-unicode/src/iom.C 2004/01/19 17:26:43 1.11 @@ -21,14 +21,40 @@ #include #include -#include #include +#if 1 // older unices need these includes for select(2) +# include +# include +#endif + +// if the BSDs would at least be marginally POSIX-compatible.. *sigh* +// until that happens, sys/select.h must come last +#include + #include "iom.h" // TSTAMP_MAX must still fit into a positive struct timeval #define TSTAMP_MAX (double)(1UL<<31) +// this is a dummy time watcher to ensure that the first +// time watcher is _always_ valid, this gets rid of a lot +// of null-pointer-checks +// (must come _before_ iom is being defined) +static struct tw0 : time_watcher { + void cb (time_watcher &w) + { + // should never get called + // reached end-of-time, or tstamp has a bogus definition, + // or compiler initilization order broken, or somethine else :) + abort (); + } + + tw0() + : time_watcher (this, &tw0::cb) + { } +} tw0; + tstamp NOW; static bool iom_valid; io_manager iom; @@ -224,22 +250,6 @@ } } -// this is a dummy time watcher to ensure that the first -// time watcher is _always_ valid, this gets rid of a lot -// of null-pointer-checks -static struct tw0 : time_watcher { - void cb (time_watcher &w) - { - // should never get called - // reached end-of-time, or tstamp has a bogus definition :) - abort (); - } - - tw0() - : time_watcher (this, &tw0::cb) - { } -} tw0; - io_manager::io_manager () { iom_valid = true;