[baobab] Split out a function
- From: Stefano Facchini <sfacchini src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [baobab] Split out a function
- Date: Mon, 15 Jun 2020 10:11:39 +0000 (UTC)
commit 0efc5ffd473d55ea53f20e3aaa9e63278c1ddf32
Author: Stefano Facchini <stefano facchini gmail com>
Date: Mon Jun 15 09:16:12 2020 +0200
Split out a function
src/baobab-scanner.vala | 82 ++++++++++++++++++++++++++-----------------------
1 file changed, 43 insertions(+), 39 deletions(-)
---
diff --git a/src/baobab-scanner.vala b/src/baobab-scanner.vala
index 04dbfdf..b3ba68c 100644
--- a/src/baobab-scanner.vala
+++ b/src/baobab-scanner.vala
@@ -212,6 +212,48 @@ namespace Baobab {
}
}
+ void add_children (File directory, Results results, ResultsArray results_array) throws Error {
+ var children = directory.enumerate_children (ATTRIBUTES, FileQueryInfoFlags.NOFOLLOW_SYMLINKS,
cancellable);
+ FileInfo? child_info;
+ while ((child_info = children.next_file (cancellable)) != null) {
+ switch (child_info.get_file_type ()) {
+ case FileType.DIRECTORY:
+ var child = directory.get_child (child_info.get_name ());
+ var child_results = add_directory (child, child_info, results);
+
+ if (child_results != null) {
+ results.update_with_child (child_results);
+ results_array.results += (owned) child_results;
+ }
+ break;
+
+ case FileType.REGULAR:
+ if (child_info.has_attribute (FileAttribute.UNIX_NLINK)) {
+ if (child_info.get_attribute_uint32 (FileAttribute.UNIX_NLINK) > 1) {
+ var hl = new HardLink (child_info);
+
+ // check if we've already encountered this file
+ if (hl in hardlinks) {
+ continue;
+ }
+
+ hardlinks.add ((owned) hl);
+ }
+
+ }
+
+ var child_results = new Results (child_info, results);
+ results.update_with_child (child_results);
+ results_array.results += (owned) child_results;
+ break;
+
+ default:
+ // ignore other types (symlinks, sockets, devices, etc)
+ break;
+ }
+ }
+ }
+
Results? add_directory (File directory, FileInfo info, Results? parent = null) {
var results_array = new ResultsArray ();
@@ -224,45 +266,7 @@ namespace Baobab {
var results = new Results (info, parent);
try {
- var children = directory.enumerate_children (ATTRIBUTES,
FileQueryInfoFlags.NOFOLLOW_SYMLINKS, cancellable);
- FileInfo? child_info;
- while ((child_info = children.next_file (cancellable)) != null) {
- switch (child_info.get_file_type ()) {
- case FileType.DIRECTORY:
- var child = directory.get_child (child_info.get_name ());
- var child_results = add_directory (child, child_info, results);
-
- if (child_results != null) {
- results.update_with_child (child_results);
- results_array.results += (owned) child_results;
- }
- break;
-
- case FileType.REGULAR:
- if (child_info.has_attribute (FileAttribute.UNIX_NLINK)) {
- if (child_info.get_attribute_uint32 (FileAttribute.UNIX_NLINK) > 1) {
- var hl = new HardLink (child_info);
-
- // check if we've already encountered this file
- if (hl in hardlinks) {
- continue;
- }
-
- hardlinks.add ((owned) hl);
- }
-
- }
-
- var child_results = new Results (child_info, results);
- results.update_with_child (child_results);
- results_array.results += (owned) child_results;
- break;
-
- default:
- // ignore other types (symlinks, sockets, devices, etc)
- break;
- }
- }
+ add_children (directory, results, results_array);
} catch (Error e) {
results.error = e;
}
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]