refactor: rename montauk::StatusCodes type to montauk::StatusCode
This commit is contained in:
1 parent
41de95b277
commit
c91de69189
11 files changed
+34
-34
No files matched your search
@@ -12,4 +12,4 @@
|
|||||||
|
|
||||||
#pragma once
|
#pragma once
|
||||||
|
|
||||||
#define MONTAUK_BUILD_NUMBER 278
|
#define MONTAUK_BUILD_NUMBER 279
|
||||||
@@ -28,9 +28,9 @@ typedef enum {
|
|||||||
Busy = 12,
|
Busy = 12,
|
||||||
BufferTooSmall = 13,
|
BufferTooSmall = 13,
|
||||||
OutOfMemory = 14
|
OutOfMemory = 14
|
||||||
} StatusCodes;
|
} StatusCode;
|
||||||
|
|
||||||
inline const char* GetStatusText(StatusCodes statusCode) {
|
inline const char* GetStatusText(StatusCode statusCode) {
|
||||||
const char* statusText[] = {
|
const char* statusText[] = {
|
||||||
"Success", // 0
|
"Success", // 0
|
||||||
"Generic failure", // 1
|
"Generic failure", // 1
|
||||||
@@ -56,7 +56,7 @@ inline const char* GetStatusText(StatusCodes statusCode) {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
inline const char* GetStatusExplanationText(StatusCodes statusCode) {
|
inline const char* GetStatusExplanationText(StatusCode statusCode) {
|
||||||
const char* explanationText[] = {
|
const char* explanationText[] = {
|
||||||
nullptr, // 0
|
nullptr, // 0
|
||||||
nullptr, // 1
|
nullptr, // 1
|
||||||
|
|||||||
@@ -73,7 +73,7 @@ void filemanager_finish_rename(FileManagerState* fm) {
|
|||||||
filemanager_build_fullpath(new_path, 512,
|
filemanager_build_fullpath(new_path, 512,
|
||||||
fm->current_path, fm->rename_buf);
|
fm->current_path, fm->rename_buf);
|
||||||
|
|
||||||
montauk::StatusCodes status =
|
montauk::StatusCode status =
|
||||||
filemanager_status_from_result(montauk::frename(old_path, new_path));
|
filemanager_status_from_result(montauk::frename(old_path, new_path));
|
||||||
if (status != montauk::Success && !filemanager_status_is_access_denied(status)) {
|
if (status != montauk::Success && !filemanager_status_is_access_denied(status)) {
|
||||||
// Fall back to copy + delete for drivers that don't support rename
|
// Fall back to copy + delete for drivers that don't support rename
|
||||||
@@ -110,7 +110,7 @@ void filemanager_new_folder(FileManagerState* fm) {
|
|||||||
filemanager_build_fullpath(path, 512, fm->current_path, name);
|
filemanager_build_fullpath(path, 512, fm->current_path, name);
|
||||||
// Try creating; if it fails (most likely the name is taken), append a
|
// Try creating; if it fails (most likely the name is taken), append a
|
||||||
// number. An access error fails the same way for every name, so stop.
|
// number. An access error fails the same way for every name, so stop.
|
||||||
montauk::StatusCodes status = filemanager_status_from_result(montauk::fmkdir(path));
|
montauk::StatusCode status = filemanager_status_from_result(montauk::fmkdir(path));
|
||||||
for (int attempt = 2; status != montauk::Success &&
|
for (int attempt = 2; status != montauk::Success &&
|
||||||
!filemanager_status_is_access_denied(status) &&
|
!filemanager_status_is_access_denied(status) &&
|
||||||
attempt <= 99; attempt++) {
|
attempt <= 99; attempt++) {
|
||||||
@@ -199,7 +199,7 @@ void filemanager_delete_selected(FileManagerState* fm) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
montauk::mfree(filtered);
|
montauk::mfree(filtered);
|
||||||
montauk::StatusCodes status = filemanager_status_from_result(montauk::fdelete(fullpath));
|
montauk::StatusCode status = filemanager_status_from_result(montauk::fdelete(fullpath));
|
||||||
filemanager_clear_multi_selection(fm);
|
filemanager_clear_multi_selection(fm);
|
||||||
filemanager_read_dir(fm);
|
filemanager_read_dir(fm);
|
||||||
|
|
||||||
|
|||||||
@@ -233,25 +233,25 @@ void filemanager_read_system_configuration(FileManagerState* fm);
|
|||||||
|
|
||||||
// Map a raw syscall result (kernel StatusCodes are negative) to a userspace
|
// Map a raw syscall result (kernel StatusCodes are negative) to a userspace
|
||||||
// montauk::StatusCodes. Non-negative results (handles, counts) are Success.
|
// montauk::StatusCodes. Non-negative results (handles, counts) are Success.
|
||||||
inline montauk::StatusCodes filemanager_status_from_result(int rc) {
|
inline montauk::StatusCode filemanager_status_from_result(int rc) {
|
||||||
if (rc >= 0) return montauk::Success;
|
if (rc >= 0) return montauk::Success;
|
||||||
int code = -rc;
|
int code = -rc;
|
||||||
if (code > montauk::OutOfMemory) return montauk::GenericFailure;
|
if (code > montauk::OutOfMemory) return montauk::GenericFailure;
|
||||||
return (montauk::StatusCodes)code;
|
return (montauk::StatusCode)code;
|
||||||
}
|
}
|
||||||
|
|
||||||
// The path itself may not be modified. Falling back to copy + delete after a
|
// The path itself may not be modified. Falling back to copy + delete after a
|
||||||
// failed rename cannot help here and would leave a duplicate behind.
|
// failed rename cannot help here and would leave a duplicate behind.
|
||||||
inline bool filemanager_status_is_access_denied(montauk::StatusCodes status) {
|
inline bool filemanager_status_is_access_denied(montauk::StatusCode status) {
|
||||||
return status == montauk::SystemIntegrityError ||
|
return status == montauk::SystemIntegrityError ||
|
||||||
status == montauk::PermissionDenied ||
|
status == montauk::PermissionDenied ||
|
||||||
status == montauk::CapabilityDenied;
|
status == montauk::CapabilityDenied;
|
||||||
}
|
}
|
||||||
|
|
||||||
// These return the first failure encountered (Success when everything worked).
|
// These return the first failure encountered (Success when everything worked).
|
||||||
montauk::StatusCodes filemanager_delete_recursive(const char* path);
|
montauk::StatusCode filemanager_delete_recursive(const char* path);
|
||||||
montauk::StatusCodes filemanager_copy_file(const char* src, const char* dst);
|
montauk::StatusCode filemanager_copy_file(const char* src, const char* dst);
|
||||||
montauk::StatusCodes filemanager_copy_dir_recursive(const char* src, const char* dst);
|
montauk::StatusCode filemanager_copy_dir_recursive(const char* src, const char* dst);
|
||||||
|
|
||||||
void filemanager_do_copy(FileManagerState* fm);
|
void filemanager_do_copy(FileManagerState* fm);
|
||||||
void filemanager_do_cut(FileManagerState* fm);
|
void filemanager_do_cut(FileManagerState* fm);
|
||||||
@@ -279,7 +279,7 @@ void filemanager_show_bulk_delete_confirmation(FileManagerState* fm,
|
|||||||
// used to center the popup and may be null or stale.
|
// used to center the popup and may be null or stale.
|
||||||
void filemanager_show_error(DesktopState* ds, const void* owner_app_data,
|
void filemanager_show_error(DesktopState* ds, const void* owner_app_data,
|
||||||
const char* heading, const char* path,
|
const char* heading, const char* path,
|
||||||
montauk::StatusCodes status);
|
montauk::StatusCode status);
|
||||||
|
|
||||||
void filemanager_push_history(FileManagerState* fm);
|
void filemanager_push_history(FileManagerState* fm);
|
||||||
void filemanager_navigate(FileManagerState* fm, const char* name);
|
void filemanager_navigate(FileManagerState* fm, const char* name);
|
||||||
|
|||||||
@@ -36,7 +36,7 @@ struct FileOpJob {
|
|||||||
// Failures, written by the worker and read on the UI thread only after
|
// Failures, written by the worker and read on the UI thread only after
|
||||||
// the worker has finished (joined), so they need no synchronization.
|
// the worker has finished (joined), so they need no synchronization.
|
||||||
int failed_count;
|
int failed_count;
|
||||||
montauk::StatusCodes first_error;
|
montauk::StatusCode first_error;
|
||||||
char first_error_path[256];
|
char first_error_path[256];
|
||||||
|
|
||||||
int tid;
|
int tid;
|
||||||
@@ -81,7 +81,7 @@ static const char* fileop_error_verb(int kind) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
static void fileop_record_status(FileOpJob* job, const char* path,
|
static void fileop_record_status(FileOpJob* job, const char* path,
|
||||||
montauk::StatusCodes status) {
|
montauk::StatusCode status) {
|
||||||
if (status == montauk::Success) return;
|
if (status == montauk::Success) return;
|
||||||
if (job->failed_count++ == 0) {
|
if (job->failed_count++ == 0) {
|
||||||
job->first_error = status;
|
job->first_error = status;
|
||||||
@@ -138,7 +138,7 @@ static int fileop_worker(void* arg) {
|
|||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
|
||||||
montauk::StatusCodes status;
|
montauk::StatusCode status;
|
||||||
if (job->kind == FILE_OP_MOVE) {
|
if (job->kind == FILE_OP_MOVE) {
|
||||||
// Try a rename first: an instant same-volume move with no copying.
|
// Try a rename first: an instant same-volume move with no copying.
|
||||||
status = filemanager_status_from_result(montauk::frename(src, dst));
|
status = filemanager_status_from_result(montauk::frename(src, dst));
|
||||||
@@ -444,7 +444,7 @@ bool filemanager_start_paste_job(FileManagerState* fm) {
|
|||||||
if (sz <= FILEOP_INLINE_MAX_BYTES) {
|
if (sz <= FILEOP_INLINE_MAX_BYTES) {
|
||||||
char dst[512];
|
char dst[512];
|
||||||
filemanager_build_fullpath(dst, 512, fm->current_path, path_basename(src));
|
filemanager_build_fullpath(dst, 512, fm->current_path, path_basename(src));
|
||||||
montauk::StatusCodes status = montauk::Success;
|
montauk::StatusCode status = montauk::Success;
|
||||||
if (!montauk::streq(dst, src)) {
|
if (!montauk::streq(dst, src)) {
|
||||||
if (is_cut) {
|
if (is_cut) {
|
||||||
status = filemanager_status_from_result(montauk::frename(src, dst));
|
status = filemanager_status_from_result(montauk::frename(src, dst));
|
||||||
|
|||||||
@@ -495,9 +495,9 @@ static int filemanager_read_all_children(const char* dir, char (**out)[256]) {
|
|||||||
return count;
|
return count;
|
||||||
}
|
}
|
||||||
|
|
||||||
montauk::StatusCodes filemanager_delete_recursive(const char* path) {
|
montauk::StatusCode filemanager_delete_recursive(const char* path) {
|
||||||
// Try deleting as a file (or empty directory) first
|
// Try deleting as a file (or empty directory) first
|
||||||
montauk::StatusCodes status = filemanager_status_from_result(montauk::fdelete(path));
|
montauk::StatusCode status = filemanager_status_from_result(montauk::fdelete(path));
|
||||||
if (status == montauk::Success) return status;
|
if (status == montauk::Success) return status;
|
||||||
|
|
||||||
// If that failed, it may be a non-empty directory -- snapshot all children
|
// If that failed, it may be a non-empty directory -- snapshot all children
|
||||||
@@ -507,7 +507,7 @@ montauk::StatusCodes filemanager_delete_recursive(const char* path) {
|
|||||||
int count = filemanager_read_all_children(path, &children);
|
int count = filemanager_read_all_children(path, &children);
|
||||||
if (count < 0) return status;
|
if (count < 0) return status;
|
||||||
|
|
||||||
montauk::StatusCodes child_status = montauk::Success;
|
montauk::StatusCode child_status = montauk::Success;
|
||||||
for (int i = 0; i < count; i++) {
|
for (int i = 0; i < count; i++) {
|
||||||
char child[512];
|
char child[512];
|
||||||
montauk::strcpy(child, path);
|
montauk::strcpy(child, path);
|
||||||
@@ -520,7 +520,7 @@ montauk::StatusCodes filemanager_delete_recursive(const char* path) {
|
|||||||
int clen = montauk::slen(child);
|
int clen = montauk::slen(child);
|
||||||
if (clen > 0 && child[clen - 1] == '/') child[clen - 1] = '\0';
|
if (clen > 0 && child[clen - 1] == '/') child[clen - 1] = '\0';
|
||||||
|
|
||||||
montauk::StatusCodes s = filemanager_delete_recursive(child);
|
montauk::StatusCode s = filemanager_delete_recursive(child);
|
||||||
if (s != montauk::Success && child_status == montauk::Success) child_status = s;
|
if (s != montauk::Success && child_status == montauk::Success) child_status = s;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -534,7 +534,7 @@ montauk::StatusCodes filemanager_delete_recursive(const char* path) {
|
|||||||
return status;
|
return status;
|
||||||
}
|
}
|
||||||
|
|
||||||
montauk::StatusCodes filemanager_copy_file(const char* src, const char* dst) {
|
montauk::StatusCode filemanager_copy_file(const char* src, const char* dst) {
|
||||||
if (!src || !dst || montauk::streq(src, dst)) return montauk::InvalidArgument;
|
if (!src || !dst || montauk::streq(src, dst)) return montauk::InvalidArgument;
|
||||||
|
|
||||||
int sfd = montauk::open(src);
|
int sfd = montauk::open(src);
|
||||||
@@ -548,7 +548,7 @@ montauk::StatusCodes filemanager_copy_file(const char* src, const char* dst) {
|
|||||||
return filemanager_status_from_result(dfd);
|
return filemanager_status_from_result(dfd);
|
||||||
}
|
}
|
||||||
|
|
||||||
montauk::StatusCodes status = montauk::Success;
|
montauk::StatusCode status = montauk::Success;
|
||||||
if (size > 0) {
|
if (size > 0) {
|
||||||
static constexpr uint64_t COPY_CHUNK = 64 * 1024;
|
static constexpr uint64_t COPY_CHUNK = 64 * 1024;
|
||||||
uint64_t buf_size = size < COPY_CHUNK ? size : COPY_CHUNK;
|
uint64_t buf_size = size < COPY_CHUNK ? size : COPY_CHUNK;
|
||||||
@@ -588,7 +588,7 @@ montauk::StatusCodes filemanager_copy_file(const char* src, const char* dst) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// Recursive directory copy
|
// Recursive directory copy
|
||||||
montauk::StatusCodes filemanager_copy_dir_recursive(const char* src, const char* dst) {
|
montauk::StatusCode filemanager_copy_dir_recursive(const char* src, const char* dst) {
|
||||||
if (!src || !dst || montauk::streq(src, dst)) return montauk::InvalidArgument;
|
if (!src || !dst || montauk::streq(src, dst)) return montauk::InvalidArgument;
|
||||||
|
|
||||||
// Ignore the result: the destination may already exist (merge). If it
|
// Ignore the result: the destination may already exist (merge). If it
|
||||||
@@ -599,7 +599,7 @@ montauk::StatusCodes filemanager_copy_dir_recursive(const char* src, const char*
|
|||||||
int count = filemanager_read_all_children(src, &children);
|
int count = filemanager_read_all_children(src, &children);
|
||||||
if (count < 0) return filemanager_status_from_result(count);
|
if (count < 0) return filemanager_status_from_result(count);
|
||||||
|
|
||||||
montauk::StatusCodes status = montauk::Success;
|
montauk::StatusCode status = montauk::Success;
|
||||||
for (int i = 0; i < count; i++) {
|
for (int i = 0; i < count; i++) {
|
||||||
bool child_is_dir = false;
|
bool child_is_dir = false;
|
||||||
char basename[256];
|
char basename[256];
|
||||||
@@ -615,7 +615,7 @@ montauk::StatusCodes filemanager_copy_dir_recursive(const char* src, const char*
|
|||||||
filemanager_build_fullpath(src_child, 512, src, basename);
|
filemanager_build_fullpath(src_child, 512, src, basename);
|
||||||
filemanager_build_fullpath(dst_child, 512, dst, basename);
|
filemanager_build_fullpath(dst_child, 512, dst, basename);
|
||||||
|
|
||||||
montauk::StatusCodes s = child_is_dir
|
montauk::StatusCode s = child_is_dir
|
||||||
? filemanager_copy_dir_recursive(src_child, dst_child)
|
? filemanager_copy_dir_recursive(src_child, dst_child)
|
||||||
: filemanager_copy_file(src_child, dst_child);
|
: filemanager_copy_file(src_child, dst_child);
|
||||||
if (s != montauk::Success && status == montauk::Success) status = s;
|
if (s != montauk::Success && status == montauk::Success) status = s;
|
||||||
|
|||||||
@@ -492,11 +492,11 @@ static void delete_confirm_apply(FileDeleteConfirmDialogState* st) {
|
|||||||
bool any = false;
|
bool any = false;
|
||||||
int failed = 0;
|
int failed = 0;
|
||||||
const char* first_failed_path = nullptr;
|
const char* first_failed_path = nullptr;
|
||||||
montauk::StatusCodes first_error = montauk::Success;
|
montauk::StatusCode first_error = montauk::Success;
|
||||||
for (int i = 0; i < n; i++) {
|
for (int i = 0; i < n; i++) {
|
||||||
const char* p = (st->count > 0) ? st->paths[i] : st->path;
|
const char* p = (st->count > 0) ? st->paths[i] : st->path;
|
||||||
if (!p || !p[0]) continue;
|
if (!p || !p[0]) continue;
|
||||||
montauk::StatusCodes status = filemanager_delete_recursive(p);
|
montauk::StatusCode status = filemanager_delete_recursive(p);
|
||||||
if (status == montauk::Success) {
|
if (status == montauk::Success) {
|
||||||
any = true;
|
any = true;
|
||||||
} else if (failed++ == 0) {
|
} else if (failed++ == 0) {
|
||||||
@@ -934,7 +934,7 @@ static void error_on_close(Window* win) {
|
|||||||
|
|
||||||
void filemanager_show_error(DesktopState* ds, const void* owner_app_data,
|
void filemanager_show_error(DesktopState* ds, const void* owner_app_data,
|
||||||
const char* heading, const char* path,
|
const char* heading, const char* path,
|
||||||
montauk::StatusCodes status) {
|
montauk::StatusCode status) {
|
||||||
if (!ds) return;
|
if (!ds) return;
|
||||||
|
|
||||||
FileErrorDialogState* st =
|
FileErrorDialogState* st =
|
||||||
|
|||||||
@@ -264,7 +264,7 @@ extern "C" void _start() {
|
|||||||
|
|
||||||
if (link == false) {
|
if (link == false) {
|
||||||
montauk::service_log("Unable to locate a network device with an active link.\n");
|
montauk::service_log("Unable to locate a network device with an active link.\n");
|
||||||
montauk::exit(montauk::StatusCodes::NoDevice);
|
montauk::exit(montauk::StatusCode::NoDevice);
|
||||||
}
|
}
|
||||||
|
|
||||||
// 1. Get MAC address
|
// 1. Get MAC address
|
||||||
|
|||||||
@@ -205,7 +205,7 @@ const char* getReleaseString(char* buffer, int n) {
|
|||||||
|
|
||||||
extern "C" void _start() {
|
extern "C" void _start() {
|
||||||
if (system_already_initialized()) {
|
if (system_already_initialized()) {
|
||||||
montauk::exit(montauk::StatusCodes::BadInvocation);
|
montauk::exit(montauk::StatusCode::BadInvocation);
|
||||||
}
|
}
|
||||||
|
|
||||||
char releaseString[128] = "";
|
char releaseString[128] = "";
|
||||||
|
|||||||
@@ -40,7 +40,7 @@ static void print_exit_code(const int exitCode) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
if (exitCode > 0 && exitCode <= 14) { // 0-14 - current range of status codes within StatusCodes enum
|
if (exitCode > 0 && exitCode <= 14) { // 0-14 - current range of status codes within StatusCodes enum
|
||||||
const char* statusText = montauk::GetStatusText((montauk::StatusCodes)exitCode);
|
const char* statusText = montauk::GetStatusText((montauk::StatusCode)exitCode);
|
||||||
|
|
||||||
if (statusText != nullptr) {
|
if (statusText != nullptr) {
|
||||||
montauk::print(" - ");
|
montauk::print(" - ");
|
||||||
|
|||||||
@@ -12,7 +12,7 @@
|
|||||||
namespace montauk {
|
namespace montauk {
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
enum StatusCodes {
|
enum StatusCode {
|
||||||
Success = 0,
|
Success = 0,
|
||||||
GenericFailure = -1,
|
GenericFailure = -1,
|
||||||
PermissionDenied = -2,
|
PermissionDenied = -2,
|
||||||
|
|||||||
Reference in new issue
Block a user