medfall

A super great game engine
Log | Files | Refs

whereami.h (1972B)


      1 // (‑●‑●)> released under the WTFPL v2 license, by Gregory Pakosz (@gpakosz)
      2 // https://github.com/gpakosz/whereami
      3 
      4 #ifndef WHEREAMI_H
      5 #define WHEREAMI_H
      6 
      7 #ifdef __cplusplus
      8 extern "C" {
      9 #endif
     10 
     11 #ifndef WAI_FUNCSPEC
     12   #define WAI_FUNCSPEC
     13 #endif
     14 #ifndef WAI_PREFIX
     15 #define WAI_PREFIX(function) wai_##function
     16 #endif
     17 
     18 /**
     19  * Returns the path to the current executable.
     20  *
     21  * Usage:
     22  *  - first call `int length = wai_getExecutablePath(NULL, 0, NULL);` to
     23  *    retrieve the length of the path
     24  *  - allocate the destination buffer with `path = (char*)malloc(length + 1);`
     25  *  - call `wai_getExecutablePath(path, length, NULL)` again to retrieve the
     26  *    path
     27  *  - add a terminal NUL character with `path[length] = '\0';`
     28  *
     29  * @param out destination buffer, optional
     30  * @param capacity destination buffer capacity
     31  * @param dirname_length optional recipient for the length of the dirname part
     32  *   of the path.
     33  *
     34  * @return the length of the executable path on success (without a terminal NUL
     35  * character), otherwise `-1`
     36  */
     37 WAI_FUNCSPEC
     38 int WAI_PREFIX(getExecutablePath)(char* out, int capacity, int* dirname_length);
     39 
     40 /**
     41  * Returns the path to the current module
     42  *
     43  * Usage:
     44  *  - first call `int length = wai_getModulePath(NULL, 0, NULL);` to retrieve
     45  *    the length  of the path
     46  *  - allocate the destination buffer with `path = (char*)malloc(length + 1);`
     47  *  - call `wai_getModulePath(path, length, NULL)` again to retrieve the path
     48  *  - add a terminal NUL character with `path[length] = '\0';`
     49  *
     50  * @param out destination buffer, optional
     51  * @param capacity destination buffer capacity
     52  * @param dirname_length optional recipient for the length of the dirname part
     53  *   of the path.
     54  *
     55  * @return the length of the module path on success (without a terminal NUL
     56  * character), otherwise `-1`
     57  */
     58 WAI_FUNCSPEC
     59 int WAI_PREFIX(getModulePath)(char* out, int capacity, int* dirname_length);
     60 
     61 #ifdef __cplusplus
     62 }
     63 #endif
     64 
     65 #endif // #ifndef WHEREAMI_H