From: Rico Tzschichholz Date: Sun, 26 Nov 2017 19:40:14 +0000 (+0100) Subject: valadoc: Drop custom realpath() X-Git-Tag: 0.39.5~19 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=02ac44bb150f503d3141f525b134dd5a0e943095;p=thirdparty%2Fvala.git valadoc: Drop custom realpath() --- diff --git a/libvaladoc/api/tree.vala b/libvaladoc/api/tree.vala index 4344c2e46..b505fafcd 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 54c7b87ac..c9ff9c137 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 8bad9ab1e..fcc1e5a2a 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 7f729a0a3..d73adda74 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 404d9d8ae..ad6fcd44e 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 11b6e88a1..c8c8bb0dc 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 b060e0ccd..bc32e9832 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 d68ed62e5..11263a0f7 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;