View Issue Details

IDProjectCategoryView StatusLast Update
0002533Far ManagerSettingspublic2013-11-28 04:24
Reporterccaid Assigned ToDrKnS  
PrioritynormalSeverityminorReproducibilityalways
Status closedResolutionfixed 
Fixed in Version3.0 
Summary0002533: не работает считывание настроек Xlat при старте Far
Descriptionпредположительно, где-то между 2605 и 2909 поломалось считывание настроек Xlat при старте. вместо них используются вшитые. это справедливо, как минимум, для Rules3. изменить настройки можно, и они будут действовать до конца сеанса, и даже запишутся в базу, но при следующем старте будут проигнорированы.
Steps To Reproduceиз ком. строки выполняем far:config
находим строку XLat.Rules3
нажимаем Enter
изменяем последний символ: со слеша на точку
нажимаем Enter
сохранив настройки, выходим из Far
загружаем Far
снова идем к строке XLat.Rules3 — видим, что последний символ — слеш
TagsNo tags attached.
Build3727

Activities

Denis

2013-11-26 19:10

reporter   bugnote:0011554

Far 3.0 build 3724 x64 - всё сохраняется.

ccaid

2013-11-26 19:17

reporter   bugnote:0011555

3.0.3724 x86
win xp sp3 / win 8.1
в базу-то сохраняет, но _не_восстанавливает_ при старте. если сделать экспорт, то там все будет настроено.

Denis

2013-11-26 19:34

reporter   bugnote:0011556

У меня восстанавливает при старте. Последний символ - то, что я ввёл.

ccaid

2013-11-26 21:45

reporter   bugnote:0011557

3.0.3724 x64
win 7 x64
не восстанавливает, какие варианты я не пробовал (Default.farconfig, без оного, локальный профиль, профиль пользователя)
Far тупо распакован из зипа в новую папку C:\Far, запускается либо ShiftEnter из основного фара, либо из иксплорера.
а у вас фар случаем не самостоятельно скомпилирован?

Denis

2013-11-26 21:51

reporter   bugnote:0011558

Самостоятельно. VC 2013

Denis

2013-11-26 22:12

reporter   bugnote:0011559

Скачал 3.0.3724 x64 и x86 с сайта - все сохраняется и восстанавливается.

ccaid

2013-11-27 04:07

reporter   bugnote:0011560

не могли бы вы сделать минимальную сборку far x86 + локальный профиль, чтобы там этот самый последний слеш уже был заменен на точку, а я бы ее посмотрел у себя.
желательно 3.0.3725

Denis

2013-11-27 07:20

reporter   bugnote:0011561

Last edited: 2013-11-27 07:21

View 2 revisions

Вот
http://rghost.ru/50475467

ccaid

2013-11-27 08:01

reporter   bugnote:0011562

не скачивается. при нажатии на кнопку "скачать" моргает страница, и все.

Denis

2013-11-27 08:07

reporter   bugnote:0011563

Ещё одна попытка: http://rghost.ru/50476048

ccaid

2013-11-27 08:21

reporter   bugnote:0011564

скачал, точку увидел, буду копать дальше

ccaid

2013-11-27 08:41

reporter   bugnote:0011565

а вы походу запускали фар только со своими настройками, а с нуля не пробовали. фишка в том, что когда я изменяю Rules3, в базу пишется только Rules3 — по крайней мере экспортируется только это поле. при старте фар видит только одно поле, считает все настройки xlat битыми и не использует Rules3 из базы. если в базу из Default.farconfig импортируются _все_ поля xlat, то все работает и изменяется без проблем.

Denis

2013-11-27 08:51

reporter   bugnote:0011566

Да, на новом профайле не сохраняются.

Denis

2013-11-27 09:02

reporter  

m2533.patch (2,876 bytes)   
diff --git i/unicode_far/config.cpp w/unicode_far/config.cpp
index 6ea3d3a..0085c51 100644
--- i/unicode_far/config.cpp
+++ w/unicode_far/config.cpp
@@ -1957,29 +1957,42 @@ void Options::Load()
 	if (Exec.strExecuteBatchType.empty()) // �����������
 		Exec.strExecuteBatchType=constBatchExt;
 
-	// ���������� XLat �� ������� ��������� qwerty<->�����
-	if (XLat.Table[0].empty())
+	// ���������� XLat	��	�������	���������	qwerty<->�����
+	if (XLat.Table[0].empty()
+		|| XLat.Table[1].empty()
+		|| XLat.Rules[0].empty()
+		|| XLat.Rules[1].empty()
+		|| XLat.Rules[2].empty())
 	{
 		bool RussianExists=false;
-		HKL Layouts[32];
+		HKL	Layouts[32];
 		UINT Count=GetKeyboardLayoutList(ARRAYSIZE(Layouts), Layouts);
-		WORD RussianLanguageId=MAKELANGID(LANG_RUSSIAN, SUBLANG_RUSSIAN_RUSSIA);
-		for (UINT I=0; I<Count; I++)
+		WORD RussianLanguageId=MAKELANGID(LANG_RUSSIAN,	SUBLANG_RUSSIAN_RUSSIA);
+		for	(UINT	I=0; I<Count;	I++)
 		{
-			if (LOWORD(Layouts[I]) == RussianLanguageId)
+			if (LOWORD(Layouts[I]) ==	RussianLanguageId)
 			{
-				RussianExists = true;
+				RussianExists	=	true;
 				break;
 			}
 		}
 
 		if (RussianExists)
 		{
-			XLat.Table[0] = L"\x2116\x0410\x0412\x0413\x0414\x0415\x0417\x0418\x0419\x041a\x041b\x041c\x041d\x041e\x041f\x0420\x0421\x0422\x0423\x0424\x0425\x0426\x0427\x0428\x0429\x042a\x042b\x042c\x042f\x0430\x0432\x0433\x0434\x0435\x0437\x0438\x0439\x043a\x043b\x043c\x043d\x043e\x043f\x0440\x0441\x0442\x0443\x0444\x0445\x0446\x0447\x0448\x0449\x044a\x044b\x044c\x044d\x044f\x0451\x0401\x0411\x042e";
-			XLat.Table[1] = L"#FDULTPBQRKVYJGHCNEA{WXIO}SMZfdultpbqrkvyjghcnea[wxio]sm'z`~<>";
-			XLat.Rules[0] = L",??&./\x0431,\x044e.:^\x0416:\x0436;;$\"@\x042d\"";
-			XLat.Rules[1] = L"?,&?/.,\x0431.\x044e^::\x0416;\x0436$;@\"\"\x042d";
-			XLat.Rules[2] = L"^::\x0416\x0416^$;;\x0436\x0436$@\"\"\x042d\x042d@&??,,\x0431\x0431&/..\x044e\x044e/";
+			if (XLat.Table[0].empty())
+				XLat.Table[0]	=	L"\x2116\x0410\x0412\x0413\x0414\x0415\x0417\x0418\x0419\x041a\x041b\x041c\x041d\x041e\x041f\x0420\x0421\x0422\x0423\x0424\x0425\x0426\x0427\x0428\x0429\x042a\x042b\x042c\x042f\x0430\x0432\x0433\x0434\x0435\x0437\x0438\x0439\x043a\x043b\x043c\x043d\x043e\x043f\x0440\x0441\x0442\x0443\x0444\x0445\x0446\x0447\x0448\x0449\x044a\x044b\x044c\x044d\x044f\x0451\x0401\x0411\x042e";
+
+			if (XLat.Table[1].empty())
+				XLat.Table[1]	=	L"#FDULTPBQRKVYJGHCNEA{WXIO}SMZfdultpbqrkvyjghcnea[wxio]sm'z`~<>";
+
+			if (XLat.Rules[0].empty())
+				XLat.Rules[0]	=	L",??&./\x0431,\x044e.:^\x0416:\x0436;;$\"@\x042d\"";
+
+			if (XLat.Rules[1].empty())
+				XLat.Rules[1]	=	L"?,&?/.,\x0431.\x044e^::\x0416;\x0436$;@\"\"\x042d";
+
+			if (XLat.Rules[2].empty())
+				XLat.Rules[2]	=	L"^::\x0416\x0416^$;;\x0436\x0436$@\"\"\x042d\x042d@&??,,\x0431\x0431&/..\x044e\x044e/";
 		}
 	}
 
m2533.patch (2,876 bytes)   

Denis

2013-11-27 09:03

reporter   bugnote:0011567

Приложил m2533.patch для исправления.

ccaid

2013-11-27 09:09

reporter   bugnote:0011568

то что изменено, _сохраняется_ в базу. это можно увидеть при экспорте. _не_восстанавливаются_!

кстати, непростая история у ваших настроек (баз), похоже. таких полных я ещё не встречал. на форуме, по-моему, уже упоминалось, что настройки с дефолтными значениями в базах отсутствуют. чтобы они появились там, надо знать — где в какой бубен ударить.

Denis

2013-11-27 09:14

reporter   bugnote:0011569

Так в патче именно и фиксится подъём настроек из базы для XLAT. "Бубен" - это непустая "XLat.Table1" - тогда настройки из базы не будут переписаны значениями по умолчанию.

DrKnS

2013-11-27 20:01

administrator   bugnote:0011572

3727

ccaid

2013-11-28 03:23

reporter   bugnote:0011573

fixed

Issue History

Date Modified Username Field Change
2013-11-26 16:40 ccaid New Issue
2013-11-26 19:10 Denis Note Added: 0011554
2013-11-26 19:17 ccaid Note Added: 0011555
2013-11-26 19:34 Denis Note Added: 0011556
2013-11-26 21:45 ccaid Note Added: 0011557
2013-11-26 21:51 Denis Note Added: 0011558
2013-11-26 22:12 Denis Note Added: 0011559
2013-11-27 04:07 ccaid Note Added: 0011560
2013-11-27 07:20 Denis Note Added: 0011561
2013-11-27 07:21 Denis Note Edited: 0011561 View Revisions
2013-11-27 08:01 ccaid Note Added: 0011562
2013-11-27 08:07 Denis Note Added: 0011563
2013-11-27 08:21 ccaid Note Added: 0011564
2013-11-27 08:41 ccaid Note Added: 0011565
2013-11-27 08:51 Denis Note Added: 0011566
2013-11-27 09:02 Denis File Added: m2533.patch
2013-11-27 09:03 Denis Note Added: 0011567
2013-11-27 09:09 ccaid Note Added: 0011568
2013-11-27 09:14 Denis Note Added: 0011569
2013-11-27 20:01 DrKnS Note Added: 0011572
2013-11-27 20:01 DrKnS Assigned To => DrKnS
2013-11-27 20:01 DrKnS Status new => feedback
2013-11-28 03:23 ccaid Note Added: 0011573
2013-11-28 03:23 ccaid Status feedback => assigned
2013-11-28 04:24 DrKnS Build => 3727
2013-11-28 04:24 DrKnS Status assigned => closed
2013-11-28 04:24 DrKnS Resolution open => fixed
2013-11-28 04:24 DrKnS Fixed in Version => 3.0