
# For each function returning a char*, specify what to do with the result.
#  0 ... do not free
#  1 ... call g_free
#
# In general, if the return type is "const char*", it must not be freed,
# but if it is "char*", then the caller must free the string.  This is
# something I discovered while implementing this, and it serves as a
# verification.  It only complicates the build process and parse-xml.lua
# but has no effect on the runtime.
#
# Anyway there are a few differences; I'll file them as bugs to
# bugzilla.gnome.org eventually.
#


arch not win32

g_dir_read_name,0
g_filename_from_uri,1
g_filename_from_utf8,1
g_filename_to_uri,1
g_filename_to_utf8,1
g_find_program_in_path,1
g_get_current_dir,1
g_get_home_dir,0
g_get_real_name,0
g_get_tmp_dir,0
g_get_user_name,0
g_getenv,0
g_module_name,0
gtk_file_chooser_get_current_folder,1
gtk_file_chooser_get_filename,1
gtk_file_chooser_get_preview_filename,1
gtk_icon_info_get_filename,0
gtk_icon_source_get_filename,0

arch win32

g_dir_read_name_utf8,0
g_filename_from_uri_utf8,1
g_filename_from_utf8_utf8,1
g_filename_to_uri_utf8,1
g_filename_to_utf8_utf8,1
g_find_program_in_path_utf8,1
g_get_current_dir_utf8,1
g_get_home_dir_utf8,0
g_get_real_name_utf8,0
g_get_tmp_dir_utf8,0
g_get_user_name_utf8,0
g_getenv_utf8,0
g_module_name_utf8,0
gtk_file_chooser_get_current_folder_utf8,1
gtk_file_chooser_get_filename_utf8,1
gtk_file_chooser_get_preview_filename_utf8,1
gtk_icon_info_get_filename_utf8,0
gtk_icon_source_get_filename_utf8,0

arch all

funcptr.GtkTranslateFunc,1
funcptr.GTranslateFunc,0
funcptr.GCompletionFunc,0

gtk_combo_box_get_active_text,1
g_convert,1
gtk_entry_get_text,0
gtk_file_chooser_get_uri,1
gtk_file_chooser_get_current_folder_uri,1
gtk_file_chooser_get_preview_uri,1

gtk_about_dialog_get_comments,0
gtk_about_dialog_get_copyright,0
gtk_about_dialog_get_license,0
gtk_about_dialog_get_logo_icon_name,0
gtk_about_dialog_get_program_name,0
gtk_about_dialog_get_translator_credits,0
gtk_about_dialog_get_version,0
gtk_about_dialog_get_website,0
gtk_about_dialog_get_website_label,0

gtk_window_get_title,0
gtk_window_get_role,0
gtk_window_get_icon_name,0

# documentation is wrong, the code is right.  A bug has been filed already.
gtk_widget_get_composite_name,1

gtk_widget_get_name,0
gtk_widget_get_tooltip_markup,1
gtk_widget_get_tooltip_text,1
gtk_ui_manager_get_ui,1

gtk_tree_view_column_get_title,0
gtk_tree_path_to_string,1
gtk_tree_model_get_string_from_iter,1

gtk_tool_button_get_label,0
gtk_tool_button_get_stock_id,0
gtk_tool_button_get_icon_name,0

gtk_text_mark_get_name,0
gtk_text_buffer_get_slice,1
gtk_text_buffer_get_text,1
gtk_text_iter_get_slice,1
gtk_text_iter_get_text,1
gtk_text_iter_get_visible_slice,1
gtk_text_iter_get_visible_text,1

gtk_recent_chooser_get_current_uri
gtk_recent_filter_get_name
gtk_recent_info_get_description,0
gtk_recent_info_get_display_name,0
gtk_recent_info_get_mime_type,0
gtk_recent_info_get_short_name,1
gtk_recent_info_get_uri,0
gtk_recent_info_get_uri_display
gtk_recent_info_last_application,1

gtk_print_settings_get,0
gtk_print_settings_get_default_source,0
gtk_print_settings_get_dither,0
gtk_print_settings_get_finishings,0
gtk_print_settings_get_media_type,0
gtk_print_settings_get_output_bin,0
gtk_print_settings_get_printer,0

gtk_editable_get_chars,1
gtk_entry_completion_get_completion_prefix,0
gtk_expander_get_label,0

# From here onwards it's all automatically generated and not verified.

atk_action_get_description,0
atk_action_get_keybinding,0
atk_action_get_localized_name,0
atk_action_get_name,0
atk_document_get_attribute_value,0
atk_document_get_document_type,0
atk_document_get_locale,0
atk_get_toolkit_name,0
atk_get_toolkit_version,0
atk_get_version,0
atk_hyperlink_get_uri,1
atk_image_get_image_description,0
atk_image_get_image_locale,0
atk_object_get_description,0
atk_object_get_name,0
atk_relation_type_get_name,0
atk_role_get_localized_name,0
atk_role_get_name,0
atk_state_type_get_name,0
atk_streamable_content_get_mime_type,0
atk_streamable_content_get_uri,1
atk_table_get_column_description,0
atk_table_get_row_description,0
atk_text_attribute_get_name,0
atk_text_attribute_get_value,0
atk_text_get_selection,1
atk_text_get_text,1
atk_text_get_text_after_offset,1
atk_text_get_text_at_offset,1
atk_text_get_text_before_offset,1
cairo_status_to_string,0
cairo_version_string,0
g_array_free,1
g_ascii_dtostr,1
g_ascii_formatd,1
g_ascii_strdown,1
g_ascii_strup,1
g_base64_encode,1
g_basename,0
g_bookmark_file_get_description,1
g_bookmark_file_get_mime_type,1
g_bookmark_file_get_title,1
g_bookmark_file_to_data,1
g_build_filename,1
g_build_filenamev,1
g_build_path,1
g_build_pathv,1
g_convert_with_fallback,1
g_convert_with_iconv,1
g_file_read_link,1
g_filename_display_basename,1
g_filename_display_name,1
g_get_application_name,0
g_get_host_name,0
g_get_prgname,1
g_get_user_cache_dir,0
g_get_user_config_dir,0
g_get_user_data_dir,0
g_get_user_special_dir,0
g_intern_static_string,0
g_intern_string,0
g_io_channel_get_encoding,0
g_io_channel_get_line_term,0
g_key_file_get_comment,1
g_key_file_get_locale_string,1
g_key_file_get_start_group,1
g_key_file_get_string,1
g_key_file_get_value,1
g_key_file_to_data,1
g_locale_from_utf8,1
g_locale_to_utf8,1
g_mapped_file_get_contents,1
g_markup_escape_text,1
g_markup_parse_context_get_element,0
g_markup_printf_escaped,1
g_markup_vprintf_escaped,1
g_match_info_expand_references,1
g_match_info_fetch,1
g_match_info_fetch_named,1
g_match_info_get_string,0
g_module_build_path,1
g_module_error,0
g_option_context_get_description,0
g_option_context_get_help,1
g_option_context_get_summary,0
g_param_spec_get_blurb,0
g_param_spec_get_name,0
g_param_spec_get_nick,0
g_path_get_basename,1
g_path_get_dirname,1
g_path_skip_root,0
g_quark_to_string,0
g_regex_escape_string,1
g_regex_get_pattern,0
g_regex_replace,1
g_regex_replace_eval,1
g_regex_replace_literal,1
g_shell_quote,1
g_shell_unquote,1
g_signal_name,0
g_stpcpy,1
g_strcanon,1
g_strchomp,1
g_strchug,1
g_strcompress,1
g_strconcat,1
g_strdelimit,1
g_strdown,1
g_strdup,1
g_strdup_printf,1
g_strdup_value_contents,1
g_strdup_vprintf,1
g_strerror,0
g_strescape,1
g_string_chunk_insert,1
g_string_chunk_insert_const,1
g_string_chunk_insert_len,1
g_string_free,1
g_strip_context,0
g_strjoin,1
g_strjoinv,1
g_strndup,1
g_strnfill,1
g_strreverse,1
g_strrstr,1
g_strrstr_len,1
g_strsignal,0
g_strstr_len,1
g_strup,1
g_time_val_to_iso8601,1
g_type_name,0
g_type_name_from_class,0
g_type_name_from_instance,0
g_ucs4_to_utf8,1
g_utf16_to_utf8,1
g_utf8_casefold,1
g_utf8_collate_key,1
g_utf8_collate_key_for_filename,1
g_utf8_find_next_char,1
g_utf8_find_prev_char,1
g_utf8_normalize,1
g_utf8_offset_to_pointer,1
g_utf8_prev_char,1
g_utf8_strchr,1
g_utf8_strdown,1
g_utf8_strncpy,1
g_utf8_strrchr,1
g_utf8_strreverse,1
g_utf8_strup,1
g_value_dup_string,1
g_value_get_string,0
gdk_atom_name,1
gdk_color_to_string,1
gdk_display_get_name,0
gdk_get_display,1
gdk_get_display_arg_name,0
gdk_get_program_class,0
gdk_keyval_name,1
gdk_pixbuf_format_get_description,1
gdk_pixbuf_format_get_license,1
gdk_pixbuf_format_get_name,1
gdk_pixbuf_get_option,0
gdk_screen_make_display_name,1
gdk_set_locale,1
gdk_utf8_to_string_target,1
gdk_wcstombs,1
gtk_accelerator_get_label,1
gtk_accelerator_name,1
gtk_action_get_accel_path,0
gtk_action_get_name,0
gtk_action_group_get_name,0
gtk_action_group_translate_string,0
gtk_assistant_get_page_title,0
gtk_buildable_get_name,0
gtk_builder_get_translation_domain,0
gtk_button_get_label,0
gtk_check_version,0
gtk_clipboard_wait_for_text,1
gtk_color_button_get_title,0
gtk_color_selection_palette_to_string,1
gtk_combo_box_get_title,0
gtk_file_chooser_button_get_title,0
gtk_file_filter_get_name,0
gtk_font_button_get_font_name,0
gtk_font_button_get_title,0
gtk_font_selection_dialog_get_font_name,1
gtk_font_selection_dialog_get_preview_text,0
gtk_font_selection_get_font_name,1
gtk_font_selection_get_preview_text,0
gtk_frame_get_label,0
gtk_icon_info_get_display_name,0
gtk_icon_size_get_name,0
gtk_icon_source_get_icon_name,0
gtk_icon_theme_get_example_icon_name,1
gtk_label_get_label,0
gtk_label_get_text,0
gtk_link_button_get_uri,0
gtk_menu_get_title,0
gtk_notebook_get_menu_label_text,0
gtk_notebook_get_tab_label_text,0
gtk_paper_size_get_default,0
gtk_paper_size_get_display_name,0
gtk_paper_size_get_name,0
gtk_paper_size_get_ppd_name,0
gtk_print_operation_get_status_string,0
gtk_progress_bar_get_text,0
gtk_rc_find_module_in_path,1
gtk_rc_find_pixmap_in_path,1
gtk_rc_get_im_module_file,1
gtk_rc_get_im_module_path,1
gtk_rc_get_module_dir,1
gtk_rc_get_theme_dir,1
gtk_recent_chooser_get_current_uri,1
gtk_recent_filter_get_name,0
gtk_recent_info_get_uri_display,1
gtk_set_locale,1
gtk_status_icon_get_icon_name,0
gtk_status_icon_get_stock,0
pango_color_to_string,1
pango_font_description_get_family,0
pango_font_description_to_filename,1
pango_font_description_to_string,1
pango_font_face_get_face_name,0
pango_font_family_get_name,0
pango_language_get_sample_string,0
pango_layout_get_text,0
pango_trim_string,1
pango_version_check,0
pango_version_string,0

# Function prototypes that appear within argument lists or structures.  This
# means that you can't call them, but they are callbacks; you can set them
# and Gtk will call them.  The closure setting up the call could in theory
# call g_strdup() when it should return a g_free()able pointer.  This doesn't
# happen yet, though.  see src/types.c:lua2ffi_char_ptr()
#
# Note: of course there are many more such function pointers.  What we have
# here is just the first instance of a certain prototype, which doesn't
# concern the function's name or the arguments' names.
#

AtkActionIface.get_description,0
AtkDocumentIface.get_document_type,0
AtkDocumentIface.get_document_attribute_value,0
AtkImageIface.get_image_description,0
AtkStreamableContentIface.get_mime_type,0
AtkStreamableContentIface.get_uri,0
AtkTableIface.get_column_description,0

# AtkTextIface.* verified
AtkTextIface.get_text,1
AtkTextIface.get_text_after_offset,1
AtkTextIface.get_selection,1

# char*, but whatever it returns will not be freed.  Look at the functions
# in glib2.0-2.14.3/glib/gcompletion.c: completion_check_cache,
# g_completion_complete.  They call GCompletion.func and don't free the value.
GCompletion.func,0

GTypeValueTable.collect_value,1
GTypeValueTable.lcopy_value,1
GtkBuildableIface.get_name,0
GtkContainerClass.composite_name,1
GtkRecentChooserIface.get_current_uri,1

g_option_context_set_translate_func.func,0

# verified inconsistency.
gtk_action_group_set_translate_func.func,0

AtkActionIface.get_name,0
AtkActionIface.get_keybinding,0
AtkActionIface.get_localized_name,0
AtkDocumentIface.get_document_locale,0
AtkImageIface.get_image_locale,0
AtkTableIface.get_row_description,0
AtkTextIface.get_text_at_offset,1
AtkTextIface.get_text_before_offset,1
g_completion_new.func,1
gtk_stock_set_translate_func.func,1
g_option_group_set_translate_func.func,0



