added:
- file: bool fileExists - str: removed c++ string conversion - tracelog: added utf8 output for windows
This commit is contained in:
parent
bce93361b1
commit
915fd081f3
6 changed files with 23 additions and 10 deletions
15
file.c
15
file.c
|
|
@ -23,9 +23,16 @@ static DWORD _toWin32Creation(int mode) {
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
bool fileExists(const char *fname) {
|
||||||
|
DWORD dwAttrib = GetFileAttributesA(fname);
|
||||||
|
|
||||||
|
return (dwAttrib != INVALID_FILE_ATTRIBUTES &&
|
||||||
|
!(dwAttrib & FILE_ATTRIBUTE_DIRECTORY));
|
||||||
|
}
|
||||||
|
|
||||||
file_t fileOpen(const char *fname, int mode) {
|
file_t fileOpen(const char *fname, int mode) {
|
||||||
return (file_t) {
|
return (file_t) {
|
||||||
.handle = CreateFile(fname,
|
.handle = CreateFileA(fname,
|
||||||
_toWin32Access(mode),
|
_toWin32Access(mode),
|
||||||
0,
|
0,
|
||||||
NULL,
|
NULL,
|
||||||
|
|
@ -94,6 +101,7 @@ uint64_t fileTell(file_t *ctx) {
|
||||||
#include <stdlib.h>
|
#include <stdlib.h>
|
||||||
#include <errno.h>
|
#include <errno.h>
|
||||||
#include <string.h>
|
#include <string.h>
|
||||||
|
#include <unistd.h>
|
||||||
|
|
||||||
const char *_toStdioMode(int mode) {
|
const char *_toStdioMode(int mode) {
|
||||||
switch(mode) {
|
switch(mode) {
|
||||||
|
|
@ -104,6 +112,10 @@ const char *_toStdioMode(int mode) {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
bool fileExists(const char *fname) {
|
||||||
|
return access(fname, F_OK) == 0;
|
||||||
|
}
|
||||||
|
|
||||||
file_t fileOpen(const char *fname, int mode) {
|
file_t fileOpen(const char *fname, int mode) {
|
||||||
return (file_t) {
|
return (file_t) {
|
||||||
.handle = (void*) fopen(fname, _toStdioMode(mode)),
|
.handle = (void*) fopen(fname, _toStdioMode(mode)),
|
||||||
|
|
@ -118,7 +130,6 @@ void fileClose(file_t *ctx) {
|
||||||
}
|
}
|
||||||
|
|
||||||
bool fileIsValid(file_t *ctx) {
|
bool fileIsValid(file_t *ctx) {
|
||||||
info("handle: %p", ctx->handle);
|
|
||||||
return ctx->handle != NULL;
|
return ctx->handle != NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
2
file.h
2
file.h
|
|
@ -23,6 +23,8 @@ typedef struct {
|
||||||
size_t len;
|
size_t len;
|
||||||
} fread_buf_t;
|
} fread_buf_t;
|
||||||
|
|
||||||
|
bool fileExists(const char *fname);
|
||||||
|
|
||||||
file_t fileOpen(const char *fname, int mode);
|
file_t fileOpen(const char *fname, int mode);
|
||||||
void fileClose(file_t *ctx);
|
void fileClose(file_t *ctx);
|
||||||
|
|
||||||
|
|
|
||||||
2
str.c
2
str.c
|
|
@ -90,6 +90,7 @@ str_t strFromWCHAR(const wchar_t *src, size_t len) {
|
||||||
char *src_temp = (char*)src;
|
char *src_temp = (char*)src;
|
||||||
size_t lost = iconv(cd, &src_temp, &actual_len, &dest_temp, &dest_left);
|
size_t lost = iconv(cd, &src_temp, &actual_len, &dest_temp, &dest_left);
|
||||||
assert(lost != ((size_t)-1));
|
assert(lost != ((size_t)-1));
|
||||||
|
(void)lost;
|
||||||
|
|
||||||
dest_len -= dest_left;
|
dest_len -= dest_left;
|
||||||
dest = realloc(dest, dest_len + 1);
|
dest = realloc(dest, dest_len + 1);
|
||||||
|
|
@ -133,6 +134,7 @@ wchar_t *strToWCHAR(str_t ctx) {
|
||||||
char *src_temp = ctx.buf;
|
char *src_temp = ctx.buf;
|
||||||
size_t lost = iconv(cd, &src_temp, &ctx.len, &dest_temp, &dest_left);
|
size_t lost = iconv(cd, &src_temp, &ctx.len, &dest_temp, &dest_left);
|
||||||
assert(lost != ((size_t)-1));
|
assert(lost != ((size_t)-1));
|
||||||
|
(void)lost;
|
||||||
|
|
||||||
dest_len -= dest_left;
|
dest_len -= dest_left;
|
||||||
dest = realloc(dest, dest_len + 1);
|
dest = realloc(dest, dest_len + 1);
|
||||||
|
|
|
||||||
7
str.h
7
str.h
|
|
@ -2,7 +2,6 @@
|
||||||
|
|
||||||
#ifdef __cplusplus
|
#ifdef __cplusplus
|
||||||
extern "C" {
|
extern "C" {
|
||||||
#include <string>
|
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#include <stdint.h>
|
#include <stdint.h>
|
||||||
|
|
@ -16,11 +15,6 @@ extern "C" {
|
||||||
typedef struct str_t {
|
typedef struct str_t {
|
||||||
char *buf;
|
char *buf;
|
||||||
size_t len;
|
size_t len;
|
||||||
#ifdef __cplusplus
|
|
||||||
inline operator std::string() const {
|
|
||||||
return std::string(buf, len);
|
|
||||||
}
|
|
||||||
#endif
|
|
||||||
} str_t;
|
} str_t;
|
||||||
|
|
||||||
typedef struct {
|
typedef struct {
|
||||||
|
|
@ -129,7 +123,6 @@ size_t strvFindFirstNotOf(strview_t ctx, strview_t view, size_t from);
|
||||||
size_t strvFindLastNot(strview_t ctx, char c, size_t from);
|
size_t strvFindLastNot(strview_t ctx, char c, size_t from);
|
||||||
size_t strvFindLastNotOf(strview_t ctx, strview_t view, size_t from);
|
size_t strvFindLastNotOf(strview_t ctx, strview_t view, size_t from);
|
||||||
|
|
||||||
|
|
||||||
#ifdef __cplusplus
|
#ifdef __cplusplus
|
||||||
} // extern "C"
|
} // extern "C"
|
||||||
#endif
|
#endif
|
||||||
|
|
@ -6,6 +6,7 @@
|
||||||
|
|
||||||
#ifdef _WIN32
|
#ifdef _WIN32
|
||||||
#pragma warning(disable:4996) // _CRT_SECURE_NO_WARNINGS.
|
#pragma warning(disable:4996) // _CRT_SECURE_NO_WARNINGS.
|
||||||
|
#include "win32_slim.h"
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#ifdef TLOG_VS
|
#ifdef TLOG_VS
|
||||||
|
|
@ -75,6 +76,10 @@ void traceLogVaList(int level, const char *fmt, va_list args) {
|
||||||
|
|
||||||
vsnprintf(buffer + offset, sizeof(buffer) - offset, fmt, args);
|
vsnprintf(buffer + offset, sizeof(buffer) - offset, fmt, args);
|
||||||
|
|
||||||
|
#ifdef _WIN32
|
||||||
|
SetConsoleOutputCP(CP_UTF8);
|
||||||
|
#endif
|
||||||
|
|
||||||
#ifdef TLOG_VS
|
#ifdef TLOG_VS
|
||||||
OutputDebugStringA(buffer);
|
OutputDebugStringA(buffer);
|
||||||
if(use_newline) OutputDebugStringA("\n");
|
if(use_newline) OutputDebugStringA("\n");
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue