mdview2: оптимизация размера — exe 28215 → 25616 (−2599 Б)
Раунд 1 (−1411): --max-allocs 100000 в Makefile (−848 кода) + снятие
всех нулевых инициализаторов file-scope переменных (_INITIALIZER
583→24; _DATA теперь зануляется в crt0).
Раунд 2 (−1188, индексатор 11019→9839): дедупликации в mdview2_index.c:
- classify_line: копия HR-проверки → вызов is_hr_raw;
- next_line() поверх row_end() вместо 9 копий «домотать до \n»;
- inline_marker: emph_to_attr(ls, base) вычисляется один раз (at);
- set_{nowrap,blank,code,hscroll}_cur → set_cur_flags(mask): строка
code-блока делает один idx_put вместо трёх.
Проверено в MAME (README/UTF8TEST: маркеры, списки, цитаты, таблицы,
code-блоки, F8).
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This commit is contained in:
@@ -19,8 +19,8 @@
|
||||
|
||||
#if WITH_RAW /* весь модуль — опционален (mdview_conf.h); при 0 пустой объектник */
|
||||
|
||||
static uint32_t raw_top = 0; /* байт-offset верхней строки экрана */
|
||||
static uint16_t raw_hpan = 0; /* гориз. сдвиг (только HSCROLL) */
|
||||
static uint32_t raw_top; /* байт-offset верхней строки экрана */
|
||||
static uint16_t raw_hpan; /* гориз. сдвиг (только HSCROLL) */
|
||||
|
||||
/* ---- примитивы навигации по физическим строкам / переносам -------- */
|
||||
|
||||
|
||||
Reference in New Issue
Block a user