[vala/staging] valadoc: Drop custom realpath()



commit 02ac44bb150f503d3141f525b134dd5a0e943095
Author: Rico Tzschichholz <ricotz ubuntu com>
Date:   Sun Nov 26 20:40:14 2017 +0100

    valadoc: Drop custom realpath()

 libvaladoc/api/tree.vala                     |    2 +-
 libvaladoc/filehelper.vala                   |   83 --------------------------
 libvaladoc/importer/internalidregistrar.vala |    2 +-
 libvaladoc/moduleloader.vala                 |    2 +-
 vala/valacodecontext.vala                    |    8 ++-
 valadoc/doclets/gtkdoc/doclet.vala           |    6 +-
 valadoc/treebuilder.vala                     |    8 +-
 valadoc/valadoc.vala                         |    2 +-
 8 files changed, 18 insertions(+), 95 deletions(-)
---
diff --git a/libvaladoc/api/tree.vala b/libvaladoc/api/tree.vala
index 4344c2e..b505faf 100644
--- a/libvaladoc/api/tree.vala
+++ b/libvaladoc/api/tree.vala
@@ -332,7 +332,7 @@ public class Valadoc.Api.Tree {
                                        continue;
                                }
 
-                               path = realpath (path);
+                               path = Vala.CodeContext.realpath (path);
                                imported = true;
 
                                if (!processed.contains (path)) {
diff --git a/libvaladoc/filehelper.vala b/libvaladoc/filehelper.vala
index 54c7b87..c9ff9c1 100644
--- a/libvaladoc/filehelper.vala
+++ b/libvaladoc/filehelper.vala
@@ -112,88 +112,5 @@ namespace Valadoc {
 
                return true;
        }
-
-
-       private inline bool ends_with_dir_separator (string s) {
-               // --- ported from libvala ---
-               return Path.is_dir_separator (s.get_char (s.length - 1));
-       }
-
-       /**
-        * Returns canonicalized absolute pathname
-        *
-        * @param name the path being checked
-        * @return a canonicalized absolute pathname
-        */
-       public string realpath (string name) {
-               // --- ported from libvala ---
-
-               string rpath;
-
-               // start of path component
-               weak string start;
-               // end of path component
-               weak string end;
-
-               if (!Path.is_absolute (name)) {
-                       // relative path
-                       rpath = Environment.get_current_dir ();
-
-                       start = end = name;
-               } else {
-                       // set start after root
-                       start = end = Path.skip_root (name);
-
-                       // extract root
-                       rpath = name.substring (0, (int) ((char*) start - (char*) name));
-               }
-
-               long root_len = (long) ((char*) Path.skip_root (rpath) - (char*) rpath);
-
-               for (; start.get_char () != 0; start = end) {
-                       // skip sequence of multiple path-separators
-                       while (Path.is_dir_separator (start.get_char ())) {
-                               start = start.next_char ();
-                       }
-
-                       // find end of path component
-                       long len = 0;
-                       for (end = start; end.get_char () != 0 && !Path.is_dir_separator (end.get_char ()); 
end = end.next_char ()) {
-                               len++;
-                       }
-
-                       if (len == 0) {
-                               break;
-                       } else if (len == 1 && start.get_char () == '.') {
-                               // do nothing
-                       } else if (len == 2 && start.has_prefix ("..")) {
-                               // back up to previous component, ignore if at root already
-                               if (rpath.length > root_len) {
-                                       do {
-                                               rpath = rpath.substring (0, rpath.length - 1);
-                                       } while (!ends_with_dir_separator (rpath));
-                               }
-                       } else {
-                               if (!ends_with_dir_separator (rpath)) {
-                                       rpath += Path.DIR_SEPARATOR_S;
-                               }
-
-                               rpath += start.substring (0, len);
-                       }
-               }
-
-               if (rpath.length > root_len && ends_with_dir_separator (rpath)) {
-                       rpath = rpath.substring (0, rpath.length - 1);
-               }
-
-               if (Path.DIR_SEPARATOR != '/') {
-                       // don't use backslashes internally,
-                       // to avoid problems in #include directives
-                       string[] components = rpath.split ("\\");
-                       rpath = string.joinv ("/", components);
-               }
-
-               return rpath;
-       }
 }
 
diff --git a/libvaladoc/importer/internalidregistrar.vala b/libvaladoc/importer/internalidregistrar.vala
index 8bad9ab..fcc1e5a 100644
--- a/libvaladoc/importer/internalidregistrar.vala
+++ b/libvaladoc/importer/internalidregistrar.vala
@@ -52,7 +52,7 @@ public class Valadoc.Importer.InternalIdRegistrar {
                Vala.SourceLocation end;
                Vala.MarkupTokenType token;
 
-               string base_path = index_sgml_online ?? realpath (filename);
+               string base_path = index_sgml_online ?? Vala.CodeContext.realpath (filename);
                var reader = new Vala.MarkupReader (filename);
 
                while ((token = reader.read_token (out begin, out end)) != Vala.MarkupTokenType.EOF) {
diff --git a/libvaladoc/moduleloader.vala b/libvaladoc/moduleloader.vala
index 7f729a0..d73adda 100644
--- a/libvaladoc/moduleloader.vala
+++ b/libvaladoc/moduleloader.vala
@@ -92,7 +92,7 @@ public class Valadoc.ModuleLoader : Object {
        }
 
        public Doclet? create_doclet (string _path) {
-               string path = realpath (_path);
+               string path = Vala.CodeContext.realpath (_path);
 
                ModuleData? data = doclets.get (path);
                if (data == null) {
diff --git a/vala/valacodecontext.vala b/vala/valacodecontext.vala
index 404d9d8..ad6fcd4 100644
--- a/vala/valacodecontext.vala
+++ b/vala/valacodecontext.vala
@@ -603,7 +603,13 @@ public class Vala.CodeContext {
                return Path.is_dir_separator (s.get_char (s.length - 1));
        }
 
-       /* ported from glibc */
+       /**
+        * Returns canonicalized absolute pathname
+        * ported from glibc
+        *
+        * @param name the path being checked
+        * @return a canonicalized absolute pathname
+        */
        public static string realpath (string name) {
                string rpath;
 
diff --git a/valadoc/doclets/gtkdoc/doclet.vala b/valadoc/doclets/gtkdoc/doclet.vala
index 11b6e88..c8c8bb0 100644
--- a/valadoc/doclets/gtkdoc/doclet.vala
+++ b/valadoc/doclets/gtkdoc/doclet.vala
@@ -64,7 +64,7 @@ namespace Gtkdoc.Config {
 
                // real path to ignored headers
                for (int i=0; i < ignore_headers.length; i++) {
-                       var realheader = realpath (ignore_headers[i]);
+                       var realheader = Vala.CodeContext.realpath (ignore_headers[i]);
                        if (realheader != null) {
                                ignore_headers[i] = realheader;
                        }
@@ -179,7 +179,7 @@ public class Gtkdoc.Director : Valadoc.Doclet, Object {
                string[] prepared = new string[]{};
 
                foreach (string relative_filename in files) {
-                       var filename = realpath (relative_filename);
+                       var filename = Vala.CodeContext.realpath (relative_filename);
 
                        if (filename in prepared) {
                                continue;
@@ -253,7 +253,7 @@ public class Gtkdoc.Director : Valadoc.Doclet, Object {
                StringBuilder library_paths = new StringBuilder ();
                StringBuilder library_dirs = new StringBuilder ();
                foreach (string library in Config.library_filenames) {
-                       string so_path = realpath (library);
+                       string so_path = Vala.CodeContext.realpath (library);
                        string name = Path.get_dirname (so_path);
                        library_dirs.append (name);
                        library_paths.append (so_path);
diff --git a/valadoc/treebuilder.vala b/valadoc/treebuilder.vala
index b060e0c..bc32e98 100644
--- a/valadoc/treebuilder.vala
+++ b/valadoc/treebuilder.vala
@@ -819,7 +819,7 @@ public class Valadoc.Drivers.TreeBuilder : Vala.CodeVisitor {
 
                foreach (string source in sources) {
                        if (FileUtils.test (source, FileTest.EXISTS)) {
-                               var rpath = realpath (source);
+                               var rpath = Vala.CodeContext.realpath (source);
                                if (source.has_suffix (".vala") || source.has_suffix (".gs")) {
                                        var source_file = new Vala.SourceFile (context, 
Vala.SourceFileType.SOURCE, rpath);
 
@@ -877,13 +877,13 @@ public class Valadoc.Drivers.TreeBuilder : Vala.CodeVisitor {
                context.gir_directories = settings.gir_directories;
 
                if (settings.basedir == null) {
-                       context.basedir = realpath (".");
+                       context.basedir = Vala.CodeContext.realpath (".");
                } else {
-                       context.basedir = realpath (settings.basedir);
+                       context.basedir = Vala.CodeContext.realpath (settings.basedir);
                }
 
                if (settings.directory != null) {
-                       context.directory = realpath (settings.directory);
+                       context.directory = Vala.CodeContext.realpath (settings.directory);
                } else {
                        context.directory = context.basedir;
                }
diff --git a/valadoc/valadoc.vala b/valadoc/valadoc.vala
index d68ed62..11263a0 100644
--- a/valadoc/valadoc.vala
+++ b/valadoc/valadoc.vala
@@ -209,7 +209,7 @@ public class ValaDoc : Object {
                settings._internal = ValaDoc._internal;
                settings.with_deps = ValaDoc.with_deps;
                settings._private = ValaDoc._private;
-               settings.path = realpath (ValaDoc.directory);
+               settings.path = Vala.CodeContext.realpath (ValaDoc.directory);
                settings.verbose = ValaDoc.verbose;
                settings.wiki_directory = ValaDoc.wikidirectory;
                settings.pluginargs = ValaDoc.pluginargs;


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