#include "batchrender.h"
#include "bcsignals.h"
#include "edl.h"
+#include "file.inc"
#include "filexml.h"
-#include "fileserver.h"
#include "filesystem.h"
#include "language.h"
#include "langinfo.h"
};
-void get_exe_path(char *result)
-{
-// Get executable path
- pid_t pid = getpid();
- char proc_path[BCTEXTLEN];
- int len = 0;
- result[0] = 0;
- sprintf(proc_path, "/proc/%d/exe", pid);
- if((len = readlink(proc_path, result, BCTEXTLEN)) >= 0)
- {
- result[len] = 0;
-//printf("Preferences::Preferences %d %s\n", __LINE__, result);
- char *ptr = strrchr(result, '/');
- if(ptr) *ptr = 0;
- }
-
-}
-
-
int main(int argc, char *argv[])
{
// handle command line arguments first
char batch_path[BCTEXTLEN];
char locale_path[BCTEXTLEN];
char exe_path[BCTEXTLEN];
+ char env_path[BCTEXTLEN];
int nice_value = 20;
int start_remote_control = 0;
config_path[0] = 0;
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);
strcpy(BC_Resources::language, locbuf);
}
else
- printf(PROGRAM_NAME ": Could not set locale.\n");
+ printf(_(PROGRAM_NAME ": Could not set locale.\n"));
#else
setlocale(LC_CTYPE, "");
#endif
+ int load_backup = 0;
for(int i = 1; i < argc; i++)
{
}
else
{
- fprintf(stderr, "%s: -c needs a filename.\n", argv[0]);
+ fprintf(stderr, _("%s: -c needs a filename.\n"), argv[0]);
}
}
else
operation = DO_BRENDER;
if(i > argc - 2)
{
- fprintf(stderr, "-b may not be used by the user.\n");
+ fprintf(stderr, _("-b may not be used by the user.\n"));
exit(1);
}
else
}
}
else
+ if(!strcmp(argv[i], "-x"))
+ {
+ load_backup = 1;
+ }
+ else
{
char *new_filename;
new_filename = new char[BCTEXTLEN];
operation == DO_USAGE ||
operation == DO_BATCHRENDER)
fprintf(stderr,
- PROGRAM_NAME " "
- CINELERRA_VERSION " "
- "(C)%d Adam Williams\n\n"
-
-PROGRAM_NAME " 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",
-COPYRIGHT_DATE);
+ _(PROGRAM_NAME " " CINELERRA_VERSION " " "(C)%d Adam Williams\n\n"
+ PROGRAM_NAME " 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"),
+ COPYRIGHT_DATE);
BatchRenderThread *thread = new BatchRenderThread;
thread->start_rendering(config_path,
batch_path);
- delete MWindow::file_server;
break;
}
case DO_GUI:
{
int done = 0;
- int load_backup = 0;
while( !done ) {
BC_WindowBase::get_resources()->vframe_shm = 0;
MWindow mwindow;
// run the program
//PRINT_TRACE
mwindow.start();
+ mwindow.run();
//PRINT_TRACE
if( mwindow.reload() )
start_remote_control =
mwindow.save_defaults();
//PRINT_TRACE
filenames.remove_all_objects();
+#if 1
+ if( !mwindow.reload() ) break;
+// due to leaks and munges in x fonts, this loop has to be
+// executed via a total program restart 2/18/2016
+ char exe_path[BCTEXTLEN];
+ if( readlink("/proc/self/exe", exe_path, sizeof(exe_path)) < 0 ) break;
+ char *const av[3] = { exe_path, (char*)(load_backup? "-x" : 0), 0 };
+ execv(exe_path, av);
+#endif
}
//SET_TRACE
DISABLE_BUFFER