mirror of
https://github.com/fltk/fltk.git
synced 2026-05-28 11:25:22 +08:00
Fix "Native Filechooser (Zenity) crashes on second invocation" (#665)
This commit is contained in:
@@ -170,7 +170,6 @@ int Fl_Kdialog_Native_File_Chooser_Driver::show() {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
delete[] command;
|
delete[] command;
|
||||||
if (_title) { free(_title); _title = NULL; }
|
|
||||||
if (!pipe) return -1;
|
if (!pipe) return -1;
|
||||||
return (data.all_files == NULL ? 1 : 0);
|
return (data.all_files == NULL ? 1 : 0);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -77,7 +77,8 @@ char *Fl_Zenity_Native_File_Chooser_Driver::build_command() {
|
|||||||
snprintf(command+l, lcommand-l, " %s %s ", option, preset ? preset : "");
|
snprintf(command+l, lcommand-l, " %s %s ", option, preset ? preset : "");
|
||||||
delete[] preset;
|
delete[] preset;
|
||||||
if (_parsedfilt) {
|
if (_parsedfilt) {
|
||||||
char *p = strtok(_parsedfilt, "\n");
|
char *parsed_filter_copy = strdup(_parsedfilt); // keep _parsedfilt unchanged for re-use
|
||||||
|
char *p = strtok(parsed_filter_copy, "\n");
|
||||||
while (p) {
|
while (p) {
|
||||||
char *op = strchr(p, '(');
|
char *op = strchr(p, '(');
|
||||||
l = strlen(command);
|
l = strlen(command);
|
||||||
@@ -105,6 +106,7 @@ char *Fl_Zenity_Native_File_Chooser_Driver::build_command() {
|
|||||||
}
|
}
|
||||||
p = strtok(NULL, "\n");
|
p = strtok(NULL, "\n");
|
||||||
}
|
}
|
||||||
|
free(parsed_filter_copy);
|
||||||
}
|
}
|
||||||
strcat(command, " 2> /dev/null"); // get rid of stderr output
|
strcat(command, " 2> /dev/null"); // get rid of stderr output
|
||||||
//puts(command);
|
//puts(command);
|
||||||
|
|||||||
Reference in New Issue
Block a user