From: Peter g. <pg...@co...> - 2009-01-20 02:43:06
|
Mon Jan 19 21:29:39 EST 2009 Peter Gavin <pg...@gm...> * gtksourceview2: handle null pointers correctly in sourceLanguageManager{Get,Guess}Language hunk ./gtksourceview2/Graphics/UI/Gtk/SourceView/SourceLanguageManager.chs.pp 91 -sourceLanguageManagerGetLanguage :: SourceLanguageManager -> String -> IO SourceLanguage -sourceLanguageManagerGetLanguage slm id = makeNewGObject mkSourceLanguage $ liftM castPtr $ - withUTFString id ({#call unsafe source_language_manager_get_language#} slm) +sourceLanguageManagerGetLanguage :: SourceLanguageManager -> String -> IO (Maybe SourceLanguage) +sourceLanguageManagerGetLanguage slm id = do + slPtr <- liftM castPtr $ + withUTFString id ({#call unsafe source_language_manager_get_language#} slm) + if slPtr /= nullPtr + then liftM Just $ makeNewGObject mkSourceLanguage $ return slPtr + else return Nothing hunk ./gtksourceview2/Graphics/UI/Gtk/SourceView/SourceLanguageManager.chs.pp 102 -sourceLanguageManagerGuessLanguage slm filename contentType = makeNewGObject mkSourceLanguage $ liftM castPtr $ - withUTFString filename $ \cFilename -> - withUTFString contentType $ \cContentType -> - {#call unsafe source_language_manager_guess_language#} slm cFilename cContentType +sourceLanguageManagerGuessLanguage :: SourceLanguageManager -> Maybe String -> Maybe String -> IO (Maybe SourceLanguage) +sourceLanguageManagerGuessLanguage slm filename contentType = + maybeWith withUTFString filename $ \cFilename -> + maybeWith withUTFString contentType $ \cContentType -> do + slPtr <- liftM castPtr $ + {#call unsafe source_language_manager_guess_language#} slm cFilename cContentType + if slPtr /= nullPtr + then liftM Just $ makeNewGObject mkSourceLanguage $ return slPtr + else return Nothing |