Timeline
Jun 19, 2011:
- 10:24 PM Changeset [937a00e9]release-1.10release-1.8release-1.9 by
- Don't leak timestr when setting time in a perl message Signed-off-by: Alejandro R. Sedeño <asedeno@mit.edu>
- 4:40 AM Changeset [b0e6560] by
- Merge 7dfe886e75427ed8ba1ce9cc7e170bf1abd16b2c into 9d43dcc114c45fb1d94dec67eb38456bded0dc0d
- 2:44 AM Changeset [7dfe886] by
- Use G_GNUC_WARN_UNUSED_RESULT Have gcc warn us when we ignore the result of a function that requires the caller to free the result, or an initilization function that can fail. This might help (slightly) with preventing leaks and segfaults. Additionally changed some functions that should never fail to not return values. (The owl_list_* functions changed only fail if list->size < 0, which we assume is not the case elsewhere.)
- 1:49 AM Changeset [9d43dcc]release-1.10release-1.8release-1.9 by
- Build with -Wwrite-strings Signed-off-by: Anders Kaseorg <andersk@mit.edu>
- 1:49 AM Changeset [4e37d56]release-1.10release-1.8release-1.9 by
- owl_dict_regtest: Copy and free dict values Signed-off-by: Anders Kaseorg <andersk@mit.edu>
- 1:49 AM Changeset [9efc154]release-1.10release-1.8release-1.9 by
- variables_to_init: Copy string literals This squashes the rest of the -Wwrite-strings warnings from temporarily storing string literals in char * fields. Signed-off-by: Anders Kaseorg <andersk@mit.edu>
- 1:49 AM Changeset [9e86f6f]release-1.10release-1.8release-1.9 by
- variables_to_init: Move into new function owl_variable_add_defaults Signed-off-by: Anders Kaseorg <andersk@mit.edu>
- 1:49 AM Changeset [117c21c]release-1.10release-1.8release-1.9 by
- commands_to_init: Copy string literals This squashes a bunch of -Wwrite-strings warnings from temporarily storing string literals in char * fields. Signed-off-by: Anders Kaseorg <andersk@mit.edu>
- 1:49 AM Changeset [aad166a]release-1.10release-1.8release-1.9 by
- commands_to_init: Move into new function owl_cmd_add_defaults Signed-off-by: Anders Kaseorg <andersk@mit.edu>
- 1:49 AM Changeset [ea68035]release-1.10release-1.8release-1.9 by
- Copy and free pval_default for OWL_VARIABLE_STRING variables Signed-off-by: Anders Kaseorg <andersk@mit.edu>
- 1:12 AM Changeset [fcc0936] by
- Merge 4798b3653fae047b4c94e9ea07237195446b2991 into fe73d0c8bf42966a7f576c0ee9158753d7685592
- 1:08 AM Changeset [4798b36] by
- Build with -Wwrite-strings Signed-off-by: Anders Kaseorg <andersk@mit.edu>
- 1:08 AM Changeset [81a5686] by
- variables_to_init: Copy string literals This squashes the rest of the -Wwrite-strings warnings from temporarily storing string literals in char * fields. Signed-off-by: Anders Kaseorg <andersk@mit.edu>
- 1:08 AM Changeset [3756803] by
- variables_to_init: Move into new function owl_variable_add_defaults Signed-off-by: Anders Kaseorg <andersk@mit.edu>
- 1:08 AM Changeset [df7301c] by
- commands_to_init: Copy string literals This squashes a bunch of -Wwrite-strings warnings from temporarily storing string literals in char * fields. Signed-off-by: Anders Kaseorg <andersk@mit.edu>
- 1:08 AM Changeset [d4c3284] by
- commands_to_init: Move into new function owl_cmd_add_defaults Signed-off-by: Anders Kaseorg <andersk@mit.edu>
- 1:08 AM Changeset [44dd092] by
- Copy and free owl_variable.pval_default Signed-off-by: Anders Kaseorg <andersk@mit.edu>
- 1:07 AM Changeset [24a791f]release-1.10release-1.8release-1.9 by
- Make owl_variable.validsettings const char * Signed-off-by: Anders Kaseorg <andersk@mit.edu>
- 12:07 AM Changeset [fe73d0c]release-1.10release-1.8release-1.9 by
- Just require stdbool.h and tell ncurses to use it Now that Solaris' stdbool.h works for us, we may as well just require it. The preamble is repetitive and didn't actually work anyway. (It conflicts with ncurses' attempts to redefine bool when stdbool.h is unavailable or disabled.) We may need to add a different preamble later if we care about including these headers in C++ (Solaris has a C++-incompatible stdbool.h), but we can deal with that later.
- 12:07 AM Changeset [d1d68e0]release-1.10release-1.8release-1.9 by
- Build with C99 This allows (and even requires) us to use -D_XOPEN_SOURCE=600 on Solaris. It also makes the Solaris stdbool.h actually work.
- 12:07 AM Changeset [4f5e38f]release-1.10release-1.8release-1.9 by
- Properly discover things when /usr/athena != /usr On Solaris, by an accident of configure and krb5-config, we manage to discover libzephyr and libcom_err, but not com_err.h. Thankfully the latter is not fatal and we relied on C's defaulting everything to int. And by accident we were searching for libzephyr, and not zephyr.h. Also use CPPFLAGS instead of CFLAGS to pull in our bundled header files, otherwise autoconf warns about a discrepancy between the preprocessor and compiler.
- 12:07 AM Changeset [b14f8cb]release-1.10release-1.8release-1.9 by
- Make the barnowl shell script work in Solaris Apparently their shell is lame. In case someone wanted to run this thing on Solaris or something absurd like that.
- 12:04 AM Changeset [a006d475] by
- Merge 28da2daf4548256b44d1fd586200032e96462d57 into e93dd785a2e76aa0dc14ecd56fd2c61b3598bc96
Jun 18, 2011:
- 11:56 PM Ticket #143 (jwrite fails on jids including a dash (-)) closed by
- fixed
- 11:52 PM Ticket #181 (Display jabber names (not just jids)) created by
- Currently, only jids are displayed on messages and notifications. We …
- 11:04 PM Ticket #172 (These tickets should go somewhere) closed by
- fixed
- 5:17 PM Ticket #149 (Net::IRC is abandoned) closed by
- fixed: Fixed in 1753ea0efc7c6af1bbd2888e6138421dbb939fad. Using AnyEvent::IRC now.
- 5:12 PM Changeset [0d3c100] by
- Merge e93dd785a2e76aa0dc14ecd56fd2c61b3598bc96 into 5b197f71370f5a5b3c3c09935c5679d6c90fa4c2
- 5:09 PM Changeset [e93dd78]release-1.10release-1.8release-1.9 by
- Properly tear down the ncurses screen in tester.c There's actually a set of valgrind suppressions in ncurses, and there really isn't API to clean up after initscr. But since we allocate this SCREEN ourselves, may as well clean it up.
- 5:07 PM Changeset [f0781ba]release-1.10release-1.8release-1.9 by
- Release reference to GMainLoop when done It's only done at shutdown, but we may as well appease valgrind.
- 4:39 PM Changeset [596c8b10]release-1.10release-1.8release-1.9 by
- Don't leak string data in owl_util_regtest
- 2:57 PM Changeset [a9237aa]release-1.10release-1.8release-1.9 by
- Don't specify both G_VOID and G_SCALAR Turns out G_SCALAR is 0, so it doesn't really matter, but we may as well say what we mean.
Jun 11, 2011:
- 10:16 PM Changeset [5b197f7]release-1.10release-1.8release-1.9 by
- zcrypt: Remove unused #include <zephyr/zephyr.h> Signed-off-by: Anders Kaseorg <andersk@mit.edu>
- 6:31 PM Changeset [7df7be2] by
- Replace BarnOwl::Timer with a perl wrapper over AnyEvent This also allows us to kill owl_timer altogether.
- 6:31 PM Changeset [b9d22f7] by
- Drop show timers feature It was useful to access programmatically and probably not hugely useful. We can restore something like it later if it's really needed.
- 6:31 PM Changeset [89fe67e] by
- Convert pseudologins timer to glib timers
- 6:31 PM Changeset [6dc3757] by
- Convert AIM timers to glib timers We do lose the timer tracking feature, but I think that's fine. Glib does have some main loop debug spew to run, though admittedly it may require a custom-built glib. Glib 2.14 allows us to use g_timeout_add_seconds which synchronizes wakeups at the seconds granularity to minimize CPU wakeups.
- 6:31 PM Changeset [db4f7c3] by
- Bump required glib version to 2.16 Debian Lenny's version is 2.16.6-3 and Ubuntu Hardy's is 2.16.6-0ubuntu1.2. Also remove the version check in main; it never did anything useful as GLIB_CHECK_VERSION is evaluated at compile-time.
- 6:31 PM Changeset [431fcd8] by
- Use AnyEvent's Glib backend
- 3:52 PM Changeset [2fe7c45]release-1.10release-1.8release-1.9 by
- Merge pull request #24 from ezyang/master Handle Jabber nicks with leading dashes (e.g. Facebook XMPP) Signed-off-by: Edward Z. Yang <ezyang@mit.edu> Reviewed-By: Karl Ramm <kcr@1ts.org>
- 10:04 AM Changeset [d6ab007] by
- Merge a27acf7e0eeeab9f58eed28146c6c99cc161b3b0 into 83a4af3422d232d9ef981a5a009e31549c839a14
- 9:35 AM Changeset [a27acf7]release-1.10release-1.8release-1.9 by
- Handle Jabber nicks with leading dashes (e.g. Facebook XMPP) Signed-off-by: Edward Z. Yang <ezyang@mit.edu>
Jun 10, 2011:
- 7:06 PM Changeset [7f86e3d] by
- zcrypt: Remove unused #include <zephyr/zephyr.h> Signed-off-by: Anders Kaseorg <andersk@mit.edu>
Jun 6, 2011:
- 11:50 AM Changeset [28cd43f9] by
- Merge 83a4af3422d232d9ef981a5a009e31549c839a14 into cc305b53e93deb26ad26d3eb1beaf34d53c0d6ac
Jun 4, 2011:
- 5:55 AM Changeset [83a4af3]release-1.10release-1.8release-1.9 by
- Replace free() with g_free() I can't believe I missed this when I made 950e2dac.
Jun 3, 2011:
- 11:07 PM Changeset [6376af1] by
- Use glib spawn functions when launching a newmsgproc The glib version is smaller and has the advantage of not leaking all our file descriptors to the process. More importantly, it does not call malloc between fork and exec which is not safe in the presence of threads.
May 30, 2011:
- 10:27 PM Changeset [cc305b5]release-1.10release-1.8release-1.9 by
- Move log-writing onto a background thread. Currently, Barnowl writes message logs on the same thread as the UI and other I/O. This means that if writing log files is very slow (e.g. if logpath or classlogpath point to somewhere in AFS and the fileserver that volume relies on is very slow to respond), barnowl freezes up until the write completes. This patch creates a background logging thread as part of initialization and runs a main loop on that thread. Logging is then accomplished by posting tasks that write to log files to that thread, a la how other threads can post tasks to the UI thread's main loop. Post a quit task to the logging thread's mainloop instead of quitting directly Calling g_main_quit() on the main thread to quit the logging thread could resultin log tasks still in its queue getting lost. Instead, after we've shut down everything that could log messages, post a quit task to the log thread so that it'll only get run after everything outstanding has been processed.
- 10:27 PM Changeset [44976fe]release-1.10release-1.8release-1.9 by
- Make owl_select_post_task take a context argument Make owl_select_post_task take a context argument to indicate /which/ running mainloop it should run the task on, since now there's more than one.
- 7:51 PM Changeset [9835b7a] by
- Merge 1081d0fb7e406801281c29e6ec2e0f9362f9b70c into 259e60a8abc2d2d41bc7a484b02a334fdd13857f
- 7:49 PM Ticket #175 ("startup" command produces error when run for the first time) closed by
- fixed: Pushed as commit 6eb3ed9ee6c4b94d35628e5b6b2bbaeccca565a9.
- 7:46 PM Changeset [259e60a8]release-1.10release-1.8release-1.9 by
- Remove the length limit on field values in :info
- 7:45 PM Changeset [8ffa264]release-1.10release-1.8release-1.9 by
- startup: check for file before calling owl_util_file_deleteline This fixes trac #175: '"startup" command produces error when run for the first time'. The startup command deletes duplicate lines, and thus errored when no file existed. A check has been added to prevent this.
- 7:43 PM Changeset [6eb3ed9]release-1.10release-1.8release-1.9 by
- Show how far you are in a long message Addresses most of ticket #119 - it shows how far you are in a long message, but not in a message that you're typing. The display style I've somewhat arbitrarily chosen is to replace <truncated> with <truncated: $num_lines_through/$total_lines>. Additionally, the <truncated> part of sepbar has been moved to be next to 'SCROLL', which it is most similar to.
May 28, 2011:
- 2:24 AM Ticket #180 (Paste detection in wordwrap) created by
- When pasting zephyr excerpts, code, and other preformatted text, it's …
- 2:07 AM Ticket #179 (Intelligently (refuse to) wordwrap lists) created by
- When I hit M-q in the middle of something like […] Or […] I want …
May 27, 2011:
- 12:08 PM Ticket #178 (failure message from addbuddy is clobbered by inaccurate success message) created by
- owl_zephyr_addbuddy owl_function_errors if it can't open the …
- 12:00 PM Ticket #65 (ability to set exposure arbitrarily) closed by
- fixed: Fixed by commit f203cad04d71e968a11be5e72e6c9d805e02010d
May 25, 2011:
- 11:10 PM Changeset [414a272] by
- Merge 6476c0e00a11e070e7480afa291a8a0976aa7828 into 697221fc51f0060043c93821f0358317f6bc6ab0
- 11:05 PM Changeset [6476c0e]release-1.10release-1.8release-1.9 by
- stderr_redirect_handler: Handle partial or failed reads Signed-off-by: Anders Kaseorg <andersk@mit.edu>
- 3:45 PM Ticket #177 (Explicitly set jabber status should not be overridden) created by
- If I explicitly set a jabber status, it should not be overridden. …
May 24, 2011:
- 9:36 PM Changeset [f1c845b] by
- Merge 697221fc51f0060043c93821f0358317f6bc6ab0 into b848e308e9f8f212ddbf787f08111af994000512
- 9:36 PM Changeset [697221f]release-1.10release-1.8release-1.9 by
- Inform the user when an unpunt command does nothing Also, make the corresponding message for referencing a punt filter by number not an error. It's not an internal error, so it needn't be logged.
- 9:36 PM Changeset [78f6c35]release-1.10release-1.8release-1.9 by
- Don't use skiptokens in punt/unpunt There was no need for it. This cuts down on one of the more nasty usages of skiptokens in command parsing.
- 9:22 PM Changeset [2d415cc]release-1.10release-1.8release-1.9 by
- Fix the documentation for punt/unpunt The full extent of the horrors of these commands' syntax had not quite been correctly documented.
- 5:39 PM Ticket #176 (viewuser should support non-zephyr protocols) created by
- I frequently talk with one person on jabber, and whenever I want to …
- 12:10 AM Changeset [b848e30]release-1.10release-1.8release-1.9 by
- Fix the build on libzephyr-less machines Just don't compile the event source functions at all. There's no good reason to use them without libzephyr support. We should really move towards not building zephyr.c in that case anyway.
May 23, 2011:
- 10:24 PM Changeset [33b6431b]release-1.10release-1.8release-1.9 by
- Clarify owl_io_dispatch ownership A created owl_io_dispatch is owned by whoever created. For instances where owl_select needs to remove one of them, we instead invalidate them. In the case of perl IO dispatches, they are owned by the nebulous blob that implicitly maps fd to IO dispatch. This is completely insane, but should avoid leaving people with invalid owl_io_dispatch pointers. Use this same mechanism to restore owl_select_prune_bad_fds logic. We really need to kill this and owl_timer in favor of glib's things.
- 9:09 PM Changeset [f97c1a6]release-1.10release-1.8release-1.9 by
- Merge branch 'g_main_loop' The logic in owl_select_prune_bad_fds still needs to be reimplemented. Conflicts: configure.ac owl.c select.c
- 8:57 PM Changeset [1d21d9f]release-1.10release-1.8release-1.9 by
- Use sigwaitinfo instead of sigwait Eh, may as well give the signal handlers a little bit more rope.
- 8:57 PM Changeset [ba12b44]release-1.10release-1.8release-1.9 by
- Add owl_select_post_task helper function Honestly, the only thing you'd ever want to do to a message loop from another thread is post a one-off task to it. Why Glib makes this so difficult is beyond me.
- 8:57 PM Changeset [117b2ba]release-1.10release-1.8release-1.9 by
- Move owl_process_input_char to owl.c It would be nice to move some functions out of there too, but it really makes no sense in select.c.
- 8:57 PM Changeset [dc1edbd]release-1.10release-1.8release-1.9 by
- Add a GSource for AIM events The AIM file descriptor hack is somewhat less of a hack now. Remove code related to the old AIM implementation now that it's been superceded.
- 8:57 PM Changeset [08e9842]release-1.10release-1.8release-1.9 by
- Cleanly destroy the signal thread on shutdown This isn't strictly necessary here, but we should probably be in the habit of safely cleaning up our helper threads. Switch the implementation from GThread to pthreads directly. The cleanest way to kill a signaling thread is to send it SIGTERM with pthread_kill, but GThread doesn't expose that and gives no way to get at the pthread_t.
- 8:57 PM Changeset [6bd485e]release-1.10release-1.8release-1.9 by
- Reset signal dispositions and mask, in case our parent was lame Also check return values more carefully.
- 8:57 PM Changeset [47128d9]release-1.10release-1.8release-1.9 by
- Allow interrupts to be taken at any point This way we can catch SIGINT in the middle of a search if we care. (Though ideally we wouldn't block the event loop when searching like this.)
- 8:57 PM Changeset [1491439]release-1.10release-1.8release-1.9 by
- Don't deliver SIGALRM through the signal thread We don't do anything with it, and code that uses alarm(), of which we have none, wouldn't expect it to be set to something useful anyway.
- 8:57 PM Changeset [e2cc848]release-1.10release-1.8release-1.9 by
- Just ignore SIGPIPE altogether There's not much point in switching back and forth from ignoring it and mostly ignoring it. Also, we don't handle SIGCHLD so remove the code for it. (We actually also disable it in the Jabber module because XML::Stream sets $SIG{PIPE}. Meh.)
- 8:57 PM Changeset [81db142]release-1.10release-1.8release-1.9 by
- Make owl_signal_init take a signal-thread callback Instead of pushing the work directly the main thread. This will allow us to react to SIGINT earlier.
- 8:57 PM Changeset [257b9c4]release-1.10release-1.8release-1.9 by
- Punt pre-select actions The four users are now directly handled with GSources.
- 8:57 PM Changeset [3535a6e]release-1.10release-1.8release-1.9 by
- First go at sigwait-based signal handling Instead of relying on pselect and signal masking to listen for signals, which glib doesn't support, we spawn a dedicated signal thread that loops in sigwait. These signals are posted back to the main message loop which may handle them at will. This avoids the need for complex reentrant code and sig_atomic_t. This removes the final pre-select action. SIGINT doesn't quite work right yet because we can no longer take it in the middle of an event loop iteration.
- 8:57 PM Changeset [959cb85]release-1.10release-1.8release-1.9 by
- Add a zephyr GSource This may actually have some use as a GSource instead of g_idle_add since we queue messages up and only process so many at a time. The use of ZQLength isn't strictly necessary, but we may as well be fancy and wait for the poll() to tell us if there's any point in reading before doing so. This is the third pre-select action.
- 8:57 PM Changeset [6b4033f]release-1.10release-1.8release-1.9 by
- Also make owl_process_messages a GSource This is the second pre-select action.
- 8:57 PM Changeset [4cc49bc]release-1.10release-1.8release-1.9 by
- Make the owl_window redraw hook a GSource (Should this be a g_idle_add instead?) This is the first pre-select action to die.
- 8:57 PM Changeset [2c79eae]release-1.10release-1.8release-1.9 by
- Start of GMainContext code Add GSources to feed owl_timer and owl_io_dispatch events into the main loop. Also add a hack so pre-select actions run at all. Glib's main loop has a hard priority system, so it prefers that prepare/check hooks return if the event would actually do anything. We probably want to replace every pre-select action with a dedicated GSource (or maybe a bunch of g_idle_add calls). Signals are also racy right now; glib uses select/poll instead of pselect/ppoll, so you can't actually listen for signals on the same thread. (In fact, the single-threaded version of g_child_watch_add doesn't actually work.) That's okay as what we were doing doesn't work when you add a second thread and thread safety is sort of the point of this work. The AIM hack need also be restored. Keep owl_select around for now as reference.
- 8:57 PM Changeset [1255365]release-1.10release-1.8release-1.9 by
- Link to gthread-2.0 so we can use glib's threading code
- 8:57 PM Changeset [ebb8498]release-1.10release-1.8release-1.9 by
- Mark some functions static They were never called outside select.c
- 8:20 PM Changeset [57bc141]release-1.10release-1.8release-1.9 by
- Punt _owl_select_timer_eq It hasn't been used for a long time.
- 8:20 PM Changeset [feeb835]release-1.10release-1.8release-1.9 by
- Remove OwlGlobalNotifier typedef Ugh. This is what I get for being sloppy with my experiments.
May 20, 2011:
- 4:50 PM Changeset [1081d0f] by
- Remove the length limit on field values in :info
- 3:59 PM Changeset [4c7c21f]release-1.10release-1.8release-1.9 by
- owl_dict_create also never fails And like everywhere else, we weren't checking the return values most of the time anyway.
- 3:59 PM Changeset [351c535]release-1.10release-1.8release-1.9 by
- owl_dict_get_keys never fails No sense in returning an error code.
- 3:59 PM Changeset [fda61d3]release-1.10release-1.8release-1.9 by
- g_strdup and g_new0 never fail Remove pointless failure checks cluttering the code.
- 3:59 PM Changeset [3b8a563]release-1.10release-1.8release-1.9 by
- Remove NULL checks before calling g_free g_free handles the NULL check for us.
Note: See TracTimeline
for information about the timeline view.