Atrinik Client 2.5
Functions | Variables
toolkit/binreloc.c File Reference
#include <global.h>

Go to the source code of this file.

Functions

static char * _br_find_exe (BrInitError *error)
static char * _br_find_exe_for_symbol (const void *symbol, BrInitError *error)
int br_init (BrInitError *error)
int br_init_lib (BrInitError *error)
char * br_find_exe (const char *default_exe)
char * br_find_exe_dir (const char *default_dir)
char * br_find_prefix (const char *default_prefix)
char * br_find_bin_dir (const char *default_bin_dir)
char * br_find_sbin_dir (const char *default_sbin_dir)
char * br_find_data_dir (const char *default_data_dir)
char * br_find_locale_dir (const char *default_locale_dir)
char * br_find_lib_dir (const char *default_lib_dir)
char * br_find_libexec_dir (const char *default_libexec_dir)
char * br_find_etc_dir (const char *default_etc_dir)
char * br_strcat (const char *str1, const char *str2)
char * br_build_path (const char *dir, const char *file)
static char * br_strndup (const char *str, size_t size)
char * br_dirname (const char *path)

Variables

static char * exe = (char *) NULL

Detailed Description

BinReloc - a library for creating relocatable executables Written by: Hongli Lai <h.lai@chello.nl> http://autopackage.org/

This source code is public domain. You can relicense this code under whatever license you want.

See http://autopackage.org/docs/binreloc/ for more information and how to use this.

Definition in file binreloc.c.


Function Documentation

char* br_dirname ( const char *  path)

Extracts the directory component of a path.

Similar to g_dirname() or the dirname commandline application.

Example:

 br_dirname ("/usr/local/foobar");  --> Returns: "/usr/local"
Parameters:
pathA path.
Returns:
A directory name. This string should be freed when no longer needed.

Definition at line 745 of file binreloc.c.

char* br_find_bin_dir ( const char *  default_bin_dir)

Locate the application's binary folder.

The path is generated by the following pseudo-code evaluation:

 prefix + "/bin"
Parameters:
default_bin_dirA default path which will used as fallback.
Returns:
A string containing the bin folder's path, which must be freed when no longer necessary. If BinReloc is not initialized, or if the initialization function failed, then a copy of default_bin_dir will be returned. If default_bin_dir is NULL, then NULL will be returned.

Definition at line 437 of file binreloc.c.

char* br_find_data_dir ( const char *  default_data_dir)

Locate the application's data folder.

The path is generated by the following pseudo-code evaluation:

 prefix + "/share"
Parameters:
default_data_dirA default path which will used as fallback.
Returns:
A string containing the data folder's path, which must be freed when no longer necessary. If BinReloc is not initialized, or if the initialization function failed, then a copy of default_data_dir will be returned. If default_data_dir is NULL, then NULL will be returned.

Definition at line 504 of file binreloc.c.

char* br_find_etc_dir ( const char *  default_etc_dir)

Locate the application's configuration files folder.

The path is generated by the following pseudo-code evaluation:

 prefix + "/etc"
Parameters:
default_etc_dirA default path which will used as fallback.
Returns:
A string containing the etc folder's path, which must be freed when no longer necessary. If BinReloc is not initialized, or if the initialization function failed, then a copy of default_etc_dir will be returned. If default_etc_dir is NULL, then NULL will be returned.

Definition at line 636 of file binreloc.c.

char* br_find_exe ( const char *  default_exe)

Find the canonical filename of the current application.

Parameters:
default_exeA default filename which will be used as fallback.
Returns:
A string containing the application's canonical filename, which must be freed when no longer necessary. If BinReloc is not initialized, or if br_init() failed, then a copy of default_exe will be returned. If default_exe is NULL, then NULL will be returned.

Definition at line 348 of file binreloc.c.

char* br_find_exe_dir ( const char *  default_dir)

Locate the directory in which the current application is installed.

The prefix is generated by the following pseudo-code evaluation:

 dirname(exename)
Parameters:
default_dirA default directory which will used as fallback.
Returns:
A string containing the directory, which must be freed when no longer necessary. If BinReloc is not initialized, or if the initialization function failed, then a copy of default_dir will be returned. If default_dir is NULL, then NULL will be returned.

Definition at line 376 of file binreloc.c.

char* br_find_lib_dir ( const char *  default_lib_dir)

Locate the application's library folder.

The path is generated by the following pseudo-code evaluation:

 prefix + "/lib"
Parameters:
default_lib_dirA default path which will used as fallback.
Returns:
A string containing the library folder's path, which must be freed when no longer necessary. If BinReloc is not initialized, or if the initialization function failed, then a copy of default_lib_dir will be returned. If default_lib_dir is NULL, then NULL will be returned.

Definition at line 570 of file binreloc.c.

char* br_find_libexec_dir ( const char *  default_libexec_dir)

Locate the application's libexec folder.

The path is generated by the following pseudo-code evaluation:

 prefix + "/libexec"
Parameters:
default_libexec_dirA default path which will used as fallback.
Returns:
A string containing the libexec folder's path, which must be freed when no longer necessary. If BinReloc is not initialized, or if the initialization function failed, then a copy of default_libexec_dir will be returned. If default_libexec_dir is NULL, then NULL will be returned.

Definition at line 603 of file binreloc.c.

char* br_find_locale_dir ( const char *  default_locale_dir)

Locate the application's localization folder.

The path is generated by the following pseudo-code evaluation:

 prefix + "/share/locale"
Parameters:
default_locale_dirA default path which will used as fallback.
Returns:
A string containing the localization folder's path, which must be freed when no longer necessary. If BinReloc is not initialized, or if the initialization function failed, then a copy of default_locale_dir will be returned. If default_locale_dir is NULL, then NULL will be returned.

Definition at line 537 of file binreloc.c.

char* br_find_prefix ( const char *  default_prefix)

Locate the prefix in which the current application is installed.

The prefix is generated by the following pseudo-code evaluation:

 dirname(dirname(exename))
Parameters:
default_prefixA default prefix which will used as fallback.
Returns:
A string containing the prefix, which must be freed when no longer necessary. If BinReloc is not initialized, or if the initialization function failed, then a copy of default_prefix will be returned. If default_prefix is NULL, then NULL will be returned.

Definition at line 404 of file binreloc.c.

char* br_find_sbin_dir ( const char *  default_sbin_dir)

Locate the application's superuser binary folder.

The path is generated by the following pseudo-code evaluation:

 prefix + "/sbin"
Parameters:
default_sbin_dirA default path which will used as fallback.
Returns:
A string containing the sbin folder's path, which must be freed when no longer necessary. If BinReloc is not initialized, or if the initialization function failed, then a copy of default_sbin_dir will be returned. If default_bin_dir is NULL, then NULL will be returned.

Definition at line 470 of file binreloc.c.

int br_init ( BrInitError error)

Initialize the BinReloc library (for applications).

This function must be called before using any other BinReloc functions. It attempts to locate the application's canonical filename.

Note:
If you want to use BinReloc for a library, then you should call br_init_lib() instead.
Parameters:
errorIf BinReloc failed to initialize, then the error code will be stored in this variable. Set to NULL if you want to ignore this. See BrInitError for a list of error codes.
Returns:
1 on success, 0 if BinReloc failed to initialize.

Definition at line 309 of file binreloc.c.

int br_init_lib ( BrInitError error)

Initialize the BinReloc library (for libraries).

This function must be called before using any other BinReloc functions. It attempts to locate the calling library's canonical filename.

Note:
The BinReloc source code MUST be included in your library, or this function won't work correctly.
Parameters:
errorIf BinReloc failed to initialize, then the error code will be stored in this variable. Set to NULL if you want to ignore this. See BrInitError for a list of error codes.
Returns:
1 on success, 0 if a filename cannot be found.

Definition at line 331 of file binreloc.c.

char* br_strcat ( const char *  str1,
const char *  str2 
)

Concatenate str1 and str2 to a newly allocated string.

Parameters:
str1A string.
str2Another string.
Returns:
A newly-allocated string. This string should be freed when no longer needed.

Definition at line 666 of file binreloc.c.