[[project @ 2005-01-12 22:40:22 by unknown_lamer] unknown_lamer**20050112224022 Fixed a segfault in BotConfig (call watchers was in the wrong place), fixed trim of last non-space char from a string in Utils::trim_str ] { hunk ./ChangeLog 2 + + * source/BotConfig.C (set_option_value): Put watcher calling + inside of if (cf_iter != end()) to fix a segfault (if the cf_iter + = end then there are no watchers since this is a new value and + references cf_iter->second segfaults) + + * source/Utils.C (trim_str): Fixed bug (last non-space character + was being cut off) hunk ./TODO 7 -* Utils::isValidNickName should have a configurable max nick length +* Utils::valid_nickname_p should have a configurable max nick length hunk ./TODO 15 -* Configuration Database +* More Generic Configuration Database hunk ./TODO 43 - - This can be done as a script, but requires non-coop threads - support to be done easily + - This can (should) be done as a script, but requires non-coop threads + support to be done easily (and thus requires Guile 1.8) hunk ./TODO 50 - - Maybe use SSL? hunk ./TODO 55 - CC++ sockets (this will require locking around everything Guile - related). UPDATE[2002-11-02]: Guile CVS now has coop threads built - on top of pthreads, which I could probably use when 1.8 nears - release. - UPDATE[2002-12-22]: Guile CVS now has support for full pthreads, no - more coop stuff. After 1.8 is released threads will probably be - used. hunk ./TODO 56 - for the current irc server connection, each with its own select - loop. There may also be a thread for the network repls if I - implement those. + for the current irc server connection, each with its own select + loop. There may also be a thread for the network repls if I + implement those. hunk ./source/BotConfig.C 64 + std::cerr << "done.\n"; + + for (t_options_db::const_iterator cit = options_db.begin (); + cit != options_db.end (); + ++cit) + std::cerr << "options_db[" << command << "] = " << options_db[command].first.front () + << std::endl; hunk ./source/BotConfig.C 123 - {} - + { } hunk ./source/BotConfig.C 135 - t_options_db::iterator cf_iter = options_db.find (key); hunk ./source/BotConfig.C 136 + t_options_db::iterator cf_iter = options_db.find (key); + hunk ./source/BotConfig.C 149 + + // call watchers + std::for_each (cf_iter->second.second.begin (), + cf_iter->second.second.end (), + run_fun_ (key, values, append)); hunk ./source/BotConfig.C 157 - - // Call Watchers - std::for_each (cf_iter->second.second.begin (), - cf_iter->second.second.end (), - run_fun_ (key, values, append)); hunk ./source/Utils.C 292 - int i = 0, j = s.length () - 1; + int i = 0, j = s.length (); }