3#ifndef __NUITKA_FILESYSTEM_PATH_OPS_H__
4#define __NUITKA_FILESYSTEM_PATH_OPS_H__
6#include "nuitka/safe_string_ops.h"
10#define _NUITKA_NATIVE_WCHAR_ARGV 1
11#define filename_char_t wchar_t
12#define FILENAME_EMPTY_STR L""
13#define FILENAME_SEP_STR L"\\"
14#define FILENAME_SEP_CHAR L'\\'
15#define FILENAME_FORMAT_STR "%ls"
16#define copyStringSafeFilename copyStringSafeW
17#define appendStringSafeFilename appendWStringSafeW
18#define appendCharSafeFilename appendWCharSafeW
19#define FILENAME_TMP_STR L".tmp"
20#define FILENAME_AWAY_STR L".away"
21#define expandTemplatePathFilename expandTemplatePathW
22#define strlenFilename wcslen
23#define strcmpFilename wcscmp
24#define strdupFilename wcsdup
25#define scanFilename swscanf
26#define Nuitka_String_FromFilename(filename) NuitkaUnicode_FromWideChar(filename, -1)
28#define _NUITKA_NATIVE_WCHAR_ARGV 0
29#define filename_char_t char
30#define FILENAME_EMPTY_STR ""
31#define FILENAME_SEP_STR "/"
32#define FILENAME_SEP_CHAR '/'
33#define FILENAME_FORMAT_STR "%s"
34#define copyStringSafeFilename copyStringSafe
35#define appendStringSafeFilename appendStringSafe
36#define appendCharSafeFilename appendCharSafe
37#define FILENAME_TMP_STR ".tmp"
38#define FILENAME_AWAY_STR ".away"
39#define expandTemplatePathFilename expandTemplatePath
40#define strlenFilename strlen
41#define strcmpFilename strcmp
42#define strdupFilename strdup
43#define scanFilename sscanf
44#define Nuitka_String_FromFilename Nuitka_String_FromString
58#define FILE_HANDLE HANDLE
59#define FILE_HANDLE_NULL INVALID_HANDLE_VALUE
61#define FILE_HANDLE FILE *
62#define FILE_HANDLE_NULL NULL
67#define MAXPATHLEN 4096
71extern filename_char_t
const *getBinaryPath(
void);
74extern filename_char_t
const *getDllDirectory(
void);
76extern FILE_HANDLE openFileForReading(filename_char_t
const *filename);
77extern FILE_HANDLE createFileForWriting(filename_char_t
const *filename);
78extern int64_t getFileSize(FILE_HANDLE file_handle);
79extern bool readFileChunk(FILE_HANDLE file_handle,
void *buffer,
size_t size);
80extern bool writeFileChunk(FILE_HANDLE file_handle,
void const *buffer,
size_t size);
81extern bool closeFile(FILE_HANDLE target_file);
82extern error_code_t getLastErrorCode(
void);
84extern bool isExecutableFile(filename_char_t
const *filename);
85extern int getFileMode(filename_char_t
const *filename);
86extern bool copyFile(filename_char_t
const *source, filename_char_t
const *dest,
int mode);
87extern bool deleteFile(filename_char_t
const *filename);
88extern bool renameFile(filename_char_t
const *source, filename_char_t
const *dest);
90extern uint32_t getFileCRC32(filename_char_t
const *filename);
93extern bool expandTemplatePathW(
wchar_t *target,
wchar_t const *source,
size_t buffer_size);
94extern bool expandTemplatePath(
char *target,
char const *source,
size_t buffer_size);
97extern filename_char_t *stripBaseFilename(filename_char_t
const *filename);
101extern void normalizePath(filename_char_t *filename);