Windows 10: [x] Beta: Use Unicode UTF-8 for worldwide language support

Здесь можно сообщить о найденных багах в Far.
Post Reply
2useven10
Posts: 5209
Joined: Mon 07 Sep, 2009 10:40
Has thanked: 18 times
Been thanked: 310 times

Windows 10: [x] Beta: Use Unicode UTF-8 for worldwide language support

Post by 2useven10 »

Эта настройка ломает не только сторонние скрипты, но и, как минимум, переключение кодовых страниц редактора/просмотра по F8. Наверняка есть и другие глюки с этим связанные.
Last edited by HaRT on Wed 22 Sep, 2021 00:22, edited 2 times in total.
Reason: Улучшен Заголовок Темы
User avatar
DrKnS
Posts: 6114
Joined: Thu 04 Aug, 2005 06:44
Location: Kyiv
Has thanked: 12 times
Been thanked: 426 times

Windows 10: [x] Beta: Use Unicode UTF-8 for worldwide language support

Post by DrKnS »

Что именно ломает?
F8 - это переключение ANSI/OEM. Если ANSI == OEM == UTF-8, то переключать, очевидно, нечего.
2useven10
Posts: 5209
Joined: Mon 07 Sep, 2009 10:40
Has thanked: 18 times
Been thanked: 310 times

Windows 10: [x] Beta: Use Unicode UTF-8 for worldwide language support

Post by 2useven10 »

Зависит от точки зрения.
Для меня то что кто-то придумал эту витиевато названную настройку не отменяет того,
что в русской локали OEM CP=866, а ANSI CP=1251, как и потребность в быстром переключении на эти страницы.
Last edited by 2useven10 on Wed 22 Sep, 2021 03:26, edited 1 time in total.
User avatar
buniak_a_h
Posts: 4236
Joined: Sat 20 Apr, 2013 00:17
Location: Санкт-Петробад
Has thanked: 222 times
Been thanked: 643 times
Contact:

Windows 10: [x] Beta: Use Unicode UTF-8 for worldwide language support

Post by buniak_a_h »

В одном из старых-старых своих скриптов я вместо win.GetACP() написал явно 1251, за что был нещадно бит. Теперь пришлось переделывать на 1251 :-)
На самом деле много чего ломает. Попап-меню многих программ (не имеющих отношения к FAR-у) стало нечитабельным.
Ну и странно видеть win.GetACP()=65001, win.GetOEMCP()=65001 (тоже!!!). А смысл в них тогда?
User avatar
DrKnS
Posts: 6114
Joined: Thu 04 Aug, 2005 06:44
Location: Kyiv
Has thanked: 12 times
Been thanked: 426 times

Windows 10: [x] Beta: Use Unicode UTF-8 for worldwide language support

Post by DrKnS »

2useven10 wrote: Wed 22 Sep, 2021 03:25 потребность в быстром переключении на эти страницы
Ну так добавьте их себе, если есть потребность.
Некто w17 опцию сделал еще 7 лет назад.
2useven10
Posts: 5209
Joined: Mon 07 Sep, 2009 10:40
Has thanked: 18 times
Been thanked: 310 times

Windows 10: [x] Beta: Use Unicode UTF-8 for worldwide language support

Post by 2useven10 »

Про опцию я помню, сделаю когда допечёт (или откажусь от [x] Beta ... совсем).
Но, как мне кажется, потребность будет у многих.

Хотелось бы знать, нет ли способа получать OEM/ANSI (старые настоящие) страницы локали при включенной опции.
2useven10
Posts: 5209
Joined: Mon 07 Sep, 2009 10:40
Has thanked: 18 times
Been thanked: 310 times

Windows 10: [x] Beta: Use Unicode UTF-8 for worldwide language support

Post by 2useven10 »

А опция делалалсь для тех кто вынужден работать на системах с неродной локалью.
Остальные (большинство) по-умолчанию получали привычное (и удобное) поведение.
User avatar
DrKnS
Posts: 6114
Joined: Thu 04 Aug, 2005 06:44
Location: Kyiv
Has thanked: 12 times
Been thanked: 426 times

Windows 10: [x] Beta: Use Unicode UTF-8 for worldwide language support

Post by DrKnS »

2useven10 wrote: Wed 22 Sep, 2021 14:30 нет ли способа получать OEM/ANSI (старые настоящие) страницы локали при включенной опции
Судя по тому, что опция просто меняет ACP, OEMCP, MACCP в HKLM\SYSTEM\CurrentControlSet\Control\Nls\CodePage на 65001 - вряд ли.
2useven10
Posts: 5209
Joined: Mon 07 Sep, 2009 10:40
Has thanked: 18 times
Been thanked: 310 times

Windows 10: [x] Beta: Use Unicode UTF-8 for worldwide language support

Post by 2useven10 »

Imho, в этом случае самым удобным для пользователей вариантом было бы добавить эти CP в настройки farmanager.
User avatar
DrKnS
Posts: 6114
Joined: Thu 04 Aug, 2005 06:44
Location: Kyiv
Has thanked: 12 times
Been thanked: 426 times

Windows 10: [x] Beta: Use Unicode UTF-8 for worldwide language support

Post by DrKnS »

Положить в дистрибутив Addons\Codepages\<language_code>.farconfig с парами для вышеупомянутой опции не проблема, или речь о чем-то другом?
2useven10
Posts: 5209
Joined: Mon 07 Sep, 2009 10:40
Has thanked: 18 times
Been thanked: 310 times

Windows 10: [x] Beta: Use Unicode UTF-8 for worldwide language support

Post by 2useven10 »

Нет, я имел ввиду добавить что-то вроде Codepage.OEM и CodePage.ANSI в настройки.
А все (может почти все) вызовы GetOEMCP(), GetACP() заменить на wrapper-ы которые будут учитывать эти настройки.
User avatar
DrKnS
Posts: 6114
Joined: Thu 04 Aug, 2005 06:44
Location: Kyiv
Has thanked: 12 times
Been thanked: 426 times

Windows 10: [x] Beta: Use Unicode UTF-8 for worldwide language support

Post by DrKnS »

2useven10 wrote: Wed 22 Sep, 2021 17:00 добавить что-то вроде Codepage.OEM и CodePage.ANSI в настройки
Добавить дело не хитрое, тем более что врапперы там уже давно.

Это повлияет на F8, пункты ANSI & OEM в меню кодовых страниц, diz и анси-плагины, вроде все.

Однако, плагины, вызывающие GetACP / GetOEMCP, будут по-прежнему получать 65001 и где-то получится бардак. Что с ними делать - хукать эти импорты у каждой загружаемой dll? А есть еще и CP_ACP / CP_OEMCP, где хукать нечего, но они тоже резолвятся в 65001 внутри ОС. Хукать все API, куда это теоретически можно передать?

Я бы забил. Эта опция наносит больше вреда, чем пользы. Каждый включивший ее ССЗБ рано или поздно задолбается и выключит обратно.
Эти приседания будут иметь смысл, если лет через 10 MS вдруг надумает причинять добро всем и включит ее по умолчанию.
2useven10
Posts: 5209
Joined: Mon 07 Sep, 2009 10:40
Has thanked: 18 times
Been thanked: 310 times

Windows 10: [x] Beta: Use Unicode UTF-8 for worldwide language support

Post by 2useven10 »

CP_XXX да, придётся изживать, а плагинам расширить API.
Но пока это бэта опция, пожалуй, действительно торопиться с капитальным ремонтом рано.
Post Reply

Return to “Глюки и баги”