Ввод \0 (0x00, нулевых символов) в редакторе

Столкнулись с проблемой в использовании Far? Здесь можно получить помощь.
Post Reply
User avatar
Grom PE
Posts: 34
Joined: Sun 21 Jun, 2015 14:24
Has thanked: 5 times
Been thanked: 2 times
Contact:

Ввод \0 (0x00, нулевых символов) в редакторе

Post by Grom PE »

В доюникодные времена нулевой символ 0x00 можно было вводить в редакторе Far'а с помощью Alt+num256, а теперь эта комбинация вводит символ U+0100.

Ещё пробовал скриптом Lua:

Code: Select all

print("hello\0world")
editor.InsertText(-1, "hello\0world")
Но API обрезают строку на символе \0.

Пока вижу только костыльный способ через уродование буфера обмена, как раз там недавно специально поддержку нулей добавили.

Я что-то упускаю из вида?
User avatar
zg
zero-gravity
Posts: 6016
Joined: Tue 15 Mar, 2005 17:36
Location: riga
Been thanked: 185 times
Contact:

Ввод \0 (0x00, нулевых символов) в редакторе

Post by zg »

это ограничение InsertText. editor.SetString(nil,1,"hello\0world") работает.
User avatar
Grom PE
Posts: 34
Joined: Sun 21 Jun, 2015 14:24
Has thanked: 5 times
Been thanked: 2 times
Contact:

Ввод \0 (0x00, нулевых символов) в редакторе

Post by Grom PE »

О! Это уже интересней. Теперь можно печатать строки с нулями:

Code: Select all

function binaryprint(text)
  local info = editor.GetInfo();
  local line = editor.GetString(-1, info.CurLine).StringText;
  line = line:sub(1, info.CurPos - 1) .. text .. line:sub(info.CurPos);
  editor.SetString(-1, info.CurLine, line);
  editor.SetPosition(-1, info.CurLine, info.CurPos + unicode.utf8.len(text));
end;

binaryprint("\0");
User avatar
DrKnS
Posts: 6114
Joined: Thu 04 Aug, 2005 06:44
Location: Kyiv
Has thanked: 12 times
Been thanked: 426 times

Ввод \0 (0x00, нулевых символов) в редакторе

Post by DrKnS »

Grom PE wrote: Sat 30 Sep, 2017 08:40В доюникодные времена нулевой символ 0x00 можно было вводить в редакторе Far'а с помощью Alt+num256
А теперь Alt+65536.
Post Reply

Return to “Нужна помощь”