23 #define UNIX_EOL_STRING "\n"
24 #define UNIX_EOL_LENGTH 1
26 #define MAC_EOL_STRING "\r"
27 #define MAC_EOL_LENGTH 1
29 #define DOS_EOL_STRING "\r\n"
30 #define DOS_EOL_LENGTH 2
32 #if FF_OS == FF_OS_UNIX
34 #define NATIVE_EOL_STRING UNIX_EOL_STRING
35 #define NATIVE_EOL_LENGTH UNIX_EOL_LENGTH
39 #if FF_OS == FF_OS_MAC
41 #define NATIVE_EOL_STRING MAC_EOL_STRING
42 #define NATIVE_EOL_LENGTH MAC_EOL_LENGTH
46 #if FF_OS == FF_OS_DOS
48 #define NATIVE_EOL_STRING DOS_EOL_STRING
49 #define NATIVE_EOL_LENGTH DOS_EOL_LENGTH
53 #if FF_CC == FF_CC_UNIX
54 #define osf_strcmp strcmp
57 #if FF_CC == FF_CC_MACCW
59 #define osf_strcmp os_strcmpi
62 #if FF_CC == FF_CC_MSVC1 || FF_CC == FF_CC_MSVC4
63 #define osf_strcmp os_strcmpi
67 #define max(a,b) ((a) > (b) ? (a) : (b))
71 #define min(a,b) ((a) < (b) ? (a) : (b))
76 #define ROUND(a) ((a) < 0 ? ceil((a) - 0.5 - DOUBLE_UP) : floor((a) + 0.5 + DOUBLE_UP))
78 #error "ROUND macro is already defined -- contact support"
82 #define TRUNC(a) ((a) < 0 ? ceil(a) : floor(a))
84 #error "TRUNC macro is already defined -- contact support"
87 #define FF_STRLEN(a) ((a)?strlen(a):0)
88 #define ok_strlen(a) FF_STRLEN(a)
90 #define FF_SUBSTRCMP(a,b) (((a)&&(b))?strncmp(a,b,min(FF_STRLEN(a),FF_STRLEN(b))):1)
92 #define OS_INVERSE_ESCAPE 0
93 #define OS_NORMAL_ESCAPE 1
95 #define UNION_EOL_CHARS "\x0a\x0d"
97 #define WHITESPACE "\x09\x0a\x0b\x0c\x0d\x20"
98 #define LINESPACE "\x09\x0b\x0c\x20"
101 #define FLIP_4_BYTES(a) ( (((a) & 0x000000FFu) << 24) | \
102 (((a) & 0x0000FF00u) << 8) | \
103 (((unsigned long)(a) & 0x00FF0000u) >> 8) | \
104 (((unsigned long)(a) & 0xFF000000u) >> 24) )
106 #define FLIP_2_BYTES(a) ( (((unsigned short)(a) & 0xFF00u) >> 8) | \
107 (((a) & 0x00FFu) << 8) )
111 #ifndef _BOOLEAN_DEFINED
112 #define _BOOLEAN_DEFINED
132 int os_strcmpi(
const char* s1,
const char* s2);
133 int os_strncmpi(
const char* s1,
const char* s2,
size_t n);
135 #if FF_OS == FF_OS_MAC
144 void os_path_find_parts(
char *path,
char **pathname,
char **filename,
char **fileext);
149 void os_path_get_parts(
char *path,
char *pathname,
char *filename,
char *fileext);
150 char *
os_path_put_parts(
char *fullpath,
char *dirpath,
char *filename,
char *fileext);
159 char *
os_strrstr(
const char *s1,
const char *s2);
unsigned long os_filelength(char *filename)
void os_str_replace_escaped_char1_with_char2(const char escape, char char1, char char2, char *str)
void os_path_get_parts(char *path, char *pathname, char *filename, char *fileext)
char * os_str_trim_linespace(char *line)
char * os_strrstr(const char *s1, const char *s2)
char * os_get_env(char *variable_name)
char * os_strlwr(char *string)
void os_str_replace_unescaped_char1_with_char2(char char1, char char2, char *str)
char * os_path_return_ext(char *pfname)
char * os_path_return_path(char *pfname)
BOOLEAN os_path_is_native(char *path)
void os_path_find_parts(char *path, char **pathname, char **filename, char **fileext)
BOOLEAN os_path_prepend_special(char *in_name, char *home_path, char *out_name)
char * os_path_return_name(char *pfname)
char * os_str_trim_whitespace(char *dest, char *source)
Handle PathNameFromFSSpec(FSSpecPtr myFSSPtr)
int os_strncmpi(const char *s1, const char *s2, size_t n)
int os_strcmpi(const char *s1, const char *s2)
char * os_path_make_native(char *native_path, char *path)
BOOLEAN os_file_exist(char *filename)
char * os_path_put_parts(char *fullpath, char *dirpath, char *filename, char *fileext)
void * os_mac_load_env(char *buffer)
void os_path_find_parent(char *path, char **parentdir)
int os_path_cmp_paths(char *s, char *t)
void os_str_replace_char(char *string, char oldc, char newc)