Hi,
this is a patch to fix this issue. No logfile will be created by default
anymore. If you use the new option "-logfile" a file called log.txt will
be created. If you use the new option like "-logfile name-of-file.log" a
file called name-of-file.log will be created.
Thorsten
diff -ur openuniverse-1.0beta3.1+dfsg/src/cmdline.cpp openuniverse-1.0beta3.1+dfsg.work/src/cmdline.cpp
--- openuniverse-1.0beta3.1+dfsg/src/cmdline.cpp 2009-01-08 13:13:27.000000000 +0100
+++ openuniverse-1.0beta3.1+dfsg.work/src/cmdline.cpp 2009-01-10 18:44:15.000000000 +0100
@@ -26,7 +26,6 @@
void ParseCmdLine(int n, char **s)
{
int i = 1, err = 0;
-
while ((i < n) && (!err)) {
err = 0;
if (!strcmp(s[i], "-bench")) {
@@ -39,18 +38,48 @@
#ifdef HAVE_GLUI
fullscreeninGUI = 1;
#endif
- if (s[i + 1][0] != '-') {
- strcpy(game_string, s[i + 1]);
- i++;
+ if (i+1==n) {
+ /* no parameter left */
+ }
+ else {
+ /* optional parameter available */
+ if (s[i + 1][0] != '-') {
+ strcpy(game_string, s[i + 1]);
+ i++;
+ }
}
i++;
continue;
}
+ #define DEF_LOGFILE_NAME "log.txt"
+ if (!strcmp(s[i], "-logfile")) {
+ if (i+1==n) {
+ /* no parameter for logfile, use default */
+ logfileName=(char*)malloc(strlen(DEF_LOGFILE_NAME));
+ strcpy(logfileName, DEF_LOGFILE_NAME);
+ }
+ else {
+ /* still a parameter left */
+ if (s[i + 1][0] != '-') {
+ logfileName=(char*)malloc(strlen(s[i+1]));
+ strcpy(logfileName, s[i + 1]);
+ i++;
+ }
+ else {
+ /* use default logfileName */
+ logfileName=(char*)malloc(strlen(DEF_LOGFILE_NAME));
+ strcpy(logfileName, DEF_LOGFILE_NAME);
+ }
+
+ }
+ i++;
+ continue;
+ }
err = 1;
};
if (err) {
error("Valid command line options:\n");
- error("\n openuniverse [-bench] [-fullscreen [mode_string]] \n\n");
+ error("\n openuniverse [-bench] [-fullscreen [mode_string]] [-logfile [filename]]\n\n");
shutdown(1);
}
}
diff -ur openuniverse-1.0beta3.1+dfsg/src/ou.cpp openuniverse-1.0beta3.1+dfsg.work/src/ou.cpp
--- openuniverse-1.0beta3.1+dfsg/src/ou.cpp 2000-06-04 23:29:29.000000000 +0200
+++ openuniverse-1.0beta3.1+dfsg.work/src/ou.cpp 2009-01-10 18:53:23.000000000 +0100
@@ -54,6 +54,7 @@
TexFont *txf = NULL;
int fonttype = TEXFONT, glyphheight, glyphwidth;
FILE *logfile = NULL;
+char *logfileName = NULL;
int totaltexsize = 0;
void CheckError(void)
@@ -521,13 +522,18 @@
int main(int argc, char *argv[])
{
- logfile = fopen("log.txt", "wt");
+ ParseCmdLine(argc, argv);
+ if (logfileName!=NULL) {
+ /* we need a logfile so open it */
+ logfile = fopen(logfileName, "wt");
+ }
LOG("Initializing GLUT", glutInit(&argc, argv));
LOG("Initializing display mode",
glutInitDisplayMode(GLUT_RGB | GLUT_DOUBLE | GLUT_DEPTH));
LOG("Initializing window", glutInitWindowSize(width, height));
glutInitWindowPosition(0, 0);
- LOG("Parsing command line", ParseCmdLine(argc, argv));
+//parsing moved to the beginning to make variable logfilenames possible
+// LOG("Parsing command line", ParseCmdLine(argc, argv));
if (fullscreen) {
#ifdef WIN32
glutGameModeString(game_string);
diff -ur openuniverse-1.0beta3.1+dfsg/src/ou.h openuniverse-1.0beta3.1+dfsg.work/src/ou.h
--- openuniverse-1.0beta3.1+dfsg/src/ou.h 2009-01-08 13:13:27.000000000 +0100
+++ openuniverse-1.0beta3.1+dfsg.work/src/ou.h 2009-01-08 19:37:24.000000000 +0100
@@ -119,6 +119,7 @@
extern TexFont *txf;
extern int fonttype, glyphheight, glyphwidth;
extern FILE *logfile;
+extern char *logfileName;
extern int hasPointEXT, numevents, currevent, eventrecord;
extern double eventrecordstart;
extern double eventstartcampos[3], eventstartcameye[3], eventstartcamup[3];
diff -ur openuniverse-1.0beta3.1+dfsg/src/util.cpp openuniverse-1.0beta3.1+dfsg.work/src/util.cpp
--- openuniverse-1.0beta3.1+dfsg/src/util.cpp 2000-06-04 21:35:23.000000000 +0200
+++ openuniverse-1.0beta3.1+dfsg.work/src/util.cpp 2009-01-08 20:04:00.000000000 +0100
@@ -568,7 +568,9 @@
void shutdown(int status)
{
- fclose(logfile);
- exit(status);
+ if (logfile) {
+ fclose(logfile);
+ exit(status);
+ }
}