Hi Andy, I don't think this behaviour is always desirable for all applications. Some applications might prefer to catch an error exception while others might be happy to simply ignore the error as your fix would do.
In which situations do these functions not work for you? Couldn't you use some other utf8 Haskell package to check for the correctness of strings? Cheers, Axel On 29.06.2010, at 08:34, Andy Stewart wrote: > 1 patch for repository [email protected]:/srv/code/gtk2hs: > > Tue Jun 29 14:32:43 CST 2010 Andy Stewart <[email protected]> > * Use traceShow replace error provide safer fromUTF. > > New patches: > > [Use traceShow replace error provide safer fromUTF. > Andy Stewart <[email protected]>**20100629063243 > Ignore-this: 4ccec77e1d2b1405b979e14ec1818077 > ] { > hunk ./glib/System/Glib/UTFString.hs 50 > > import Control.Monad (liftM) > import Data.Char (ord, chr) > +import Debug.Trace > > import System.Glib.FFI > > hunk ./glib/System/Glib/UTFString.hs 170 > fromUTF :: String -> String > fromUTF [] = [] > fromUTF (all@(x:xs)) | ord x<=0x7F = x:fromUTF xs > - | ord x<=0xBF = err > + | ord x<=0xBF = noconvert all > | ord x<=0xDF = twoBytes all > | ord x<=0xEF = threeBytes all > hunk ./glib/System/Glib/UTFString.hs 173 > - | otherwise = err > + | otherwise = noconvert all > where > twoBytes (x1:x2:xs) = chr (((ord x1 .&. 0x1F) `shift` 6) .|. > (ord x2 .&. 0x3F)):fromUTF xs > hunk ./glib/System/Glib/UTFString.hs 177 > - twoBytes _ = error "fromUTF: illegal two byte sequence" > + twoBytes str = traceShow ("fromUTF Warning: " ++ str ++ " has > illegal two byte sequence, no convert!") str > > threeBytes (x1:x2:x3:xs) = chr (((ord x1 .&. 0x0F) `shift` 12) .|. > ((ord x2 .&. 0x3F) `shift` 6) .|. > hunk ./glib/System/Glib/UTFString.hs 182 > (ord x3 .&. 0x3F)):fromUTF xs > - threeBytes _ = error "fromUTF: illegal three byte sequence" > + threeBytes str = traceShow ("fromUTF Warning: " ++ str ++ " has > illegal three byte sequence, no convert!") str > > hunk ./glib/System/Glib/UTFString.hs 184 > - err = error "fromUTF: illegal UTF-8 character" > + noconvert str = traceShow ("fromUTF Warning: " ++ str ++ " has > illegal UTF-8 character, no convert!") str > > -- Offset correction for String to UTF8 mapping. > -- > } > > Context: > > [Update Embedded demos. > Andy Stewart <[email protected]>**20100628072541 > Ignore-this: 1792a53558175309e474755b2fd170ab > ] > [Add function drawableGetID. > Andy Stewart <[email protected]>**20100628071306 > Ignore-this: 66f80a911f63867209160d53e51c8498 > ] > [Fix freeHaskellFunPtr problem in Clipboard.chs > Andy Stewart <[email protected]>**20100627113550 > Ignore-this: efa86a719456d15b01eaaed62393f78f > ] > [Apply Oleg's patch to fix clipboardRequestTargets segfault. > Andy Stewart <[email protected]>**20100627103336 > Ignore-this: 5602ff1727f889cdccc5bc2cb0f7353c > ] > [Add MPlayer client demo. > Andy Stewart <[email protected]>**20100617090640 > Ignore-this: 5a8ab681c148ca07f27f768f9f62b1b7 > ] > [Move hierarchy.list to gtk package (Don't need reinstall gtk2hs- > buildtools after add new type) > Andy Stewart <[email protected]>**20100604131309 > Ignore-this: d3f52ea66e784a2ecd66d764571f58a9 > ] > [Move hierarchy.list to gio package (Don't need reinstall gtk2hs- > buildtools after add new type) > Andy Stewart <[email protected]>**20100604130442 > Ignore-this: 7539a9c035e4f25ac54d619c92021f49 > ] > [Move hierarchy.list to pango package (Don't need reinstall gtk2hs- > buildtools after add new type) > Andy Stewart <[email protected]>**20100604130210 > Ignore-this: b2ebce6749cf1083f3810e6175ceb1a2 > ] > [Fix INSTALL > Andy Stewart <[email protected]>**20100604095408 > Ignore-this: 832b7cff47d7200ee89ee797981febee > ] > [Create Gtk specific versions of functions that add something to the > main loop. These specific functions acquire the Gtk lock before > executing the action which the documentation promised but... > [email protected]**20100603153700] > [Improve signal `queryTooltip` > Andy Stewart <[email protected]>**20100602070555 > Ignore-this: 4b625d69ebb779f22ec57ae0cc5223aa > ] > [Add MenuToolButton support functions for Tooltip.chs > Andy Stewart <[email protected]>**20100601165857 > Ignore-this: 9e153056f052f09f3bf7bd5569ce347c > ] > [Fix `widgetTooltipMarkup` and docs. > Andy Stewart <[email protected]>**20100601144701 > Ignore-this: 3fc33fd561f18f221d8b7b0215c71826 > ] > [Fix function `tooltipSetMarkup` > Andy Stewart <[email protected]>**20100601143948 > Ignore-this: b4af7ecca1bc74b22e20727f33729a8b > ] > [Add Widget support functions for Tooltip.chs > Andy Stewart <[email protected]>**20100601140304 > Ignore-this: 6b10098119f7a416d763c834bd892cae > ] > [Add Tooltip.chs (The new module to replace Tooltips.chs) > Andy Stewart <[email protected]>**20100601131828 > Ignore-this: ca64d1d45d3c526494a41fb537d16c6c > ] > [Clean bootstrap.sh > Andy Stewart <[email protected]>**20100601122113 > Ignore-this: f59b5f9bf21945c39258a39432621a03 > ] > [Note that Cabal 1.8 is required for ghci support under Windows. > [email protected]**20100527181310 > Ignore-this: 1c5fc3bb7ad83f5d1094e0083ddd9913 > ] > [Do not query g_object_get_type as it only exists in newer Gtk+ > versions. > [email protected]**20100527163435 > Ignore-this: 70d62f66a2eb159c7fd3e23079c5debf > ] > [Remove gnomevfs sourceview mozembed since those packages has > deprecated. > Andy Stewart <[email protected]>**20100527124728 > Ignore-this: a1dfda3669b7417a7b09c3b4acfaa2d > > Below are backup repositories for those deprecated packages: > > * gnomevfs : http://www2.in.tum.de/~simona/gnomevfs/ > * sourceview : http://www2.in.tum.de/~simona/sourceview/ > * mozembed : http://www2.in.tum.de/~simona/mozembed/ > > ] > [Fix IconTheme.chs docs. > Andy Stewart <[email protected]>**20100527102140 > Ignore-this: 2f2b7ab508c688cc73f1b59012966d13 > ] > [Fix Gtk2HsSetup.hs bug. > Andy Stewart <[email protected]>**20100527095530 > Ignore-this: 1b65945da174e05d0ad2a1f01e2ee651 > ] > [Add gnomevfs demo directory. > Andy Stewart <[email protected]>**20100527061234 > Ignore-this: 40c6dd74b460d7546937212dacf1f9e1 > ] > [Add gtk demo directory. > Andy Stewart <[email protected]>**20100527061041 > Ignore-this: 876a827c6f1bac1a8b26a99cd68c6005 > ] > [Add cairo demo directory. > Andy Stewart <[email protected]>**20100527051924 > Ignore-this: b1a70c2a24812fb84c899e4e8ce3ca6c > ] > [Add pango demo directory. > Andy Stewart <[email protected]>**20100527051205 > Ignore-this: af1ff611ab459ee2b6c5bc09a3f63c11 > ] > [Fix the license of gnomevfs > Andy Stewart <[email protected]>**20100527035350 > Ignore-this: 9ac7c768af168d6f0c7af8c8790e8643 > ] > [Fix the license of gio. > [email protected]**20100526152125 > Ignore-this: 42fe27de2030e0395227f889ba5345d8 > ] > [Fix Trac #1164. toGSList was reversing lists. > [email protected]**20090514122933 > Ignore-this: c466eadbc5ae61ba71721fe15b44735a > ] > [Remove gconf glade gstreamer gtkglext gtksourceview2 soegtk > svgcairo vte webkit since these all now have their own repos. > [email protected]**20100525211947] > [Documentation fix for EventM. > [email protected]**20100525131428 > Ignore-this: 25c3bf3513ec6467cbd0febe397ab53e > ] > [Put upper bounds on base version. > [email protected]**20100525082101 > Ignore-this: f92b2d9970c436c9fcbcf141fc988e8 > ] > [Make documentation parsable. > [email protected]**20100525080209 > Ignore-this: 60f44b8251a9f3e933c874f72d8e8801 > ] > [Make the version test in pango less complex as Cabal 1.6 doesn't > parse it otherwise. > [email protected]**20100525075706 > Ignore-this: f3446237cf66abf49e81bd4ba8ef9744 > ] > [Fix an incorrect pattern in windowSetIcon. > [email protected]**20100525075639 > Ignore-this: eb596c778897b4ae4fd7f9a8dde59726 > ] > [Get rid of stock images under ./docs/reference/images > Andy Stewart <[email protected]>**20100524235315 > Ignore-this: 1094aaf32c73ba189937e1beee24ee49 > ] > [Redirect image link to library.gnome.org and update image items to > GTK+ 2.20 > Andy Stewart <[email protected]>**20100524233947 > Ignore-this: f33362d57605d16365e4dfac59c01122 > ] > [Add an upper version to the requirement on base. > [email protected]**20100524211158] > [Be more specific as to the prerequisites of packages. > [email protected]**20100524210210] > [Fix docu. > [email protected]**20100524210157] > [Make soegtk compile by fixing dependency on old-time and by not > relying on Gtk 2.18. > [email protected]**20100524210032] > [don't mention tools in the docs for unregistering. > [email protected]**20100524201401] > [TAG 0.11.0 > [email protected]**20100524200857] > Patch bundle hash: > c1ef6d98be90249f1c95f9e9b3213e9ebcd20393 > ------------------------------------------------------------------------------ > This SF.net email is sponsored by Sprint > What will you do first with EVO, the first 4G phone? > Visit sprint.com/first -- > http://p.sf.net/sfu/sprint-com-first_______________________________________________ > Gtk2hs-devel mailing list > [email protected] > https://lists.sourceforge.net/lists/listinfo/gtk2hs-devel ------------------------------------------------------------------------------ This SF.net email is sponsored by Sprint What will you do first with EVO, the first 4G phone? Visit sprint.com/first -- http://p.sf.net/sfu/sprint-com-first _______________________________________________ Gtk2hs-devel mailing list [email protected] https://lists.sourceforge.net/lists/listinfo/gtk2hs-devel
