diff --git a/checkin_notes b/checkin_notes index 54ce3cf342..fa55174a24 100755 --- a/checkin_notes +++ b/checkin_notes @@ -7465,3 +7465,10 @@ David 7 June 2005 client/ *.C, *.h + +Rom 7 June 2005 (from Walt Gribben) + - Adjust the logging functions so they do not randomly write outside + the scoped area defined for spacing which might cause random crashes + + lib/ + msg_log.C diff --git a/doc/contact.php b/doc/contact.php index d8bb01969d..700d4c4a51 100644 --- a/doc/contact.php +++ b/doc/contact.php @@ -58,6 +58,7 @@ show_name("Charlie Fenton"); show_name("John Flynn III"); show_name("Michael Gary"); show_name("Gary Gibson"); +show_name("Walt Gribben"); show_name("Jim Harris"); show_name("Volker Hatzenberger"); show_name("Ian Hay"); diff --git a/lib/msg_log.C b/lib/msg_log.C index 7f265c60cd..32f6b4fdec 100644 --- a/lib/msg_log.C +++ b/lib/msg_log.C @@ -74,9 +74,16 @@ MSG_LOG::MSG_LOG(FILE* output_) { void MSG_LOG::enter_level(int diff) { assert (indent_level >= 0); + + if (enter_level <= 0 ) enter_level = 0; + if ((enter_level + diff) <= 0) return; + if (enter_level >= 39 ) enter_level = 39; + if ((enter_level + diff) >= 39) return; + spaces[indent_level] = ' '; indent_level += diff*2; spaces[indent_level] = 0; + assert (indent_level >= 0); }