--- rxvt-unicode/src/main.C 2005/12/18 00:59:42 1.149 +++ rxvt-unicode/src/main.C 2005/12/22 16:44:10 1.152 @@ -33,6 +33,8 @@ #include "../config.h" /* NECESSARY */ #include "rxvt.h" /* NECESSARY */ +#include + #include #include @@ -289,6 +291,15 @@ } void +rxvt_term::child_exit () +{ + cmd_pid = 0; + + if (!(options & Opt_hold)) + destroy (); +} + +void rxvt_term::destroy () { if (destroy_ev.active) @@ -522,7 +533,7 @@ for (rxvt_term **t = rxvt_term::termlist.begin (); t < rxvt_term::termlist.end (); t++) if (pid == (*t)->cmd_pid) { - (*t)->destroy (); + (*t)->child_exit (); break; } } @@ -720,13 +731,13 @@ if (flags & WidthValue) { - ncol = BOUND_POSITIVE_INT16 (w); + ncol = clamp (w, 0, std::numeric_limits::max ()); szHint.flags |= USSize; } if (flags & HeightValue) { - nrow = BOUND_POSITIVE_INT16 (h); + nrow = clamp (h, 0, std::numeric_limits::max ()); szHint.flags |= USSize; } @@ -797,7 +808,7 @@ } else { - MIN_IT (width, max_width); + min_it (width, max_width); szHint.width = szHint.base_width + width; } @@ -808,7 +819,7 @@ } else { - MIN_IT (height, max_height); + min_it (height, max_height); szHint.height = szHint.base_height + height; } @@ -891,8 +902,6 @@ fwidth = prop.width; fheight = prop.height; - fweight = prop.weight; - fslant = prop.slant; fbase = (*fs)[1]->ascent; for (int style = 1; style < 4; style++)