Сдвигается строка (и рамки) в панелях при наличии некоторых (многих) символов в имени файла

Здесь можно сообщить о найденных багах в Far.
User avatar
zg
zero-gravity
Posts: 6035
Joined: Tue 15 Mar, 2005 17:36
Location: riga
Been thanked: 185 times
Contact:

какието проблемы при выводе в списке файлов какого-то символа

Post by zg »

Latest post of the previous page:

mxn wrote: Wed 25 Oct, 2017 09:52вопрос не в исправлении имени файла, а в некорреткной работы программы.
некорректно работающая программа — консоль windows, почему вы нам-то пишете?
2useven10
Posts: 5226
Joined: Mon 07 Sep, 2009 10:40
Has thanked: 18 times
Been thanked: 314 times

какието проблемы при выводе в списке файлов какого-то символа

Post by 2useven10 »

Imho, когда символ отображается и текст не съезжает - это для консоли корректная работа.
User avatar
John Doe
Бюрократ
Posts: 13851
Joined: Wed 27 Apr, 2005 20:42
Has thanked: 73 times
Been thanked: 428 times
Contact:

какието проблемы при выводе в списке файлов какого-то символа

Post by John Doe »

2useven10 wrote: Wed 25 Oct, 2017 10:53символ отображается и текст не съезжает
Если символ с нулевой шириной, то съезжание текста вполне ожидаемо.
Консоли не известно как вы там колонки хотите сформировать в этом вашем фаре.
User avatar
zg
zero-gravity
Posts: 6035
Joined: Tue 15 Mar, 2005 17:36
Location: riga
Been thanked: 185 times
Contact:

какието проблемы при выводе в списке файлов какого-то символа

Post by zg »

A screen buffer is a two-dimensional array of character and color data for output in a console window.
The size of a screen buffer is expressed in terms of a coordinate grid based on character cells. The width is the number of character cells in each row, and the height is the number of rows. Associated with each screen buffer is a window that determines the size and location of the rectangular portion of the console screen buffer displayed in the console window. A screen buffer's window is defined by specifying the character-cell coordinates of the upper left and lower right cells of the window's rectangle.
Last edited by zg on Wed 25 Oct, 2017 11:12, edited 1 time in total.
2useven10
Posts: 5226
Joined: Mon 07 Sep, 2009 10:40
Has thanked: 18 times
Been thanked: 314 times

какието проблемы при выводе в списке файлов какого-то символа

Post by 2useven10 »

API консоли для такой экзотики не приспособлено никак.
Приблизительно как программа считающая, что все символы однобайтные для работы с UTF8.
Именно поэтому отображение таких символов для консоли правильное поведение.
User avatar
John Doe
Бюрократ
Posts: 13851
Joined: Wed 27 Apr, 2005 20:42
Has thanked: 73 times
Been thanked: 428 times
Contact:

какието проблемы при выводе в списке файлов какого-то символа

Post by John Doe »

zg, очевидно, что тут не определено поведение для символов с "нулевой шириной".
Собственно это по сути и не символы, а модификаторы.
(Чтобы умничать дальше, придётся восстановить в памяти терминологию unicode, поэтому прошу не придираться к словам).

Что касается фара, то можно улучшить ситуацию. Потенциально вижу два пути:
1. Нормализовать строки композицией в NFC (NFKD, NFKC).
2. Выводить каждую колонку отдельно, честно задавая координаты её начала.
mxn
Posts: 7
Joined: Wed 25 Oct, 2017 07:21

какието проблемы при выводе в списке файлов какого-то символа

Post by mxn »

zg wrote: Wed 25 Oct, 2017 10:48
mxn wrote: Wed 25 Oct, 2017 09:52вопрос не в исправлении имени файла, а в некорреткной работы программы.
некорректно работающая программа — консоль windows, почему вы нам-то пишете?
я любого ответа ожидал, но не такого бредового)
в переводе на русский:
- Ваше программа, рассчитанная на мою ОС, не работает под ней
- Мы не виноваты, виновата ОС
))

Но я понял. проблема решена. т.е. это даже не проблема была, а попытка помочь обнаружить ошибку.
ошибку в проге, которую я уже 20 лет использую и отказаться не могу.

Спасибо и Удачи!
2useven10
Posts: 5226
Joined: Mon 07 Sep, 2009 10:40
Has thanked: 18 times
Been thanked: 314 times

какието проблемы при выводе в списке файлов какого-то символа

Post by 2useven10 »

mxn, похоже за 20 лет вы так и не прочли правила форума.
mxn
Posts: 7
Joined: Wed 25 Oct, 2017 07:21

какието проблемы при выводе в списке файлов какого-то символа

Post by mxn »

2useven10 wrote: Wed 25 Oct, 2017 11:50mxn, похоже за 20 лет вы так и не прочли правила форума.
только что прочёл, никаких нарушений, оскорблений и т.п.)

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

какието проблемы при выводе в списке файлов какого-то символа

Post by DrKnS »

John Doe wrote: Wed 25 Oct, 2017 11:33Потенциально вижу два пути:
1. Нормализовать строки композицией в NFC (NFKD, NFKC).
2. Выводить каждую колонку отдельно, честно задавая координаты её начала.
1. Никак не поможет одиночным символам меньшей или большей ширины.
2. Это, увы, будет чудовищно тормозить.
User avatar
John Doe
Бюрократ
Posts: 13851
Joined: Wed 27 Apr, 2005 20:42
Has thanked: 73 times
Been thanked: 428 times
Contact:

какието проблемы при выводе в списке файлов какого-то символа

Post by John Doe »

DrKnS wrote: Wed 25 Oct, 2017 12:151. Никак не поможет одиночным символам меньшей или большей ширины.
Если символы выводятся не моноширинные, то приходится признать, что это всё-таки баг консоли.
Плюс, вижу что у 2useven10 и mxn поведение отличается. Если текст действительно один и тот же (не факт), то это тем более не фар виноват.
2. Это, увы, будет чудовищно тормозить.
Так ли чудовищно? (вопрос чисто для общего развития)
User avatar
zg
zero-gravity
Posts: 6035
Joined: Tue 15 Mar, 2005 17:36
Location: riga
Been thanked: 185 times
Contact:

какието проблемы при выводе в списке файлов какого-то символа

Post by zg »

John Doe wrote: Wed 25 Oct, 2017 12:27Если символы выводятся не моноширинные, то приходится признать, что это всё-таки баг консоли.
серьёзно? вы раздел про консоль в мсдн вообще читали? там пикселей нет совсем. есть символы. ВСЕ ОДИНАКОВОГО РАЗМЕРА. даже размер одного символа в реальных пикселях нормального способа узнать нет.
про скорость, я разницу между [x] ClearType friendly redraw (can be slow) и [ ] ClearType friendly redraw (can be slow) вижу на больших размерах консоли. это при том, что количества системных вызовов не меняется.
User avatar
John Doe
Бюрократ
Posts: 13851
Joined: Wed 27 Apr, 2005 20:42
Has thanked: 73 times
Been thanked: 428 times
Contact:

какието проблемы при выводе в списке файлов какого-то символа

Post by John Doe »

zg wrote: Wed 25 Oct, 2017 12:55серьёзно? вы раздел про консоль в мсдн вообще читали? там пикселей нет совсем. есть символы. ВСЕ ОДИНАКОВОГО РАЗМЕРА.
Вроде бы об этом я и пытался сказать.
Поскольку никакой "ширины" не предусмотрены, выводиться они должны в одном размере.
User avatar
zg
zero-gravity
Posts: 6035
Joined: Tue 15 Mar, 2005 17:36
Location: riga
Been thanked: 185 times
Contact:

какието проблемы при выводе в списке файлов какого-то символа

Post by zg »

John Doe wrote: Wed 25 Oct, 2017 13:00Поскольку никакой "ширины" не предусмотрены, выводиться они должны в одном размере.
вы уж как-то определитесь:
John Doe wrote: Wed 25 Oct, 2017 11:02Консоли не известно как вы там колонки хотите сформировать в этом вашем фаре.
User avatar
John Doe
Бюрократ
Posts: 13851
Joined: Wed 27 Apr, 2005 20:42
Has thanked: 73 times
Been thanked: 428 times
Contact:

какието проблемы при выводе в списке файлов какого-то символа

Post by John Doe »

Я вполне определён.
А вот юникод не настолько, и несколько элементов могут объединяться, образуя один символ.
Могу предположить, что функции форматирования строк, используемые фаром, этого не учитывают (не факт, что должны, я только лишь говорю, что вопрос неоднозначный)
User avatar
zg
zero-gravity
Posts: 6035
Joined: Tue 15 Mar, 2005 17:36
Location: riga
Been thanked: 185 times
Contact:

какието проблемы при выводе в списке файлов какого-то символа

Post by zg »

John Doe wrote: Wed 25 Oct, 2017 13:17я только лишь говорю, что вопрос неоднозначный
фигню вы говорите. вопрос однозначный. в апи ширины в пикселях нет. да можно использовать полулегальные методы, но консоль обновилась или появились масштабы отличные от 100% или просто другие настройки по подстановке отсутствующих глифов или ещё что — работать уже не будет.
Post Reply

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