mdview2: лимит файла 256 КБ, обрыв с сообщением вместо потери строк
- MAX_PAGES 8->16 (256 КБ), MAX_INDEX_PAGES/MAX_CACHE_DIR_PAGES 8->9 (18432 строк), кап контент-кэша 64->40 стр./набор (80 на оба). Бюджет worst-case (UTF-8 Latin+BOM): ~150 из 215 EMM-страниц. - При исчерпании контент-кэша (cache_reserve==0) или лимита строк индексация обрывается и последняя строка заменяется предупреждением (IF_TRUNC_MSG, рисуется вживую с ATTR_WARN — жёлтый по красному), без хвоста пустых строк. Раньше переполнение молча давало len=0 (пустые строки) без какого-либо индикатора. - help: лимиты обновлены (256 КБ / 18432 строк). Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
@@ -28,6 +28,19 @@ static void draw_line_from_cache(uint16_t line_idx, uint8_t row)
|
||||
cache_rec_t rec;
|
||||
cache_dir_get(line_idx, &rec);
|
||||
|
||||
/* Строка-обрыв (исчерпан контент-кэш / лимит строк): фикс. текст вживую,
|
||||
* без обращения к контент-кэшу (см. index_lines финализацию). */
|
||||
if (rec.flags & IF_TRUNC_MSG) {
|
||||
bios_set_place(row, 0);
|
||||
bios_fillcharattr(' ', ATTR_WARN, SCREEN_W);
|
||||
put_str_attr(2, row,
|
||||
(rec.reserved == TRUNC_LINES)
|
||||
? "*** Line limit reached - document truncated ***"
|
||||
: "*** Content cache exhausted - document truncated ***",
|
||||
ATTR_WARN);
|
||||
return;
|
||||
}
|
||||
|
||||
bios_set_place(row, 0);
|
||||
bios_fillcharattr(' ', ATTR_TEXT, SCREEN_W);
|
||||
|
||||
|
||||
Reference in New Issue
Block a user