VeraCrypt
aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/Core/Unix/CoreUnix.cpp25
1 files changed, 25 insertions, 0 deletions
diff --git a/src/Core/Unix/CoreUnix.cpp b/src/Core/Unix/CoreUnix.cpp
index a6d1236a..73439a4a 100644
--- a/src/Core/Unix/CoreUnix.cpp
+++ b/src/Core/Unix/CoreUnix.cpp
@@ -61,6 +61,31 @@ namespace VeraCrypt
{
Process::Execute ("xterm", args, 1000);
} catch (TimeOut&) { }
+#ifdef TC_LINUX
+ catch (SystemException&)
+ {
+ // xterm not available. Try with KDE konsole if it exists
+ struct stat sb;
+ if (stat("/usr/bin/konsole", &sb) == 0)
+ {
+ args.clear ();
+ args.push_back ("--title");
+ args.push_back ("fsck");
+ args.push_back ("--caption");
+ args.push_back ("fsck");
+ args.push_back ("-e");
+ args.push_back ("sh");
+ args.push_back ("-c");
+ args.push_back (xargs);
+ try
+ {
+ Process::Execute ("konsole", args, 1000);
+ } catch (TimeOut&) { }
+ }
+ else
+ throw;
+ }
+#endif
}
void CoreUnix::DismountFilesystem (const DirectoryPath &mountPoint, bool force) const