123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162 |
- {*
- * gutils.inc
- *
- * depends on gtypes.inc
- *}
- {$ifdef WIN32}
- { On native Win32, directory separator is the backslash, and search path
- separator is the semicolon.
- }
- const
- G_DIR_SEPERATOR = '\';
- G_DIR_SEPARATOR_S = '\';
- G_SEARCHPATH_SEPARATOR = ';';
- G_SEARCHPATH_SEPARATOR_S = ';';
- {$else}
- { !WIN32 }
- { Unix }
- const
- G_DIR_SEPARATOR = '/';
- G_DIR_SEPARATOR_S = '/';
- G_SEARCHPATH_SEPARATOR = ':';
- G_SEARCHPATH_SEPARATOR_S = ':';
- {$endif}
- function g_get_user_name:Pgchar;cdecl;external gliblib name 'g_get_user_name';
- function g_get_real_name:Pgchar;cdecl;external gliblib name 'g_get_real_name';
- function g_get_home_dir:Pgchar;cdecl;external gliblib name 'g_get_home_dir';
- function g_get_tmp_dir:Pgchar;cdecl;external gliblib name 'g_get_tmp_dir';
- function g_get_prgname:Pgchar;cdecl;external gliblib name 'g_get_prgname';
- procedure g_set_prgname(prgname:Pgchar);cdecl;external gliblib name 'g_set_prgname';
- type
- PGDebugKey = ^TGDebugKey;
- TGDebugKey = record
- key : Pgchar;
- value : guint;
- end;
- { Miscellaneous utility functions
- }
- function g_parse_debug_string(_string:Pgchar; keys:PGDebugKey; nkeys:guint):guint;cdecl;external gliblib name 'g_parse_debug_string';
- {$IFNDEF KYLIX}
- function g_snprintf(_string:Pgchar; n:gulong; format:Pgchar; args:array of const):gint;cdecl;overload;external gliblib name 'g_snprintf';
- function g_snprintf(_string:Pgchar; n:gulong; format:Pgchar):gint;cdecl;overload;external gliblib name 'g_snprintf';
- function g_vsnprintf(_string:Pgchar; n:gulong; format:Pgchar; args:array of const):gint;cdecl;external gliblib name 'g_vsnprintf';
- {$ELSE}
- function g_snprintf(_string:Pgchar; n:gulong; format:Pgchar):gint;varargs;cdecl;external gliblib name 'g_snprintf';
- function g_vsnprintf(_string:Pgchar; n:gulong; format:Pgchar):gint;varargs;cdecl;external gliblib name 'g_vsnprintf';
- {$ENDIF}
- { Check if a file name is an absolute path }
- function g_path_is_absolute(file_name:Pgchar):gboolean;cdecl;external gliblib name 'g_path_is_absolute';
- { In case of absolute paths, skip the root part }
- function g_path_skip_root(file_name:Pgchar):Pgchar;cdecl;external gliblib name 'g_path_skip_root';
- {DEPRECATED}
- { These two functions are deprecated and will be removed in the next
- major release of GLib. Use g_path_get_dirname/g_path_get_basename
- instead. Whatch out! The string returned by g_path_get_basename
- must be g_freed, while the string returned by g_basename must not. }
- function g_basename(file_name:Pgchar):Pgchar;cdecl;external gliblib name 'g_basename';
- function g_dirname(file_name:Pgchar):Pgchar;cdecl;external gliblib name 'g_path_get_dirname';
- { The returned strings are newly allocated with g_malloc() }
- function g_get_current_dir:Pgchar;cdecl;external gliblib name 'g_get_current_dir';
- function g_path_get_basename(file_name:Pgchar):Pgchar;cdecl;external gliblib name 'g_path_get_basename';
- function g_path_get_dirname(file_name:Pgchar):Pgchar;cdecl;external gliblib name 'g_path_get_dirname';
- { Set the pointer at the specified location to NULL }
- procedure g_nullify_pointer(nullify_location:Pgpointer);cdecl;external gliblib name 'g_nullify_pointer';
- { Get the codeset for the current locale }
- { gchar g_get_codeset (void); }
- { return the environment string for the variable. The returned memory
- must not be freed. }
- function g_getenv(variable:Pgchar):Pgchar;cdecl;external gliblib name 'g_getenv';
- { we try to provide a usefull equivalent for ATEXIT if it is
- not defined, but use is actually abandoned. people should
- use g_atexit() instead.
- }
- type
- TGVoidFunc = procedure;cdecl;
- { we use a GLib function as a replacement for ATEXIT, so
- the programmer is not required to check the return value
- (if there is any in the implementation) and doesn't encounter
- missing include files.
- }
- procedure g_atexit(func:TGVoidFunc);cdecl;external gliblib name 'g_atexit';
- { Look for an executable in PATH, following execvp() rules }
- function g_find_program_in_path(_program:Pgchar):Pgchar;cdecl;external gliblib name 'g_find_program_in_path';
- { Bit tests
- }
- function g_bit_nth_lsf(mask:gulong; nth_bit:gint):gint;cdecl;external gliblib name 'g_bit_nth_lsf';
- function g_bit_nth_msf(mask:gulong; nth_bit:gint):gint;cdecl;external gliblib name 'g_bit_nth_msf';
- function g_bit_storage(number:gulong):guint;cdecl;external gliblib name 'g_bit_storage';
- { Trash Stacks
- elements need to be >= sizeof (gpointer)
- }
- type
- PPGTrashStack = ^PGTrashStack;
- PGTrashStack = ^TGTrashStack;
- TGTrashStack = record
- next : PGTrashStack;
- end;
- procedure g_trash_stack_push(stack_p:PPGTrashStack; data_p:gpointer);cdecl;external gliblib name 'g_trash_stack_push';
- function g_trash_stack_pop(stack_p:PPGTrashStack):gpointer;cdecl;external gliblib name 'g_trash_stack_pop';
- function g_trash_stack_peek(stack_p:PPGTrashStack):gpointer;cdecl;external gliblib name 'g_trash_stack_peek';
- function g_trash_stack_height(stack_p:PPGTrashStack):guint;cdecl;external gliblib name 'g_trash_stack_height';
- {$IFNDEF KYLIX}
- { Glib version.
- we prefix variable declarations so they can
- properly get exported in windows dlls.
- }
- var
- glib_major_version : guint;external gliblib name 'glib_major_version';
- glib_minor_version : guint;external gliblib name 'glib_minor_version';
- glib_micro_version : guint;external gliblib name 'glib_micro_version';
- glib_interface_age : guint;external gliblib name 'glib_interface_age';
- glib_binary_age : guint;external gliblib name 'glib_binary_age';
- function GLIB_CHECK_VERSION (major, minor, micro: guint):boolean;
- {$ENDIF}
|