| \input texinfo @c -*-texinfo-*- |
| @c %**start of header |
| @setfilename glib.info |
| @settitle GLIB |
| @setchapternewpage odd |
| |
| @set edition 1.0 |
| @set update-date 3 Feburary 1998 |
| @set update-month Feburary 1998 |
| @c %**end of header |
| |
| @ifinfo |
| This file documents GLIB, A library of useful routines for C programming |
| |
| Copyright (C) 1998 Gregory A McLean |
| |
| Permission is granted to make and distributed verbatim copies of this |
| manual, provided the copyright notice and this permission notice are |
| preserved on all copies. |
| |
| @ignore |
| Permission is granted to process this file throught TeX and print the |
| results, provided the printed document carries copying permission notice |
| identical to this one except for the removal of this paragraph (this |
| paragraph not being relevant to the printed manual). |
| |
| @end ignore |
| Permission is granted to copy and distribute modified versions of this |
| manual under the conditions for verbatim copying, provided that the |
| entire resulting derived work is distributed under the terms of a |
| permission notice identical to this one. |
| |
| Permission is granted to copy and distribute translations of this manual |
| into another language, under the above conditions for modified versions, |
| except that this permission notice may be stated in a translation |
| approved by Gregory McLean. |
| @end ifinfo |
| |
| @titlepage |
| @title GLIB, Useful routines for C programming |
| @subtitle Version 1.0 |
| @subtitle @value{update-month} |
| @author by Gregory McLean |
| |
| @page |
| @vskip 0pt plus 1filll |
| Copyright @copyright{} 1998 Gregory McLean |
| |
| Permission is granted to make and distribute verbatim copies of this |
| manual provided the copyright notice and this permission notice are |
| preserved on all copies. |
| |
| Permission is granted to copy and distribute modified versions of this |
| manual under the conditions for verbatim copying, provided that the |
| entire resulting derived work is distributed under the terms of a |
| permission notice identical to this one. |
| |
| Permission is granted to copy and distribute translations of this manual |
| into another language, under the above conditions for modified versions, |
| except that this permission notice may be stated in a translation |
| approved by Gregory McLean. |
| @end titlepage |
| |
| @dircategory Library of useful routines for 'C' programing |
| @direntry |
| * GLIB: (glib). useful routines for 'C' programming |
| @end direntry |
| |
| @node Top, Copying, (dir), (dir) |
| @top useful routines for 'C' programming |
| @ifinfo |
| This is edition @value{edition} of the GLIB documentation, |
| @w{@value{update-date}}. |
| @end ifinfo |
| |
| @menu |
| * Copying:: Your rights. |
| * Overview:: What is GLIB? |
| * Doubly linked lists:: Doubly linked lists |
| * Signly linked lists:: Singly linked lists |
| * List allocators:: List Allocators |
| * Hash tables:: Hash tables |
| * Caches:: Cache handling |
| * Trees:: Tree handling |
| * Memory:: Memory handling |
| * Timers:: Timer functions |
| * Output:: Output handling |
| * Utilities:: Utilitiy functions |
| * Errors:: Error handling |
| * String Chunks:: String Chunks |
| * Strings:: String handling |
| * Resizable arrays:: Resizeable arrays |
| * GScanner:: Flexible lexical scanner |
| * Miscellany:: Other stuff |
| * Function Index:: Index of functions |
| * Concept Index:: Index of concepts |
| @end menu |
| |
| @node Copying, Overview, Top, Top |
| @comment node-name, next, previous, up |
| @chapter Copying |
| |
| @node Overview, Doubly linked lists, Copying, Top |
| @comment node-name, next, previous, up |
| @chapter What is GLIB |
| |
| @node Doubly linked lists, Signly linked lists, Overview, Top |
| @comment node-name, next, previous, up |
| @chapter Doubly linked lists |
| |
| @subsection Functions |
| |
| @deftypefun GList* g_list_alloc (void) |
| @end deftypefun |
| |
| @deftypefun void g_list_free (GList *@var{list}) |
| @end deftypefun |
| |
| @deftypefun void g_list_free_1 (GList *@var{list}) |
| @end deftypefun |
| |
| @deftypefun GList* g_list_append (GList *@var{list}, gpointer @var{data}) |
| @end deftypefun |
| |
| @deftypefun GList* g_list_prepend (GList *@var{list}, gpointer @var{data}) |
| @end deftypefun |
| |
| @deftypefun GList* g_list_insert (GList *@var{list}, gpointer @var{data}, gint @var{position}) |
| @end deftypefun |
| |
| @deftypefun GList* g_list_insert_sorted (GList *@var{list}, gpointer @var{data}, GCompareFunc @var{func}) |
| @end deftypefun |
| |
| @deftypefun GList* g_list_concat (GList *@var{list1}, GList *@var{list2}) |
| @end deftypefun |
| |
| @deftypefun GList* g_list_remove (GList *@var{list}, gpointer @var{data}) |
| @end deftypefun |
| |
| @deftypefun GList* g_list_remove_link (GList *@var{list}, GList *@var{link}) |
| @end deftypefun |
| |
| @deftypefun GList* g_list_reverse (GList *@var{list}) |
| @end deftypefun |
| |
| @deftypefun GList* g_list_nth (GList *@var{list}, gint @var{n}) |
| @end deftypefun |
| |
| @deftypefun GList* g_list_find (GList *@var{list}, gpointer @var{data}) |
| @end deftypefun |
| |
| @deftypefun GList* g_list_last (GList *@var{list}) |
| @end deftypefun |
| |
| @deftypefun GList* g_list_first (GList *@var{list}) |
| @end deftypefun |
| |
| @deftypefun gint g_list_length (GList *@var{list}) |
| @end deftypefun |
| |
| @deftypefun void g_list_foreach (GList *@var{list}, GFunc @var{func}, gpointer @var{user_data}) |
| @end deftypefun |
| |
| @node Signly linked lists, List allocators, Doubly linked lists, Top |
| @comment node-name, next, previous, up |
| @chapter Signly linked lists |
| |
| @subsection Functions |
| @deftypefun GSList* g_slist_alloc (void) |
| @end deftypefun |
| |
| @deftypefun void g_slist_free (GSList *@var{list}) |
| @end deftypefun |
| |
| @deftypefun void g_slist_free_1 (GSList *@var{list}) |
| @end deftypefun |
| |
| @deftypefun GSList* g_slist_append (GSList *@var{list}, gpointer @var{data}) |
| @end deftypefun |
| |
| @deftypefun GSList* g_slist_prepend (GSList *@var{list}, gpointer @var{data}) |
| @end deftypefun |
| |
| @deftypefun GSList* g_slist_insert (GSList *@var{list}, gpointer @var{data}, gint @var{position}) |
| @end deftypefun |
| |
| @deftypefun GSList* g_slist_insert_sorted (GSList *@var{list}, gpointer @var{data}, GCompareFunc @var{func}) |
| @end deftypefun |
| |
| @deftypefun GSList* g_slist_concat (GSList *@var{list1}, GSList *@var{list2}) |
| @end deftypefun |
| |
| @deftypefun GSList* g_slist_remove (GSList *@var{list}, gpointer @var{data}) |
| @end deftypefun |
| |
| @deftypefun GSList* g_slist_remove_link (GSList *@var{list}, GSList *@var{link}) |
| @end deftypefun |
| |
| @deftypefun GSList* g_slist_reverse (GSList *@var{list}) |
| @end deftypefun |
| |
| @deftypefun GSList* g_slist_nth (GSList *@var{list}, gint @var{n}) |
| @end deftypefun |
| |
| @deftypefun GSList* g_slist_find (GSList *@var{list}, gpointer @var{data}) |
| @end deftypefun |
| |
| @deftypefun GSList* g_slist_last (GSList *@var{list}) |
| @end deftypefun |
| |
| @deftypefun gint g_slist_length (GSList *@var{list}) |
| @end deftypefun |
| |
| @deftypefun void g_slist_foreach (GSList *@var{list}, GFunc @var{func}, gpointer @var{user_data}) |
| @end deftypefun |
| |
| @node List allocators, Hash tables, Signly linked lists, Top |
| @comment node-name, next, previous, up |
| @chapter List allocators |
| |
| @subsection Functions |
| |
| @deftypefun GListAllocator* g_list_allocator_new (void) |
| @end deftypefun |
| |
| @deftypefun void g_list_allocator_free (GListAllocator *@var{allocator}) |
| @end deftypefun |
| |
| @deftypefun GListAllocator* g_slist_set_allocator (GListAllocator *@var{allocator}) |
| @end deftypefun |
| |
| @deftypefun GListAllocator* g_list_set_allocator (GListAllocator *@var{allocator}) |
| @end deftypefun |
| |
| @node Hash tables, Caches, List allocators, Top |
| @comment node-name, next, previous, up |
| @chapter Hash tables |
| |
| @subsection Functions |
| |
| @deftypefun GHashTable* g_hash_table_new (GHashFunc @var{hash_func}, GCompareFunc @var{key_compare_func}) |
| @end deftypefun |
| |
| @deftypefun void g_hash_table_destroy (GHashTable *@var{hash_table}) |
| @end deftypefun |
| |
| @deftypefun void g_hash_table_insert (GHashTable *@var{hash_table}, gpointer @var{key}, gpointer @var{value}) |
| @end deftypefun |
| |
| @deftypefun void g_hash_table_remove (GHashTable *@var{hash_table}, gpointer @var{key}) |
| @end deftypefun |
| |
| @deftypefun gpointer g_hash_table_lookup (GHashTable *@var{hash_table}, gpointer @var{key}) |
| @end deftypefun |
| |
| @deftypefun void g_hash_table_freeze (GHashTable *@var{hash_table}) |
| @end deftypefun |
| |
| @deftypefun void g_hash_table_thaw (GHashTable *@var{hash_table}) |
| @end deftypefun |
| |
| @deftypefun void g_hash_table_foreach (GHashTable *@var{hash_table}, GHFunc @var{func}, gpointer @var{user_data}) |
| @end deftypefun |
| |
| @node Caches, Trees, Hash tables, Top |
| @comment node-name, next, previous, up |
| @chapter Cache handling |
| |
| @subsection Functions |
| |
| @deftypefun GCache* g_cache_new (GCacheNewFunc @var{value_new_func}, GCacheDestroyFunc @var{value_destroy_func}, GCacheDupFunc @var{key_dup_func}, GCacheDestroyFunc @var{key_destroy_func}, GHashFunc @var{hash_key_func}, GHashFunc @var{hash_value_func}, GCompareFunc @var{key_compare_func}) |
| @end deftypefun |
| |
| @deftypefun void g_cache_destroy (GCache *@var{cache}) |
| @end deftypefun |
| |
| @deftypefun gpointer g_cache_insert (GCache *@var{cache}, gpointer @var{key}) |
| @end deftypefun |
| |
| @deftypefun void g_cache_remove (GCache *@var{cache}, gpointer @var{key}) |
| @end deftypefun |
| |
| @deftypefun void g_cache_key_foreach (GCache *@var{cache}, GHFunc @var{func}, gpointer @var{user_data}) |
| @end deftypefun |
| |
| @deftypefun void g_cache_value_foreach (GCache *@var{cache}, GHFunc @var{func}, gpointer @var{user_data}) |
| @end deftypefun |
| |
| @node Trees, Memory, Caches, Top |
| @comment node-name, next, previous, up |
| @chapter Tree handling |
| |
| @subsection Functions |
| |
| @deftypefun GTree* g_tree_new (GCompareFunc @var{key_compare_func}) |
| @end deftypefun |
| |
| @deftypefun void g_tree_destroy (GTree *@var{tree}) |
| @end deftypefun |
| |
| @deftypefun void g_tree_remove (GTree *@var{tree}, gpointer @var{key}, gpointer @var{value}) |
| @end deftypefun |
| |
| @deftypefun gpointer g_tree_lookup (GTree *@var{tree}, gpointer @var{key}) |
| @end deftypefun |
| |
| @deftypefun void g_tree_traverse (GTree *@var{tree}, GTraverseFunc @var{traverse_func}, GTraverseType @var{traverse_type}, gpointer @var{data} |
| @end deftypefun |
| |
| @deftypefun gpointer g_tree_search (GTree *@var{tree}, GSearchFunc @var{search_func}, gpointer @var{data}) |
| @end deftypefun |
| |
| @deftypefun gint g_tree_height (GTree *@var{tree}) |
| @end deftypefun |
| |
| @deftypefun gint g_tree_nnodes (GTree *@var{tree}) |
| @end deftypefun |
| |
| @node Memory, Timers, Trees, Top |
| @comment node-name, next, previous, up |
| @chapter Memory handling |
| |
| @subsection Functions |
| |
| @deftypefun gpointer g_malloc (gulong @var{size}) |
| @end deftypefun |
| |
| @deftypefun gpointer g_malloc0 (gulong @var{size}) |
| @end deftypefun |
| |
| @deftypefun gpointer g_realloc (gpointer @var{mem}, gulong @var{size}) |
| @end deftypefun |
| |
| @deftypefun void g_mem_profile (void) |
| @end deftypefun |
| |
| @deftypefun void g_mem_check (gpointer @var{mem}) |
| @end deftypefun |
| |
| @deftypefun GMemChunk* g_mem_chunk_new (gchar *@var{name}, gint @var{atom_size}, gulong @var{area_size}, gint @var{type}) |
| @end deftypefun |
| |
| @deftypefun void g_mem_chunk_destroy (GMemChunk *@var{mem_chunk}) |
| @end deftypefun |
| |
| @deftypefun gpointer g_mem_chunk_alloc (GMemChunk *@var{mem_chunk}) |
| @end deftypefun |
| |
| @deftypefun void g_mem_chunk_free (GMemChunk *@var{mem_chunk}, gpointer @var{mem}) |
| @end deftypefun |
| |
| @deftypefun void g_mem_chunk_clean (GMemChunk *@var{mem_chunk}) |
| @end deftypefun |
| |
| @deftypefun void g_mem_chunk_reset (GMemChunk *@var{mem_chunk}) |
| @end deftypefun |
| |
| @deftypefun void g_mem_chunk_print (GMemChunk *@var{mem_chunk}) |
| @end deftypefun |
| |
| @deftypefun void g_mem_chunk_info (void) |
| @end deftypefun |
| |
| @deftypefun void g_blow_chunks (void) |
| Not what you might be thinking, @code{g_blow_chunks()} simply compresses all |
| the chunks. This operation consists of freeing every memory area that should |
| be freed (but which we haven't gotten around to doing yet). |
| @end deftypefun |
| |
| @node Timers, Output, Memory, Top |
| @comment node-name, next, previous, up |
| @chapter Timer functions |
| |
| @subsection Functions |
| |
| @deftypefun GTimer* g_timer_new (void) |
| @end deftypefun |
| |
| @deftypefun void g_timer_destroy (GTimer *@var{timer}) |
| @end deftypefun |
| |
| @deftypefun void g_timer_start (GTimer *@var{timer}) |
| @end deftypefun |
| |
| @deftypefun void g_timer_stop (GTimer *@var{timer}) |
| @end deftypefun |
| |
| @deftypefun void g_timer_reset (GTimer *@var{timer}) |
| @end deftypefun |
| |
| @deftypefun gdouble g_timer_elapsed (GTimer *@var{timer}, gulong *@var{microseconds}) |
| @end deftypefun |
| |
| @node Output, Utilities, Timers, Top |
| @comment node-name, next, previous, up |
| @chapter Output functions |
| |
| @subsection Functions |
| |
| @deftypefun void g_error (gchar *@var{format}, @dots{}) |
| @end deftypefun |
| |
| @deftypefun void g_warning (gchar *@var{format}, @dots{}) |
| @end deftypefun |
| |
| @deftypefun void g_message (gchar *@var{format}, @dots{}) |
| @end deftypefun |
| |
| @deftypefun void g_print (gchar *@var{format}, @dots{}) |
| @end deftypefun |
| |
| @node Utilities, Errors, Output, Top |
| @comment node-name, next, previous, up |
| @chapter Utility functions |
| |
| @node Errors, String Chunks, Utilities, Top |
| @comment node-name, next, previous, up |
| @chapter Error handling |
| |
| @node String Chunks, Strings, Errors, Top |
| @comment node-name, next, previous, up |
| @chapter String chunks |
| |
| @node Strings, Resizable arrays, String Chunks, Top |
| @comment node-name, next, previous, up |
| @chapter String handling |
| |
| @node Resizable arrays, GScanner, Strings, Top |
| @comment node-name, next, previous, up |
| @chapter Resizable arrays |
| |
| @node GScanner, Miscellany, Resizable arrays, Top |
| @comment node-name, next, previous, up |
| @chapter Flexible lexical scanner |
| |
| @node Miscellany, Function Index, GScanner, Top |
| @comment node-name, next, previous, up |
| @chapter Other stuff |
| |
| @node Function Index, Concept Index, Miscellany, Top |
| @comment node-name, next, previous, up |
| @unnumbered Function Index |
| |
| @printindex fn |
| |
| @node Concept Index, , Function Index, Top |
| @comment node-name, next, previous, up |
| @unnumbered Concept Index |
| |
| @printindex cp |
| |
| @summarycontents |
| @contents |
| @bye |
| |