$NetBSD: patch-ab,v 1.2 2010/09/12 03:30:06 taca Exp $
--- raggle.orig 2005-12-14 22:54:11.000000000 +0000
+++ raggle
@@ -81,6 +81,7 @@ require 'pstore'
require 'thread'
require 'time'
require 'uri'
+require 'rubygems' if RUBY_VERSION.sub(/\.\d+$/, "") < "1.9"
#########################
# load external modules #
@@ -132,7 +133,7 @@ if $HAVE_LIB['gettext']
GetText::bindtextdomain('raggle', nil)
end
-unless $HAVE_LIB['webrick'] || $HAVE_LIB['ncurses']
+unless $HAVE_LIB['webrick'] and $HAVE_LIB['ncurses']
$stderr.puts _(<<-ENDERR
ERROR: No interfaces available.
You're missing the both the Ncurses-Ruby and WEBrick modules. You need
@@ -457,16 +458,16 @@ class String
HTML_ENTITY_LUT[m]
else
case m
- when 'amp': '&'
- when 'nbsp' ' '
- when /^quot$/ni: '"'
- when /^lt$/ni: '<'
- when /^gt$/ni: '>'
- when /^copy/: '(c)'
- when /^trade/: '(tm)'
- when /^#8212$/n: ","
- when /^#8217$/n: "'"
- when /^#8218$/n: ","
+ when 'amp'; '&'
+ when 'nbsp'; ' '
+ when /^quot$/ni; '"'
+ when /^lt$/ni; '<'
+ when /^gt$/ni; '>'
+ when /^copy/; '(c)'
+ when /^trade/; '(tm)'
+ when /^#8212$/n; ","
+ when /^#8217$/n; "'"
+ when /^#8218$/n; ","
when /^#(\d+)$/n
r = $1.to_i # Integer() interprets leading zeros as octal
if !r.between?(0, 255) && munge_uni
@@ -1146,7 +1147,7 @@ module Raggle
max_items = outline.attributes['max_items'] || nil
priority = outline.attributes['priority'].to_i || $config['default_feed_priority']
# the following properties take effect unless overridden on CLI
- if outline.attributes['refresh']: opml_refresh = outline.attributes['refresh'].to_i
+ if outline.attributes['refresh']; opml_refresh = outline.attributes['refresh'].to_i
else opml_refresh = nil; end # fixes clobberation
frefresh = refresh || opml_refresh || $config['default_feed_refresh']
fsave_items = save_items || outline.attributes['save_items'] || false
@@ -1185,7 +1186,7 @@ module Raggle
raise if $wins
die "Parsing #{file_name} failed: #{parse_err.message}" unless $wins
rescue => err
- if $wins: Interfaces::NcursesInterface::set_status($config['msg_bad_uri'])
+ if $wins; Interfaces::NcursesInterface::set_status($config['msg_bad_uri'])
else die err.message; end
end
end
@@ -1222,7 +1223,7 @@ module Raggle
raise "Couldn't open output file \"#{file_name}\"."
end
rescue => err
- if $wins: Interfaces::NcursesInterface::set_status($config['msg_bad_uri'])
+ if $wins; Interfaces::NcursesInterface::set_status($config['msg_bad_uri'])
else die err.message; end
end
end
@@ -1519,14 +1520,14 @@ module Raggle
refresh_interval_check opts['refresh'] if !opts['force'] &&
opts.has_key?('refresh')
if id == -1
- 0.upto($config['feeds'].size - 1) do |id|
- feed = $config['feeds'].get(id)
+ 0.upto($config['feeds'].size - 1) do |i|
+ feed = $config['feeds'].get(i)
ourl = feed['url']
otitle = feed['title']
%w{title url site refresh priority category lock_title? save_items? max_items}.each { |key|
feed[key] = opts[key] if opts.has_key? key
}
- $config['feeds'].invalidate(id) if opts.has_key?('url') and opts['url'] != ourl
+ $config['feeds'].invalidate(i) if opts.has_key?('url') and opts['url'] != ourl
feed['lock_title?'] = true if opts.has_key?('title') and opts['title'] != otitle
end
else
@@ -1749,14 +1750,14 @@ ENDWARNING
@items = []
item_element_path = is_atom ? '//feed/entry' : '//item'
- doc.root.elements.each(item_element_path) { |e|
+ doc.root.elements.each(item_element_path) { |el|
# get item attributes (the ones that are set, anyway... stupid
# RSS)
h = {}
if is_atom
# parse atom entry
- h = parse_atom_entry(e)
+ h = parse_atom_entry(el)
else
# basic item attribute element check
['title', 'link', 'date', 'description'].each { |val|
@@ -1765,7 +1766,7 @@ ENDWARNING
# more elaborate xpath checks for item attribute elements
['link', 'date', 'description'].each { |key|
- h[key] = find_element(e, key)
+ h[key] = find_element(el, key)
}
# handle RSS enclosures for this element
@@ -1813,8 +1814,15 @@ ENDWARNING
if $HAVE_LIB['iconv'] && $config['use_iconv']
unless $iconv
# $iconv hasn't been intialized; create it
- enc += '//TRANSLIT' if $config['use_iconv_translit']
- $iconv = Iconv.new(enc, 'UTF-8')
+ if $config['use_iconv_translit']
+ begin
+ $iconv = Iconv.new(enc + '//TRANSLIT', 'UTF-8')
+ rescue Iconv::InvalidEncoding
+ $iconv = Iconv.new(enc, 'UTF-8')
+ end
+ else
+ $iconv = Iconv.new(enc, 'UTF-8')
+ end
end
# decode element using iconv
@@ -2025,37 +2033,37 @@ ENDUSAGE
when '--update'
ret['mode'] = 'update'
ret['id'] = (arg && (arg != 'all')) ? arg.to_i : 'all'
- when '--config': $config['config_path'] = arg
- when '--force': ret['force'] = true
- when '--list': ret['mode'] = 'list'
- when '--title': ret['title'] = arg
- when '--url': ret['url'] = arg
- when '--refresh': ret['refresh'] = arg.to_i
+ when '--config'; $config['config_path'] = arg
+ when '--force'; ret['force'] = true
+ when '--list'; ret['mode'] = 'list'
+ when '--title'; ret['title'] = arg
+ when '--url'; ret['url'] = arg
+ when '--refresh'; ret['refresh'] = arg.to_i
when '--version'
puts "Raggle v#$VERSION"
exit(0)
- when '--priority': ret['priority'] = arg.to_i
- when '--purge': ret['mode'] = 'purge'
+ when '--priority'; ret['priority'] = arg.to_i
+ when '--purge'; ret['mode'] = 'purge'
when '--sort'
ret['mode'] = 'sort'
- when '--lock-title': ret['lock_title?'] = true
- when '--unlock-title': ret['lock_title?'] = false
- when '--save-items': ret['save_items?'] = true
+ when '--lock-title'; ret['lock_title?'] = true
+ when '--unlock-title'; ret['lock_title?'] = false
+ when '--save-items'; ret['save_items?'] = true
when '--max'
ret['max_items'] = arg.to_i
ret['save_items?'] = true if ret['max_items'] > 0
- when '--unsave-items': ret['save_items?'] = false
- when '--verbose': $config['verbose'] = true
+ when '--unsave-items'; ret['save_items?'] = false
+ when '--verbose'; $config['verbose'] = true
when '--import-opml'
ret['mode'] = 'import_opml'
ret['opml_file'] = arg
when '--export-opml'
ret['mode'] = 'export_opml'
ret['opml_file'] = arg
- when '--diag': $config['diag'] = true
+ when '--diag'; $config['diag'] = true
when '--default-config'
ret['mode'] = 'default_config'
- when '--ascii': ret['ascii'] = true
+ when '--ascii'; ret['ascii'] = true
when '--server'
if $HAVE_LIB['webrick']
$config['run_http_server'] = true
@@ -2333,10 +2341,10 @@ ENDUSAGE
#
def Key::close_window
case $a_win
- when NcursesInterface::get_win_id('find'): $wins[$a_win].close(true)
- when NcursesInterface::get_win_id('cat'): $wins[$a_win].close(true)
- when NcursesInterface::get_win_id('keys'): $wins[$a_win].close(true)
- when NcursesInterface::get_win_id('edit'): $wins[$a_win].close(true)
+ when NcursesInterface::get_win_id('find'); $wins[$a_win].close(true)
+ when NcursesInterface::get_win_id('cat'); $wins[$a_win].close(true)
+ when NcursesInterface::get_win_id('keys'); $wins[$a_win].close(true)
+ when NcursesInterface::get_win_id('edit'); $wins[$a_win].close(true)
end
end
@@ -3391,11 +3399,11 @@ ENDUSAGE
error = true if (feedopt == 'priority' or feedopt == 'refresh') and
str !~ /^-?\d+$/
error = true if feedopt == 'max_items' and
- not (str =~ /^\d+$/ or str =~ /none|nil/i)
+ not(str =~ /^\d+$/ or str =~ /none|nil/i)
error = true if (feedopt == 'url' or feedopt == 'site') and
not uri?(str)
error = true if feedopt == 'save_items?' and
- not (str =~ /true/i or str =~ /false/i)
+ not(str =~ /true/i or str =~ /false/i)
error = true if feedopt == 'refresh' and
str.to_i < $config['feed_refresh_warn']
if error # bail if user entered nonsense via basic checks
@@ -3405,15 +3413,15 @@ ENDUSAGE
case feedopt # create options hash to pass to engine
when 'save_items?'
- if str =~ /true/i: newopts = {feedopt => true}
+ if str =~ /true/i; newopts = {feedopt => true}
else newopts = {feedopt => false}; end
when 'priority', 'refresh'
newopts = {feedopt => str.to_i}
when 'max_items'
- if str =~ /none|nil/i: newopts = {feedopt => nil}
+ if str =~ /none|nil/i; newopts = {feedopt => nil}
else newopts = {feedopt => str.to_i}; end
when 'category'
- if str =~ /\bnone\b|\bnil\b/i: newopts = {feedopt => nil}
+ if str =~ /\bnone\b|\bnil\b/i; newopts = {feedopt => nil}
else newopts = {feedopt => str}; end
else newopts = {feedopt => str}
end
@@ -3575,7 +3583,7 @@ ENDUSAGE
item_content = item_content.gsub(/href\s*=\s*["']([^'"]+?)['"]/m) {
m = $1.dup
new_url = case m
- when (/^(\w+):\/\//): m
+ when (/^(\w+):\/\//); m
else
# attempt to merge URI with host_uri. if that fails,
# log a warning, then fall back to the unmodified string
@@ -3599,7 +3607,7 @@ ENDUSAGE
# fix host-relative item URL
item_url = feed['items'][id]['url'].dup
item_url = case item_url
- when (/(\w+):\/\//): item_url
+ when (/(\w+):\/\//); item_url
else [host_uri, item_url].join('/')
end
end
@@ -3664,10 +3672,11 @@ ENDUSAGE
# get browser command
cmd = $config['browser_cmd'].map { |cmd_part|
- case cmd_part
- when /%s/: cmd_part % url.escape
- when '${browser}': $config['browser']
- else cmd_part
+ case cmd_part
+ when /%s/; cmd_part % url.escape
+ when '${browser}'; $config['browser']
+ else
+ cmd_part
end
}
@@ -3833,7 +3842,7 @@ ENDUSAGE
# if it's not nil, then add it to our list
added = false
if url && url.length > 0
- if title: added = Engine::add_feed({ 'url' => url, 'title' => title })
+ if title; added = Engine::add_feed({ 'url' => url, 'title' => title })
else added = Engine::add_feed({ 'url' => url }); end
NcursesInterface::populate_feed_win
else
@@ -4112,13 +4121,13 @@ ENDUSAGE
old_key = key
key = key.gsub(/^KEY_/, '')
case key
- when 'DC': key = 'Delete'
- when ' ': key = 'Space'
- when 'NPAGE': key = 'Page Down'
- when 'PPAGE': key = 'Page Up'
- when '': key = 'Control-L'
- when ' ': key = 'Tab'
- when /^\d$/: key = '1-9'
+ when 'DC'; key = 'Delete'
+ when ' '; key = 'Space'
+ when 'NPAGE'; key = 'Page Down'
+ when 'PPAGE'; key = 'Page Up'
+ when ''; key = 'Control-L'
+ when ' '; key = 'Tab'
+ when /^\d$/; key = '1-9'
end
unless key == old_key # remove cruft if key info updated
keys[key] = keys[old_key]
@@ -4251,9 +4260,9 @@ ENDUSAGE
$wins = []
$config['theme']['window_order'].each { |i|
case i
- when /feed/: cl = NcursesInterface::ListWindow
- when /item/: cl = NcursesInterface::ListWindow
- when /desc/: cl = NcursesInterface::TextWindow
+ when /feed/; cl = NcursesInterface::ListWindow
+ when /item/; cl = NcursesInterface::ListWindow
+ when /desc/; cl = NcursesInterface::TextWindow
else
raise "Unknown window #{i}"
end
@@ -4606,10 +4615,10 @@ ENDUSAGE
((cat =~ /\ball\b/i) ? ' selected="1"' : '') <<
">All\n"
- $config['feeds'].categories.each { |cat|
- ret << " \n"
+ $config['feeds'].categories.each { |c|
+ ret << " \n"
}
ret << "\n"