Tilda is a Shell extension. There is no neccessity to expand it.
This commit is contained in:
parent
601b2eb303
commit
086006a0fe
|
@ -4,43 +4,6 @@ namespace LAview.Desktop {
|
|||
|
||||
using Gtk;
|
||||
|
||||
/**
|
||||
* Resolve a path beginning with "~"
|
||||
* Look at: https://github.com/ssokolow/gvrun/blob/master/process_runner.vala#L86
|
||||
*/
|
||||
#if (linux || UNIX || __unix__)
|
||||
static string expand_tilde (string path) {
|
||||
if (!path.has_prefix ("~")) return path; // Just pass paths through if they don't start with ~
|
||||
|
||||
// Split the ~user portion from the path (Use / for the path if not present)
|
||||
string parts[2];
|
||||
if (!(Path.DIR_SEPARATOR_S in path)) {
|
||||
parts = { path.substring(1), Path.DIR_SEPARATOR_S };
|
||||
} else {
|
||||
string trimmed = path.substring(1);
|
||||
parts = trimmed.split(Path.DIR_SEPARATOR_S, 2);
|
||||
}
|
||||
warn_if_fail(parts.length == 2);
|
||||
|
||||
// Handle both "~" and "~user" forms
|
||||
string home_path;
|
||||
if (parts[0] == "") {
|
||||
home_path = Environment.get_variable("HOME") ?? Environment.get_home_dir();
|
||||
} else {
|
||||
unowned Posix.Passwd _pw = Posix.getpwnam(parts[0]);
|
||||
home_path = (_pw == null) ? null : _pw.pw_dir;
|
||||
}
|
||||
|
||||
// Fail safely if we couldn't look up a homedir
|
||||
if (home_path == null) {
|
||||
warning("Could not get homedir for user: %s", parts[0].length > 0 ? parts[0] : "<current user>");
|
||||
return path;
|
||||
} else {
|
||||
return home_path + Path.DIR_SEPARATOR_S + parts[1];
|
||||
}
|
||||
}
|
||||
#endif
|
||||
|
||||
/**
|
||||
* Open document.
|
||||
* Idea borrowed from: https://github.com/ssokolow/gvrun/blob/master/process_runner.vala
|
||||
|
@ -51,7 +14,7 @@ namespace LAview.Desktop {
|
|||
foreach (var opener in OPENERS) {
|
||||
if (Environment.find_program_in_path (opener) != null) {
|
||||
try {
|
||||
string[] argv = { opener, expand_tilde (path) };
|
||||
string[] argv = { opener, path };
|
||||
Process.spawn_async(null, argv, null, SpawnFlags.SEARCH_PATH, null, null);
|
||||
} catch (SpawnError err) {
|
||||
var msg = new MessageDialog (parent_window, DialogFlags.MODAL, MessageType.ERROR,
|
||||
|
|
Loading…
Reference in New Issue