Page 1 of 1

Salamander sa spúšťa s defaultným kontextom

Posted: 30 Dec 2016, 09:47
by ras22
Salamander nerešpektuje "dynamickú" zmenu v Enviroment Variables, napr. v batchi : Set PATH=%PATH%;C:\xxx a potom spustenie "C:\...\salamander.exe" vedie iba k spusteniu Salamandra s defaultnými systémovými premennými (v danom príklade PATH nebude obsahovať C:\xxx). Testoval som Far a TotalManager na túto vlastnosť, a tam to funguje, tak ako má.

Re: Salamander sa spúšťa s defaultným kontextom

Posted: 31 Dec 2016, 03:04
by Jan Rysavy
Pod Windows 7 tento problém nemohu reprodukovat. Jaký operační systém používáte a jakou verzi Salamandera?

Re: Salamander sa spúšťa s defaultným kontextom

Posted: 31 Dec 2016, 12:24
by ras22
Pripajam teda 2 subory na zreprodukovanie "problemu". Prvy bat prida do cesty C:\xxx a spusti salamander, druhy bat treba spustit zo salamandra. Vypise PATH a v PATH bude chybat C:\xxx. Pouzivam Win 10 a Salamander 3.08, ale to je myslim v danom probleme irelevantne, salamander pravdepodobne pri svojom starte nenacitava aktualne pristredie, ale defaultne.

Re: Salamander sa spúšťa s defaultným kontextom

Posted: 31 Dec 2016, 20:16
by Jan Rysavy
Aha, už jsem v obraze. Máte pravdu, že tuto situaci jsme v rámci zjednodušení neřešili. Příčinou je automatická regenerace env. proměnných za běhu Salamandera, díky které není třeba restart Salamandera pro načtení aktuálního stavu proměnných. Salamander chytá notifikace o změně a aktuální proměnné merguje do svého procesu. Merge máme implementovaný do úrovně přidání a odebrání proměnné, ale vynechali jsme merge na úrovni změny proměnné a to je přesně na co jste narazil.

Za ty roky jste asi první, kdo tento problém ohlásil, takže jsme to zatím neřešili. Pravděpodobně by bylo možné provést merge i v rámci takto změněných proměnných, mrknu se do kódu, co by to obnášelo a proč jsme to rovnou neimplementovali.

Edit: našel jsem komentář:

Code: Select all

        // diference zatim ignorujeme, napriklad v PATH, atd