#include "batchrender.h"
#include "bcsignals.h"
#include "edl.h"
-#include "file.inc"
+#include "file.h"
#include "filexml.h"
#include "filesystem.h"
#include "language.h"
#include "pluginserver.h"
#include "preferences.h"
#include "renderfarmclient.h"
+#include "units.h"
#include "versioninfo.h"
#include <locale.h>
#include <stdlib.h>
#include <string.h>
-#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
{
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 ) {
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;
filenames.remove_all_objects();
delete EDL::id_lock; EDL::id_lock = 0;
+ Units::finit();
return 0;
}