воскресенье, 23 января 2011 г.

Luicida Console фонт и проблема знакоместа 0D


несколько человек написали про одну и ту же проблему:
если в win7 выставлен фонт Luicida Console, то в hiew не отображаются символы 0D,0A, то есть их вообще нет, нет знакоместа как такового, но если курсор стоит конкретно на этом символе - он возникает ниоткуда, во как!
на той win7 что есть у меня (пустая pro32 под vm) это не воспроизводится, подозреваю какое-то сочетание консольной ansi-программы и конкретного truetype фонта.
как исправить - не знаю тоже, кроме как сменить фонт.

если кто что может подсказать - пишите в комментариях либо на e-mail.

update: одна из присланных картинок:

7 комментариев:

  1. А что отображается квадратики?

    Подозреваю что да, и это не только с OD OA а с символами 0-19h & 127h.

    решения два:

    1) либо юзать пропатченный фонт, где на этих кодах произведён ремаппинг на другой код с такими же символами.

    пример:
    http://www.rapidspread.com/file.jsp?id=035x5pzcpo

    либо в hiew надо заюзать ремаппинг:

    Пример кода надо смотреть в FAR2
    interf.hpp

    inline void SetVidChar(CHAR_INFO& CI,wchar_t Chr)
    {
    CI.Char.UnicodeChar = (Chr<L'\x20'||Chr==L'\x7f')?Oem2Unicode[Chr]:Chr;
    }

    ОтветитьУдалить
  2. в том-то весь фокус что не квадратики.
    0D просто пропускается, 12\x0D34 отображается как 1234, все что после 0D на экране сдвигается.

    ОтветитьУдалить
  3. Это не шрифт Lucida Console, а шрифт Consolas. У меня подтверждается на виртуалке.

    А с Lucida Console есть проблемы даже на WinXP.
    Скриншоты сейчас отправлю на мыло.

    ОтветитьУдалить
  4. дык всё равно таже проблема посмотри как отображаются коды 00-19h

    вот ещё 3-е решение работать с Hiew через Conemu

    http://screenshot.su/show.php?img=35ef5ac6d977eeee5a13502c145e81ad.jpg

    Последний брать тут:
    http://code.google.com/p/conemu-maximus5/downloads/list

    ОтветитьУдалить
  5. у меня на xp проблем в lucida console с исчезновением 0D нет, сейчас consolas скачаю поставлю

    ОтветитьУдалить
  6. ага, щасчерезчас, оригинальный установочный пакет consolas'a с сайта microsoft нагло заявил что он будет ставиться только после установки vs2005/8, опять пришлось все делать руками.
    и да - описываемый глюк под xp с фонтом consolas имеет место быть.

    будет свободное время, попробую обойти исчезновение через юникод-маппинг.

    всезнайка гугль сразу подсказал сайт с само за себя говорящим именем http://www.unicodemap.org/
    вот отсюда символы можно взять для подстановки http://www.unicodemap.org/range/55/Miscellaneous_Symbols/

    ОтветитьУдалить
  7. быстрый эксперимент показал что не надо никакого своего ремаппинга, у функции MultiByteToWideChar есть флаг MB_USEGLYPHCHARS который сам перемапит управляющие символы

    ОтветитьУдалить