[valadoc] doclets/gtkdoc: Fix finding headers and handling of external C files



commit f3d9a291c4051551e296314507ddb5a5c1e5922a
Author: Luca Bruno <lethalman88 gmail com>
Date:   Mon Aug 2 22:53:42 2010 +0200

    doclets/gtkdoc: Fix finding headers and handling of external C files

 src/doclets/gtkdoc/doclet.vala |   36 +++++++++++++++++-------------------
 src/doclets/gtkdoc/utils.vala  |   11 +++++++++++
 2 files changed, 28 insertions(+), 19 deletions(-)
---
diff --git a/src/doclets/gtkdoc/doclet.vala b/src/doclets/gtkdoc/doclet.vala
index ae89212..88ac902 100644
--- a/src/doclets/gtkdoc/doclet.vala
+++ b/src/doclets/gtkdoc/doclet.vala
@@ -138,29 +138,27 @@ public class Gtkdoc.Director : Valadoc.Doclet, Object {
 			return;
 		}
 
-		string filename;
+		string relative_name;
 
-		while ((filename = dir.read_name()) != null) {
+		while ((relative_name = dir.read_name()) != null) {
+			var filename = Path.build_filename (dirname, relative_name);
 			if (filename.has_suffix (".h")) {
-				var stream = FileStream.open (Path.build_filename (dirname, filename), "r");
-				if (stream != null) {
-					var line = stream.read_line ();
-					if (line != null) {
-						if (line.str ("generated by valac") != null) {
-							vala_headers += filename;
-						} else {
-							c_headers += filename;
-						}
-					}
+				if (is_generated_by_vala (filename)) {
+					vala_headers += filename;
+				} else {
+					c_headers += filename;
 				}
 			} else if (filename.has_suffix (".c")) {
-				try {
-					string contents;
-					FileUtils.get_contents (filename, out contents);
-					FileUtils.set_contents (Path.build_filename (output_dir, Path.get_basename (filename)), contents);
-				} catch (Error e) {
-					warning ("GtkDoc: Can't copy %s: %s", filename, e.message);
-					return;
+				// copy external C files for documentation
+				if (!is_generated_by_vala (filename)) {
+					try {
+						string contents;
+						FileUtils.get_contents (filename, out contents);
+						FileUtils.set_contents (Path.build_filename (output_dir, Path.get_basename (filename)), contents);
+					} catch (Error e) {
+						warning ("GtkDoc: Can't copy %s: %s", filename, e.message);
+						return;
+					}
 				}
 			}
 		}
diff --git a/src/doclets/gtkdoc/utils.vala b/src/doclets/gtkdoc/utils.vala
index 40f388e..6cf913e 100644
--- a/src/doclets/gtkdoc/utils.vala
+++ b/src/doclets/gtkdoc/utils.vala
@@ -163,6 +163,17 @@ namespace Gtkdoc {
 			return false;
 		}
 	}
+
+	public bool is_generated_by_vala (string filename) {
+		var stream = FileStream.open (filename, "r");
+		if (stream != null) {
+			var line = stream.read_line ();
+			if (line != null) {
+				return line.str ("generated by valac") != null;
+			}
+		}
+		return false;
+	}
 }
 
 



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]