continue;
}
- path = realpath (path);
+ path = Vala.CodeContext.realpath (path);
imported = true;
if (!processed.contains (path)) {
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;
- }
}
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) {
}
public Doclet? create_doclet (string _path) {
- string path = realpath (_path);
+ string path = Vala.CodeContext.realpath (_path);
ModuleData? data = doclets.get (path);
if (data == null) {
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;
// 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;
}
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;
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);
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);
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;
}
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;