mirror of
https://github.com/microsoft/terminal.git
synced 2026-04-06 06:09:50 +00:00
Compare commits
4 Commits
v1.22.1211
...
dev/migrie
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
a0faa008b2 | ||
|
|
aa8ae71691 | ||
|
|
73b37d80ac | ||
|
|
dc1de987d3 |
@@ -1232,6 +1232,7 @@ namespace winrt::TerminalApp::implementation
|
||||
false,
|
||||
L"",
|
||||
nullptr,
|
||||
L"",
|
||||
settings.InitialRows(),
|
||||
settings.InitialCols(),
|
||||
winrt::guid(),
|
||||
@@ -1274,6 +1275,7 @@ namespace winrt::TerminalApp::implementation
|
||||
settings.ReloadEnvironmentVariables(),
|
||||
_WindowProperties.VirtualEnvVars(),
|
||||
environment,
|
||||
_WindowProperties.VirtualWorkingDirectory(),
|
||||
settings.InitialRows(),
|
||||
settings.InitialCols(),
|
||||
winrt::guid(),
|
||||
|
||||
@@ -162,6 +162,28 @@ namespace winrt::Microsoft::Terminal::TerminalConnection::implementation
|
||||
auto [newCommandLine, newStartingDirectory] = Utils::MangleStartingDirectoryForWSL(cmdline, _startingDirectory);
|
||||
const auto startingDirectory = newStartingDirectory.size() > 0 ? newStartingDirectory.c_str() : nullptr;
|
||||
|
||||
// GH #15487: Circa Terminal 1.18, we no longer leave the Terminal in
|
||||
// the CWD it was started in. However, users might pass a path to an exe
|
||||
// that's relative to the directory they're launching the terminal from.
|
||||
// To handle this, we're going to temporarily try to switch the Terminal
|
||||
// into the CWD that they requested, CreateProcess, then pop back out to
|
||||
// where we started.
|
||||
auto originalCwd{ wil::GetCurrentDirectoryW<std::wstring>() };
|
||||
auto restoreCwd = wil::scope_exit([&originalCwd]() {
|
||||
// ignore errors, we'll just power on through. We'd rather do
|
||||
// something rather than fail silently if the directory doesn't
|
||||
// actually exist.
|
||||
LOG_IF_WIN32_BOOL_FALSE(SetCurrentDirectory(originalCwd.c_str()));
|
||||
});
|
||||
if (!_virtualWorkingDirectory.empty())
|
||||
{
|
||||
LOG_IF_WIN32_BOOL_FALSE(SetCurrentDirectory(_virtualWorkingDirectory.c_str()));
|
||||
}
|
||||
else
|
||||
{
|
||||
restoreCwd.reset();
|
||||
}
|
||||
|
||||
RETURN_IF_WIN32_BOOL_FALSE(CreateProcessW(
|
||||
nullptr,
|
||||
newCommandLine.data(),
|
||||
@@ -230,6 +252,7 @@ namespace winrt::Microsoft::Terminal::TerminalConnection::implementation
|
||||
bool reloadEnvironmentVariables,
|
||||
const winrt::hstring& initialEnvironment,
|
||||
const Windows::Foundation::Collections::IMapView<hstring, hstring>& environmentOverrides,
|
||||
const winrt::hstring& virtualWorkingDirectory,
|
||||
uint32_t rows,
|
||||
uint32_t columns,
|
||||
const winrt::guid& guid,
|
||||
@@ -239,6 +262,7 @@ namespace winrt::Microsoft::Terminal::TerminalConnection::implementation
|
||||
|
||||
vs.Insert(L"commandline", Windows::Foundation::PropertyValue::CreateString(cmdline));
|
||||
vs.Insert(L"startingDirectory", Windows::Foundation::PropertyValue::CreateString(startingDirectory));
|
||||
vs.Insert(L"virtualWorkingDirectory", Windows::Foundation::PropertyValue::CreateString(virtualWorkingDirectory));
|
||||
vs.Insert(L"startingTitle", Windows::Foundation::PropertyValue::CreateString(startingTitle));
|
||||
vs.Insert(L"reloadEnvironmentVariables", Windows::Foundation::PropertyValue::CreateBoolean(reloadEnvironmentVariables));
|
||||
vs.Insert(L"initialRows", Windows::Foundation::PropertyValue::CreateUInt32(rows));
|
||||
@@ -280,6 +304,7 @@ namespace winrt::Microsoft::Terminal::TerminalConnection::implementation
|
||||
_commandline = unbox_prop_or<winrt::hstring>(settings, L"commandline", _commandline);
|
||||
_startingDirectory = unbox_prop_or<winrt::hstring>(settings, L"startingDirectory", _startingDirectory);
|
||||
_startingTitle = unbox_prop_or<winrt::hstring>(settings, L"startingTitle", _startingTitle);
|
||||
_virtualWorkingDirectory = unbox_prop_or<winrt::hstring>(settings, L"virtualWorkingDirectory", _virtualWorkingDirectory);
|
||||
_rows = unbox_prop_or<uint32_t>(settings, L"initialRows", _rows);
|
||||
_cols = unbox_prop_or<uint32_t>(settings, L"initialCols", _cols);
|
||||
_guid = unbox_prop_or<winrt::guid>(settings, L"guid", _guid);
|
||||
|
||||
@@ -53,6 +53,7 @@ namespace winrt::Microsoft::Terminal::TerminalConnection::implementation
|
||||
bool reloadEnvironmentVariables,
|
||||
const winrt::hstring& initialEnvironment,
|
||||
const Windows::Foundation::Collections::IMapView<hstring, hstring>& environmentOverrides,
|
||||
const winrt::hstring& virtualWorkingDirectory,
|
||||
uint32_t rows,
|
||||
uint32_t columns,
|
||||
const winrt::guid& guid,
|
||||
@@ -77,6 +78,7 @@ namespace winrt::Microsoft::Terminal::TerminalConnection::implementation
|
||||
hstring _startingTitle{};
|
||||
bool _initialVisibility{ true };
|
||||
Windows::Foundation::Collections::ValueSet _environment{ nullptr };
|
||||
hstring _virtualWorkingDirectory{};
|
||||
guid _guid{}; // A unique session identifier for connected client
|
||||
hstring _clientName{}; // The name of the process hosted by this ConPTY connection (as of launch).
|
||||
|
||||
|
||||
@@ -31,6 +31,7 @@ namespace Microsoft.Terminal.TerminalConnection
|
||||
Boolean reloadEnvironmentVariables,
|
||||
String initialEnvironment,
|
||||
IMapView<String, String> environmentOverrides,
|
||||
String virtualWorkingDirectory,
|
||||
UInt32 rows,
|
||||
UInt32 columns,
|
||||
Guid guid,
|
||||
|
||||
Reference in New Issue
Block a user