runDialog: Ignore expected IO errors while enumerating $PATH
$PATH might contain non-existent or non-directory entries. Ignore those error cases. https://bugzilla.gnome.org/show_bug.cgi?id=696064
This commit is contained in:
parent
5001bd8810
commit
1cc726593e
@ -161,16 +161,22 @@ const RunDialog = new Lang.Class({
|
|||||||
let paths = GLib.getenv('PATH').split(':');
|
let paths = GLib.getenv('PATH').split(':');
|
||||||
paths.push(GLib.get_home_dir());
|
paths.push(GLib.get_home_dir());
|
||||||
let someResults = paths.map(function(path) {
|
let someResults = paths.map(function(path) {
|
||||||
let file = Gio.File.new_for_path(path);
|
|
||||||
let fileEnum = file.enumerate_children('standard::name', Gio.FileQueryInfoFlags.NONE, null);
|
|
||||||
let info;
|
|
||||||
let results = [];
|
let results = [];
|
||||||
while ((info = fileEnum.next_file(null))) {
|
try {
|
||||||
let name = info.get_name();
|
let file = Gio.File.new_for_path(path);
|
||||||
if (name.slice(0, text.length) == text)
|
let fileEnum = file.enumerate_children('standard::name', Gio.FileQueryInfoFlags.NONE, null);
|
||||||
results.push(name);
|
let info;
|
||||||
|
while ((info = fileEnum.next_file(null))) {
|
||||||
|
let name = info.get_name();
|
||||||
|
if (name.slice(0, text.length) == text)
|
||||||
|
results.push(name);
|
||||||
|
}
|
||||||
|
} catch (e if (!e.matches(Gio.IOErrorEnum, Gio.IOErrorEnum.NOT_FOUND) &&
|
||||||
|
!e.matches(Gio.IOErrorEnum, Gio.IOErrorEnum.NOT_DIRECTORY))) {
|
||||||
|
log(e);
|
||||||
|
} finally {
|
||||||
|
return results;
|
||||||
}
|
}
|
||||||
return results;
|
|
||||||
});
|
});
|
||||||
let results = someResults.reduce(function(a, b) {
|
let results = someResults.reduce(function(a, b) {
|
||||||
return a.concat(b);
|
return a.concat(b);
|
||||||
|
Loading…
Reference in New Issue
Block a user