From 21220a5781cf977c81b38cd6f9b639b7a6766976 Mon Sep 17 00:00:00 2001 From: Mamoru Tasaka Date: Feb 26 2009 01:54:16 +0000 Subject: UTF-8 patch now upstreamed --- diff --git a/alexandria-0.6.3-library-utf8-string.patch b/alexandria-0.6.3-library-utf8-string.patch index 897866a..d61adab 100644 --- a/alexandria-0.6.3-library-utf8-string.patch +++ b/alexandria-0.6.3-library-utf8-string.patch @@ -1,32 +1,53 @@ ---- alexandria-0.6.3/lib/alexandria/ui/sidepane.rb.utf_8 2008-02-21 10:11:37.000000000 +0900 -+++ alexandria-0.6.3/lib/alexandria/ui/sidepane.rb 2009-02-26 03:33:41.000000000 +0900 -@@ -20,17 +20,25 @@ +Index: lib/alexandria/ui/sidepane.rb +=================================================================== +--- lib/alexandria/ui/sidepane.rb (revision 1013) ++++ lib/alexandria/ui/sidepane.rb (working copy) +@@ -19,21 +19,39 @@ + x and x.name != @parent.selected_library.name end - def contains_illegal_character new_text -- /([^\w\s'"()&?!:;.\-])/.match(new_text) -+ #/([^\w\s'"()&?!:;.\-])/.match(new_text) -+ if /(\/)/.match(new_text) -+ return true -+ end +- def contains_illegal_character new_text +- /(\/)/.match(new_text) +- # only forbid / character (since Library names become dir names) ++ # if new_text is invalid utf-8, returns true ++ # if new_text contains disallowed char (/), returns a MatchData object ++ # otherwise returns nil ++ def contains_illegal_character(new_text) + begin -+ new_text.unpack("U*") -+ rescue ++ new_text.unpack("U*") # attempt to unpack as UTF-8 characters ++ match = /(\/)/.match(new_text) ++ # only forbid / character (since Library names become dir names) ++ return match ++ rescue Exception => ex ++ log.warn { "New library name not valid UTF-8: #{ex.message}" } + return true + end -+ return false + # /([^\w\s'"()&?!:;.\-])/.match(new_text) # anglocentric! end def on_edited_library cell, path_string, new_text - log.debug { "edited" } +- log.debug { "edited" } ++ log.debug { "edited library name #{new_text}" } ++ ## new_text = new_text.reverse # for testing; ++ # a great way to generate broken UTF-8 if cell.text != new_text -- if match = contains_illegal_character(new_text) -+ if contains_illegal_character(new_text) - log.debug { "Illegal character" } - ErrorDialog.new(@main_app, _("Invalid library name '%s'") % new_text, + if match = contains_illegal_character(new_text) +- log.debug { "Illegal character" } +- puts match +- ErrorDialog.new(@main_app, _("Invalid library name '%s'") % new_text, - _("The name provided contains the " + "illegal character '%s'.") % - match[1].gsub(/&/, "&")) -+ _("The name provided contains illegal characters")) ++ if match.instance_of? MatchData ++ chars = match[1].gsub(/&/, "&") ++ ErrorDialog.new(@main_app, _("Invalid library name '%s'") % new_text, ++ _("The name provided contains the " + ++ "disallowed character %s ") % chars) ++ else ++ ErrorDialog.new(@main_app, _("Invalid library name"), ++ _("The name provided contains " + ++ "invalid characters.")) ++ end ++ elsif new_text.strip.empty? log.debug { "Empty text" } ErrorDialog.new(@main_app, _("The library name " + diff --git a/alexandria.spec b/alexandria.spec index 6b2ab13..adfa79e 100644 --- a/alexandria.spec +++ b/alexandria.spec @@ -5,7 +5,7 @@ %define majorver 0.6.3 %undefine minorver -%define fedorarel 9 +%define fedorarel 10 %define rel %{?minorver:0.}%{fedorarel}%{?minorver:.%minorver} @@ -69,7 +69,7 @@ Alexandria is a GNOME application to help you manage your book collection. %prep %setup -q -n %{name}-%{majorver}%{?minorver} #%%patch0 -p1 -b .tooltips -%patch1 -p1 -b .utf_8 +%patch1 -p0 -b .utf_8 %build rake build @@ -189,6 +189,9 @@ exit 0 %{_datadir}/icons/hicolor/*/apps/%{name}.* %changelog +* Thu Feb 26 2009 Mamoru Tasaka - 0.6.3-10 +- Use upstreamed patch for UTF-8 strings issue + * Thu Feb 26 2009 Mamoru Tasaka - 0.6.3-9 - Attempt to handle UTF-8 strings in library names correctly