1.6 * Support filtering on whether a message has been deleted. -nelhage@mit.edu * Properly quote strings containing newlines or tabs. -nelhage@mit.edu * Check for an unset mark in owl_editwin_replace_region. -nelhage@mit.edu * Add the "narrow-related" variable. -geofft@mit.edu * Fix a display bug under perl 5.12. -nelhage@mit.edu * Only use typewindelta when opening multiline editwins. -nelhage@ksplice.com * Add some checks to ./configure. -nelhage@mit.edu * Fix a use-after-free in popexec.c -nelhage@mit.edu * Make pseudologins asynchronous -asedeno@mit.edu * Fix some bugs in editwin handling and clean up code. -nelhage@ksplice.com * Add new command unbindkey for removing keybindings -leonidg@mit.edu * zcrypt: Implement AES encryption support using GPG. -nelhage@mit.edu * Add usage messages to everything in scripts/ -nelhage@mit.edu * Split zcrypt into an external, standalong binary. -nelhage@mit.edu * Fix minor documentation typo -alexmv@mit.edu * Document the init/cleanup vs. new/delete naming conventions. -andersk@mit.edu * Clean up code naming conventions to help avoid memory leaks.. -andersk@mit.edu * Add edit:help command for zsh-style in-edit help -davidben@mit.edu * Use libpanel to simplify and improve display layer. -davidben@mit.edu * Jabber: Mention [-a ] in :help jwrite. -andersk@mit.edu * Fix zcrypt when compiling without krb4 -oremanj@MIT.EDU * Send multiple PRIVMSGs for IRC messages entered as multiple paragraphs -oremanj@mit.edu * Require automake ≥ 1.7.0, and don’t warn about portability to non-GNU make. -andersk@mit.edu * Makefile.am: Use only direct children in SUBDIRS, to appease automake 1.7. -andersk@mit.edu * IRC: irc-disconnect on a pending reconnect should cancel it. -nelhage@mit.edu * Complete several commands that accept a filename. -nelhage@mit.edu * Complete the 'print' and 'bindkey' commands. -nelhage@mit.edu 1.5.1 * Fix numerous memory leaks. -andersk@mit.edu * owl_message_get_cc_without_recipient: Don’t overflow the output buffer. -andersk@mit.edu (Fixes CVE-2010-0793) * owl_command_aimwrite: Fix a buffer overflow on aimwrite -m. -andersk@mit.edu * zcrypt: Don’t read off the end of misaligned input messages. -andersk@mit.edu * Fix zcrypt when compiling without krb4 -oremanj@MIT.EDU * Fix a crash narrowing to certain messages. -andersk@mit.edu * Fix a subtle bug in the perl bindings. -nelhage@mit.edu * Squelch an 'uninitialized' warning in recv:shift-left. -nelhage@mit.edu 1.5 * Show the prompt in short editwins when scrolling back to the start. -nelhage@mit.edu * Improve handling of some Jabber messages. -asedeno@mit.edu * Allow ^Z to be rebound. -nelhage@mit.edu * Skip some IRC admin messages by default, controlled by irc:skip -alexmv@mit.edu * Reconnect and re-join channels on IRC disconnect -alexmv@mit.edu * Correct the --with-libzephyr help string to --with-zephyr. -andersk@mit.edu * Improve performance narrowing to certain filters. -nelhage@mit.edu * Add completion for :filter* -adehnert@mit.edu * Fix filter* -adehnert@mit.edu * Mark the current mark with an asterisk -davidben@mit.edu * Complete class names for the 'unsub' command. -nelhage@mit.edu * Make control characters human-readable -kcr@1ts.org * Further complete the show command -davidben@mit.edu * Fix a bug reflowing text in the editwin. -davidben@mit.edu * Reconnect to MUCs when reconnecting to Jabber. -asedeno@mit.edu * Fix spurious trailing newlines in zsigs. -andersk@mit.edu * Fix the behavior of the zsig variable. -kcr@1ts.org * Drop owl_animate_hack. -asedeno@mit.edu * Add IRC server and channel listing to buddylist -alexmv@mit.edu * Make Jabber try to reconnect when disconnected, at exponential intervals -alexmv@mit.edu * Better documentation for jabberlogout. -asedeno@mit.edu * jabberlogout -a --> jabberlogout -A -asedeno@mit.edu * Change the default jabber resource to 'barnowl' -asedeno@mit.edu * Updated Jabber documentation for consistency. -zhangc@mit.edu * Document :bindkey more clearly. -geofft@mit.edu 1.4 * Fix description of edit:history-next -davidben@mit.edu * Don’t loop infinitely on matching the empty string. -andersk@mit.edu * Fix a typo in the jroster help message. -asedeno@mit.edu * IRC: Handle 'nosuchchannel' events. -nelhage@mit.edu * Add a function for perl to query whether Zephyr is available. -nelhage@mit.edu * Add a perl hook that is called once Zephyr is initialized. -nelhage@mit.edu * AIM: Decode incoming messages properly. -nelhage@mit.edu * AIM: Correctly send outgoing IMs with high-bit characters. -nelhage@mit.edu * IRC: Encode outgoing messages as utf-8. -nelhage@mit.edu * Return unicode strings to perl. -nelhage@mit.edu * IRC: Fix '-a' with commands that take a channel. -nelhage@mit.edu * Catch ^Z and display a message instead of suspending. -nelhage@mit.edu * Fix missing commands from command completion. -nelhage@mit.edu * Make kill-region stop killing extra bytes after multibyte characters. -andersk@mit.edu * Squelch some 'uninitialized' warnings in IRC completion. -nelhage@mit.edu * Add minimal completion for 'aimwrite'. -nelhage@mit.edu * Zephyr completion: Convert fields to lowercase for completing. -nelhage@mit.edu * Implement a shift_words method on completion contexts. -nelhage@mit.edu * Export skiptokens to perl. -nelhage@mit.edu * owl_text_quote: Don’t leak a kretch-sized buffer. -andersk@mit.edu * Spread the background color across the right hand side of messages -kcr@1ts.org * Perl callout for zsig computation + move default to perl -kcr@1ts.org * BarnOwl::get_zephyr_variable gets you a .zephyr.vars variable -kcr@1ts.org * Correctly prototype functions with no parameters as foo(void), not foo(). -andersk@mit.edu * Cause unsub to warn user if user wasn't subbed -davidben@mit.edu * Refresh popwin border when we redisplay viewwin -davidben@mit.edu * owl_command_zcrypt: Fix a compile warning building without zcrypt. -nelhage@mit.edu * Compile with warnings enabled by default. -andersk@mit.edu * Add equivalent long options for all short options. -nelhage@mit.edu * Remove defunct TODO and BUGS files. -nelhage@mit.edu * editwin: Properly update points inside a replaced region. -nelhage@mit.edu * Shift-R on CC zephyrs should go to the sender only -adehnert@mit.edu * BarnOwl::Module::Jabber: Quote jroster auth, deauth commands. -andersk@mit.edu * Use automake’s silent-rules mode if available, for quieter build output. -andersk@mit.edu * Add configurable time display -adehnert@mit.edu * Add BarnOwl::redisplay() -asedeno@mit.edu * Bind C-v and M-v in popless windows -nelhage@mit.edu * Fix an off by one error in some editwin code. -asedeno@mit.edu * Make zdots work even if the buffer has trailing whitespace. -nelhage@mit.edu * Fix pseudo-login interation with zephyr initialization. -asedeno@mit.edu * Correct the --with-libzephyr help message in the configure script. -broder@mit.edu * Set the UTF-8 flag on on strings we pass to Perl. -nelhage@mit.edu * aim.c, perlconfig.c: Fix format string bugs. -andersk@mit.edu * BarnOwl::Completion: Use multi-argument quote. -andersk@mit.edu * Jabber: Add quoting for editwin prompt. -andersk@mit.edu * IRC: Add quoting for reply commands and editwin prompt. -andersk@mit.edu * Fix quoting for filterappend, filterand, filteror. -andersk@mit.edu * skiptokens: Handle quotes more correctly. -nelhage@mit.edu 1.3 * Clean up the edit window code significantly. -kcr * Support inputting tabs in the editwin. -kcr * Support C-y for yanking text in the editwin. -kcr * Implement some convenience commands for working with filters. -adehnert * IRC: Fix "ARRAY(0x...)" at the start of 'whois' output. -nelhage * Expands tabs to 8 spaces in incoming and outgoing messages. -nelhage * Make 'zwrite -C ... -m ...' add a CC: line. -nelhage * Switch the build system to use automake. -nelhage * Make BarnOwl::$COMMAND to warn if it tokenizes its arguments. -nelhage * Expose more editwin functionality to perl. -nelhage * Quash a zephyr 3 warning by adding some missing consts. -andersk * Fix crash on malformed multi command. -andersk * owl_command_punt_unpunt: Plug memory leak. -andersk * stderr_redirect_handler: Plug a memory leak. -andersk * Jabber: Sort roster entries. -asedeno * Get rid of a whole bunch of useless casts. -andersk * Reimplement search in terms of owl_regex. -andersk * Export owl_function_debugmsg to perl as BarnOwl::debug(). -nelhage * Implement a tab-completion framework. -nelhage * Tab-complete commands. -nelhage * Tab-complete zephyr commands. -nelhage * Tab-complete help command. -davidben * Tab-complete :jwrite. -asedeno * Tab-complete :filter. -davidben * Tab-complete IRC commands. -broder * Tab-complete the :show command. nelhage * Tab-complete :vu and :vc. -nelhage * Tab-complete :set and :getvar. -davidben * Tab-complete :view. -davidben * Improve JID resolution. -asedeno * Quash some unused variable warnings building --without-zephyr. -andersk * Use 'const' modifiers in the source where appropriate. -andersk 1.2.1 * Fix building with Zephyr support. -nelhage * Support --with-stack-protector in 'configure'. -nelhage 1.2 * Fix some typos in source and messages. -adehnert * Support an explicit --with{out,}-zephyr configure option. -nelhage * Display a nicer error in :blist if .anyone doesn't exist. -geofft * Don't zcrypt shift-R replies to zcrypted messages -adehnert * Export a time_t for messages to perl as 'unix_time' -nelhage * Get rid of cryptic numeric messages after IRC commands. -ezyang * IRC: Include IRC admin messages in the 'irc' filter. -geofft * Fix M-LEFT and M-RIGHT bindings. -nelhage * Fix replycmd to use right class/instance -adehnert * Allow SIGINT to interrupt getting the Zephyr buddy list -nelhage * Break perlwrap.pm into multiple files. -nelhage * Handle errors in perlwrap.pm better. -nelhage * Don't attempt to send a Zephyr logout if we never initialized Zephyr. -nelhage * Display personals better in OneLine mode. -adehnert * Display context for pings -adehnert * Support --program-{prefix,suffix,transform}. -nelhage * Send instanced pings and give useful error messages -adehnert * Add to default Barnowl subs. -adehnert * Maintain instance when using shift-R on personals -adehnert * Improve handling of outgoing instanced personals -adehnert * Don't require personals to be -i personal. -geofft * Display context for personals, so as to make usable. -geofft * Implement mark and swap in the message list. -asedeno * Fix handling of C-SPACE. -nelhage * Fix some warnings. -nelhage * Handle SIGINT, and make ^C interrupt searches. -nelhage * Fix the usage line for punt/unpunt -nelhage * Small bugfixes to release scripts. -nelhage 1.1.1 * Fix bogus errors 'subscribing to login messages'. -nelhage * Correctly send Zephyr login notices at startup. -nelhage * Fix compilation with Zephyr support. -alexmv * Fix an issue with incoming Zephyrs being delayed. -asedeno * Fix display of zpunt lines. -asedeno * Handle invalid regular expressions better (fix a segfault). -nelhage * Correctly handle zpunts with recipient %me%. -nelhage * Always send outgoing Zephyrs in utf-8. -nelhage * Fix documentation for 'zsig' and 'zisgproc'. -nelhage * Fix personal replies on webzephyr. -geofft * Fix two memory leaks formatting messages. -nelhage, andersk * Fix Makefile on platforms with Solaris tar. -nelhage 1.1 * Support building with -fstack-protector. -hartmans * Don't save partial passwords in editwin history. -nelhage * Improve IRC documentation. -nelhage * Don't use the 'zsender' variable for personals. -geofft * Implement irc-quote and irc-mode. -nelhage * Leave a one-column margin when wordwrapping. -nelhage * Remove some autotools-generated files. -andersk * Include IRC in the default build. -nelhage * Add a wordwrapping variant of the default style. -nelhage * Don't send stderr to admin messages. -nelhage * Remove a build-dependency on krb4. -hartmans * Allow the creation of type zephyr messages from perl. -geofft * Initialize Zephyr asynchronously at startup. -nelhage 1.0.5 * Implement initial support for real timers. -nelhage * Fix some compile warnings. -nelhage * Don't ignore the --datarootdir setting. -andersk * Replace questionable sprintf(buf, "%s...", buf, ...) pattern. -andersk * Show IRC /me messages with the conventional * instead of bold -andersk * Rip out the openurl function and related variables. -andersk * Stop leaking perl variables in :perl. -nelhage * Display multi-line error messages as admin messages. -nelhage * Fix a bug rendering multi-byte characters in the last column of the window. -andersk * Map Esc-A/B/C/D like arrow keys everywhere. -geofft * Fix a bug trying to disconnect from Jabber with no accounts connected. -asedeno * Call perl_sys_init3 to make libperl work on several other platforms. -hartmans * Bind the 'Delete' key to delete the next character. -andersk * Fix a double-free in owl_zephyr_delsub. -geofft * Don't fill-paragraph the ending dot of the buffer. -price * Fix numerous unsafe uses of sprintf(). -nelhage (Fixes CVE-2009-0363) 1.0.4 * Added a ':show quickstart' command. -geofft * Allow filters that reference a sub filter more than once non-cyclically. -nelhage * Make 'version' return 'BarnOwl' not 'Owl' * Escape interpolated regexes in filters. -andersk * Various code cleanups. -andersk * Fix format string injection bugs. -andersk * Clean up various code warnings. -nelhage * Replace questionable sprintf(buf, "%s...", buf, ...) pattern. -andersk * Show IRC /me messages with the conventional * instead of bold. -andersk * Rip out the openurl function and webbrowser variable. -andersk 1.0.3 * Moved BarnOwl source control to git on github. * Only call the zsig proc when we actually send a message. -asedeno * Strip out BOMs from Jabber messages. -asedeno * Fix logging of personal jabbers from JIDs containing / -nelhage * Fix Jabber breakage under reload-modules. -asedeno * Make reload-moduled correctly re-run startup hooks. -asedeno * Squelch Jabbers with no bodies, such as typing notifications. -asedeno * Various small spelling and grammar fixes. -geofft * Fix a segfault when sending short zcrypted messages. -asedeno 1.0.2.1 * Fix :reload-module's interactions with PAR modules 1.0.2 * Fix a segfault on retrieving zephyr subs when the user doesn't have any or has expired tickets. -asedeno * Don't complain about non-existant ~/.owl/startup when starting. -asedeno * Fix narrowing to personals in IRC. -alexmv * Don't segfault retrieving subscriptions without valid tickets. -asedeno * Load modules even if .owlconf doesn't run successfully. -nelhage * Update the manpage for barnowl. -nelhage * Better support for irc-names, irc-topic, and irc-whois. -geofft * Display /quit messages in IRC -geofft. * Add a new perl hook for all new messages. -geofft * Fix a bug causing corrupted input in the editwin on end-of-line. -nelhage * Add better support for adding hooks in perl that behave correctly on module reload. -nelhage * Added a :reload-module command to reload a single module. -nelhage * Fixed quoting issues replying to jabber users or MUCs containing whitespace or quites. -nelhage 1.0.1 * Remove an unneeded .orig file from libfaim/ - hartmans * Update the copyright notice in ':show license' - nelhage * Add a jabber:spew variable that controls whether unrecognized Jabber messages (such as pubsub requests) are displayed. - nelhage * Make the 'style' command assume the main:: package for unqualified subroutine references. Reported by Jesse Vincent. - nelhage * Rename doc/contributors to the more canonical AUTHORS - nelson 1.0.0 * Don't fail silently when sourcing a file; actually let the user know. - asedeno * Only hang for 1s, rather than 10s, if there is no zhm - nelhage * Merge the unicode branch to trunk. BarnOwl is now unicode aware and can send, receive, input and display UTF-8 encoded messages. Unicode changelog: * Put glib's CFLAGS and LDFLAGS at the beginning of the corresponding variables. - nelhage * Unicode branch: Fix building without zephyr. - asedeno * Fix a unicode branch wordwrap problem. - asedeno * Fixing an obscure wrapping bug that nelhage and I tracked down. - asedeno * Rename configure.in to configure.ac so Debian autoconf DTRT. - nelhage * Fix a bug in owl_editwin_move_to_previousword() which would skip over single letter words. - asedeno * I think I like this better. - asedeno * Fix nelhage's key_left bug. Don't spin at the locktext boundary. - asedeno * fix a typo in OWL_FMTEXT_UTF8_BGDEFAULT * fix a parsing issue for attributes - asedeno * Better compliance with UTF-8 processing. Stop trying to pull in a UTF-8 character as soon as we know something has gone wrong. - asedeno * Removing more hackery I left behind after doing things the right way. - asedeno * editwin.c - fix a wrapping bug I introduced in the last revision. It could leave us with a buffer that was not valid UTF- 8 - asedeno * editwin.c - lots of utf-8 cleanup that I had been putting off. util.c - a can we break here'' function based on perl's Text::WrapI18N - asedeno * Remove more bad hacks. - asedeno * Remove a debug message I accidentally left in. Remove the hours old check_utf8 hackery in favor of actually marking strings as UTF-8 from the C side. - asedeno * editwin.c: make locktext deal with UTF-8 * Jabber - More utf-8 sanitizing. * Pet peeve - tabs. That should be the end of it for now. - asedeno * Shuffling a line of code to where it actually should be. - asedeno * Patches to jabber libraries for better UTF-8 handling. - asedeno * fix a typo that was causing background problems * pass defaults attributes through in the truncate functions - asedeno * Eliminating a warning by un-internalizing a new fmtext function. - asedeno * Do not use bit 0x80 to indicate meta. We have other uses for that bit. * shift it above ncurses's KEY_MAX instead. - asedeno * drop unused struct member * fixing post-processing in the editwin. - asedeno * Preserve colors when highlighting search terms. - asedeno * ignore KEY_RESIZE if we know what that is. We don't need an unhandled keypress every time we resize the terminal. - asedeno * more strict utf-8 byte fetching. This probably still needs more work. - asedeno * Strip formmating characters when dumping to file. - asedeno * fixing bugs in editwin bufflen calculations. - asedeno * Fix search code so higlighting actually works. - asedeno * Remove options for libcurses and libncurses. This really only works with libncursesw. - asedeno * text entry: first pass at utf-8 text entry. * Change wcwidth() calls to mk_wcwidth() - asedeno * First pass at outbound zephyr -> iso-8859-1 sanitizing. Not that we can input anything other than ascii yet... * Fixing bug encountered when last field was not null- terminated. - asedeno * First pass at incoming zephyr -> UTF-8 sanitizing. This only operates on incoming data so far. We still need to clean outgoing data -- the plan is to attempt conversion to ISO-8859-1, and use that if it works. - asedeno * Reworked the fmtext format to use in-line formatting. Characters used for formatting are part of Unicode Supplemental Private Area-B, or Plane 16. * include wchar.h * replace hand-rolled width detection with wcswidth. * pad with space if we end up halfway into a character at the start of a line. * UTF-8 - first pass * make owl_text_truncate_cols() and owl_fmtext_truncate_cols() understand character width. This may need more work. Some code duplication - see if we can refactor. * stristr() rewritten to yse g_utf_casefold() instead of downstr(), and restructured to have a single return. * only_whitespace() rewritten for unicode. * Fix sending jabbers to JIDs beginning with `+' - nelhage * Compile zcrypt.c with -w so I don't get all these warnings in my compile output whenever I change any headers - nelhage * Implement /me for outgoing IRC messages - geofft * Add a makefile rule to support emacs flymake-mode - nelhage * Bind the combinations the iPhone sends for arrow keys [probably other terminals, too] - nelhage * avoid null pointer dereference if msg is NULL (or a 0 length is claimed) - shadow * Move styles from the current mishmash of different options to a unified perl object interface. - nelhage * Refactor default style code somewhat to be more easily extensible - nelhage * Put glib's CFLAGS and LDFLAGS at the beginning of the corresponding variables. - nelhage * IRC: /list, /who, and /stats commands - geofft * IRC: Make M-N mostly, rather than completely, useless. - geofft * Fix two small bugs in styling pointed out by broder - nelhage * Document create_style - nelhage * Move time_hhmm into a format_time method - nelhage * Remove prototypes from perlwrap.pm - nelhage * Quote regexp filter elements with spaces in them. - asedeno * Deal with smart-narrowing when the user's screenname has spaces in it. - asedeno * Add a new struct member to the global to hold an escaped aim screenname. populate the aforementioned new struct member. - asedeno * Removed our debian subdirectory, per Debian guidelines, at broder's request. - geofft * Make `all' the first target so we build the modules by default - nelhage * Commit inc/ under IRC so we build on systems with too old a M::I - nelhage * updating contributors - nelhage * Clean up licensing information and add a COPYING file - nelhage * Update bugs email to a more professional looking address, and remove the Development build warning. - nelhage BarnOwl r989 (2008-03-21) * Stick modules on the beginning of @INC, not the end - nelhage * Merge in the select branch. BarnOwl's main loop now uses a select() based event loop rather than continually polling, and uses much less CPU. - asedeno * Fix a bug where an explicit (local) realm foiled owl_message_get_cc_without_recipient(). (per quentin) - geofft * HTML Filtering fix for BODY tag - austein * Add parenthesis to fix a perl error in IRC - nelhage * Make IRC admin messages actually display their content - nelhage * Fix a file descriptor leak. - asedeno * Fix loading PAR modules that weren't present at startup - nelhage * Update perlwrap.pm documentation for the select() BarnOwl - nelhage * Render IRC notices as normal messages - nelhage * ensure that even if ioctl(,TIOCGWINSZ,) returns 0s we never set g->lines (and g->cols) to 0 - shadow * Generate less ugly error spew if a module fails to load - nelhage * Added :webzephyr command with keybinding W. - geofft * Fix a race condition in which zephyrs received during init are not noticed until the next zephyr after entering the mainloop. - asedeno BarnOwl r941 (2008-02-18) * unicode/glib branch Remove a debug message I accidentally left in. Remove the hours old check_utf8 hackery in favor of actually marking strings as UTF-8 from the C side. - asedeno * unicode/glib branch Remove more bad hacks. - asedeno * Rewrite ::Connection to not subclass Net::IRC::Connection to avoid stupid namespace conflicts - nelhage * svn:ignore for great justice - nelhage * Attempt to load BarnOwl::MessageList::SQL and error if it fails. Note that the aforementioned class n'existe pas - nelhage * unicode/glib branch editwin.c - lots of utf-8 cleanup that I had been putting off. util.c - a can we break here'' function based on perl's Text::WrapI18N - asedeno * unicode/glib branch editwin.c - fix a wrapping bug I introduced in the last revision. It could leave us with a buffer that was not valid UTF- 8 - asedeno * dropping one unnecessary time(NULL) call. - asedeno * unicode/glib branch removing more hackery I left behind after doing things the right way. - asedeno * unicode/glib branch better compliance with UTF-8 processing. Stop trying to pull in a UTF-8 character as soon as we know something has gone wrong. - asedeno * First prototype of a SQL-backed message list. This is probably horribly broken, and is painfully slow at the moment. - nelhage * minor changes to IRC * Resizing should not leave the current message off screen. - asedeno * Added initial IRC support. Not built or installed by default. - geofft * Preserve colors when highlighting search terms. - asedeno * Handle zephyrs to users on non -c message better [trac #39] - nelhage * Make :reload-modules work correctly with PARs - nelhage * Document (nearly) every public function in the BarnOwl:: namespace - nelhage * strip IRC coloring from IRC messages - nelhage * Document ::Hook and ::Hooks - nelhage * Nuke the stylefunc_default C code - nelhage * Nuke some refs to owl_message_get_notice - nelhage * Clearing the line should preserve the echochar. - asedeno * Fix logins to jabber.org - reported by gendalia - asedeno * Move oneline style to perl. [trac #43] - nelhage * Fix the error messages sending to users who don't exist or aren't signed on. - nelhage * Jabber Buddy Lists: * Query the jabber:show_offline_buddies once when invoking onGetBuddyList() * Don't bold online roster entries when hiding offline ones - asedeno * Portability - removing C++ style comments. - asedeno * Add the variable 'zsender' to customize the outgoing Zephyr username. - geofft * Bind M-left and M-right by default in the editor - nelhage * eliminate a segfault. - asedeno BarnOwl r796 (2008-01-08) * Define variables at the top of blocks for better ANSI C-ness (patch by Chris Laas) [trac #18] - nelhage * Implement :punt and :unpunt to punt arbitrary filters, rather than just z- triplets. [trac #6] - nelhage * Show non-personal pings like stock owl does. [trac #12] - nelhage * Fix problems with jabber servers keeping the same stream id when negotiating TLS tracked down by Greg Hudson. - asedeno * When we're narrowing to an instance, properly include un-instances. This fixes narrowing to any instance that starts with ``un-'' - nelhage * Don't read before the start of the string for an instance - nelhage * Adding an explicit -f - to the tar commands for FreeBSD compatibility (reported by ecprice) - nelhage * Some fixes for FreeBSD. - ecprice * Do ~-expansion in :loadsubs. [trac #26] - nelhage * Validate JIDs passed to jmuc join. [trac #25] - nelhage * Show full JIDs for users in non-anonymous JIDs in :jmuc presence. [trac #24] - nelhage * Don't crash if we hit `i' on a zephyr containing non-ASCII iso-8859- *. - nelhage * added -m flag to aimwrite - matt * aimwrite -m displays according to displayoutgoing - austein * Make the usleep call more reasonable for less CPU usage - asedeno * Add zip as build-depends - nelhage * bind END in popless windows. [trac #41] - nelhage * Allow C-r on outgoing messages (useful for CCs) - chmrr * Identify ourselves as barnowl more consistently - chmrr * Report subscription errors more accurately. - chmrr BarnOwl r751 (2007-08-01) * Refactored message processing: All new messages, incoming or outgoing, get added to the owl_global_messagequeue by protocol code, and then passed to owl_proces_message, which serves as a single central code path for adding messages to the message list. - nelhage * Properly pass the usage when defining the jabberlogin command - nelhage * Outgoing messages now log as much information as incoming messages - chmrr * Fix a pointer corruption issue if we redefine the current style. - nelhage * Adding 3 variables for the Jabber module: jabber:show_offline_buddies, jabber:auto_away_timeout, jabber:auto_xa_timeout - asedeno * Don't include self when replying to CC'd messages - chmrr * Outgoing CC'd messages get logged to all recipients - chmrr * Incoming CC'd zephyrs logged to all people they were sent to - chmrr * Change the width at which we hard-wrap outgoing zephyrs by default so that zephyrs will fit on screen with the default style. (suggested by andersk) - nelhage * Added a -s switch to change the location of the config dir (~/.owl) - nelhage * Don't allow you to go off the end of an empty message list. [trac #9] - nelhage * Allow you to send to -c message -i personal * - nelhage * Make zephyr smartnarrow use the `personal' and `private' distinction properly [trac #2] - nelhage * Change the default personal filter to for zephyr. - nelhage * Display opcodes with the default style - nelhage BarnOwl r720 (2007-05-29) * Correctly define a ``private'' zephyr as one that is sent to a recipient that is neither empty nor starts with ``@'' - nelhage * Fix builds under make -j - nelhage * Fix sending of zcrypted zephyrs - nelhage * Rewrite perl internals to factor out module loading. - nelhage * Fix display of zephyrs with empty instances - nelhage * Implemented a Module::Install plugin for building barnowl plugins - nelhage * Modified the makefile to build and install perl modules - nelhage * Fix the bug in which rejoining a MUC you're already in (nick change) results in the MUC appearing multiple times when you show presence info for all MUCs. - asedeno * Implemented loading of both PAR and unpacked modules, and module reloading. - nelhage * Make the Makefile build and install perl modules on a clean install. - nelhage * Implemented an LRU cache of the message list fmtexts. This reduces memory usage by roughly 1MB/kilo-zephyrs in steady state. - nelhage * Escape $ in regexes (e.g. smartnarrowed instances) - nelhage * Adding 256-color support. This requires a version of ncurses that supports ABI-6. Colors beyond the first eight are refered to by number. - asedeno * Correctly escape {} and () in regular expressions - nelhage * When generating filters, change single quotes and double quotes into dots, so they line parser doesn't choke on them. This fixes problems smart-narrowing to instances such as "this'll break it". - asedeno * Improving the private/personal distinction: * ``private'' means to/or from an individual, not a chat/class/etc. * ``personal'' means ``matches the personal filter'' - nelhage * Beep on personal messages, not private, by default. - nelhage * Some small doc fixes (thanks to jwalden for pointing them out). - nelhage * Added the ability to define new variables from perl. - nelhage * Documented said ability via BarnOwl::new_variable_* - nelhage * Add a "setsearch" command which sets the search highlight string without moving the cursor. - glasser BarnOwl r657 (2007-03-06) * Fix libfaim to make it compile - nelhage * Apply some memory leak patches by alexmv and yoz - nelhage * Make smartnarrow un- and .d-aware - chmrr * Add a `getstyle' command - asedeno * Make Test failures print file/line numbers - nelhage * Fixed regression tests for booleans variables. - asedeno * Add a perl perl hook into owl's main loop. - asedeno * Added the ability to install real commands from perl code - nelhage * Fix a hang in owl_editwin_move_to_previousword - nelhage * Updated the version number and startup message - nelhage * Added initial support for creating and injecting messages into the display from perl. - nelhage * Added the ability for perl code to hang arbitrary reply commands off of messages. - nelhage * Expose the edit window hooks to perl - nelhage * Removed references to -ldes - kchen * Exposed owl_function_error and owl_function_makemsg as commands - nelhage * Implemented initial Jabber support. - asedeno * Implemented initial Jabber groupchat support. - asedeno * Added a perl hook to the buddy list display - nelhage * Added a get_data_dir function to the perl interface - hartmans * Don't include the default typemap in xsubpp compile line - hartmans * Cause perl to always be loaded, even if no owlconf is present. - hartmans * Implemented an extensible perl module system - hartmans * Exposed owl_fuction_popless_text() and owl_fuction_popless_ztext() to perl - asedeno * Support multiple simaltaneous Jabber connections - asedeno * Fixed a segfault on subbing without a .zephyr.subs file - nelhage * Implemented Jabber Roster support - asedeno * Don't quit if we can't contact the hostmaster. - nelhage * Support filters based on arbitrary message attributes - nelhage * Rewrote and massively cleaned up the filter system internals. - nelhage * Fixed the ``personal'' filter to work better with all protocols - nelhage * Made `smartnarrow' more generic, and implemented it for jabber. - nelhage * Changed executable name to "barnowl" - nelhage * Renamed the `owl::' package to BarnOwl:: - nelhage * Dynamically link perl libraries - nelhage * Added background color support - asedeno * Added idle-time tracking, and updated jabber to automatically set away status - asedeno * Implemented shortnames for jabber rosters and jwriting. - nelhage * Fixed a crash when smartnarrowing to instances with lots of periods or other regular expression metacharacters. - nelhage * Support comments in ~/.owl/startup - asedeno * Dispal tweaks for MIT's -c discuss messages. - asedeno * Don't override perl's idea of the switches we need to do embedding. - shadow * Make the default style perl, rather than C. - nelhage * Refactor the default style to be protocol generic - nelhage * Prefer ~/.barnowlconf to .owlconf, if it exists. - nelhage * Intern hostnames and message attribute keys for a slight memory saving. - nelhage * Use libncursesw when available - asedeno 2.1.12pre Don't crash when sending/logging outgoing AIM message and not logged in [BZ 90] Don't crash when senging to someone not on AIM buddy list [BZ 94] (patch from Alex Vandiver) 2.1.11 Don't crash doing zlocate with bad tickets. [BZ 12] Metion the path for the owlconf in intro.txt [BZ 54] Print better error message if startup fails due to unreadable .owlconf [BZ 57] In load-subs: Print an error message if the file is unreadable or doesn't exist, UNLESS load-subs is called with no arguments. In that case only print an error if the file exists but isn't readable. Still prints an error either way if zephyr reports a failure. [BZ 19] Fixed some small memory leaks in logging if files unwriteable If the variable logfilter is set it names a filter. Any messages matching this filter are logged. This is an independent mechanism from the other logging variables. If you want to control all logging with logfilter the other variables must be set to their default (off) settings. [BZ 37] Relatively substantial changes made under the hood to support filter logging. Now have more consistent interfaces to creating messages etc. Still needs more work though. Deal gracefully with being resized as small as 1x1 [BZ 3] 2.1.10 Fix a new problem finding libdes425 Don't crash on very long hostnames [BZ 52] In 'sub' command, create .zephyr.subs if it doesn't exist [BZ 15] A fix for certain resize crashes (partly from alexmv) [BZ 55] Turn off ISTRIP (gildea) 2.1.9 Include /usr/include/kerberosIV if it's found 2.1.8 Do OLC formatting for anything coming from olc.matisse Improvements to popup size algorithm (from gildea) Improved 'show colors' with non-colored labels 2.1.7 The colorclass command is added, to make colorization easy Handle MIT Athena OLC zephyrs correctly Updated ktools website / bug address Do ntohs() when printing zephyr port in zephyr info Updated man page 2.1.6 Fixed three bugs found by Valgrind. Fixed a case where doing "aim addbuddy" instead of "addbuddy aim" would cause a segfault. pexec will now incrimentally display data as it is output by the child process. Additionally, commands running under pexec may now be killed by quitting out of the popless window. Added muxevents select loop dispatcher. File descriptors may be registered with muxevents and handlers will be dispatched to when data is available for non-blocking read/write/except. Switched the stderr_redir stuff to use muxevents. Print C-\ correctly (from gildea) Dropped first brace in muxevents functions for consistency Catch SIGHUP and SIGTERM and do a proper logout 2.1.5 Added a licence The 'personalbell' variable can now be set to 'on' 'off' or the name of a filter to match against The 'loglogins' variable now controls whether login/logout messages are logged. It is off by default. For now this affects only AIM messages, later zephyr login/logout messages will also be logged if this is set to 'on' Added 'show license' 2.1.4 Normalize and downcase AIM names for logging Fixed a bug where sending a null zsig could cause a crash Better 'away' toggling if only one protocol is away. 2.1.3 Added perl filter elements. Similar to having "filter " in a filter, you may also have "perl " where is passed an owl::Message object and returns 0 or 1 depending on whether the message matches that element of the filter. Don't print an error about loading subs if there is no .zephyr.subs Do the initial zephyr_buddy_check when pseduologin set to true. Updated man page 2.1.2 removed unused filter_depth variable Fixed memory bug on receiving pings 2.1.1 Filters of filters now work. Removed the "possibly not readable" part of the config parsing error In the sepbar, reverse video the view name when it's not set to view_home (as opposed to the static 'all'). The '!' key (bound to 'view -r') now creates a negative version of the current view and switches to it. i.e. "show me all the messages that are not these" Added the 'ignorelogins' variable Log when outgoing personal message fails Removed file descriptor from sigpipe catcher printer just for now, since the field does not exist on OSX Added an ifndef for socklen_t in libfaim/ft.c Added the 'aim search' command. The popup on callback may be dangerous, should switch to an admin msg for results, or add a new event queue First pass at AIM away messages. It is a little different from what most clients seem to do, in that an away reply is sent for each message received. Most clients only reply to the first one per away-session. Now have a set of 'aaway' commands and variables just like the 'zaway' ones (except that changing the 'aaway' variable talks to the server) The new 'away' command does everything for both AIM *and* zephyr. There is a known funkiness here, where if you turn one away on, and then use 'away' (or 'A') to toggle, you will turn on off and the other on. Just leaving it for now. Should do better in the next patch. The 'A' key is bound to 'away' Status bar can now read AWAY, Z-AWAY or A-AWAY. Changed C-n to scroll down just a line in popless If the config exists but is not readable, print an error before exiting Only print forced AIM logout message once. Don't bind F1 to help in edit context Fix bug in 'getsubs' with no tickets New code for getting users from .anyfile Added the 'pseudologins' variable, and code to do it new attributes 'pseudo' 'logintty' and 'loginhost' Don't print extra new lines in popless_file New zephyr_get_field function 2.0.14 Fixed missing word in startup message Better 'status' command Use '+' for popwin corners when 'fancylines' is off Allow TERMINFO to be overridden in the envrionment Command line arg -D turns on debugging and deletes previous debugging file Do ~ expansion in 'dump' command. Current directory added to 'status' command Massive changes to libfaim and aim 2.0.13 Changed startup message for new mailing list blist now prints AIM info even if .anyone is unreadable Catch SIGPIPE and print an error rather than crashing. [It's possible that this may have some portability issues under Solaris and we may need to add some configure stuff around SA_SIGINFO...] Handle the case in aim_bstream_send where aim_send returns -1, although there is likely an underlying problem here that would lead to this case. Print the username on aim login failure, not something random like the password. ;) Un-word-wrap text when sending AIM messages. Replace the main loop continue in the keyboard handler with an else. 2.0.12 Command history now doesn't allow the last entry to be repeated If format_msg returns "" print "" Better align oneline admin and loopback messages Print an admin message indicating when subscriptions can not be loaded on startup Set aim_ignorelogin_timer to 15 by default Admin message on login/logout of AIM Fixed double quoting in smartzpunt Added timestamp to login/logout messages Fixed replies to loopback messages Fixed smartnarrow on classes/instances with spaces Added the 'loggingdirection' variable All loopback messages log to 'loopback' now Print an error message if trying an invalid color for a filter Fixed bug causing > not to go to end of editwin every time 2.0.11 Updated basic help Display CC: in outgoing CC messages More AIM logout detection Don't proclaim "interfaces changed" on first build. Added the 'loopback' message type Added the 'loopwrite' command Added a timestamp to the default style Zpunt now works with weird regex characters Smart filters now work with weird regex characters 2.0.10 Allow 'hostname' in filters. Fixed bug in reporting when no one is subbed to a class Added an extral newline in logging incoming zephyrs An admin message is displayed when you are logged out of AIM Print an error message and admin message if an AIM send fails 2.0.9 Added the 'fancylines' variable. Added the 'show startup' command. Added feature for capturing stderr messages from commands and displaying them in the errors buffer. Create an admin message explaning that a zephyr couldn't be sent Better reporting of perl errors (both into the errqueue and also clearing the error after displaying it). Allow default_style to be specified in config. Added errqueue Added command "show errors" Fixed bug removing newlines in backup files 2.0.8 Increased size of screen name field in buddy listing Fixed bug with idle times causing broken pipes. New libfaim Added the 'source' command. Make sure that a newline is always at the end of messages returned by perl style formatting functions. Add owl::login and owl::auth to legacy variables populated for format_msg. Additions to intro.txt and advanced.txt documents. (Still in progress.) Add base methods for login_host and login_tty and others that return undef. New API for perl message formatting functions. Legacy variables are still supported for owl::format_msg and owl::receive_msg, but these functions are now also passed an owl::Message object which contains methods for accessing the contents of the message. See perlwrap.pm (and docs TBD) for the available methods. *** WARNING: The exact API for owl::Message has *** not yet stabilized. Added "style" command for creating new styles. Usage: style perl Added support for "show styles". Changed global style table from list to dictionary. Changed AIM password prompt from "Password:" to "AIM Password:". Messages are reformatted after a window resize to allow styles to take into account the width of the window. When perl throws an error, the message is put in the msgwin if possible. Added perl functions for: owl::getcurmsg() -- returns an owl::Message object for the active message in the current view. owl::getnumcols() -- returns the column width of the window owl::zephyr_getrealm() -- returns the zephyr realm owl::zephyr_getsender() -- returns the zephyr sender Made owl::COMMAND("foo"); be syntactic sugar for owl::command("COMMAND foo"); Added perlwrap.pm to contain perl code to be compiled into the binary. This is transformed into perlwrap.c by encapsulate.pl. Renamed readconfig.c to perlconfig.c and changed variables accordingly. Minor bugfixes in cmd.c and commands.c Improved intro doc 2.0.7 Idletimes now appear in the buddylisting Failed AIM logins are now correctly reported Owl will build now without zephyr, enabling it to act as a standalone AIM client. There is now a zcrypt command Replies to zcrypted messages now work Don't allow zwrite if zephyr isn't present Cleaned up some warnings from linux gcc. Fixed bug that can cause response stuff to crash Improved status command Fixed bug in buddy stuff 2.0.6 aimlogin will now accept the screenname without a password and ask for the password such that it is not echo'd to the terminal 'addbuddy aim' and 'delbuddy aim' now work Bug fix to make zwrite -m work with -c/-i Fixed documentation bug in aimwrite Initialze $owl::auth Fix in autoconf for des425 Reformatted editwin.c and added capability of doing password-style echoing 2.0.5 Fix in finding des for building zcrypt Fixed description for alert_action variable More detailed usage from -h Special cased replies for webzephyr users on classes and login notifications for webzephyr users Fixed bug that caused a crash on zpunt with '*' for an instance AIM logout and then login now works. Fixed bug causing view -d not to work. Added hostname and tty name to LOGIN/LOGOUT zephyrs on oneline style 2.0.4 Made command line option -n actually work Implemented styles, including the 'default' 'basic' and 'oneline' styles. A 'perl' style is available if a format_msg() function is found in .owlconf Added the 'default_style' variable Added the 'toggle-oneline' command The 'o' key is bound to 'toggle-oneline' Internally, the one view now has a name, 'main', and message recalcuations are done in place when its filter is changed. Added filter field 'login' which can take the values 'login' 'logout' or 'none' Added the perl variable $owl::login, just as above Updated the 'login' and 'trash' filters appropriately Fix for checking for DES in build system Bug fix in using makemsg when no curses window is present The variable $owl::auth now exists in perl Use new internal function to delete zephyr subs from file New 'sepbar_disable' variable can turn off sepbar info display Updated contributor info Added the 'show view' command Bug fix in owl_regex Fixed personal aim messages logging to class directory Log "LOGIN" or "LOGOUT" for AIM buddy messages zwrite -m now correctly displays an outgoing message and logs zwrite -s now works Strip spaces in AIM usernames on aimwrite send Removed libfaim/config.log from CVS Fixed some easy fixed-length buffers Wordwrap incoming AIM messages Fixed bug causing buddies not to be added to buddy list during ingorelogin timer Translate < > & "   &ensp, &emsp, &endash and &emdash 2.0.3 Don't ring the terminal bell on mail messages. Nuke Make the build work a little better on OSX Fixed a bug in fmtext Expanded the size of the hostname buffer 2.0.2 Fixed bug in 'startup' command. 2.0.1 Moved newmsgproc stuff to a function procedure Added the 'newlinestrip' variable, on by default, that strips leading and trailing newlines from incoming messages. Fixed a case sensitivity probelm in owl_message_is_personal and owl_message_is_private The message object now uses a list of attributes internally, in prep. for supporting new messaging protocols owl_function_info now uses fmtext instead of one staticly sized buffer in owl_message_get_cc() require that the colon be present after cc. Added some defenses against resize crashes, and put in debug messages if they're encountered In filters 'true' and 'false' are now valid tokens. The 'all' filter has been redefinied to be 'true' and there is a 'none' filter defined as 'false' Fixed bug in 'unsub' command that could cause file corruption In the zlist function, give a more detailed error message if the file cannot be opened. Renamed old instances of zsig_exec in the code to zsigproc Don't print the stderr from zsigproc Added a 'loadloginsubs' command to load login subscriptions from a file Added a 'loadsubs' command to eventually phase out the 'load-subs' command Made M-n work on classes and instances with spaces in them Zaway now obeys the smart strip variable Hacked the build system to not have the -E link problem on Athena Added ZResetAuthentication in a number of places to fix problems with stale tickets Added some hooks for malloc debugging M-p is bound to 'view personal' by default loadsubs and loadloginsubs only print messages if in interactive mode added the 'alert_filter' variable, defaults to 'none'. added the 'alert_action' variable, which is an owl command that will be executed when new messages arive that match the alert_filter added the 'term' command which takes the 'raise' and 'deiconify' options. It assumes xterm for now. only 'make distclean' will nuke core and ~ files now fixes to owl_function_do_newmsgproc from Stephen converted functions.c to new code style, which I'm giving a shot Makefile.in: define DATADIR, for default owlconf. Makefile.in: provide "all" and "install" rules. configure.in: try also libdes and libkrb4, for people using heimdal configure.in: see if des_ecb_encrypt is already prototyped. configure.in: minor changes to work with new autoconf without needing acconfig.h. configure.in: find the install program. configure.in: test for use_default_colors since some versions of solaris don't have it, so we can at least compile something vaguely working there. keypress.c: ifdefs for keys not defined on at least some solarises. owl.c: don't call use_default_colors if we don't have it readconfig.c: added *commented out* code to try to find a system-default owlconf if the user doesn't have one. Have to ponder if I want this zcrypt.c: don't prototype des_ecb_encrypt if there is a prototype in des.h. zcrypt.c: include owl.h so we get the configure-generated config.h Change to codelist.pl to deal with new code style Remove some ancient stuff from zcrypt.c General cleanup to Makefile.in CTRL and META are now OWL_CTRL and OWL_META. OWL_CTRL moved to keypress.c do_encrypt declaired static if we don't have des functions, do not try to build in zcrypt kill the newmsgproc function on exit Added libfaim Added basic AIM support, including the "aimlogin", "aimwrite" and "aimlogout" commands New built-in filters 'aim' and 'zephyr'. Do ZResetAuthentication() before zlog_in and zlog_out as well. Print AIM login / logout notifications The 'alist' command prints a list of aim buddies logged in The 'blist' command prints users from all protocols The 'l' key is now bound to 'blist' instead of 'zlist' Started work on 'addbuddy' and 'delbuddy' command but they DO NOT WORK yet Removed a bit of faim code that allowed commands to be executed. The 'B' key is now bound to 'alist' Added the 'startup' and 'unstartup' commands The $HOME/.owl directory is created on startup if it does not exist Added the 'aim_ingorelogin_timer' variable 'addbuddy zephyr ' and 'delbuddy zephyr ' now work. 'isloginout' and 'isprivate' are now message attributes improved 'info' function lists seperate info for zephyr, aim and also prints all message attributes AIM logging (both in and out) now works Disabled 'addbuddy' and 'delbuddy' for aim since it doesn't work yet Hacked the Perl build stuff not to link with iconv 1.2.8 Class pings are displayed differently now Updated owlconf.simple example to format outgoing messages. 1.2.7 Outgoing messages now go through the config for formatting Zaway now makes an outgoing message, instead of an admin message The 'zlocate' command can now handle multiple users The simple user format for "To:" is in effect again Prettyed up the zwrite line for using 'reply' on a zaway Added a workaround for a libzephyr bug that caused zwrites to fail if zephyrs were sent just before and just after renewing tickets Fixed a memory bug in getsubs Added receive support for zcrypt messages Added the 'zcrypt' variable which controls whether or not zcrypt messages are decrypted 'reply' is disabled for zcrypt until sending zcrypt works Started implementing zcrypt command More updates to the intro doc 1.2.6 Started adding code for newmsgproc. It doesn't fully work yet! Don't use it. Added search, '/' and '?' to basic help. Will attempt to keep the current message as close as possible to the previous current message after an expunge. "set " and "unset " now work for boolean variables. Fixed a bug in owl_function_calculate_topmsg_normal that caused a segfault Fixed some typos in the intro doc Removed old zlog functions from zephyr.c Implemented the dump command New startup message 1.2.5 Patch to fix memory bug in replying to CC messages If we're on Athena and have static krb (or other) libraries, use them Added "athstatic" program to the release, which handles the above Cast to an int for isspace, to make gcc -Wall quiet Added 'zlist' and 'l' to basic help. 1.2.4 'zlog in' will now take an optional thrid argument to set the 'tty' variable before setting the zlocation There is now a 'zlist' command that acts like 'znol -l' 'l' is bound to 'zlist' Fixed memory leak uninitialzed memory read in fmtext viewwin will now say "End" instead of "More" when at the end Added a debugging message indicating the result of topmsg calculations You can now use %me% in filters The built-in personal filter is updated to do so Fixed a bug in moving the pointer after an expunge Fixed up the normal scrolling code. Now it should always land on a message, but it's still not optimal. Added the variable 'smartstrip' which will strip kerberos instances out for the 'reply' command. Added -R/usr/athena/lib to the build for Athena Started updating the intro document Small changes to help / about The 'subscribe' and 'unsubscribe' commands (and their aliases) now update .zephyr.subs by default. If either is given the '-t' (for "temporary") option the .zephyr.subs will not be updated Turned off beeping for hitting the top or bottom of the list of messages Made daemon.webzephyr a special case for smartstrip Added 'out' as a default filter for outgoing messages 1.2.3 Added filters "ping", "auto" and "login" by default. Added "body" as a valid field to match on in a filter. Temporary fix to bug where C-SPACE would cause the key handler to lock up. Messages now have a direciton (in, out or none). Filters can match on this direction Outbound messages are no longer type 'admin' but are of the appropriate message type (i.e. 'zephyr') and are direction 'out'. Smartnarrow now works on outgoing messages 'info' updated to show more information for admin and outgoing messages Renamed pretty_sender to short_zuser and renamed long_sender to long_zuser Moved zsig generation to the zwrite object Print the zsig used for outgoing messages The tty variable now controls the zephyr location tty name 1.2.2 Added the 'search' command. '/' is a keybinding for 'search' '?' is a keybinding for 'search -r' Fixed stristr, which was completely broken renamed owl_fmtext_ztext_stylestrip to owl_function_ztext_styletsrip and put it in functions.c Attempts to stay near the current message when switching views. When switching from an empty view to one we've previously been in, the new current message position will attempt to be close to the current position from the last time we visited that view. Fixed bug in readconfig.c that prevented building under perl 5.005. Switched "C-x C-x" to only "startcommand quit" 'getsubs' prints closer to the order you sub in. Modified the behavior of last so that "> >" will clear the screen. The new behavior of last is: Moves the pointer to the last message in the view. If we are already at the last message in the view, blanks the screen and moves just past the end of the view so that new messages will appear starting at the top of the screen. Fixed a typo in the help for smartzpunt. Fixed functions to handle curmsg being past the end of the view. 1.2.1 New framework for command handling. New framework for keymap handling. Added commands for everything that is bound to a key (do 'show commands' to get the full list). Added 'multi' and '(' commands to allow multiple commands to be specified on a line. Added user keybindings with bindkey command. Added command aliases (eg, "alias foo bar"). Added undelete command that parallels the delete command. Added additional options to delete command. The reply command now takes arguments. Added 'edit:insert-text' command. Added 'show zpunts' to show active punt filters. Added 'show variable ' and 'show variables'. Added 'show command ' and 'show commands'. Added 'show keymap ' and 'show keymaps'. Added 'M-u' to undelete all messages in current view. Fixed dotsend so that the zephyr will still send if there is whitespace after the dot but not on the same line. This should resolve an issue where dotsend wouldn't work if you'd gone up and edited a zephyr. Bug in page down fixed C-t will transpose characters Fix the scrolling bug where we would sometimes fail to scroll the screen down, leaving the current message off the bottom of the screen. Refixed 'login or login' typo in help Fixed M-u description Removed 'first' and 'last' from basic command help Added M-N to basic key help Added M-D, M-u to basic key help Fixed a quoting problem in configure.in Changed top of help to use 'show' instead of M-x Fixed a bug in the summary field for user-created aliases Added "reply zaway" which sends a zaway response to the current msg. Added "edit:delete-prev-word" command and bound M-BACKSPACE to it. Some buffer overruns fixed Variables now have a summary and a long description. Only the summary is shown with help. The long description is shown with "show variable foo". Added a 'scrollmode' variable which determines how the screen will scroll as the cursor moves. The default behaves identically to previous versions of owl. The following modes are supported: normal - This is the owl default. Scrolling happens when it needs to, and an attempt is made to keep the current message roughly near the middle of the screen. (default) top - The current message will always be the the top message displayed. neartop - The current message will be one down from the top message displayed, where possible. center - An attempt is made to keep the current message near the center of the screen. paged - The top message displayed only changes when user moves the cursor to the top or bottom of the screen. When it moves, the screen will be paged up or down and the cursor will be near the top or the bottom. pagedcenter - The top message displayed only changes when user moves the cursor to the top or bottom of the screen. When it moves, the screen will be paged up or down and the cursor will be near the center. Added owl_sprintf which returns the formatted string, or NULL. The caller must free this string. This will allocate enough memory and thus avoid potential some buffer overrun situations. Simple implementation of 'zwrite -m' (doesn't yet log an outgoing message as having been sent.) The "Not logged in or subscribing to messages" error now includes the name of the recipient. The "disable-ctrl-d" variable may also be set to "middle" which will result in ctrl-d only sending at the end of the message. This is now the default. This also added a command "editmulti:done-or-delete". Fixed a bug in the "reply -e" command. Always clear the command buffer before executing the command. (So that interactive commands can sanely do start-command.) Fixed preservation of e->dotsend across owl_editwin_clear(). Added history for multiline edit windows (eg, for zephyr composition). The M-n and M-p keys will cycle through the history ring. In particular, it is now possible to edit the command line of a zephyr being composed: C-c it and restart it and then M-p to get the aborted composition back. Added owl::send_zwrite(command, message) to the perl glue to allow for the direct sending of multi-line messages. For example: owl::send_zwrite("-c foo -i bar", "hello"); Changed owl_fmtext_print_plain to return an alloc'd string to avoid buffer overrun risks. Added owl::ztext_stylestrip("...") function to perlglue which returns the ztext with formatting stripped out. Added colorztext variable which can be used to disable @color() strings arriving in messages after it is set. (Currently, changing its value won't reformat messages). Outgoing zephyr logging now obeys the logpath variable. The '~' character in logpath and classlogpath now gets replaced with the user's home directory. Added simple implementation of smartnarrow-to-admin that creates a "type-admin" autofilter. This was done mostly so that M-C-n and M-C-p do something sane on admin messages. Added opera to the allowed options to the webbrowser variable. Fixed some buffer overruns in the "reply" command. When repying to "all" on a message that begins with "CC:" (eg, sent with "zwrite -C", the reply line will be constructed from the sender and the usernames on the CC: line of the message being replied to. There is no such thing as C-R, so left C-r as it is but added: M-r --- edit reply to all M-R --- edit reply to sender Added RCS Id strings to all files. 'show keymaps' shows details of all keymaps after summary list. Added --no-move option to delete command. In particular, delete-and-always-move-down may now be implemented with '( delete --no-move ; next --skip-deleted )'. Folded the nextmsg and prevmsg commands and functions together into one command which takes arguments. Added '--filter ' option (eg, for next_personal), '--skip-deleted' option, and '--last-if-none'/'--first-if-none' options. Help updated accordingly. In particular, the 'personal' filter is now used for 'next personal'. Added --smart-filter and --smart-filter-instance options to the next and prev commands. Updated examples/owlconf.erik with the above. Made owl_function_fast*filt return a string and not do the narrowing, to make it more general. Added a smartfilter command that creates a filter based on the current message and returns the name of the filter. Added M-C-n and M-C-p keybindings to "move to next message matching current" and "move to previous message matching current" Added variables edit:maxfillcols and edit:maxwrapcols which will limit how wide editing paragraphs may get before they get wrapped. This is a max and may be narrower depending on the current size of the window. If 0, the max is unlimited. Default is 70 columns for edit:maxfillcols and unlimited for edit:maxwrapcols. Added smartzpunt command with key binding of "C-x k". This starts a zpunt command filled in with the proposed zpunt. Fixed a memory reference bug in delete and undelete commands. Added support for perl to call directly back into owl. Changed the implementation of owl::command("...") to immediately call back into owl. This allows perl to get the return value of strings returned by owl commands. Added the getview command which returns the name of the current view's filter. Added the getvar command which returns the value of a variable. Added an example to examples/owlconf.erik which uses TAB to narrow and restore the view. Added an example to examples/owlconf.erik which uses M-c to color messages matching the current one green. Integrated change to fix problem with popup blinking on new zephyrs. C-l and resizes will now refresh an open viewwin (eg, help). Updated doc/code.txt to include info about filters, commands, contexts, and keybindings. Exec commands cleaned up to not have buffer-size limitations and to not mess up spaces. exec also returns a string of the output now. Integrated changes from 1.1.3, and added docs for "zlocate -d" and new show commands. Show with arguments produces help on show. Fix a bug in readconfig caught by efence (where we'd try to read before the beginning of a string if it was empty). The perl command doesn't do makemsg directly, but instead returns the string and it will get printed if it was run interactively. 1.1.3 'show subs' and 'show subscriptions' are now the same as 'getsubs' zlocate now takes an optional -d argument 'show terminal' / 'show term' '>' / last doesn't set the last message at the top of the screen now implemented _followlast as an unsupported feature include 'default' in the 'show colors' list added help for 'zpunt' and 'zunpunt' changed the bug address in the startup message can now do 'show status' can now do 'show version' 'status' / 'show status' includes the owl version number now 'show terminal' includes whether the terminal can change colors fixed off by one bugs in paging / scrolling viewwin don't downcase the sender when getting the log name for personals support @owl::fields as well as @fields downcase class/inst filter names in auto filters 1.1.2 Fixed memory mishandling bug Fixed bug in redfining the filter attached to the current view M-n will narrow to message, instance on non-personal, class MESSAGE messages M-N behavies like M-n except that on class messages it narrows to class and instance line wrap earlier, to account for tabbing fixed typo in help 'status' command now displays info on terminal color support zephyr @ formatting is now case independant added support for color terminals zephyr @color(foo) now works 'D' for deleted messages is now not bold, unless it's the current message F1 displays the help screen added filter colors added the 'colorview' command added the 'show colors' command users who don't have a .zephyr.subs get a simpler format for incoming messages If colors are available 'show filters' will show a filter in the color associated with it. Added the zpunt and zunpunt commands Lines in the subs file starting with '-' are zpunted Include login/logout messages in auto user filters 'V' changes to the home view ('all' by default) 1.1.1 Fixed perl, aperl, and pperl commands to deal with quoting and spaces in a saner manner. Removed all owl_get_* methods for booleans and switched cases where they were used to owl_is_* Changes to owlconf.erik to use some new features. Increased the size of the help buffer (as it was overflowing and truncating the help message). Variables prefixed with a _ are not shown in help or by printallvars (and prefixed Not Yet Implemented variables with this). Fix typo in help include stdio.h in functions.c remove stale "q to quit" from bottom of info message fix downward scrolling more than a page use authentication for zlocate, by default fixed buffer over run in info command on long messages call 'perl ' from Makefile to avoid hardcoding perl paths in Makefile don't build owl_prototypes.h unless necessary store the time for admin messages display admin message time in 'info' command fixed an editwin M-> last character bug 1.1 reply is a normal function now 'R' does reply to sender 'T' tells you how many messages were marked for deletion local realm removed from login / logout messages added command history better runtime / starttime reporting in 'status' command leave the pointer near the current message after expunge C-l recenters editwin implemented zlocate @italic works the same as @i on reply only quote class / instance when necessary C-r allows you to edit the reply line don't use unecessary options in reply line display 'info' errors in msgwin, not popup impelemnted aexec, pexec commands the zsig now goes through ztext formatting messages have id numbers now 'info' prints the msgid added the 'filter' command added the 'view' command added the 'show filter' command added the 'viewclass' (and 'vc') commands added the 'viewuser' (and 'vu') commands M-n will filter to the current class or user 'v' starts a view command M-D will delete all messages in current view added the 'delete' (and 'del') command load-subs with no argument loads the default subs file '' is now when the *current* message is truncated the reply-lockout filter (with default) specifices messages that cannot be replied to. in the configfile owl::receive_msg is run whenever a message is received added the beep command added the contributors file declare ZGetSubscriptions and ZGetLocations since the includes don't seem to fixed bug in displaying last line in popwin if no final '\n' 'T' uses the 'trash' filter now zaway_msg, zaway_msg_default and zaway are all user variables now. zsig variable overrides zsigproc If there's no appendtosepbar don't interfear with the sepbar Changed: owl_message_get_numlines will return 0 of m is NULL Added login messages to messages marked by owl_function_delete_automsgs Added owl_function_delete_by_id(id) which acts independent of view Added "-id " option to delete command Fixed an arg checking bug in delete command Added owl::id to perl namespace with message id Fixed a memory corruption bug in readconfig.c (where right after the strdup to "out", we'd strcat a \n onto the end. This would be triggered whenever owl::format_msg returned a string not ending in a newline Added 'X' keybinding which expunges and then switches to a view defined by the variable "view_home" which defaults to "all" Consolidated readconfig.c somewhat to remove duplication. owl_config_execute now returns a string. Added an example config file that does vt-style formatting. (examples/owlconf.vtformat) Added the 'perl', 'aperl', and 'pperl' commands which will evaluate perl expressions. Fixed bug where pclose zsigproc would cause zombies Can set zsigproc or zsig to "" to disable Added support for multiple browsers (galeon and none were added). Configure with the "webbrowser" variable. Changing typewinsize height triggers resize event. Added zsig variable which will be used if no zsigproc and non-empty. Added "make test" rule to Makefile which will run regression tests, and added regression testing framework to tester Fixed codelist.pl to ignore static declarations. Added dict.c which contains string->ptr dictionary routines and the owl_dict type. These include regression tests. Overhaul/rewrite of variable handling. Variables are now managed in an owl_vardict (in g.vars) which contains a dictionary of owl_variable's. Each owl_variable has dispatch functions for validating values, setting it and getting it, and for setting it to and from string values. The variable.c file contains the list of variables. Stubs for the owl_global__get functions and friends are generated from variable.c by stubgen.pl. The help.c messages for variables now calls into variable.c so all information about most variables is in one place. Cleaned out code from global.c and command.c that was made obselete by variable overhaul. The set command now takes a -q option to not log a message. Fixed a bug where set and print with no arguments would print "Undefined variable" in addition to running owl_function_printallvars. debug is now a variable that can be turned on and off. Fixed mail,inbox message parsing in examples/owlconf.erik Made zaway_msg and zaway_msg_default into variables Changed owl_function_makemsg and owl_function_debugmsg to use varargs (ie, so they can now take a format string with args). Don't allow " and \ characters in URLs with the "w" command. Removed lots of build warnings. Popwins are wider by default so help messages fit better. Added an atokenize_free function. Fixes to work with an older version of libzephyr. Added dependencies on header files to Makefile.in Added pageup and pagedown key bindings to message list Added pageup and pagedown to viewwin Added configfile section to doc/intro.txt (from example config file) Added appendtosepbar variable which may contain text which will be appended to the sepbar. This allows the configfile to put information about pings and logins into the sepbar. (It may be worth also providing a variable which enables this by default, but for now this allows for experimenting with what works well.) Added doc/code.txt which gives a brief overview of the code. Added tags makefile rule and added TAGS to distclean rule. 1.0.1 fix frees in loadsubs and loadloginsubs don't return in owl_free 1.0 'print' and 'set' with no arguments prints all variables Added the 'unsubscribe' and 'unsub' command Renamed the 'unsub' command to 'unsuball' Added the 'getsubs' command which is like zctl ret Fixed bug in logging messages sent to more than one recipient Support '-C', '-O', and '-n' options to zwrite Fixed bug in owl_editwin_delete_char when there are no later chars after the cursor Make "more" and "truncated" work in the status bar enable printing of zsigproc and loginsubs variables only allow message scrolling if the message is actually off the screen 'T' will mark all automated message for deletion 'P' will go to the next personal message 'M-P' will go to the previous personal message replying to a login message goes to the user now added a status command added the intro doc to the release fixed off by one bug in viewwin added complete online help pass $owl::realm in configfile fixed editwin wordwrapping on the last line fixed editwin problem with key_right past the last char print an error and quit if the configfile can't be parsed got rid of owl_mainwin_calculate_topmsg fixed off by one error in calculating topmsg upwards you can now reply to an admin message don't display an error about keypress on window resize 0.11 fixed bug in viewing messages longer than the screen indicate in the sepbar if there is a non zero vert offset send on '.' on a line by itself added disable-ctrl-d variable fixed bug where C-k did not delete the last \n in the buffer make non-character meta keys work use ZSendNotice instead of ZSendList implemented <, >, M-< and M-> in viewwin removed the spaces at the bottom of viewwin added 'about' command fixed bug using 'M' with no current message changed message object to use char *'s to save on memory change malloc, realloc, strdup and free to use owl hooks so that debugging can be added 0.10.1 fixed a trailing space bug in the parser impelemented the "burning ears" feature have admin messages do ztext parsing fixed bug in reporting which M- key was pressed C-g will now cancel commands like C-c 0.10 implemented owl_function_full_redisplay(). C-l uses owl_function_full_redisplay(). when a popwin exists to a full redisplay. (fixes bug) improved the owl_editwin_process_char logic removed all unnecessary wrefresh's and replaced with wnoutrefesh owl_editwin_redisplay now takes an argument to optionally doupdate() improved the cut-and-paste speed by not doing a usleep the first time through the loop after getting a keypress. nuked typwin.c and associated stuff. It's useless now. added viewwin code for paging windows curly braces work for zephyr formatting @i in zephyr formatting will be displayed as underlined text turned off idlok implemented viewwin implemented viewwi in popwin for pageable popwins help, info now use pageable popwins bound 'M' to bring the current message up in a popwin return, space bar, 'b' and backspace now scroll within a message turned off resize message C-v and M-v page the main window implemented owl_message_is_mail some build cleanup 0.9 added owl_message_is_personal and have things use it added owl_message_is_private fixed 'print personalbell' and have 'set personalbell' print a message bold only on message_is_personal display the realm if not local implemented M-f, M-b, M-d, M-<, M-> in editwin implemnted word wrapping in editwin implemented M-q (paragraph-fill) in editwin fixed bug that caused owl to segfault logging a 'weird' class M-x is a keysym for ':' added smart bolding and userclue fixed a bug causing pings to beep even if rxping is off 0.8.1 fixed bug in logging code 0.8 implemented personal logging implemented class logging implemented resize of typewin fixed the backspace problem -v command line option prints the version number 0.7 load-subs will report error opening file skip comment lines in loadsubs and loadloginsubs changed internal references to rxping and txping fix replying to a blank instance added subscribe command subscribe to login messages from .anyone by default 'loginsubs' variarble controlls automated login messages redisplay the editwin after a resize leave the cursor in the editwin if active fix problems in the build system added displayoutgoing variable temporarily removed error printing for zlog in / out 0.61 fixed bug in "message sent to " for zwrite 0.6 help updated zaway key set to caps A support zephyring other realms rxping variable for receiving pings txping variable for sending pings function in place to resize typwin C-l to refresh personal bell variable beta message now an admin message 0.5 Added the debug command and flag Fixed bug in printing fields in info command Added owl_fmtext_append_ztext and use it Better formating for pings and login zephyrs make tester depends on proto