X-Git-Url: http://git.cinelerra-gg.org/git/?a=blobdiff_plain;f=cinelerra-5.1%2Fcinelerra%2Fmain.C;h=e7fe8f676fffbcca353d9e5b3bb771cdfd7d2430;hb=af9d4868955bf1c521383795e55d29a2d4d05db2;hp=84a3cad3422b807b4f4246d0fe3c702caa438d1e;hpb=30bdb85eb33a8ee7ba675038a86c6be59c43d7bd;p=goodguy%2Fhistory.git diff --git a/cinelerra-5.1/cinelerra/main.C b/cinelerra-5.1/cinelerra/main.C index 84a3cad3..e7fe8f67 100644 --- a/cinelerra-5.1/cinelerra/main.C +++ b/cinelerra-5.1/cinelerra/main.C @@ -18,11 +18,12 @@ * */ +#include "aboutprefs.h" #include "arraylist.h" #include "batchrender.h" #include "bcsignals.h" #include "edl.h" -#include "file.inc" +#include "file.h" #include "filexml.h" #include "filesystem.h" #include "language.h" @@ -35,15 +36,23 @@ #include "pluginserver.h" #include "preferences.h" #include "renderfarmclient.h" +#include "units.h" #include "versioninfo.h" #include #include #include -#define PACKAGE "cinelerra" -#define LOCALEDIR "/locale/" - +#ifdef LEAKER +#define STRC(v) printf("==new %p from %p sz %jd\n", v, __builtin_return_address(0), n) +#define STRD(v) printf("==del %p from %p\n", v, __builtin_return_address(0)) +void *operator new(size_t n) { void *vp = malloc(n); STRC(vp); bzero(vp,n); return vp; } +void operator delete(void *t) { STRD(t); free(t); } +void operator delete(void *t,size_t n) { STRD(t); free(t); } +void *operator new[](size_t n) { void *vp = malloc(n); STRC(vp); bzero(vp,n); return vp; } +void operator delete[](void *t) { STRD(t); free(t); } +void operator delete[](void *t,size_t n) { STRD(t); free(t); } +#endif enum { @@ -105,45 +114,21 @@ int main(int argc, char *argv[]) char deamon_path[BCTEXTLEN]; char config_path[BCTEXTLEN]; char batch_path[BCTEXTLEN]; - char locale_path[BCTEXTLEN]; - char exe_path[BCTEXTLEN]; - char env_path[BCTEXTLEN]; int nice_value = 20; config_path[0] = 0; batch_path[0] = 0; deamon_path[0] = 0; EDL::id_lock = new Mutex("EDL::id_lock"); + Units::init(); + + File::init_cin_path(); + const char *locale_path = File::get_locale_path(); + const char *cin = File::get_cin(); + + bindtextdomain(cin, locale_path); + textdomain(cin); + setlocale(LC_MESSAGES, ""); - get_exe_path(exe_path); - snprintf(env_path, sizeof(env_path), "CINELERRA_PATH=%s", exe_path); - putenv(env_path); - sprintf(locale_path, "%s%s", exe_path, LOCALEDIR); - -// detect an UTF-8 locale and try to use a non-Unicode locale instead -// <---Beginning of dirty hack -// This hack will be removed as soon as Cinelerra is UTF-8 compliant -// char *s, *language; - -// Query user locale -// if ((s = getenv("LC_ALL")) || -// (s = getenv("LC_MESSAGES")) || -// (s = getenv("LC_CTYPE")) || -// (s = getenv ("LANG"))) -// { -// Test if user locale is set to Unicode -// if (strstr(s, ".UTF-8")) -// { -// extract language from language-charset@variant -// language = strtok (s, ".@"); -// set language as the default locale -// setenv("LANG", language, 1); -// } -// } -// End of dirty hack ---> - - bindtextdomain (PACKAGE, locale_path); - textdomain (PACKAGE); - setlocale (LC_MESSAGES, ""); #ifdef X_HAVE_UTF8_STRING char *loc = setlocale(LC_CTYPE, ""); if( loc ) { @@ -281,7 +266,6 @@ int main(int argc, char *argv[]) operation == DO_USAGE || operation == DO_BATCHRENDER) { - fprintf(stderr, PROGRAM_NAME " " CINELERRA_VERSION); #ifndef REPOMAINTXT #define REPOMAINTXT "" #endif @@ -291,13 +275,13 @@ int main(int argc, char *argv[]) #ifndef COPYRIGHTTEXT2 #define COPYRIGHTTEXT2 "" #endif -#ifndef COMPILEDATE -#define COMPILEDATE "" -#endif - fprintf(stderr, REPOMAINTXT COPYRIGHTTEXT1 COPYRIGHTTEXT2 COMPILEDATE - PROGRAM_NAME " is free software, covered by the GNU General Public License,\n" + fprintf(stderr, "%s %s - %s\n%s", + PROGRAM_NAME,CINELERRA_VERSION, AboutPrefs::build_timestamp, + REPOMAINTXT COPYRIGHTTEXT1 COPYRIGHTTEXT2); + fprintf(stderr, "%s is free software, covered by the GNU General Public License,\n" "and you are welcome to change it and/or distribute copies of it under\n" - "certain conditions. There is absolutely no warranty for " PROGRAM_NAME ".\n\n"); + "certain conditions. There is absolutely no warranty for %s.\n\n", + PROGRAM_NAME, PROGRAM_NAME); } switch(operation) @@ -308,12 +292,10 @@ int main(int argc, char *argv[]) printf(_("-d = Run in the background as renderfarm client. The port (400) is optional.\n")); printf(_("-f = Run in the foreground as renderfarm client. Substitute for -d.\n")); printf(_("-n = Nice value if running as renderfarm client. (20)\n")); - printf(_("-c = Configuration file to use instead of %s%s.\n"), - BCASTDIR, - CONFIG_FILE); - printf(_("-r = batch render the contents of the batch file (%s%s) with no GUI. batch file is optional.\n"), - BCASTDIR, - BATCH_PATH); + printf(_("-c = Configuration file to use instead of %s/%s.\n"), + File::get_config_path(), CONFIG_FILE); + printf(_("-r = batch render the contents of the batch file (%s/%s) with no GUI. batch file is optional.\n"), + File::get_config_path(), BATCH_PATH); printf(_("filenames = files to load\n\n\n")); exit(0); break; @@ -426,6 +408,7 @@ DISABLE_BUFFER filenames.remove_all_objects(); delete EDL::id_lock; EDL::id_lock = 0; + Units::finit(); return 0; }