Hi Andreas, Thanks for patch!
Can you attach webkit-gstring patch let me test? I will apply those patches if test ok. Thanks, -- Andy Andreas Baldeau <andr...@baldeau.net> writes: > Hi there, > > I added basic support for converting GStrings to Haskell Strings. The function > readGString works really well so far. > > Andreas > > > 1 patch for repository http://code.haskell.org/gtk2hs: > > Mon Nov 15 11:31:57 CET 2010 Andreas Baldeau <andr...@baldeau.net> > * Added basic GString support. > > > New patches: > > [Added basic GString support. > Andreas Baldeau <andr...@baldeau.net>**20101115103157 > Ignore-this: 4fc62813b652cc6e420c7b69006dfdae > ] addfile ./glib/System/Glib/GString.chs > hunk ./glib/System/Glib/GString.chs 1 > +-- -*-haskell-*- > +-- GIMP Toolkit (GTK) > +-- > +-- Author : Andreas Baldeau > +-- > +-- Created: 14 November 2010 > +-- > +-- Copyright (C) 2010 Andreas Baldeau > +-- > +-- This library is free software; you can redistribute it and/or > +-- modify it under the terms of the GNU Lesser General Public > +-- License as published by the Free Software Foundation; either > +-- version 2.1 of the License, or (at your option) any later version. > +-- > +-- This library is distributed in the hope that it will be useful, > +-- but WITHOUT ANY WARRANTY; without even the implied warranty of > +-- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU > +-- Lesser General Public License for more details. > +-- > +-- | > +-- Maintainer : gtk2hs-us...@lists.sourceforge.net > +-- Stability : provisional > +-- Portability : portable (depends on GHC) > +-- > +-- Defines functions to extract data from a GString. > +-- > +module System.Glib.GString ( > + GString, > + readGString, > + fromGString, > + ) where > + > +import Foreign > +import Control.Exception (bracket) > +import Control.Monad (foldM) > + > +import System.Glib.FFI > + > +{# context lib="glib" prefix="g" #} > + > +{#pointer * GString#} > + > +-- methods > + > +-- Turn a GString into a String but don't destroy it. > +-- > +readGString :: GString -> IO (Maybe String) > +readGString gstring > + | gstring == nullPtr = return Nothing > + | otherwise = do > + gstr <- {#get GString->str#} gstring > + maybePeek peekCString gstr > + > +-- Turn a GList into a list of pointers (freeing the GList in the process). > +-- > +fromGString :: GString -> IO (Maybe String) > +fromGString gstring > + | gstring == nullPtr = return Nothing > + | otherwise = do > + gstr <- {#get GString->str#} gstring > + str <- maybePeek peekCString gstr > + _ <- {#call unsafe string_free#} gstring $ fromBool True > + return str > + > hunk ./glib/glib.cabal 60 > System.Glib.UTFString > System.Glib.Types > System.Glib.GList > + System.Glib.GString > System.Glib.GType > System.Glib.GTypeConstants > System.Glib.GValue > > Context: > > [TAG 0.12.0 > axel.si...@in.tum.de**20101107135304 > Ignore-this: 14b3023f48c36eed2cb136a2b69d6dae > ] > Patch bundle hash: > 297281715c871e70b51eadc13e75a45ce429bd6f > ------------------------------------------------------------------------------ > Centralized Desktop Delivery: Dell and VMware Reference Architecture > Simplifying enterprise desktop deployment and management using > Dell EqualLogic storage and VMware View: A highly scalable, end-to-end > client virtualization framework. Read more! > http://p.sf.net/sfu/dell-eql-dev2dev_______________________________________________ > Gtk2hs-devel mailing list > Gtk2hs-devel@lists.sourceforge.net > https://lists.sourceforge.net/lists/listinfo/gtk2hs-devel ------------------------------------------------------------------------------ Centralized Desktop Delivery: Dell and VMware Reference Architecture Simplifying enterprise desktop deployment and management using Dell EqualLogic storage and VMware View: A highly scalable, end-to-end client virtualization framework. Read more! http://p.sf.net/sfu/dell-eql-dev2dev _______________________________________________ Gtk2hs-devel mailing list Gtk2hs-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/gtk2hs-devel