--- rxvt-unicode/src/misc.C 2005/02/16 21:37:10 1.27 +++ rxvt-unicode/src/misc.C 2006/01/06 20:50:58 1.31 @@ -38,6 +38,7 @@ while (len--) { ssize_t l = wcrtomb (dst, *str++, mbs); + if (l < 0) *dst++ = '?'; else @@ -555,7 +556,7 @@ { int shadow; - shadow = (w == 0 || h == 0) ? 1 : SHADOW; + shadow = (w == 0 || h == 0) ? 1 : MENU_SHADOW; w += x - 1; h += y - 1; for (; shadow-- > 0; x++, y++, w--, h--) @@ -610,4 +611,25 @@ } } #endif + +// should not be used in interactive programs, for obvious reasons +void rxvt_usleep (int usecs) +{ +#if HAVE_NANOSLEEP + struct timespec ts; + + ts.tv_sec = 0; + ts.tv_nsec = usecs * 1000; + nanosleep (&ts, NULL); +#else + /* use select for timing */ + struct timeval tv; + + tv.tv_sec = 0; + tv.tv_usec = usecs; + select (0, NULL, NULL, NULL, &tv); +#endif +} + /*----------------------- end-of-file (C source) -----------------------*/ +