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
58 Handle PathNameFromFSSpec(FSSpecPtr myFSSPtr);
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
115 typedef short BOOLEAN;
128 char *os_strlwr(
char *
string);
129 char *os_strupr(
char *);
130 unsigned long os_filelength(
char *filename);
131 BOOLEAN os_file_exist(
char *filename);
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
136 void *os_mac_load_env(
char * buffer);
139 char *os_get_env(
char *variable_name);
141 int os_path_cmp_paths(
char *s,
char *t);
142 BOOLEAN os_path_is_native(
char *path);
143 char *os_path_make_native(
char *native_path,
char *path);
144 void os_path_find_parts(
char *path,
char **pathname,
char **filename,
char **fileext);
145 void os_path_find_parent(
char *path,
char **parentdir);
146 char *os_path_return_ext(
char *pfname);
147 char *os_path_return_name(
char *pfname);
148 char *os_path_return_path(
char *pfname);
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);
151 void os_str_replace_char(
char *
string,
char oldc,
char newc);
152 BOOLEAN os_path_prepend_special(
char *in_name,
char *home_path,
char *out_name);
153 char *os_str_trim_whitespace(
char *dest,
char *source);
154 char *os_str_trim_linespace(
char *line);
155 void os_str_replace_unescaped_char1_with_char2(
char char1,
char char2,
char *str);
156 void os_str_replace_escaped_char1_with_char2(
const char escape,
char char1,
char char2,
char *str);
158 char *os_strdup(
char *);
159 char *os_strrstr(
const char *s1,
const char *s2);