Version 1.4.9 - May 9, 2006 - 'post_resp' and 'post_item' functions now trigger events. - Add 'onpost', 'onresponse', 'onitem', and 'onresp' system variables for defining event handlers. - Add 'event' system variable for describing current event. - Add file functions 'openfile', 'closefile' and 'nextline'. - Add 'undefvar' file function for removing definitions from tag files. - 'email_send' now takes flag so we can select whether to send both plain and HTML content at send time, if sending to multiple recipients with different preferences. - If 'selectuser' is called before 'open_conf', then the conference is opened as that user, loading his participation file, and potentially writing to it. If we call 'selectuser' and 'open_conf' again, we can open a different user's participation file, without rereading the conference config file. - Add code to automatically maintain 'notify' and 'digest' subscriber files in conference directory when setting the 'subs' field in the conference section of the participation file. - Add 'next_subscriber' built-in function to walk subscriber lists. - Change all email_* built in functions to take an email id, so that multiple email messages can be composed at once. - 'dbtype' system variable actually does something now. - 'forall' function can now loop through keys of a dictionary. - Fixed crashes when saving user preferences. - Fixed crash when hitting pistachio help page. - Fixed incorrect index definition of bt_link table used with CDB option. Index on item id should not be unique. To correct this in existing databases, do: ALTER TABLE bt_link DROP INDEX item_id; ALTER TABLE bt_link ADD INDEX(item_id); - Include unistd.h globally on systems where it exists. - Define int1, int2, int4, and intp types and be much more careful about using integers of the correct size, especially in reading and writing compiled files. Version 1.3.29 - May 9, 2006 - Fixed crash in abalone find screen when accessed from top link. - Changes for compatibility with 64-bit AMD processors. - Upgrade configure script to use libtool 1.5.22 and autoconf 2.59. - Move inclusion of time.h and sys/time.h to common.h and make more portable. - Fixed vararg related portability problems in crash screen generation. - Fixed "make clean" target to clean regex directory too. Version 1.3.28 - Feb 8, 2006 - Fix abalone's peekconf.bt so peek works correctly. Version 1.3.27 - Nov 20, 2005 - Entrance link on abalone conference home page repaired. - Fix bug caused by loadvar not popping handle when literal array is empty. Version 1.4.8 - Nov 9, 2005 - Fix file discriptor exhaustion bug in loaduser. - Fix loaduser crash on empty .cflist files. - Fix crash on abalone/bio screen for users who do not exist. - Fix crash when returning to abalone entrance screen from conference. - Fix crash caused by typo in abalone/help screen. - Fix disappearing "Close Window" button on abalone help pop-up. - Fix public script check for URLs with only a flavor but no filename. - Fix bug caused by loadvar not popping handle when literal array is empty. Version 1.3.26 - Nov 9, 2005 - Fix another file descriptor exhaustion bug in dumpuser. Version 1.4.7 - Nov 3, 2005 - Fixed firstdir, nextdir, and directory commands to work correctly on (*conf/) and (*confdir/) file handles. - Modified abalone to use lib/conflist to list conferences. Should do pistachio too. - savevar function taught to save all matching variables if given a name ending with a dot. - Fix bug displaying name of non-existant fairwitness on conference list page. Version 1.3.25 - Nov 3, 2005 - Fix bug in loading picospan style participation files with no participation information. - Fix failure of dumpuser to correctly skip participation files for deleted conferences. - Fix file desriptor exhaustion problem in dumpuser. - Fix a bad dependency in src/Makefile.in. - Fix creation of participation directories when we have a part dir. - Don't terminate walks through users when we encounter a user without a directory. - Added script/lib/conflist.bt to provide standardized code for listing all conferences. Not using this in 1.3 - just for forward compatibility. - Print something for dictionaries on stack when doing a dump. - In abalone, cleaner display of users without info. - Add -m, -u and -v options to dumpuser to suppress some warning messages, suppress the uid check, and to run verbose. - Added some mtrace debugging hooks. Version 1.4.6 - Sep 29, 2005 - Add filehandles for conference and system data directory entries. - Add config settings for atom autodiscovery and link tags - Add atime function. - Add datatype function. - Add recommended install procedure to installation manual. - Loaduser fixed to work on systems where http_id is not owner_id. - Add loadattach program to read files from dumpattach. - Broke common code from several command line tools out into src/initcmd.c. - Broke XML parsing code from loaduser out into src/xmlparse.c. - Build and install loaduser and dumpuser by default. - Add man pages for loaduser and dumpuser. - Fix placement of quotes in tilestrings hrefs. Version 1.3.24 - Sep 29, 2005 - Add ability to generate robot exclusion metatags - Make loadvar and savevar fast when given an empty array - Dumpuser fixed to work on systems where httpd_id is not owner_id. - Convert dumpattach to XML output format. Version 1.2.38 - Sep 26, 2005 - Big fix to sql ident_auth files fixing mixups between logins and encrypted passwords. How'd that bug survive so long? Version 1.4.5 - Jun 24, 2005 - Add anonposter variable to system dictionary and config.bt. - Bug fix: this_item sets 'authorname' not 'alias'. - Fix to top-level Makefile to ensure regex library gets built. Version 1.4.4 - Jun 24, 2005 - Backtalk URLs can now have another / and more stuff after the script name. Everything after the slash is passed in to the scripts in the urlarg system variable. - Add add_reference command to record an trackback or pingback reference to an item. - Extend query parsing so we can also respond to XML-RPC calls. - Extend httpget command to also send XML-RPC calls. - Add http_pingback variable so we can generate X-Pingback HTTP headers. - Add "fork" command to run scripts in background. - Add "die" function to force a crash with an error message. Version 1.3.23 - Jun 21, 2005 - Fix permission bug for attachments in private conferences. - Fix bug in support for Berkeley DB 4.1. Version 1.3.22 - May 27, 2005 - Fix bug where we failed to make sql connections before attempting some user database queries. - Sort codes of Abalone and Pistachio changed, making abalone the default default interface. - Delete old session cookies when trying to login anonymously from the welcome page. Version 1.3.21 - May 26, 2005 - Fix a segmentation violation that occurred when reading anonymously. - Fix dumpuser to try harder to dump encrypted passwords. Version 1.4.3 - May 4, 2005 - Add httpget command and http_proxy variable. These implement an HTTP client within Backtalk. Intended to be used to implement talkback someday. - Some tiny optimizations to code for pushing empty strings. - Eliminated support for varargs.h. Haven't really supported non-ANSI compilers for years, so it was long obsolete. - Fix some bugs in SQL queries to fetch next uid without incrementing it. - Add SQL and file-based functions to set next uid. - Add user database format documentation to doc/format.html. - Add a patch for weird bots that pass GET query strings in with a %3F instead of a ? separating the query from the uri. - Linking with mysql now seems to need -lz option. - Draft version of loaduser - not yet ready for prime time. Version 1.3.20 - Mar 1, 2005 - Fix writing of new fields to tag files. Version 1.3.19 - Jan 26, 2005 - Single quotes quoted as ' instead of ' to make stupid IE happy. Version 1.3.18 - Jan 25, 2005 - Fixes to date parsing. - Addition of 'dumpuser' program to generate full dump of the user database. - Unification of (nearly) all tagfile reading/writing in new tag.c file. - Quoting functions now quote single quotes as ' - Reorganization and modularization of participation reading/writing code with low-level code in partfile.c. - Add locking to ulist/glist file processing. - Addition of testdate test driver program. Version 1.4.2 - Nov 23, 2004 - Incorporates changes from 1.3.17 and 1.2.37 Version 1.3.17 - Nov 23, 2004 - Add 'publicflavors' variable, so we can make things like 'cinnamon' usable on sites with 'allowanon' turned off. - Teach abalone and pistachio to display RSS icons and autodiscovery links. - Links in user posts now open in a new window by default. Setting the new linktonew variable to false makes them open in the same window. - In abalone add clickable "bbsname > confname > item number" to bottom of page, above response form. - In abalone, move "slipped in post" warning further up on page, so that it is more visible when long posts have slipped in. Version 1.2.37 - Nov 23, 2004 - Correction to documentation of htime function. - Add syndication defines to config.bt.in to control display of RSS URIs in all interfaces. - Changes to search code that might fix crashes on some systems. Version 1.4.1 - Nov 10, 2004 - Incorporates changes from 1.3.16 and 1.2.36 Version 1.3.16 - Nov 10, 2004 - Teach configure script to sense Berkeley DB version 4 correctly. - Fix compilation bug for Berkeley DB version 4. - Fix mysteriously mangled line in udb.c. - Fix spurious output of number '20' from email/welcome.bt script. - Fix configure script's overenthusiastic inclusion of dbm libraries. Version 1.2.36 - Nov 10, 2004 - Add itime and htime functions mostly for RSS support. - Include some missing includes for str.h (a portability fix). - Correction to documentation of 'parse' command in language.html. - Move link formatting macros into pistachio/links.bt and abalone/links.bt for compatibility with the RSS interface. - Rename log() function to logmsg() to avoid conflict with math library. - Reset http_content_type and http_location to default before printing a crash screen. Version 1.4.0 - Jul 12, 2004 - FORMATS OF ALL IDENTITY DATABASES CHANGED to accomodate storing email addresses, validation codes for unvalidated email addresses, and privacy flags for email address and for .backtalk data. - Added 'validatemail' option to config.bt, which can be set to cause an email to be sent when a account is created which contains a validation key. - Added 'email/validate.bt' script which is template for the above mail. - Added 'public/validatemail.bt' script which is a page that can be given a user ID and validation code to validate an email address. - Userinfo and useremail functions deleted. Replaced by new 'loaduser' and 'pushuser' functions that provide a cleaner interface to fetching user data. These also enforce privacy flags in the interpreter, instead of leaving it to the scripts. - Changeemail, changegroup, changename and changepass functions deleted. Replaced by more general saveuser and defuser functions. - Eliminated (*.backtalk) file handle. The new functions don't need it. - Revisions to all ident_*.c modules primarily to support having email addresses, validation codes, and privacy flags in the identity databases, but many other small fixes and code cleanup applied while we were at it. This also impacts the auth_text.c, auth_db.c and auth_dbm.c modules. - Added 'valcode' function which attempts to validate an email address. - Added 'noise' function which returns a 24-character random string, using the same algorithm as is used for session ids. - The 'id' tagfiles now use ()'s to delimit strings just like other tagfiles. I thought I changed that long ago. - Added proxymail.bt scripts to pistachio and abalone which allow users to send mail to each other. The email/proxymail.bt script controls the format for these messages. - Added conference database option, in which we keep conference summary information in a mysql database. Currently this is an adjunct to item sum files. Eventually it will be a full replacement. - For systems with conference databases, there is now a unique integer ID for each conference and a unique string ID for each item. These are accessible via the "itemid" and "confid" variables, though there isn't much use for them yet. Item id values can now be written into the item files. - For systems using conference databases, provide for item summaries and keyword lists. New variables "keywords" and "summary" store this. New function "annotate_item" updates them. "related_items" command uses them. - Added "suppress_redirect" constant for debugging of location redirects. Version 1.3.15 - Jul 7, 2004 - Fix bug in sess_file.c which caused session file to get huge when you log out. Didn't I fix this in 1.3.13? - Fix script install script to also install email scripts. - Fix crash on null descriptions in email.c. - Fixes to improve handling of NULLs by sql interface. - Delete long obsolete regular expression configuration stuff from incl/config.h.in. - Add some untested defines for supporting Berkeley DB 4. - When the public/relogin script is automatically run after a session has expired, pass it a CGI variable "oldscript" which gives the flavor/scriptname of the script we tried to run. - Modify public/relogin.bt and public/login.bt so that when a session expires, the normal action is to continue the original query after the user has re-logged in. Also add a "read anonymously" button to the relogin form, so people can opt out of logging back in. - Add public/logout.bt script, and use that for logging out, so that if the session is expired it doesn't force you to login so you can logout. - Modify pistachio and abalone to use public/logout.bt . - Killsession now erases session cookies even if the session has expired or if it is called from a public script. - Removed extra "Add a Conference" button from admin/editmenu.bt. Version 1.2.35 - Jul 7, 2004 - Fix bug walking through selectors like "$-n" where "n" is the maximum item. - Fix Makefile dependencies for mksql so it gets recompiled when it needs to be. Version 1.2.34 - Jun 25, 2004 - Fix crash that occured with ident=tagfile when a didn't have an "id" file. Version 1.3.14 - Jun 2, 2004 - If OVERRIDE_HTTP_HOST is defined, use that instead of the HTTP_HOST value from Apache. - If DFLT_HTTP_HOST or DFLT_SCRIPT_NAME are defined, the backtalkurl and severurl functions should respect them. Version 1.2.33 - Jun 2, 2004 - The 'chomp' function now deletes trailing CR characters as well as trailing NL characters. Version 1.3.13 - Jan 2, 2004 - Fixed a problem in baai_hash.c for systems where off_t is a "long long" instead of a "long". - Fixed HTML error when abalone entrance page shows an inaccessable conference. - Fixed an ugly bug in sess_file.c, where an uninitialized variable made the session file get very big. Version 1.2.32 - Jan 2, 2004 - Belatedly add documentation of newsession and killsession to language.html. Version 1.3.12 - Oct 30, 2003 - Fixed a memory management bug related to attachments that was causing crashs while reading items in some installations. - Fixed multi-line string literal in email.c Version 1.2.31 - Oct 30, 2003 - Fixed a bug in showopt that caused a crash on sites without spell checkers. - In src directory, 'make clean' removes .gdbinit. Version 1.3.11 - Oct 28, 2003 - Fixed bug in src/Makefile.in which caused it to fail to correctly install backfile in many configurations. Version 1.2.30 - Oct 28, 2003 - Rewrite several Mysql queries so they don't use subqueries, because, well, Mysql doesn't have subqueries. Version 1.2.29 - Sep 4, 2003 - Fixed yet another bug in the fav_sel function, this time relating to isels with more than one range beyond the end of the participation file. - Fixed 'Goto Conference...' command on Abalone resign page. Version 1.3.10 - Sep 3, 2003 - Taught HTML scrubber to filter out any Javascript entities. These never worked anywhere except on Netscape, but they are yet another way to introduce executable content into HTML text. Version 1.3.9 - Aug 6, 2003 - Added documentation of email_new, email_body, email_recip, email_send, and email_close to script language reference manual. Version 1.2.28 - Aug 6, 2003 - Fixed a problem that may have been responsible for occasional misidentifications of users seen on some systems. - Added '#include ' to src/readcomp.c and src/adm_user.c. It seems that 'errno' is a macro on some systems. Version 1.3.8 - Jul 25, 2003 - Added --with-pwauth configure option, which is only used when you have both --login=form and --auth=shadow. It gives the path name of the authenticator to run in that case. - Fixed a compile error when used in that configuration. Version 1.2.27 - Jul 25, 2003 - Fixed crash in admin/showuser.bt that occured if you had useplan set. Version 1.2.26 - Jul 23, 2003 - Fixed erroneous marking of all accounts as 'invalidated' on unix systems put '*' in as the passwd field in the public passwd file. Version 1.2.25 - Jul 17, 2003 - Fixed a small memory leak in useremail function. Version 1.3.7 - Jun 29, 2003 - If Backtalk is built with --with-sendmail option, then Backtalk can send email. The new constant canemail will be true, and the new functions email_new, email_body, email_recipient, email_send, and email_close can be used to compose and send email messages. Fairly good MIME support is included - we can do attachments and alternate text formats. - If email is enabled, then when an account is created Backtalk runs the script email/welcome.bt, which sends a "Welcome" message to the new user. - Rewrote session-id generation code formerly in sess_file.c and sess_sql.c. It's now in entropy.c and there are two versions - one uses /dev/urandom, the other uses MD5 and an entropy pool stored in etc/bt_entropy. Session IDs are lengthened from 13 to 24 characters, so the format of the session files or SQL tables changes. People upgrading a system using an SQL session table will need to run "sqlinit sess" to rebuild the session table. - Fix segfault when /tmp/bt.rep cannot be created. - Fix segfault when CONTENT_TYPE is not defined (mostly happens with fronttalk). Version 1.2.24 - Jun 29, 2003 - When in direct_exec mode, toggle to running as user when accessing participation files, .backtalk file, or any other file in the user's home directory. Kind of important for fronttalk. - Configure script complains if you try --enable-exec with non-unix logins. - Portability fix to btinstall.in script. Version 1.2.23 - Jun 22, 2003 - Fix bug in fav_sel that make "read 3" fail when the single name item was not in the user's participation file. Version 1.2.22 - Jun 20, 2003 - Fix bad test syntax in Makefile.in Version 1.3.6 - Jun 17, 2003 - Fix some things so that --disable-attachments doesn't cause compilation errors. Version 1.2.21 - Jun 17, 2003 - Partutil creates participation files with office info clipped off of full name. - Fixed small typo in script/public/newuser.bt - Privacy button on newuser screen no longer loses state after error. Default value corrected to be "all users". Version 1.3.5 - Jun 13, 2003 - Split confaccess.c out from ps_config.c, so pwauth compiles again. Version 1.3.4 - May 7, 2003 - Changed default setting of auto_recompile to 2. This is probably a better setting for most sites. - Added email_fromaddr, email_fromname, and email_organization setting to backtalk.conf file. - Added --with-sendmail option to configure. - Other email support is in here, but in a totally incomplete state. Version 1.2.20 - May 7, 2003 - Fixed compile error in src/udb.c when building with --login=form option. - Fixed non-portable declaration of crypt in src/sess_file.c. - More corrections to URLs printed by Makefile when build is complete. - Fixed bug in handling of --aspell=/full/path configure option. - Modified sess_file.c to avoid negative lseeks() which were giving me inexplicable problems on one host. Version 1.3.3 - Apr 30, 2003 - Abalone and Pistachio gain tools to add/delete and edit attachments. - Print warnings to cfadm users in various places if the secure and saverep flags are not set to a safe setting. - Teach edit_resp enough about attachments so that it doesn't crash on resposnes with attachments. - Fixed edit_resp in abalone and pistachio so that it no longer erases parent response pointers. - Fixed crash when displaying deleted attachments in Abalone. - Added edit_attach built-in function to change description or type of an attachment. - Added reattach built-in function to add, replace or delete attachments on a response. Version 1.2.19 - Apr 29, 2003 - Fixed wonky permissions on temp file during edit_resp and item_retitle. - Fixed admin/reap confirm page so it doesn't croak deletions of really large numbers of users. Version 1.2.18 - Apr 26, 2003 - For Yapp compatibility, tolerate ulist files with lines terminated by CRNL instead of NL. - btmkuser command now creates a .backtalk file for the user, with the registration date included. A command line switch is added to enable setting random registration dates. - dtime function now understands isolated years, like "2003". - Blank "results per page" box on Admin "User List" page now stays blank. - Bad user list display after deleting single user fixed. - Fixed admin/reap script bug that made mass deletions fail if any accounts were in authentication database but not identity database. - Function userinfo's behavior on deleted or partly deleted accounts changed substantially. - New file src/partdir.c broken out of ps_part.c. Version 1.2.17 - Apr 13, 2003 - For Yapp compatibility, triple up comma at start of a line instead of just doubling them Picospan-style. - Fixed a bug with link to first item on abalone confhome page. Version 1.2.16 - Apr 9, 2003 - Fixed typo in src/Makefile.in - Added empty script/lib/biolink.bt file for forwards compatibility. Version 1.2.15 - Apr 7, 2003 - Fixed links on bottom of welcome pages for sites with --login=form Version 1.3.2 - Apr 5, 2003 - Deleted --enable-debug configure option. Instead we have runtime variables 'saverep' and 'secure' set in config.bt. - Added --enable-attachments configuration flag. - Implemented attachment archive where attachments to responses can be stored. Added 'get_attach' and 'make_attach' functions. - New system variables 'canattach' and 'attachments' added. 'Attachments' is an input to post_item and post_resp, and an output from read_resp. - 'kill_item' deletes attachments, as does 'erase_resp'. - Pistachio and abalone scripts sets updated to support reading and posting of attachments. - Default timeout in config.bt set to seven minutes. Would anyone really want to wait longer that that for a web page? - Support for multipart/form-data POST queries in cgi_query.c. - Added cleanattach program, to erase dropped attachments. - Added dumpattach program, a diagnostic tool. - Total redesign of the way repeat files work. - The config.bt script is now run *before* authenticating the user. - Added mimename command and misc/mimename file for giving names to mime types. - cgiquote function quotes control characters. - Dictionary dump code handles control characters in strings better. - Broke vstr.c out of format.c and substantially rewrote it, making more use of realloc() which is sometimes more efficient that malloc() and memmove. Want to use this in several other places. - Broke debug.c out of main.c. - Attempt to access pages anonymously when no anonymous reading is enabled runs public/login.bt instead of public/welcome.bt when sessions are used. Version 1.2.14 - Apr 5, 2003 - Fixed bug in handling of control characters in jsquote. - Fixed compilation error in hashfile.c when using native GDBM or Old DBM - which hardly anyone ever did. - Added src/sess_stupid.c for sites that put logins in cookies. Yech. Not tested. - Some fixes to configure.in, mainly relating to SQL sites. Version 1.3.1 - Mar 14, 2003 - Support for linking to external bio page instead of backtalk bio page in abalone interface. - Added 'scriptname' system constant. Version 1.2.13 - Mar 13, 2003 - Fixed missing abalone jump table in case when no responses where shown. - Fixed weird stack underflow crash that occurs when posting items. Version 1.3.0 - Mar 11, 2003 - Abalone much revised to use cascading style sheets. css directory added to distribution and install scripts modified to install it. - Deleted vanilla flavor from the distribution, and made it a separately distributed interface. - Deleted src/adm.cgi from distribution (hasn't been used for a long time). Version 1.2.12 - Mar 11, 2003 - Fixed bug that caused backslashes to accumulate when parenthesis were used in full names in Backtalk-style participation files. - Added incl/localconfig.h - Updated and expanded doc/auth.html. - Removed some debug code from empty posting error message. Version 1.2.11 - Mar 8, 2003 - Fixed buffer overflow in session.c. - Added auth_none.c for use with foreign login programs. - Added AUTO_CREATE_DIR option to automatically create home directories if they are missing. - More portable use of ctype functions in format.c - Actually got script/public/showopt.bt into the distribution file, where it was supposed to have been since 1.2.2 - Refixed the compiler bug in adm_user.c that was supposed to have been fixed in 1.2.10. Version 1.2.10 - Mar 5, 2003 - Expand out any HREF="conf:whatever" attributes in tags in HTML postings. - Strip out all "onLoad" or "onClick" type attributre from tags in HTML postings. - Strip out any HREF="javascript:" type attributes from tags in HTML postings. - Add to allowed tags list: , , , , , , , , , , , - No longer allow tag: - Delete all closing tags with no matching opening tag. - Delete content of tags. - In Yapp_format mode, don't put
on the ends of lines in
 type
    environments.
  - In Yapp_format mode, always put a space after inserted