diff -up GabeditSrc248/src/Display/PovrayGL.c.strlen GabeditSrc248/src/Display/PovrayGL.c --- GabeditSrc248/src/Display/PovrayGL.c.strlen 2013-10-30 13:46:50.000000000 +0100 +++ GabeditSrc248/src/Display/PovrayGL.c 2014-02-16 17:18:06.320077560 +0100 @@ -1671,7 +1671,8 @@ static void exportPOVRay(GtkWidget* Win, gint i; if(tmp) l = strlen(tmp); for(i=l-1;i>=1;i--) if(tmp[i]=='.') tmp[i]='\0'; - if(dirName[strlen(dirName)-1] != G_DIR_SEPARATOR) + if(!dirName) dirName = g_strdup(g_get_current_dir()); + if(dirName && dirName[strlen(dirName)-1] != G_DIR_SEPARATOR) { fileNamePOV = g_strdup_printf("%s%s%s.pov",dirName, G_DIR_SEPARATOR_S,tmp); fileNameIMG = g_strdup_printf("%s%s%s.bmp",dirName, G_DIR_SEPARATOR_S,tmp); diff -up GabeditSrc248/src/Geometry/Povray.c.strlen GabeditSrc248/src/Geometry/Povray.c --- GabeditSrc248/src/Geometry/Povray.c.strlen 2013-10-30 13:46:51.000000000 +0100 +++ GabeditSrc248/src/Geometry/Povray.c 2014-02-16 17:18:06.320077560 +0100 @@ -1158,7 +1158,8 @@ static void exportPOVRay(GtkWidget* Win, gint i; if(tmp) l = strlen(tmp); for(i=l-1;i>=1;i--) if(tmp[i]=='.') tmp[i]='\0'; - if(dirName[strlen(dirName)-1] != G_DIR_SEPARATOR) + if(!dirName) dirName = g_strdup(g_get_current_dir()); + if(dirName && dirName[strlen(dirName)-1] != G_DIR_SEPARATOR) { fileNamePOV = g_strdup_printf("%s%s%s.pov",dirName, G_DIR_SEPARATOR_S,tmp); fileNameIMG = g_strdup_printf("%s%s%s.bmp",dirName, G_DIR_SEPARATOR_S,tmp); diff -up GabeditSrc248/src/SemiEmpirical/SemiEmpiricalDlg.c.strlen GabeditSrc248/src/SemiEmpirical/SemiEmpiricalDlg.c --- GabeditSrc248/src/SemiEmpirical/SemiEmpiricalDlg.c.strlen 2013-10-30 13:46:50.000000000 +0100 +++ GabeditSrc248/src/SemiEmpirical/SemiEmpiricalDlg.c 2014-02-16 17:18:06.322077567 +0100 @@ -1064,6 +1064,7 @@ static void runSemiEmpirical(GtkWidget* { gchar* dirName = gtk_file_chooser_get_current_folder (GTK_FILE_CHOOSER(buttonDirSelector)); gchar* tmp = g_strdup(gtk_entry_get_text(GTK_ENTRY(entryFileName))); + if(!dirName) dirName = g_strdup(g_get_home_dir()); if(dirName[strlen(dirName)-1] != G_DIR_SEPARATOR) fileName = g_strdup_printf("%s%s%s",dirName, G_DIR_SEPARATOR_S,tmp); else @@ -3651,7 +3652,8 @@ static void semiEmpiricalMDConfo(GtkWidg { dirName = gtk_file_chooser_get_current_folder (GTK_FILE_CHOOSER(buttonDirSelector)); gchar* tmp = g_strdup(gtk_entry_get_text(GTK_ENTRY(entryFileNameGeom))); - if(dirName[strlen(dirName)-1] != G_DIR_SEPARATOR) + if(!dirName) dirName = g_strdup(g_get_current_dir()); + if(dirName && dirName[strlen(dirName)-1] != G_DIR_SEPARATOR) fileNameGeom = g_strdup_printf("%s%s%s",dirName, G_DIR_SEPARATOR_S,tmp); else fileNameGeom = g_strdup_printf("%s%s",dirName, tmp); @@ -3669,7 +3671,8 @@ static void semiEmpiricalMDConfo(GtkWidg { if(!dirName) dirName = gtk_file_chooser_get_current_folder (GTK_FILE_CHOOSER(buttonDirSelector)); gchar* tmp = g_strdup(gtk_entry_get_text(GTK_ENTRY(entryFileNameTraj))); - if(dirName[strlen(dirName)-1] != G_DIR_SEPARATOR) + if(!dirName) dirName = g_strdup(g_get_current_dir()); + if(dirName && dirName[strlen(dirName)-1] != G_DIR_SEPARATOR) fileNameTraj = g_strdup_printf("%s%s%s",dirName, G_DIR_SEPARATOR_S,tmp); else fileNameTraj = g_strdup_printf("%s%s",dirName, tmp); @@ -3681,7 +3684,8 @@ static void semiEmpiricalMDConfo(GtkWidg { if(!dirName) dirName = gtk_file_chooser_get_current_folder (GTK_FILE_CHOOSER(buttonDirSelector)); gchar* tmp = g_strdup(gtk_entry_get_text(GTK_ENTRY(entryFileNameProp))); - if(dirName[strlen(dirName)-1] != G_DIR_SEPARATOR) + if(!dirName) dirName = g_strdup(g_get_current_dir()); + if(dirName && dirName[strlen(dirName)-1] != G_DIR_SEPARATOR) fileNameProp = g_strdup_printf("%s%s%s",dirName, G_DIR_SEPARATOR_S,tmp); else fileNameProp = g_strdup_printf("%s%s",dirName, tmp); @@ -3925,10 +3929,11 @@ static void semiEmpiricalMD(GtkWidget* W if(stepSize>5) stepSize = 5.0; dirName = gtk_file_chooser_get_current_folder (GTK_FILE_CHOOSER(buttonDirSelector)); + if(!dirName) dirName = g_strdup(g_get_current_dir()); if(GTK_TOGGLE_BUTTON (buttonSaveTraj)->active) { gchar* tmp = g_strdup(gtk_entry_get_text(GTK_ENTRY(entryFileNameTraj))); - if(dirName[strlen(dirName)-1] != G_DIR_SEPARATOR) + if(dirName && dirName[strlen(dirName)-1] != G_DIR_SEPARATOR) fileNameTraj = g_strdup_printf("%s%s%s",dirName, G_DIR_SEPARATOR_S,tmp); else fileNameTraj = g_strdup_printf("%s%s",dirName, tmp); @@ -3938,7 +3943,7 @@ static void semiEmpiricalMD(GtkWidget* W if(GTK_TOGGLE_BUTTON (buttonSaveProp)->active) { gchar* tmp = g_strdup(gtk_entry_get_text(GTK_ENTRY(entryFileNameProp))); - if(dirName[strlen(dirName)-1] != G_DIR_SEPARATOR) + if(dirName && dirName[strlen(dirName)-1] != G_DIR_SEPARATOR) fileNameProp = g_strdup_printf("%s%s%s",dirName, G_DIR_SEPARATOR_S,tmp); else fileNameProp = g_strdup_printf("%s%s",dirName, tmp);