{-# LINE 1 "src/Bindings/GLib/Utilities/CommandlineOptionParser.hsc" #-}

{-# LINE 2 "src/Bindings/GLib/Utilities/CommandlineOptionParser.hsc" #-}

{-# LINE 3 "src/Bindings/GLib/Utilities/CommandlineOptionParser.hsc" #-}

-- | <http://library.gnome.org/devel/glib/stable/glib-Commandline-option-parser.html>

module Bindings.GLib.Utilities.CommandlineOptionParser where
import Foreign.Ptr (Ptr,FunPtr,plusPtr)
import Foreign.Ptr (wordPtrToPtr,castPtrToFunPtr)
import Foreign.Storable
import Foreign.C.Types
import Foreign.C.String (CString,CStringLen,CWString,CWStringLen)
import Foreign.Marshal.Alloc (alloca)
import Foreign.Marshal.Array (peekArray,pokeArray)
import Data.Int
import Data.Word

{-# LINE 8 "src/Bindings/GLib/Utilities/CommandlineOptionParser.hsc" #-}
import Bindings.GLib.Fundamentals
import Bindings.GLib.CoreApplicationSupport.ErrorReporting
import Bindings.GLib.DataTypes.Datasets

type C'GOptionError = CUInt

{-# LINE 13 "src/Bindings/GLib/Utilities/CommandlineOptionParser.hsc" #-}

c'G_OPTION_ERROR_UNKNOWN_OPTION = 0
c'G_OPTION_ERROR_UNKNOWN_OPTION :: (Num a) => a

{-# LINE 15 "src/Bindings/GLib/Utilities/CommandlineOptionParser.hsc" #-}
c'G_OPTION_ERROR_BAD_VALUE = 1
c'G_OPTION_ERROR_BAD_VALUE :: (Num a) => a

{-# LINE 16 "src/Bindings/GLib/Utilities/CommandlineOptionParser.hsc" #-}
c'G_OPTION_ERROR_FAILED = 2
c'G_OPTION_ERROR_FAILED :: (Num a) => a

{-# LINE 17 "src/Bindings/GLib/Utilities/CommandlineOptionParser.hsc" #-}

c'G_OPTION_ERROR = 1
c'G_OPTION_ERROR :: (Num a) => a

{-# LINE 19 "src/Bindings/GLib/Utilities/CommandlineOptionParser.hsc" #-}

type C'GOptionArgFunc = FunPtr (Ptr C'gchar -> Ptr C'gchar -> C'gpointer -> Ptr (Ptr C'GError) -> IO C'gboolean)
foreign import ccall "wrapper" mk'GOptionArgFunc
  :: (Ptr C'gchar -> Ptr C'gchar -> C'gpointer -> Ptr (Ptr C'GError) -> IO C'gboolean) -> IO C'GOptionArgFunc
foreign import ccall "dynamic" mK'GOptionArgFunc
  :: C'GOptionArgFunc -> (Ptr C'gchar -> Ptr C'gchar -> C'gpointer -> Ptr (Ptr C'GError) -> IO C'gboolean)

{-# LINE 21 "src/Bindings/GLib/Utilities/CommandlineOptionParser.hsc" #-}

data C'GOptionContext = C'GOptionContext

{-# LINE 23 "src/Bindings/GLib/Utilities/CommandlineOptionParser.hsc" #-}

foreign import ccall "g_option_context_new" c'g_option_context_new
  :: Ptr C'gchar -> IO (Ptr C'GOptionContext)
foreign import ccall "&g_option_context_new" p'g_option_context_new
  :: FunPtr (Ptr C'gchar -> IO (Ptr C'GOptionContext))

{-# LINE 25 "src/Bindings/GLib/Utilities/CommandlineOptionParser.hsc" #-}
foreign import ccall "g_option_context_set_summary" c'g_option_context_set_summary
  :: Ptr C'GOptionContext -> Ptr C'gchar -> IO ()
foreign import ccall "&g_option_context_set_summary" p'g_option_context_set_summary
  :: FunPtr (Ptr C'GOptionContext -> Ptr C'gchar -> IO ())

{-# LINE 26 "src/Bindings/GLib/Utilities/CommandlineOptionParser.hsc" #-}
foreign import ccall "g_option_context_get_summary" c'g_option_context_get_summary
  :: Ptr C'GOptionContext -> IO (Ptr C'gchar)
foreign import ccall "&g_option_context_get_summary" p'g_option_context_get_summary
  :: FunPtr (Ptr C'GOptionContext -> IO (Ptr C'gchar))

{-# LINE 27 "src/Bindings/GLib/Utilities/CommandlineOptionParser.hsc" #-}
foreign import ccall "g_option_context_set_description" c'g_option_context_set_description
  :: Ptr C'GOptionContext -> Ptr C'gchar -> IO ()
foreign import ccall "&g_option_context_set_description" p'g_option_context_set_description
  :: FunPtr (Ptr C'GOptionContext -> Ptr C'gchar -> IO ())

{-# LINE 28 "src/Bindings/GLib/Utilities/CommandlineOptionParser.hsc" #-}
foreign import ccall "g_option_context_get_description" c'g_option_context_get_description
  :: Ptr C'GOptionContext -> IO (Ptr C'gchar)
foreign import ccall "&g_option_context_get_description" p'g_option_context_get_description
  :: FunPtr (Ptr C'GOptionContext -> IO (Ptr C'gchar))

{-# LINE 29 "src/Bindings/GLib/Utilities/CommandlineOptionParser.hsc" #-}


type C'GTranslateFunc = FunPtr (Ptr C'gchar -> C'gpointer -> IO (Ptr C'gchar))
foreign import ccall "wrapper" mk'GTranslateFunc
  :: (Ptr C'gchar -> C'gpointer -> IO (Ptr C'gchar)) -> IO C'GTranslateFunc
foreign import ccall "dynamic" mK'GTranslateFunc
  :: C'GTranslateFunc -> (Ptr C'gchar -> C'gpointer -> IO (Ptr C'gchar))

{-# LINE 32 "src/Bindings/GLib/Utilities/CommandlineOptionParser.hsc" #-}

foreign import ccall "g_option_context_set_translate_func" c'g_option_context_set_translate_func
  :: Ptr C'GOptionContext -> C'GTranslateFunc -> C'gpointer -> C'GDestroyNotify -> IO ()
foreign import ccall "&g_option_context_set_translate_func" p'g_option_context_set_translate_func
  :: FunPtr (Ptr C'GOptionContext -> C'GTranslateFunc -> C'gpointer -> C'GDestroyNotify -> IO ())

{-# LINE 34 "src/Bindings/GLib/Utilities/CommandlineOptionParser.hsc" #-}
foreign import ccall "g_option_context_set_translation_domain" c'g_option_context_set_translation_domain
  :: Ptr C'GOptionContext -> Ptr C'gchar -> IO ()
foreign import ccall "&g_option_context_set_translation_domain" p'g_option_context_set_translation_domain
  :: FunPtr (Ptr C'GOptionContext -> Ptr C'gchar -> IO ())

{-# LINE 35 "src/Bindings/GLib/Utilities/CommandlineOptionParser.hsc" #-}
foreign import ccall "g_option_context_free" c'g_option_context_free
  :: Ptr C'GOptionContext -> IO ()
foreign import ccall "&g_option_context_free" p'g_option_context_free
  :: FunPtr (Ptr C'GOptionContext -> IO ())

{-# LINE 36 "src/Bindings/GLib/Utilities/CommandlineOptionParser.hsc" #-}
foreign import ccall "g_option_context_parse" c'g_option_context_parse
  :: Ptr C'GOptionContext -> Ptr C'gint -> Ptr (Ptr (Ptr C'gchar)) -> Ptr (Ptr C'GError) -> IO C'gboolean
foreign import ccall "&g_option_context_parse" p'g_option_context_parse
  :: FunPtr (Ptr C'GOptionContext -> Ptr C'gint -> Ptr (Ptr (Ptr C'gchar)) -> Ptr (Ptr C'GError) -> IO C'gboolean)

{-# LINE 37 "src/Bindings/GLib/Utilities/CommandlineOptionParser.hsc" #-}
foreign import ccall "g_option_context_set_help_enabled" c'g_option_context_set_help_enabled
  :: Ptr C'GOptionContext -> C'gboolean -> IO ()
foreign import ccall "&g_option_context_set_help_enabled" p'g_option_context_set_help_enabled
  :: FunPtr (Ptr C'GOptionContext -> C'gboolean -> IO ())

{-# LINE 38 "src/Bindings/GLib/Utilities/CommandlineOptionParser.hsc" #-}
foreign import ccall "g_option_context_get_help_enabled" c'g_option_context_get_help_enabled
  :: Ptr C'GOptionContext -> IO C'gboolean
foreign import ccall "&g_option_context_get_help_enabled" p'g_option_context_get_help_enabled
  :: FunPtr (Ptr C'GOptionContext -> IO C'gboolean)

{-# LINE 39 "src/Bindings/GLib/Utilities/CommandlineOptionParser.hsc" #-}
foreign import ccall "g_option_context_set_ignore_unknown_options" c'g_option_context_set_ignore_unknown_options
  :: Ptr C'GOptionContext -> C'gboolean -> IO ()
foreign import ccall "&g_option_context_set_ignore_unknown_options" p'g_option_context_set_ignore_unknown_options
  :: FunPtr (Ptr C'GOptionContext -> C'gboolean -> IO ())

{-# LINE 40 "src/Bindings/GLib/Utilities/CommandlineOptionParser.hsc" #-}
foreign import ccall "g_option_context_get_ignore_unknown_options" c'g_option_context_get_ignore_unknown_options
  :: Ptr C'GOptionContext -> IO C'gboolean
foreign import ccall "&g_option_context_get_ignore_unknown_options" p'g_option_context_get_ignore_unknown_options
  :: FunPtr (Ptr C'GOptionContext -> IO C'gboolean)

{-# LINE 41 "src/Bindings/GLib/Utilities/CommandlineOptionParser.hsc" #-}
foreign import ccall "g_option_context_get_help" c'g_option_context_get_help
  :: Ptr C'GOptionContext -> C'gboolean -> Ptr C'GOptionGroup -> IO (Ptr C'gchar)
foreign import ccall "&g_option_context_get_help" p'g_option_context_get_help
  :: FunPtr (Ptr C'GOptionContext -> C'gboolean -> Ptr C'GOptionGroup -> IO (Ptr C'gchar))

{-# LINE 42 "src/Bindings/GLib/Utilities/CommandlineOptionParser.hsc" #-}


type C'GOptionArg = CUInt

{-# LINE 45 "src/Bindings/GLib/Utilities/CommandlineOptionParser.hsc" #-}

c'G_OPTION_ARG_NONE = 0
c'G_OPTION_ARG_NONE :: (Num a) => a

{-# LINE 47 "src/Bindings/GLib/Utilities/CommandlineOptionParser.hsc" #-}
c'G_OPTION_ARG_STRING = 1
c'G_OPTION_ARG_STRING :: (Num a) => a

{-# LINE 48 "src/Bindings/GLib/Utilities/CommandlineOptionParser.hsc" #-}
c'G_OPTION_ARG_INT = 2
c'G_OPTION_ARG_INT :: (Num a) => a

{-# LINE 49 "src/Bindings/GLib/Utilities/CommandlineOptionParser.hsc" #-}
c'G_OPTION_ARG_CALLBACK = 3
c'G_OPTION_ARG_CALLBACK :: (Num a) => a

{-# LINE 50 "src/Bindings/GLib/Utilities/CommandlineOptionParser.hsc" #-}
c'G_OPTION_ARG_FILENAME = 4
c'G_OPTION_ARG_FILENAME :: (Num a) => a

{-# LINE 51 "src/Bindings/GLib/Utilities/CommandlineOptionParser.hsc" #-}
c'G_OPTION_ARG_STRING_ARRAY = 5
c'G_OPTION_ARG_STRING_ARRAY :: (Num a) => a

{-# LINE 52 "src/Bindings/GLib/Utilities/CommandlineOptionParser.hsc" #-}
c'G_OPTION_ARG_FILENAME_ARRAY = 6
c'G_OPTION_ARG_FILENAME_ARRAY :: (Num a) => a

{-# LINE 53 "src/Bindings/GLib/Utilities/CommandlineOptionParser.hsc" #-}
c'G_OPTION_ARG_DOUBLE = 7
c'G_OPTION_ARG_DOUBLE :: (Num a) => a

{-# LINE 54 "src/Bindings/GLib/Utilities/CommandlineOptionParser.hsc" #-}
c'G_OPTION_ARG_INT64 = 8
c'G_OPTION_ARG_INT64 :: (Num a) => a

{-# LINE 55 "src/Bindings/GLib/Utilities/CommandlineOptionParser.hsc" #-}

type C'GOptionFlags = CUInt

{-# LINE 57 "src/Bindings/GLib/Utilities/CommandlineOptionParser.hsc" #-}

c'G_OPTION_FLAG_HIDDEN = 1
c'G_OPTION_FLAG_HIDDEN :: (Num a) => a

{-# LINE 59 "src/Bindings/GLib/Utilities/CommandlineOptionParser.hsc" #-}
c'G_OPTION_FLAG_IN_MAIN = 2
c'G_OPTION_FLAG_IN_MAIN :: (Num a) => a

{-# LINE 60 "src/Bindings/GLib/Utilities/CommandlineOptionParser.hsc" #-}
c'G_OPTION_FLAG_REVERSE = 4
c'G_OPTION_FLAG_REVERSE :: (Num a) => a

{-# LINE 61 "src/Bindings/GLib/Utilities/CommandlineOptionParser.hsc" #-}
c'G_OPTION_FLAG_NO_ARG = 8
c'G_OPTION_FLAG_NO_ARG :: (Num a) => a

{-# LINE 62 "src/Bindings/GLib/Utilities/CommandlineOptionParser.hsc" #-}
c'G_OPTION_FLAG_FILENAME = 16
c'G_OPTION_FLAG_FILENAME :: (Num a) => a

{-# LINE 63 "src/Bindings/GLib/Utilities/CommandlineOptionParser.hsc" #-}
c'G_OPTION_FLAG_OPTIONAL_ARG = 32
c'G_OPTION_FLAG_OPTIONAL_ARG :: (Num a) => a

{-# LINE 64 "src/Bindings/GLib/Utilities/CommandlineOptionParser.hsc" #-}
c'G_OPTION_FLAG_NOALIAS = 64
c'G_OPTION_FLAG_NOALIAS :: (Num a) => a

{-# LINE 65 "src/Bindings/GLib/Utilities/CommandlineOptionParser.hsc" #-}

c'G_OPTION_REMAINING = wordPtrToPtr 134609187
c'G_OPTION_REMAINING :: Ptr a

{-# LINE 67 "src/Bindings/GLib/Utilities/CommandlineOptionParser.hsc" #-}

data C'GOptionEntry = C'GOptionEntry{
{-# LINE 69 "src/Bindings/GLib/Utilities/CommandlineOptionParser.hsc" #-}

  c'GOptionEntry'long_name :: Ptr C'gchar
{-# LINE 70 "src/Bindings/GLib/Utilities/CommandlineOptionParser.hsc" #-}
,
  c'GOptionEntry'short_name :: C'gchar
{-# LINE 71 "src/Bindings/GLib/Utilities/CommandlineOptionParser.hsc" #-}
,
  c'GOptionEntry'flags :: C'gint
{-# LINE 72 "src/Bindings/GLib/Utilities/CommandlineOptionParser.hsc" #-}
,
  c'GOptionEntry'arg :: C'GOptionArg
{-# LINE 73 "src/Bindings/GLib/Utilities/CommandlineOptionParser.hsc" #-}
,
  c'GOptionEntry'arg_data :: C'gpointer
{-# LINE 74 "src/Bindings/GLib/Utilities/CommandlineOptionParser.hsc" #-}
,
  c'GOptionEntry'description :: Ptr C'gchar
{-# LINE 75 "src/Bindings/GLib/Utilities/CommandlineOptionParser.hsc" #-}
,
  c'GOptionEntry'arg_description :: Ptr C'gchar
{-# LINE 76 "src/Bindings/GLib/Utilities/CommandlineOptionParser.hsc" #-}

 } deriving (Eq,Show)
instance Storable C'GOptionEntry where
  sizeOf _ = 28
  alignment = sizeOf
  peek p = do
    v0 <- peekByteOff p 0
    v1 <- peekByteOff p 4
    v2 <- peekByteOff p 8
    v3 <- peekByteOff p 12
    v4 <- peekByteOff p 16
    v5 <- peekByteOff p 20
    v6 <- peekByteOff p 24
    return $ C'GOptionEntry v0 v1 v2 v3 v4 v5 v6
  poke p (C'GOptionEntry v0 v1 v2 v3 v4 v5 v6) = do
    pokeByteOff p 0 v0
    pokeByteOff p 4 v1
    pokeByteOff p 8 v2
    pokeByteOff p 12 v3
    pokeByteOff p 16 v4
    pokeByteOff p 20 v5
    pokeByteOff p 24 v6
    return ()

{-# LINE 77 "src/Bindings/GLib/Utilities/CommandlineOptionParser.hsc" #-}

foreign import ccall "g_option_context_add_main_entries" c'g_option_context_add_main_entries
  :: Ptr C'GOptionContext -> Ptr C'GOptionEntry -> Ptr C'gchar -> IO ()
foreign import ccall "&g_option_context_add_main_entries" p'g_option_context_add_main_entries
  :: FunPtr (Ptr C'GOptionContext -> Ptr C'GOptionEntry -> Ptr C'gchar -> IO ())

{-# LINE 79 "src/Bindings/GLib/Utilities/CommandlineOptionParser.hsc" #-}

data C'GOptionGroup = C'GOptionGroup

{-# LINE 81 "src/Bindings/GLib/Utilities/CommandlineOptionParser.hsc" #-}

foreign import ccall "g_option_context_add_group" c'g_option_context_add_group
  :: Ptr C'GOptionContext -> Ptr C'GOptionGroup -> IO ()
foreign import ccall "&g_option_context_add_group" p'g_option_context_add_group
  :: FunPtr (Ptr C'GOptionContext -> Ptr C'GOptionGroup -> IO ())

{-# LINE 83 "src/Bindings/GLib/Utilities/CommandlineOptionParser.hsc" #-}
foreign import ccall "g_option_context_set_main_group" c'g_option_context_set_main_group
  :: Ptr C'GOptionContext -> Ptr C'GOptionGroup -> IO ()
foreign import ccall "&g_option_context_set_main_group" p'g_option_context_set_main_group
  :: FunPtr (Ptr C'GOptionContext -> Ptr C'GOptionGroup -> IO ())

{-# LINE 84 "src/Bindings/GLib/Utilities/CommandlineOptionParser.hsc" #-}
foreign import ccall "g_option_context_get_main_group" c'g_option_context_get_main_group
  :: Ptr C'GOptionContext -> IO (Ptr C'GOptionGroup)
foreign import ccall "&g_option_context_get_main_group" p'g_option_context_get_main_group
  :: FunPtr (Ptr C'GOptionContext -> IO (Ptr C'GOptionGroup))

{-# LINE 85 "src/Bindings/GLib/Utilities/CommandlineOptionParser.hsc" #-}
foreign import ccall "g_option_group_new" c'g_option_group_new
  :: Ptr C'gchar -> Ptr C'gchar -> Ptr C'gchar -> C'gpointer -> C'GDestroyNotify -> IO (Ptr C'GOptionGroup)
foreign import ccall "&g_option_group_new" p'g_option_group_new
  :: FunPtr (Ptr C'gchar -> Ptr C'gchar -> Ptr C'gchar -> C'gpointer -> C'GDestroyNotify -> IO (Ptr C'GOptionGroup))

{-# LINE 86 "src/Bindings/GLib/Utilities/CommandlineOptionParser.hsc" #-}
foreign import ccall "g_option_group_free" c'g_option_group_free
  :: Ptr C'GOptionGroup -> IO ()
foreign import ccall "&g_option_group_free" p'g_option_group_free
  :: FunPtr (Ptr C'GOptionGroup -> IO ())

{-# LINE 87 "src/Bindings/GLib/Utilities/CommandlineOptionParser.hsc" #-}
foreign import ccall "g_option_group_add_entries" c'g_option_group_add_entries
  :: Ptr C'GOptionGroup -> Ptr C'GOptionEntry -> IO ()
foreign import ccall "&g_option_group_add_entries" p'g_option_group_add_entries
  :: FunPtr (Ptr C'GOptionGroup -> Ptr C'GOptionEntry -> IO ())

{-# LINE 88 "src/Bindings/GLib/Utilities/CommandlineOptionParser.hsc" #-}

type C'GOptionParseFunc = FunPtr (Ptr C'GOptionContext -> Ptr C'GOptionGroup -> C'gpointer -> Ptr (Ptr C'GError) -> IO C'gboolean)
foreign import ccall "wrapper" mk'GOptionParseFunc
  :: (Ptr C'GOptionContext -> Ptr C'GOptionGroup -> C'gpointer -> Ptr (Ptr C'GError) -> IO C'gboolean) -> IO C'GOptionParseFunc
foreign import ccall "dynamic" mK'GOptionParseFunc
  :: C'GOptionParseFunc -> (Ptr C'GOptionContext -> Ptr C'GOptionGroup -> C'gpointer -> Ptr (Ptr C'GError) -> IO C'gboolean)

{-# LINE 90 "src/Bindings/GLib/Utilities/CommandlineOptionParser.hsc" #-}

foreign import ccall "g_option_group_set_parse_hooks" c'g_option_group_set_parse_hooks
  :: Ptr C'GOptionGroup -> C'GOptionParseFunc -> C'GOptionParseFunc -> IO ()
foreign import ccall "&g_option_group_set_parse_hooks" p'g_option_group_set_parse_hooks
  :: FunPtr (Ptr C'GOptionGroup -> C'GOptionParseFunc -> C'GOptionParseFunc -> IO ())

{-# LINE 92 "src/Bindings/GLib/Utilities/CommandlineOptionParser.hsc" #-}

type C'GOptionErrorFunc = FunPtr (Ptr C'GOptionContext -> Ptr C'GOptionGroup -> C'gpointer -> Ptr (Ptr C'GError) -> IO ())
foreign import ccall "wrapper" mk'GOptionErrorFunc
  :: (Ptr C'GOptionContext -> Ptr C'GOptionGroup -> C'gpointer -> Ptr (Ptr C'GError) -> IO ()) -> IO C'GOptionErrorFunc
foreign import ccall "dynamic" mK'GOptionErrorFunc
  :: C'GOptionErrorFunc -> (Ptr C'GOptionContext -> Ptr C'GOptionGroup -> C'gpointer -> Ptr (Ptr C'GError) -> IO ())

{-# LINE 94 "src/Bindings/GLib/Utilities/CommandlineOptionParser.hsc" #-}

foreign import ccall "g_option_group_set_error_hook" c'g_option_group_set_error_hook
  :: Ptr C'GOptionGroup -> C'GOptionErrorFunc -> IO ()
foreign import ccall "&g_option_group_set_error_hook" p'g_option_group_set_error_hook
  :: FunPtr (Ptr C'GOptionGroup -> C'GOptionErrorFunc -> IO ())

{-# LINE 96 "src/Bindings/GLib/Utilities/CommandlineOptionParser.hsc" #-}
foreign import ccall "g_option_group_set_translate_func" c'g_option_group_set_translate_func
  :: Ptr C'GOptionGroup -> C'GTranslateFunc -> C'gpointer -> C'GDestroyNotify -> IO ()
foreign import ccall "&g_option_group_set_translate_func" p'g_option_group_set_translate_func
  :: FunPtr (Ptr C'GOptionGroup -> C'GTranslateFunc -> C'gpointer -> C'GDestroyNotify -> IO ())

{-# LINE 97 "src/Bindings/GLib/Utilities/CommandlineOptionParser.hsc" #-}
foreign import ccall "g_option_group_set_translation_domain" c'g_option_group_set_translation_domain
  :: Ptr C'GOptionGroup -> Ptr C'gchar -> IO ()
foreign import ccall "&g_option_group_set_translation_domain" p'g_option_group_set_translation_domain
  :: FunPtr (Ptr C'GOptionGroup -> Ptr C'gchar -> IO ())

{-# LINE 98 "src/Bindings/GLib/Utilities/CommandlineOptionParser.hsc" #-}