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
41#define NATIVE_EOL_STRING MAC_EOL_STRING
42#define NATIVE_EOL_LENGTH MAC_EOL_LENGTH
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
58Handle 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
115typedef short BOOLEAN;
128char *os_strlwr(
char *
string);
129char *os_strupr(
char *);
130unsigned long os_filelength(
char *filename);
131BOOLEAN os_file_exist(
char *filename);
132int os_strcmpi(
const char* s1,
const char* s2);
133int os_strncmpi(
const char* s1,
const char* s2,
size_t n);
135#if FF_OS == FF_OS_MAC
136void *os_mac_load_env(
char * buffer);
139char *os_get_env(
char *variable_name);
141int os_path_cmp_paths(
char *s,
char *t);
142BOOLEAN os_path_is_native(
char *path);
143char *os_path_make_native(
char *native_path,
char *path);
144void os_path_find_parts(
char *path,
char **pathname,
char **filename,
char **fileext);
145void os_path_find_parent(
char *path,
char **parentdir);
146char *os_path_return_ext(
char *pfname);
147char *os_path_return_name(
char *pfname);
148char *os_path_return_path(
char *pfname);
149void os_path_get_parts(
char *path,
char *pathname,
char *filename,
char *fileext);
150char *os_path_put_parts(
char *fullpath,
char *dirpath,
char *filename,
char *fileext);
151void os_str_replace_char(
char *
string,
char oldc,
char newc);
152BOOLEAN os_path_prepend_special(
char *in_name,
char *home_path,
char *out_name);
153char *os_str_trim_whitespace(
char *dest,
char *source);
154char *os_str_trim_linespace(
char *line);
155void os_str_replace_unescaped_char1_with_char2(
char char1,
char char2,
char *str);
156void os_str_replace_escaped_char1_with_char2(
const char escape,
char char1,
char char2,
char *str);
158char *os_strdup(
char *);
159char *os_strrstr(
const char *s1,
const char *s2);