* Sat Jun 07 23:04:02 2003, pabs * added ChangeLog * initial import * Sat Jun 07 23:09:10 2003, pabs * README: added requirements (YAML?) * Sat Jun 07 23:50:58 2003, pabs * raggle: added window type (for scrolling and selection behavior) * raggle: removed some old comments * Sat Jun 07 23:52:03 2003, pabs * added COPYING * Sun Jun 08 00:28:48 2003, pabs * raggle: added text reflow in Window#draw() * raggle: using start of "The Saturn Game" to demonstrate text reflow * raggle: added Link and Date fields to Description window * Sun Jun 08 07:59:37 2003, pabs * raggle: combined item_focus and hilite_auto_select into focus * raggle: sane keyboard configuration * Sun Jun 08 08:04:46 2003, pabs * raggle: added brief documentation to each method * Sun Jun 08 08:11:42 2003, pabs * raggle: slightly improved window refreshing * Sun Jun 08 18:19:32 2003, pabs * raggle: added preliminary online documentation as a pseudo-feed * added rss_grab.rb * Sun Jun 08 18:21:41 2003, pabs * rss_grab.rb: oops * Sun Jun 08 18:45:57 2003, pabs * raggle: added feed-grabbing thread * raggle: switched to select() with timeout so Ncurses::getch doesn't block ruby threads * raggle: added $config['feeds'] ("live" feeds) * Sun Jun 08 18:58:51 2003, pabs * raggle: added feed cache (uses YAML) * raggle: loads and saves from feed cache * Sun Jun 08 20:04:43 2003, pabs * raggle: added YAML dependency (for feed cache) * raggle: added expand_config() (primitive macro expansion) * raggle: $config['{feed_cache,config}_path'] are now derived from $config['config_dir'] * raggle: added '{load,save}_feed_cache' options * raggle: added 'input_select_timeout' option * raggle: added 'updated' field to feed hash * raggle: added 'read?' field to feed hash * raggle: added Alternet feed (pardon my political bias) * raggle: don't crash on empty feeds any more * raggle: slightly more informative comments * raggle: feed title now includes number of unread items * Sun Jun 08 20:56:41 2003, pabs * raggle: added additional online documentation * raggle: re-enabled save_feed_cache (oops) * raggle: added 'site' option * Sun Jun 08 22:11:35 2003, pabs * README: added brief introduction, requirements, etc * added AUTHORS * Mon Jun 09 02:32:39 2003, pabs * added TODO * raggle: code cleanup (moved all methods and code after config hash and Window class definition) * rss_grab.rb: made code much nicer looking (and OOP) * raggle: merged in code from rss_grab.rb * raggle: initial code for feed thread * Mon Jun 09 03:28:20 2003, pabs * raggle: actually parses feeds now :D * Mon Jun 09 10:46:29 2003, pabs * raggle: added 'strip_html' option * raggle: added OpenSounds to default feed list * raggle: all feed item elements are now optional (since different feeds seem to have different things) * raggle: Don't print date if it's not specified * raggle: fixed window redraw from update thread (maybe?) * Sat Jun 14 21:29:31 2003, pabs * raggle: added die() * raggle: added find_browser() (checks ENV['BROWSER'], falls back to links, then lynx) * raggle: added 'browser' option * raggle: added 'msg_load_config' option * raggle: added 'msg_load_feeds' option * raggle: added 'msg_save_feeds' option * raggle: added 'msg_thanks' option * raggle: slightly wider feed window * raggle: slightly shorter item window * raggle: added a ton of default feeds (i may tone this down a little) * raggle: removed ESC as a quit key -- seems to fix system call * raggle: load browser (seems to crash on return.. dunno why) * raggle: saner set_status() * raggle: added populate_feed_window() * raggle: feed thread updates status * rss_grab.rb: added redirect support * rss_grab.rb: handles urls ending in '/' * raggle: added redirect support * raggle: handles urls ending in '/' * Sun Jun 15 05:11:48 2003, pabs * raggle: scrolling works in feed and item windows!!! * raggle: added 'feed_log_mode' option (per-invocation feed log) * raggle: show selected item info in status bar * Sun Jun 15 06:14:15 2003, pabs * raggle: added unread and h_unread colors to item window (for unread feed items) * raggle: moved theme info (colors, window layout, etc) to ${config_dir}/theme.yaml * raggle: added 'browser_cmd' option * raggle: executing stuff works now * raggle: added color on cyan palette options * raggle: Feed::Window#draw takes a color instead of a hilite boolean * Sun Jun 15 06:46:30 2003, pabs * raggle: cleaner default theme * raggle: scrolling works! hoora! * raggle: change default colors * Sun Jun 15 14:53:47 2003, pabs * raggle: added screen support (via 'use_screen' and 'screen_cmd' options) * raggle: updated inline documentation * raggle: screen window (optionally) displays feed item title * Mon Jun 16 13:07:41 2003, pabs * raggle: don't save window sizes to theme * Tue Jun 17 04:11:49 2003, pabs * raggle: separated feed list from feed cache (to avoid losing the former if the latter gets corrupted) * raggle: switched to PStore for feed cache (MUCH MUCH faster loading now) * Tue Jun 17 22:31:28 2003, pabs * raggle: removed debug feeds (they didn't work any more anyway) * raggle: added preliminary support for END (it doesn't appear to work, but it's still there) * Tue Jun 17 23:57:20 2003, pabs * raggle: added command-line option handling * raggle: added command-line feed editor (add, list, remove) * raggle: added lockfile support (so multiple instances of Raggle don't trash each others' changes) * raggle: added command-line option help * Wed Jun 18 01:18:27 2003, pabs * raggle: remove annoying cache lock error * raggle: change cache locking and unlocking to non-blocking * Wed Jun 18 02:09:03 2003, pabs * raggle: added edit_feed (command-line edit feature) * raggle: commented out mouse support (needs patched ncurses-ruby to work at the moment) * Wed Jun 18 02:29:57 2003, pabs * raggle: added documentation for --edit * raggle: multi-instance cache disable now works correctly * Wed Jun 18 10:39:00 2003, pabs * raggle: fixed bug add feed bug reported by Richard Lowe * raggle: added 'unescape_html' option (decode html escape sequences in feed item descriptions) to fix another bug reported by Richard Lowe * raggle: renamed 'strip_html' option to 'strip_html_tags' * Thu Jun 19 02:44:33 2003, richlowe * raggle: Fix bug in net/https require that caused it to be non-optional * Thu Jun 19 03:26:21 2003, richlowe * raggle: Split scrolling out of Window#handle_key, into methods, so bindings can be customized later * raggle: Remove much duplicated "window scrolling" into Window#adjust_to, and call where I've noticed it's appropriate. * raggle: Add config option 'scroll_wrapping' to make behavior configurable when scrolling off the top or bottom of a list. * raggle: Add Window#activate to greatly simplify selecting an item from a list * raggle: Bind KEY_HOME to do the logical opposite of KEY_END * raggle: Bind KEY_NPAGE to do the logical opposite of KEY_PPAGE * raggle: Move page scrolling into scroll_{up,down}_page, and rework so that "page size" is configurable ('page_step'). * Thu Jun 19 05:21:41 2003, pabs * raggle: fixed unescape_html so it actually works * raggle: added special unescape_html bit for ‛, which is "'", and gets used all the time on PragDave's blog (I wonder if there are any more characters like this?) * raggle: added reflow_text parameter to Window#draw * raggle: Link: and Date: no longer reflow and wrap in Description window * AUTHORS: updated Richard's entry * TODO: marked off some stuff * Thu Jun 19 05:47:55 2003, pabs * raggle: minor comment updates * raggle: changed Window#wh to Window#dimensions (I like wh more, but I think Richard was going to kick me) * raggle: 'unicode_munge_str' option works properly now * raggle: handle pathological feeds more gracefully: if we're missing an item title, fall back to the truncated description as a title, and finally a truncated url * raggle: strip newlines from status strings * raggle: changed unicode munge str to 'ZZ' * Thu Jun 19 06:55:22 2003, pabs * raggle: don't allow someone to set a feed refresh of less than 30 minutes without passing the '--force' option on the command-line * raggle: added String#reflow * Thu Jun 19 15:15:08 2003, pabs * raggle: strip leading and trailing whitespace from feed item titles * raggle: do the same for feeds as well :) * Thu Jun 19 16:14:57 2003, pabs * raggle: negative page_step for window-height page-{up,down} * raggle: added 'theme/window_order' option (to control order of window activation) * Thu Jun 19 17:18:04 2003, richlowe * raggle: refix net/https require (rebroke in pabs' merge, I guess) * Thu Jun 19 17:46:43 2003, richlowe * raggle: Make Window#activate punt in feeds with no items. * Fri Jun 20 01:44:26 2003, pabs * raggle: added 'lock_feed_title' option: lock all feed titles to the value you enter (or the value pulled originally) * raggle: reset item offset when selecting new feed * raggle: added '--sort-feeds' command-line option: sort feed list alphabetically (case-insensitive) * raggle: added '--lock-title' command-line option: use it with --edit to lock the title of a specific feed (as opposed to the 'lock_feed_title' config option above, which locks _all_ feed titles. * raggle: added '--unlock-title' command-line option; it does the opposite of '--lock-title' * raggle: added brief descriptions to methods missing them * Fri Jun 20 02:29:18 2003, pabs * raggle: Window#clear actually works now * raggle: clear description window when selecting a new feed * raggle: added command-line documentation for --lock-title, --sort-feeds, and --unlock-title * raggle: added '--purge' command-line option: purge extra feeds in feed cache (only necessary if you manually edit your feed list, since it's called automatically on delete). * Fri Jun 20 03:11:18 2003, pabs * raggle: added 'save_feed_cache' option: save all old feed items, indefinitely (pretty stupid to use; the per-feed --save-items command-line option is probably much more appropriate) * raggle: added '--save-items' and '--unsave-items' command-line options. They set and unset the save_items? attribute on feeds, respectively. * Fri Jun 20 03:47:26 2003, pabs * implemented Richard's key bindings idea. Key bindings are now stored in $config and called as procs * Fri Jun 20 04:01:14 2003, richlowe * raggle: Fix Window#scroll_up_page and Window#scroll_down_page logic. * raggle: Make page up/down never wrap. It's confusing * Fri Jun 20 04:07:44 2003, richlowe * raggle: Fix bug preventing feed item number updating (misnamed variable). * Fri Jun 20 04:22:18 2003, pabs * raggle: terminal resize works now, although you have to press a few keys for it to update (not sure why yet). * Fri Jun 20 04:34:50 2003, richlowe * raggle: Allow a user to invalidate a feed (force a re-fetch) ./raggle (-i | --invalidate | --invalidate-feed) * Fri Jun 20 04:39:10 2003, richlowe * raggle: Invalidate a feed if it's URL changes in an edit. * Fri Jun 20 04:53:24 2003, pabs * added themes directory, and a handful of sample themes * Fri Jun 20 05:00:32 2003, pabs * TODO: updates, schmupdates * Fri Jun 20 21:24:25 2003, richlowe * raggle.1: Add mdoc manpage (needs changing to ms, preferably). * Fri Jun 20 21:31:31 2003, richlowe * raggle: Add -i/--invalidate to usage. * raggle.1: Document -i/--invalidate. * Fri Jun 20 23:03:24 2003, richlowe * raggle: Add a FeedList class, and make $config['feeds'] an instance of it. * Fri Jun 20 23:15:29 2003, richlowe * raggle: Add a Key module, and move routines to be bound to keys into it. * Fri Jun 20 23:26:16 2003, richlowe * raggle: Add default feeds. * Sat Jun 21 00:07:32 2003, richlowe * raggle: Add commands to move items in the item list (u = up, d = down). * Sat Jun 21 00:18:41 2003, richlowe * raggle: Add methods to move items in a window rather than doing it in the key handler * Sat Jun 21 01:46:36 2003, richlowe * raggle: Add item deletion support * Sat Jun 21 01:49:09 2003, richlowe * raggle: Fix typo in return binding. * Sat Jun 21 01:53:29 2003, richlowe * raggle: remove feed indirection through $SRC, there's no reason to use debug feeds anymore. * Sat Jun 21 13:21:10 2003, pabs * raggle: handle nil item titles sanely * raggle: check for --save-items and --lock-title in -e handler before dying * TODO: minor updates * Sat Jun 21 17:05:18 2003, pabs * raggle: added description and license * raggle: fixed move item up and down (wouldn't work outside of feed window) * raggle: make Key::delete select the previous feed * raggle: added Key::sort_feeds (bound to 'S' by default) * raggle: added FeedList#sort * raggle: make move_up and move_down bounded * raggle: Window#draw: escape % in strings * raggle: hilite feeds with unread items * raggle: added Richard to list of authors in command-line help * raggle: moved keybindings above palette in default config * raggle: disabled 'D' delete binding until we figure out a way to flush key events without blocking. there's a bug that causes Ncurses to drop the escape prefix on keys after resetting the window mode, which means you're pressing "A", "B", "D", or "C", respectively, when you press Up, Down, Left, or Right, after exiting a spawned browser. So we can't have anything destructive bound to those keys (eg. delete). * raggle: added a space prefix to the Raggle feed so it stays at the top after a sort * Sat Jun 21 18:43:09 2003, pabs * raggle: misc 1.8 cleanup. still doesn't work in 1.8, but it's a little closer * Sat Jun 21 23:38:31 2003, richlowe * raggle: Remove a 'p' before an exit 0 that I *think* I added by mistake * Sun Jun 22 00:25:12 2003, richlowe * raggle: Use GetoptLong for arg parsing, and *greatly* simplify the case. * Sun Jun 22 00:31:12 2003, richlowe * raggle: Fix FeedList#invalidate (calling a method when I should have been setting a hash item). * Sun Jun 22 00:38:37 2003, richlowe * raggle: Trap SIGINT and SIGQUIT early, and handle them gracefully * Sun Jun 22 00:45:25 2003, richlowe * raggle: Don't activate (and thus switch to 'items' with the (default) auto focus) the item selected after a deletion * Sun Jun 22 00:52:35 2003, pabs * raggle: mark empty feeds as read * Sun Jun 22 01:05:46 2003, richlowe * raggle: Remove Digital Theatre feed from defaults, it's been inaccessible for days now. * Sun Jun 22 01:08:15 2003, pabs * raggle: mark empty feeds in _red_, not as read (that's what I get for _talking_ to Richard, instead of typing to him :D) * Sun Jun 22 02:07:56 2003, richlowe * raggle: Allow FeedList's to be derefed like Arrays (just for Paul) INTERESTING NOTE: We can't delegate to Array, because that breaks YAML in all *sorts* of ways, basically, it makes a call that's delegated to the array, and thus assumes writes out based on the fact that FeedList *is* that array. This is not good. If only I knew the exact method I had to implement in FeedList to convince it not to do that. * Sun Jun 22 02:30:23 2003, richlowe * raggle.1: Add BUGS section, attempt to make option list easier to read * Sun Jun 22 02:41:16 2003, richlowe * raggle.1: Spellcheck * raggle: Spellcheck comments and strings. * Sun Jun 22 03:11:55 2003, richlowe * raggle: Default feeds refresh at 2 hours, rather than half an hour. * Sun Jun 22 03:19:46 2003, pabs , * raggle: add attributes to window colors * raggle: add attribute handling to Window#draw * raggle: added 'describe_hilited_feed' option; describe the hilited feed in the description window when hiliting them * raggle: only hilite error feeds, not ones that havne't been updated * raggle: remove strange p at the beginning of the line * raggle: add description for Raggle feed (for the inital stuff in the description window) * raggle: add attribute palette (similar to the color palette) * raggle: added new color keys to description window (for hiliting the feed description options) * raggle: change updated timestamp on all default feeds to zero * Sun Jun 22 04:09:24 2003, pabs * raggle: duplicate url in get_url (prevent prefix stripping) * raggle: move .to_i back into option handling (opts['id'] should always be a Fixnum * raggle: fix lock_title? bug * raggle: pruned default feed list to 10 items * Sun Jun 22 04:19:53 2003, richlowe * raggle.1: Add KEYS section to manpage documenting keybindings. * Sun Jun 22 04:31:18 2003, richlowe * raggle.1: Add an EXAMPLES section to the manpage giving examples of common usage (I hope) and (hopefully) offsetting the woeful quality of the rest of the page. * raggle.1: Add a license (copy/paste/sed from the executable) * Sun Jun 22 04:40:36 2003, richlowe * raggle.1: Pronouns. * Sun Jun 22 04:43:12 2003, richlowe * raggle.1: Fix type of list used in BUGS. * Sun Jun 22 04:56:14 2003, richlowe * raggle.1: Mention the email address that bug reports should be sent to. * Sun Jun 22 04:49:57 2003, pabs * raggle: ONLY I HOLD HTE COPYRIGHT MWHEHHAWHHAHAEHEH :) * raggle: change ncurses to "console"; it sounds nicer. * raggle: make sure richard is listed as an author everywhere * raggle: upped 'feed_refresh_warn' to 60 minutes * raggle: make 's' sort, instead of 'S' * raggle: updated timestamps on all raggle feed items * raggle: removed Ruby URL from welcome message (raggle feed description) * raggle: added basic navigation information to welcome message * raggle: updated welcome feed item * raggle: removed usage feed item * raggle: updated keyboard feed item * raggle: cleaned up reading feeds feed item * raggle: wrote adding feeds feed item * raggle: removed "Configuring Raggle" feed item * raggle: added "Files" feed item * raggle: updated reporting bugs section * Sun Jun 22 05:29:02 2003, richlowe * raggle: Fix bug where deleting an item would offset win/feed index, and cause widespread confusion, and a crash, when selecting the last item. It also made me change the code again, which I had commited myself to not doing (think of it as the "Richard sucks feature freeze", I think Paul will kill me if this breaks other stuff :) * Sun Jun 22 11:07:14 2003, pabs * README: updated system requirements * README: added installation section * README: added getting started section * README: added related links section * README: added Richard to the authors section * Mon Jun 23 00:39:22 2003, richlowe * README: Fix spelling. hilited -> highlighted, sorry, ispell agrees with me * Mon Jun 23 00:42:05 2003, richlowe * README: Fix spelling in comment, hilite -> highlight, see ispell comment above. (String will be fixed in code after release) * Mon Jun 23 04:37:14 2003, richlowe * TODO, BUGS: Mention that I have patches for description scrolling * raggle.1: Sync with BUGS * Mon Jun 23 05:07:58 2003, richlowe * raggle.1: Update BUG report URL to match inline documentation. *please* try to keep these in sync * Mon Jun 23 06:01:13 2003, richlowe * raggle: --lock-title and --save-items were being ignored with --add, fix (apparently missed in a merge). * Mon Jun 23 16:50:12 2003, pabs * raggle: updated themes to support new feed color stuff * Mon Jun 23 17:10:40 2003, pabs * raggle: --version doesn't require an argument * added Makefile (just for make install) * README: updated installation section to account for make install * Mon Jun 23 18:32:35 2003, richlowe * Makefile: Don't install rss_grab.rb * Mon Jun 23 18:49:04 2003, pabs * raggle: added 'msg_grab_done' and changed the grab feed thread to use it instead (it defaults to "Raggle #$VERSION" at the moemnt) * README: add comment about terminal size * Mon Jun 23 19:09:33 2003, pabs * added MANIFEST * releasing 0.1.0 * Mon Jun 23 19:18:17 2003, pabs * raggle: pretty error for unknown options, not an exception * okay, __really__ release 0.1.0 now * Mon Jun 23 19:48:17 2003, pabs * raggle: fix Raggle feed URL, just in case someone mucks with the refresh interval (which is set to -1 by default) * raggle: seriously, 0.1.0 * Mon Jun 23 01:27:30 2003, richlowe * raggle: Move find_{app,browser} into a Path:: module, something like cleanliness (but not really) * Mon Jun 23 01:36:35 2003, richlowe * raggle: Make Window#draw use String#reflow, rather than it's own. * Mon Jun 23 02:28:47 2003, richlowe * raggle: Add *very* basic description window scrolling, (only item desc, breaks feed desc *badly*) describe_feed -> FeedList#describe * Mon Jun 23 03:46:38 2003, richlowe * raggle: Break Window into subclassed TextWindow, and ListWindow. * raggle: Bound scrolling in TextWindow#scroll_{up,down} * Mon Jun 23 03:53:29 2003, richlowe * raggle: Implement page scrolling in TextWindow * Mon Jun 23 04:20:48 2003, richlowe * raggle: Don't wrap in list windows, you only get 1 line of it anyway. * Mon Jun 23 05:13:06 2003, richlowe * raggle: Reset the desc win offset to 0 when changing it's contents. * Mon Jun 23 05:21:37 2003, richlowe * raggle.1, BUGS, TODO: Remove references to description window not scrolling, it does now. * Mon Jun 23 21:55:42 2003, richlowe * raggle: make die() act like BSD err()/errx() (depending on whether $! is set) * Mon Jun 23 22:02:37 2003, richlowe * raggle: Up version to 0.2.0 * Mon Jun 23 22:06:24 2003, richlowe * raggle.1: Add HISTORY section mentioning first release. * Mon Jun 23 23:05:07 2003, richlowe * raggle: Strip HTML tags from titles in ListWindows (It seems some RSS feeds leave tags in the item title). * Mon Jun 23 23:11:34 2003, richlowe * raggle: unicode_munge_str ZZ -> !u! Don't revert, come up with a *better* solution, ZZ is not obviously non-content. * Mon Jun 23 23:39:35 2003, richlowe * raggle (String#reflow): Allow for space when calculating used space * Mon Jun 23 23:54:55 2003, richlowe * raggle (String#reflow): If we move when space is inserted, we don't have to tailor the math to allow for the extra * Tue Jun 24 00:13:07 2003, richlowe * raggle (handle_Command_line): No need to error on unrecognized options GetoptLong does it for us. * raggle (handle_Command_line): Only rescue GetoptLong::InvalidOption, so we can still see other errors * Tue Jun 24 08:36:58 2003, richlowe * README: Mention that we work with both YAML-Ruby, and syck (YAML-Ruby's successor) * Tue Jun 24 08:44:56 2003, richlowe * raggle: Parenthesize args to get_win_id in Key::open_link, as per warning from ruby1.8 * Tue Jun 24 10:38:45 2003, richlowe * raggle: Add option 'force_text_wrap' that will forcibly wrap long unwrappable lines, and use it in TextWindow#reflow_string * raggle: Fix bug in Window#reflow_string that caused window size to have 4 taken from it. (the fix is wrong, expect the right one in a minute or two. * Tue Jun 24 10:45:31 2003, richlowe * raggle: The afformentioned fix, plus some cosmetic adjustments to the wrap width. * Tue Jun 24 11:00:20 2003, richlowe * raggle: Add Window#clearrange to make it possible to only clear the part of a window that needs clearing. * raggle: Implement Window#clear in terms of Window#clearrange * raggle: Make TextWindow#draw use clearrange and *massively* speed up scrolling * Tue Jun 24 11:08:25 2003, richlowe * raggle (Window#draw_text): Only draw the parts of the text we'll be able to see (speed win) * Tue Jun 24 11:37:28 2003, richlowe * raggle: The clearrange clearing was clearing a line too high, with humourous results, fix. * Tue Jun 24 12:00:58 2003, richlowe * raggle: Fix subtley missplaced math in TextWindow#draw_items, drawing happens as you would expect now. * Tue Jun 24 15:37:52 2003, pabs Pull patch from RAGGLE-0-1 * raggle: The Key:: function the home and end keys are bound to, calls a function that doesn't exist. Apply fix from Ville Aine (vaine@cs.helsinki.fi). * AUTHORS: add Ville Aine to AUTHORS * Tue Jun 24 18:09:34 2003, richlowe * raggle (Window#draw_text): Oops, I somehow reverted the "not drawing the last line" fix, put it back. * Tue Jun 24 22:53:34 2003, richlowe * raggle (Window#select_win_item): *** SECURITY FIX *** Previously to this change (including 0.1-release) Shell metacharacters in URLs would be passed through unchanged, leading to the possibility of a malicious feed being able to run arbitrary commands as the user running raggle. This commit introduces two new config options 'force_url_meta' (defaulting to false) to force the acceptance of URLs containing shell metacharacters, and 'shell_meta_regex' (defaulting to /([\`\$]|\#{)/, but in need of refinement), URLs matching this regex are ignored, and an error is displayed in the status line ********************* * Tue Jun 24 23:12:21 2003, richlowe Pull patch from RAGGLE-0-1. * raggle (FeedList#describe): Handle the possibility of describing a feed that has never been updated (and thus feed['updated'] being nil), reported by Brian Almeida (bma@tynian.net). * Tue Jun 24 23:24:13 2003, richlowe * raggle (TextWindow): Implement #scroll_top and #scroll_bottom, for HOME/END bindings. scroll_bottom is just a stub right now, until I come up with the correct way to do it. * Tue Jun 24 23:35:17 2003, richlowe * raggle (TextWindow#scroll_bottom): Implement, Home and End keys now work in TextWindow's too. * Wed Jun 25 12:25:45 2003, pabs * raggle: set_status() shouldn't die on a nil message (reported by Brian Almeida (bma@tynian.net)). * Wed Jun 25 16:33:40 2003, pabs * raggle: fix off by one error in feed list size check in FeedList#get, FeedList#delete, FeedList#invalidate, and FeedList#edit. Reported by Ville Aine (vaine@cs.helsinki.fi). * raggle: above methods should be using die, not raise. * Wed Jun 25 20:47:15 2003, pabs * raggle: save read status of feed items, regardless of whether or not we save the actual feed (much nicer this way) * Thu Jun 26 01:55:02 2003, richlowe * raggle: Catch all exceptions out of main and only print the stack if the user asks for it (at pabs request). Enable with --diag or setting 'diag' => true, in your config file. * raggle.1: Change bug address back again, I'm sure I've seen it as ragglebug@, oh well * raggle.1: Document --diag * raggle.1: Document --config and --config-file, how did I miss these? * Thu Jun 26 02:19:30 2003, richlowe * raggle: I changed the case in handle_Command_line, but not the Getopt. I'm a tool, this fixes the last commit. * raggle: Die in the top level exception handler, don't just dump the message. * Thu Jun 26 02:23:17 2003, richlowe * raggle: Actually set the status line when we encounter a malicious URL, it's "Being a Tool" day here at richlowe towers. * Thu Jun 26 02:29:52 2003, richlowe * raggle: Beep when we get a bad URL, make it obvious something happened and maybe pull attention to the status line. * Thu Jun 26 02:34:07 2003, richlowe * raggle: Correctly Pad URLs and Dates away from the name tag in the description window (they don't butt the colon now). * Thu Jun 26 03:31:33 2003, richlowe * raggle: Don't display dates when they're not in the feed (set to "0"). * Thu Jun 26 03:34:48 2003, richlowe * raggle: Correctly correctly pad URLs, the title's were being indented, the text was drawn correctly. * Thu Jun 26 12:47:42 2003, pabs * raggle: fix space prefix problem in String#reflow * raggle: remove unnecessary String#dup calls from reflow_string methods (String#reflow already returns a dupped string) * Thu Jun 26 14:29:10 2003, pabs * raggle: fixed nil.unescape_html bug reported by Ville Aine (vaine@cs.helsinki.fi) * Thu Jun 26 20:08:18 2003, pabs * raggle: applied command-line option handling code cleanup from Ville Aine (vaine@cs.helsinki.fi). * Thu Jun 26 20:10:48 2003, pabs * AUTHORS: update Ville Aine's entry. * Thu Jun 26 20:36:05 2003, pabs * raggle: added mark all items as read (bound to 'm') * raggle: added shell escape (bound to '!') * raggle: added jump to next unread (bound to 'n') * (all this stuff was suggested by Ville Aine) * Thu Jun 26 21:08:38 2003, pabs * raggle: fix "Link:" and "Date:" X values now that the String\#reflow bug is fixed * Thu Jun 26 21:28:14 2003, pabs * raggle: redo the String#reflow fix (I changed it to show Richard why it broke, and accidentally recommitted it that way) * Thu Jun 26 21:29:15 2003, richlowe * raggle: Bind ^L to refresh the screen (this uses a literal ^L in the code, this is evil) * Thu Jun 26 23:46:27 2003, richlowe * raggle.1: Document 's', 'o', 'm', '!' and 'n' in the KEYS section. * raggle: Document 'm', '!' and 'n' in the Keyboard section of the internal documentation feed. * Fri Jun 27 17:14:16 2003, pabs * raggle: fix bug in FeedList#edit so --save-items works again * Fri Jun 27 17:57:16 2003, pabs * TODO: add new ideas to list * raggle: change 'Q' to 'q' in inline keyboard documentation * Fri Jun 27 18:56:47 2003, pabs * remove old/ * Sat Jun 28 15:18:30 2003, pabs * removed rss_grab.rb * added extras/rss_grab.rb * added extras/feed_sizes.rb * Mon Jun 30 21:13:06 2003, pabs * raggle: make --list-feeds handle feed titles and urls with % characters in them * Mon Jun 30 21:18:02 2003, pabs * raggle: applied patch from Ville Aine: make sure HTTP connections are closed, even when an exception is raised * Mon Jun 30 21:22:30 2003, pabs * raggle: aplied patch from Ville Aine: select_next_unread shouldn't crash if there's no unread items * Mon Jun 30 21:30:28 2003, pabs * raggle: applied patch from Ville Aine: Key::delete shouldn't crash if the feed list is empty * Mon Jun 30 21:56:33 2003, pabs * AUTHORS: updated Ville's entry and Richard's entry, added Richard Zidlicky * Mon Jun 30 22:56:03 2003, pabs * raggle: applied Ville Aine's import/export OPML patch * raggle.1: applied Ville Aine's import/export OPML patch * Tue Jul 1 04:55:56 2003, richlowe * extras/feed_dump.rb: Occaisional misshaps mean I lose my feedlist (note: not due to raggle bugs, generally my incompetance) This will dump title, url from the feed cache, and make it *much* easier to recreate the feedlist. (dumps raggle command lines to add the feeds found in the feed cache) * Tue Jul 1 05:50:20 2003, richlowe * raggle: Add support for moving to the previous unread item (bound to 'p'). * raggle.1: Document above in KEYS * raggle.1: Fix documentation for 'n' in KEYS (typo). * Tue Jul 1 06:10:26 2003, richlowe * raggle: Remove *many* derefs of the $wins array. Basically, get the win out of $wins when you get the id, thus getting both the id and the window *once* per func, rather than just getting the id, derefing $wins each time you need that window. I've tested everything I can see, and all is good, it's also a mechanical change, but we all know what happens when I make 'simple' changes. * Tue Jul 1 06:36:25 2003, richlowe * raggle: Draw the windows before we load the feed cache (not noticable here, but hopefully an improvement for large values of FeedCache.size). * Tue Jul 1 06:55:27 2003, richlowe * raggle.1: Mention ^L * raggle: unbind r, ^L is good enough. * raggle: Properly redraw when the feedcache has loaded. * Tue Jul 1 07:06:52 2003, richlowe * raggle: Only clear the part of the window that's necessary in Key::delete (real fix follows). * Tue Jul 1 07:14:15 2003, richlowe * raggle: Make ListWindow#draw_items do it's own clearing, as TextWindow#draw_items does, and remove the calls to .clear that this invalidates. Unfortunately, the TextWindow#clear calls can't be removed, since the Description, and article bodies would require blanking possible arbitrary lines in the switch, and it seems overkill to code up a func to blank unchanged lines, to avoid a redraw in that case. * Tue Jul 1 07:58:57 2003, richlowe * raggle: Fix some typos (and spelling errors) in comments and documentation. * Wed Jul 02 21:58:48 2003, pabs * raggle: fix the find_browser() bug reported and patched by Jon Bernard (jbernard@roanoke.edu) and Claes Nasten (pekdon@pekdon.net) (and someone else maybe?) * raggle: make die() take multiple arguments. ala puts * Thu Jul 03 15:15:19 2003, pabs * raggle: escape % in die strings. Based on a patch from Nikolai Weibull (lone-star@home.se) * Thu Jul 03 16:06:09 2003, pabs * raggle: args => *args in die() * Thu Jul 03 16:08:05 2003, pabs * raggle: i don't like "Eeeeeek" * Thu Jul 03 16:12:32 2003, pabs * raggle: switch order of $config['diag'] conditional (move it outside rescue block). screen cleanup wasn't happening properly for error messages because of this rescue block. * Thu Jul 03 16:16:17 2003, pabs * raggle: don't draw if text == nil or text.size <= 0 in draw_text * Thu Jul 03 21:08:51 2003, pabs * ChangeLog: attributed % escape in die() to correct person * Thu Jul 03 22:04:09 2003, pabs * AUTHORS: updated to reflect all the new patches * Thu Jul 03 22:15:38 2003, pabs * TODO: added some new stuff, marked off finished stuff * Fri Jul 04 18:14:19 2003, pabs * doc/pauls_feeds.yaml: remove Digital Theatre; it's nothing but trouble * Sat Jul 5 01:01:57 2003, richlowe * raggle: Escape everything we pass to Ncurses::mvprintw, it turns out that there's an sprintf hidden away in there. (Thanks to Richard Zidlicky for the backtrace, for some reason I hadn't managed to get a non-mangled one previously). * Tue Jul 8 17:31:30 2003, richlowe * raggle: Change the regular expressions involving escaped forward slashes '\/', to use %r!! so we don't have the ugly escapes. I find this more readable. * Wed Jul 9 03:49:15 2003, richlowe * raggle: Fix various parenthesis warnings, and one actual syntax error (I knew that ^L would come back and bite me in the ass), raggle now runs under ruby1.8-preview3 (the first 1.8 preview to include syck/YAML and REXML (according to ruby-lang.org)) * README: Update to note that 1.8.0-preview3 works. * BUGS: Mark the "Doesn't work under 1.8" bug as fixed, also the format bug I fixed a few days ago * Wed Jul 9 05:09:07 2003, richlowe * raggle.1: Fix a bug in the examples. * raggle.pod: Re-write the manpage in POD, thus getting a far more portable man page, the intent is that raggle.1 will be the output from running pod2man on this file, and that anyone changing raggle.pod will run 'make man' and commit both files. Currently 'make man' creates raggle.1.new until I'm convinced of the suitability of POD. * Makefile: Add a 'man' target to create raggle.1 (raggle.1.new, right now) from the POD source in raggle.pod * Thu Jul 10 03:10:54 2003, pabs * raggle: die() didn't save the results of escape_format(); added a String#escape_format! and used that (reported by Ville Aine, as usual). * raggle: applied select_unread patch from Ville Aine * raggle: applied preferred desc element patch from Ville Aine * Thu Jul 10 05:02:37 2003, pabs * raggle: do refresh check on opml import and with --add (patch from Ville Aine). * Thu Jul 10 05:03:24 2003, pabs * AUTHORS: update ville's entry to reflect new patches * Thu Jul 10 05:07:48 2003, pabs * README: update raggle url (raggle.org baby!) * raggle: update inline help feed urls to point at raggle.org * Thu Jul 10 05:10:49 2003, pabs * raggle: use the term "online help" instead of inline help in online documentation refresh URL (is this more or less ambiguous?) * Thu Jul 10 08:42:41 2003, pabs * raggle: apply patch from Ville Aine to fix bug reported by radsaq (kmradlof@colby.edu). * Fri Aug 15 16:54:26 2003, pabs * last commit message was wrong (that's what i get for binding it to a key) * raggle: merge Ville Aine's second HTML renderer * raggle: preliminary proxy support (doesn't work yet) * Fri Aug 15 18:20:12 2003, pabs * raggle: fix possible empty feed crash * Fri Aug 15 18:24:08 2003, pabs * raggle: move "LINKS:" text to $config['msg_links'] * Fri Aug 15 18:27:10 2003, pabs * added doc/theme_documentation.txt * Fri Aug 15 18:58:03 2003, pabs * raggle: removed initial Raggle Help feed. Now points to an online version of the help (at raggle.org). This should fix the disappearing help problems people have reported, and enable us to add additional help as necessary. * Fri Aug 15 19:07:43 2003, pabs * raggle: added $config['thread_priority_{main,feed}'], with the main thread priority set much higher than the grabbing (feed) thread. Should fix UI stalls when grabbing feeds. * Fri Aug 15 19:13:18 2003, pabs * raggle: handle © and ™ entities * Fri Aug 15 19:17:36 2003, pabs * README: added Ville Aine as an author. * AUTHORS: updated Ville Aine's entry (added HTML renderer) * README: added RSS feeds for Richard and myself. * raggle: added RSS feeds for Richard and myself. (Ville, do you have a web site?) * Sat Aug 16 08:57:25 2003, pabs * TODO: marked off some stuff that's been done * raggle: added Ville to the list of authors * raggle: added HTTP proxy support (via $config['proxy'] or, if that isn't set, the http_proxy and no_proxy environment variables) * raggle: --invalidate now accepts -1 to invalidate all feeds * raggle: added conditional HTTP GET support (doesn't fetch or parse unless the Last-Modified header has changed) * raggle: --add only requires a URL now * raggle: removed a few old comments * raggle: updated KernelTrap feed URL. * raggle: added paulduncan.org and richlowe.net to default feed list. * README: updated --add documentation in "Getting Started". * README: mention Raggle mailing list in "Getting Started". * raggle: added 'select_first' focus type. doesn't work yet, but eventually it'll be the select first item on activate mode. * Sat Aug 16 12:16:23 2003, pabs (in the last commit, but I forgot to mention it). * raggle: wrap the external libraries with a slightly more intuitive error message. it points people at the README or the web-based installation instructions if YAML, REXML, or Ncurses-Ruby are missing. * Sat Aug 16 12:20:40 2003, pabs * doc/pauls_feeds.yaml: updated Richard's feed URL. Ditto for mine. * Sat Aug 16 19:54:13 2003, pabs * raggle: added HTTP headers to config: includes Accept, User-Agent, and Accept-Charset. * Sat Aug 16 20:05:07 2003, pabs * raggle: added $config['use_http_headers'], to ward off the inevitable * raggle: removed REXML and YAML version from user-agent header * Sat Aug 16 20:07:54 2003, pabs * raggle: fix 1.8 encoding bug reported by srl * Sat Aug 16 20:35:32 2003, pabs * raggle: fix non-proxy HTTP grabbing (oops). also reported by srl. * Sat Aug 16 20:44:05 2003, pabs * raggle: he's still having problems. maybe this fixes it? * Sat Aug 16 20:53:18 2003, pabs * raggle: just to clarify, he's having a problem with release as well; I'm suspecting something is up with his Ruby install, but I'm not sure. Raggle stuff appears to be working fine (so noone try and fix what isn't broken ;)) * Sun Aug 17 07:11:12 2003, pabs * raggle: added manual updating (for modem lusers). you have to enable $config['use_manual_update'], then the feed grabbing thread will only run when the user presses 'U'(that's shift-U). * Sun Aug 17 07:43:18 2003, pabs * raggle: added $config['update_on_startup']: do we update the feed list automatically on startup? * Sun Aug 17 07:45:27 2003, pabs * raggle: minor cleanups * raggle: added $config['url_handlers']; raggle can handle file: and exec: prefixed URLs as well. the syntax for file URLs is the same as HTTP URLs, and it returns the file modification time as the last_modified (caching) information. the exec: prefixed URLs look basically like this: 'exec:cat /home/pabs/doc/test_rss_file.xml' also, we might consider restricting the refresh interval to HTTP URLs, since it doesn't make sense to have to force a two hour update on a file URL. something to think about * raggle: fixed adding new entries with just the URL (itw asn't setting the title or the default refresh) * Sun Aug 17 09:25:29 2003, pabs * raggle: don't import OPML URLs with exec: prefix. period. * raggle: don't check refresh interval on file: or exec: URLs * Sun Aug 17 10:44:40 2003, pabs * added extras/rss_dir_list.rb (as a test for exec: URLs). Note that this command can take quite a while to run on larger directories or slower machines (because of the stat() calls) * Sun Aug 17 10:46:50 2003, pabs * added extras/test_html_renderer.rb (forgot about it before) * Sun Aug 17 10:48:15 2003, pabs * raggle: add Ville to the list of authors at in the top comment * Sun Aug 17 10:50:36 2003, pabs * BUGS: add srl's OSX bug report to BUGS (although it might be a screwy install on his machine) * Sun Aug 17 10:54:29 2003, pabs * raggle: disable manual update in default config (silly me) * Sun Aug 17 10:56:30 2003, pabs * doc/default_config.rb: update from raggle app * Sun Aug 17 11:39:14 2003, pabs * raggle.1: added Ville Aine to authors list * raggle.1: changed raggle contact to raggle-dev@raggle.org * raggle.pod: added Ville Aine to authors list * raggle.pod: changed raggle contact to raggle-dev@raggle.org * doc/pauls_feeds.yaml: updated KernelTrap URL * doc/pauls_feeds.yaml: removed Google News links * raggle: added 'I' key to force a feed update (invalidate) * raggle: handle host-relative HTTP redirects properly * raggle: fix date string bug * raggle: update Pablotron RSS URL * extras/rss_dir_list.rb: add version to rss element * doc/pauls_feeds.yaml: removed broken links, sorted, etc * added doc/pauls_feeds.opml.gz * Sun Aug 17 12:24:40 2003, pabs * raggle: releasing version 0.2.0 * Sun Aug 17 12:33:23 2003, pabs * raggle: incrementing version number to 0.2.1 * README: ditto * Sun Aug 17 19:24:35 2003, pabs * raggle: hopefully fix Window#refresh bug reported by mgarriss@earthlink.net * Mon Aug 18 11:35:41 2003, pabs * raggle: apply patch from Ville to fix terminal resize bug reported by mgarriss@earthlink.net * Tue Aug 19 14:03:11 2003, pabs * raggle: apply fix from mgarriss@earthlink.net for "connection is already set up" bug * BUGS: mark "connection is already set up" off the list * Wed Aug 20 15:37:36 2003, pabs * raggle: fix nil in HTML::Parser::each_token reported by mgarriss@earthlink.net * raggle: clean up Ville's evil tabbing ;). * raggle: fix thread_priority_* unset in config bug reported by Richard Zidlicky * raggle: slightly more concise fix to unset thread priorities in config bug * Thu Aug 21 18:27:37 2003, pabs * Makefile: mkdir => mkdir -p (is that POSIX?) * Makefile: install extras/ in $DATADIR * Fri Aug 22 00:57:15 2003, pabs * BUGS: add swedish char mangling reported by salan on IRC (documented at http://www.raggle.org/files/swedish_char_corruption/) * TODO: added feature requests from Omnic on IRC * Fri Aug 22 01:19:47 2003, pabs * raggle: don't crash on untitled feeds * Fri Aug 23 00:38:24 2003, heap * raggle: fixed swedish char mangling bug * Fri Aug 22 18:28:45 2003, pabs * raggle: commit Ville's char mangling bug to this branch * raggle: fix "unnamed feed (0/0) (0/0) (0/0) ..." bug * Fri Aug 22 18:30:30 2003, pabs * BUGS: mark char mangling off the bugs list * Sat Aug 23 02:16:51 2003, heap * raggle: fix for the character mangling bug broke HTML rendering (oops), fixed that one. * Fri Aug 22 21:35:44 2003, pabs * raggle: make encoding fall back to iso-8859-1 if it's not defined in the $config * Fri Aug 22 21:52:59 2003, pabs * BUGS: added possible memory leak to list * Fri Aug 22 21:55:33 2003, pabs * MANIFEST: updated * Fri Aug 22 21:57:04 2003, pabs * releasing 0.2.1 * Fri Aug 22 22:01:37 2003, pabs * raggle: incrementing versoin number to 0.2.2 * README: ditto * Mon Aug 25 16:44:50 2003, pabs * raggle.pod: add --add to manpage (reported by sfire||mouse) * Mon Sep 01 13:46:00 2003, pabs * raggle: apply "Integer($1)" => "$1.to_i" suggested by Ville for the Yahoo News feed bug reported by "Nelson D. Guerrero" * Mon Sep 01 13:57:00 2003, pabs * doc/default_config.rb: add vi keybindings to default config (patch sent via Brian Almeida from Dan Drake ) * raggle: ditto * Makefile: apply cleanup patch from Brian Almeida . * AUTHORS: add a few missing entries * Tue Sep 02 18:32:46 2003, pabs * correct autofocus behavior (select active item on window change as well) * Thu Sep 04 03:10:35 2003, pabs * releasing 0.2.2 * Thu Sep 04 03:21:24 2003, pabs * raggle: updated version to 0.2.3 * README: ditto * Fri Sep 05 07:18:14 2003, pabs * raggle: fix bugs reported by karl d'adamo * raggle: handle HTTP 204 response properly * raggle: fix a nil dereference in fix_character_encoding() * raggle: handle host-relative, relative path HTTP redirects properly * raggle: added $config['strip_external_entities'] (work-around for broken REXML 2.7.1 external entity behavior) * raggle: don't buffer feed log output * raggle: wrap feed grabbing in begin/rescue pair * Tue Sep 09 01:13:08 2003, pabs * raggle: fix OPML import * Tue Sep 09 13:56:59 2003, pabs * raggle: remove full-screen redraw (and associated flicker) when selecting feed items * Tue Sep 09 14:51:54 2003, pabs * raggle: strip CDATA from descriptions before rendering (i'm worried this fix might cause problems later on. comments anyone?) * Tue Sep 09 16:31:07 2003, pabs * raggle: redraw item window after selecting item, so item is marked as read before next refresh (fixes bug reported by karl d'adamo * raggle: added http open and read timeouts (set to 10 and 30 seconds respectively) * Sat Sep 13 12:50:46 2003, pabs * raggle: finished Window#set_color, color entries for all window elements can include attributes now (fixes bug reported by Phil Gregory ) * BUGS: added list of backported fixes * Sat Sep 13 13:19:15 2003, pabs * raggle: add stdin and stdout support to OPML import/export (--import-opml - and --export-opml -, respectively) * Sat Sep 13 13:35:45 2003, pabs * raggle: disable open and read timeouts (they appear to be causing problems) * Sat Sep 13 13:39:39 2003, pabs * remove doc/pauls_feeds.yaml (replaced by OPML file now) * Sat Sep 13 14:04:39 2003, pabs * doc/pauls_feeds.opml.gz: updated * Sat Sep 13 14:07:11 2003, pabs * releasing version 0.2.3