mirror of
https://github.com/ClassiCube/ClassiCube.git
synced 2025-09-16 02:56:09 -04:00
Revert "Add POSIX only changes in the platform and program"
This reverts commit dd4319088d2408dc69fd408c7676f60fc6da0bbd. Revert this commit as Unk wants to do things differently.
This commit is contained in:
parent
7b0924d9c7
commit
50b09d11d2
@ -1772,40 +1772,29 @@ int Platform_GetCommandLineArgs(int argc, STRING_REF char** argv, String* args)
|
|||||||
return count;
|
return count;
|
||||||
}
|
}
|
||||||
|
|
||||||
cc_result Platform_SetDefaultCurrentDirectory(const String *requestedDirectory) {
|
cc_result Platform_SetDefaultCurrentDirectory(void) {
|
||||||
char path[NATIVE_STR_LEN];
|
char path[NATIVE_STR_LEN];
|
||||||
int i, len = 0;
|
int i, len = 0;
|
||||||
cc_result res;
|
cc_result res = Process_RawGetExePath(path, &len);
|
||||||
|
if (res) return res;
|
||||||
|
|
||||||
if (requestedDirectory != NULL) {
|
/* get rid of filename at end of directory */
|
||||||
String_CopyToRaw(path, NATIVE_STR_LEN, requestedDirectory);
|
for (i = len - 1; i >= 0; i--, len--) {
|
||||||
len = requestedDirectory->length;
|
if (path[i] == '/') break;
|
||||||
} else {
|
}
|
||||||
res = Process_RawGetExePath(path, &len);
|
|
||||||
if (res) return res;
|
#ifdef CC_BUILD_OSX
|
||||||
|
static const String bundle = String_FromConst(".app/Contents/MacOS/");
|
||||||
|
String raw = String_Init(path, len, 0);
|
||||||
|
|
||||||
|
if (String_CaselessEnds(&raw, &bundle)) {
|
||||||
|
len -= bundle.length;
|
||||||
|
|
||||||
/* get rid of filename at end of directory */
|
|
||||||
for (i = len - 1; i >= 0; i--, len--) {
|
for (i = len - 1; i >= 0; i--, len--) {
|
||||||
if (path[i] == '/') break;
|
if (path[i] == '/') break;
|
||||||
}
|
}
|
||||||
|
}
|
||||||
#ifdef CC_BUILD_OSX
|
|
||||||
static const String bundle = String_FromConst(".app/Contents/MacOS/");
|
|
||||||
String raw = String_Init(path, len, 0);
|
|
||||||
|
|
||||||
if (String_CaselessEnds(&raw, &bundle)) {
|
|
||||||
len -= bundle.length;
|
|
||||||
|
|
||||||
for (i = len - 1; i >= 0; i--, len--) {
|
|
||||||
if (path[i] == '/') break;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
#endif
|
#endif
|
||||||
}
|
|
||||||
|
|
||||||
if (len >= NATIVE_STR_LEN) {
|
|
||||||
len = NATIVE_STR_LEN - 1;
|
|
||||||
}
|
|
||||||
|
|
||||||
path[len] = '\0';
|
path[len] = '\0';
|
||||||
return chdir(path) == -1 ? errno : 0;
|
return chdir(path) == -1 ? errno : 0;
|
||||||
|
@ -41,11 +41,7 @@ void Platform_Init(void);
|
|||||||
/* Frees the platform specific state. */
|
/* Frees the platform specific state. */
|
||||||
void Platform_Free(void);
|
void Platform_Free(void);
|
||||||
/* Sets the appropriate default current/working directory. */
|
/* Sets the appropriate default current/working directory. */
|
||||||
#if defined CC_BUILD_POSIX
|
|
||||||
cc_result Platform_SetDefaultCurrentDirectory(const String *requestedDirectory);
|
|
||||||
#else
|
|
||||||
cc_result Platform_SetDefaultCurrentDirectory(void);
|
cc_result Platform_SetDefaultCurrentDirectory(void);
|
||||||
#endif
|
|
||||||
/* Gets the command line arguments passed to the program. */
|
/* Gets the command line arguments passed to the program. */
|
||||||
int Platform_GetCommandLineArgs(int argc, STRING_REF char** argv, String* args);
|
int Platform_GetCommandLineArgs(int argc, STRING_REF char** argv, String* args);
|
||||||
|
|
||||||
|
@ -97,12 +97,13 @@ CC_NOINLINE static void ExitMissingArgs(int argsCount, const String* args) {
|
|||||||
#ifdef CC_BUILD_ANDROID
|
#ifdef CC_BUILD_ANDROID
|
||||||
int Program_Run(int argc, char** argv) {
|
int Program_Run(int argc, char** argv) {
|
||||||
#else
|
#else
|
||||||
static int Program_Run(int argsCount, String args[GAME_MAX_CMDARGS]) {
|
static int Program_Run(int argc, char** argv) {
|
||||||
#endif
|
#endif
|
||||||
|
String args[GAME_MAX_CMDARGS];
|
||||||
cc_uint8 ip[4];
|
cc_uint8 ip[4];
|
||||||
cc_uint16 port;
|
cc_uint16 port;
|
||||||
|
|
||||||
|
int argsCount = Platform_GetCommandLineArgs(argc, argv, args);
|
||||||
#ifdef _MSC_VER
|
#ifdef _MSC_VER
|
||||||
/* NOTE: Make sure to comment this out before pushing a commit */
|
/* NOTE: Make sure to comment this out before pushing a commit */
|
||||||
//String rawArgs = String_FromConst("UnknownShadow200 fffff 127.0.0.1 25565");
|
//String rawArgs = String_FromConst("UnknownShadow200 fffff 127.0.0.1 25565");
|
||||||
@ -163,26 +164,12 @@ int main_real(int argc, char** argv) {
|
|||||||
int main(int argc, char** argv) {
|
int main(int argc, char** argv) {
|
||||||
#endif
|
#endif
|
||||||
static char ipBuffer[STRING_SIZE];
|
static char ipBuffer[STRING_SIZE];
|
||||||
String args[GAME_MAX_CMDARGS];
|
|
||||||
int argsCount;
|
|
||||||
cc_result res;
|
cc_result res;
|
||||||
Logger_Hook();
|
Logger_Hook();
|
||||||
Platform_Init();
|
Platform_Init();
|
||||||
Window_Init();
|
Window_Init();
|
||||||
|
|
||||||
argsCount = Platform_GetCommandLineArgs(argc, argv, args);
|
|
||||||
|
|
||||||
#if defined CC_BUILD_POSIX
|
|
||||||
if (argsCount > 0 && args[argsCount - 1].length > 2 && args[argsCount - 1].buffer[0] == '-' && args[argsCount - 1].buffer[1] == 'd') {
|
|
||||||
res = Platform_SetDefaultCurrentDirectory(&args[--argsCount]);
|
|
||||||
} else {
|
|
||||||
res = Platform_SetDefaultCurrentDirectory(NULL);
|
|
||||||
}
|
|
||||||
#else
|
|
||||||
res = Platform_SetDefaultCurrentDirectory();
|
res = Platform_SetDefaultCurrentDirectory();
|
||||||
#endif
|
|
||||||
|
|
||||||
|
|
||||||
if (res) Logger_Warn(res, "setting current directory");
|
if (res) Logger_Warn(res, "setting current directory");
|
||||||
#ifdef CC_TEST_VORBIS
|
#ifdef CC_TEST_VORBIS
|
||||||
main_imdct();
|
main_imdct();
|
||||||
@ -196,7 +183,7 @@ int main(int argc, char** argv) {
|
|||||||
Utils_EnsureDirectory("plugins");
|
Utils_EnsureDirectory("plugins");
|
||||||
Options_Load();
|
Options_Load();
|
||||||
|
|
||||||
return Program_Run(argsCount, args);
|
return Program_Run(argc, argv);
|
||||||
}
|
}
|
||||||
|
|
||||||
/* ClassiCube is just a native library on android, */
|
/* ClassiCube is just a native library on android, */
|
||||||
|
Loading…
x
Reference in New Issue
Block a user