1
0
mirror of https://github.com/arsenetar/dupeguru-cocoa.git synced 2025-07-02 21:43:22 +00:00
Andrew Senetar c2ec4c3fe3
Remove change in main.m and change submodule
- Remove changes in main.m, turns out we cannot actually catch it here.
Tried some other methods, however none worked.
- Change dupeguru submodule to a more "known" commit that did not have
partial work in it.

NOTE: Issue with picture mode appears to be from python 3.8+ changing to use
`spawn` as the method for multiprocessing.  While this is most likely better
we currently have issues when application is run normally (running from
run.py does not have issues). I am manually going to change to `fork`
instead since other methods did not work. This needs to be done on line
20 of matchblock.py.  Either need to
find a workaround or make a way to detect we are running with cocoa vs.
qt to make this switch.  Just on macos
would affect qt build which does not
need this change.
2020-12-30 22:42:22 -06:00

39 lines
1.3 KiB
Objective-C

/*
Copyright 2015 Hardcoded Software (http://www.hardcoded.net)
This software is licensed under the "GPLv3" License as described in the "LICENSE" file,
which should be included with this package. The terms are also available at
http://www.gnu.org/licenses/gpl-3.0.html
*/
#import <Cocoa/Cocoa.h>
#import <Python.h>
#import <wchar.h>
#import <locale.h>
int main(int argc, char *argv[])
{
/* We have to set the locate to UTF8 for mbstowcs() to correctly convert non-ascii chars in paths */
setlocale(LC_ALL, "en_US.UTF-8");
NSString *respath = [[NSBundle mainBundle] resourcePath];
NSString *mainpy = [respath stringByAppendingPathComponent:@"dg_cocoa.py"];
wchar_t wPythonPath[PATH_MAX+1];
NSString *pypath = [respath stringByAppendingPathComponent:@"py"];
mbstowcs(wPythonPath, [pypath fileSystemRepresentation], PATH_MAX+1);
Py_SetPath(wPythonPath);
Py_SetPythonHome(wPythonPath);
Py_Initialize();
PyGILState_STATE gilState = PyGILState_Ensure();
FILE* fp = fopen([mainpy UTF8String], "r");
PyRun_SimpleFile(fp, [mainpy UTF8String]);
fclose(fp);
PyGILState_Release(gilState);
if (gilState == PyGILState_LOCKED) {
PyThreadState_Swap(NULL);
PyEval_ReleaseLock();
}
int result = NSApplicationMain(argc, (const char **) argv);
Py_Finalize();
return result;
}