mdview2: фоновая сборка второго набора кодировки в паузах между клавишами; версия v1.0 (b3)
- индексатор порезан на резюмируемые шаги index_begin/index_step/index_finish; межшаговое состояние в статиках модуля, в docset_t не входит - bg_build_start/bg_step: второй набор (UTF-8 при 8-битном первичном и наоборот) строится в idle главного цикла; холдаун после клавиш, спиннер погашен (g_bg_building) — фон незаметен - F8 до готовности докручивает начатое фоном (ветка resume в build_doc), а не строит заново; общий setup вынесен в doc_setup - кодировка в статус-баре показывается сразу (детект/F8), не дожидаясь конца индексации - побочный фикс: UTF-конвертация впереди проверки останова — >4КБ абзац больше не обрывает конвертацию остатка - README.md (новый, v1.0 b3), CHANGELOG.md; дискета: README/DEMO/CHANGES в трёх кодировках (пути автодетекта) Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This commit is contained in:
+20
-19
@@ -17,35 +17,36 @@ EXTRA_FLAGS := --max-allocs 100000
|
||||
include $(PROJ_ROOT)/app.mk
|
||||
|
||||
# ------------------------------------------------------------------
|
||||
# Образ дискеты: только mdview2.exe + README.MD (перекодированный
|
||||
# из UTF-8 в CP866 — рабочую кодировку Sprinter).
|
||||
#
|
||||
# README.MD хранится в репозитории в UTF-8; iconv -c конвертирует
|
||||
# его в CP866, отбрасывая символы без аналога в целевой кодировке.
|
||||
# Результат кладётся в .disk_tmp/README.MD, чтобы make_disk.py
|
||||
# использовал правильное имя файла на диске.
|
||||
# Образ дискеты: mdview2.exe + документация. Каждый документ — в СВОЕЙ
|
||||
# кодировке, чтобы дискета заодно покрывала все пути автодетекта:
|
||||
# README.MD — документация, ОРИГИНАЛЬНЫЙ UTF-8 (как в репозитории);
|
||||
# CHANGES.MD — история версий, CP866 (хранится так, кладётся как есть;
|
||||
# имя укорочено: "CHANGELOG" не влезает в FAT 8.3);
|
||||
# DEMO.MD — демонстрация разметки, конвертируется UTF-8 → CP1251.
|
||||
#
|
||||
# iconv -c возвращает ненулевой код, если хоть один символ отброшен
|
||||
# (даже с -c) — это ОЖИДАЕМО при потере символов без аналога в CP866,
|
||||
# не ошибка конвертации; вывод при этом всё равно корректно записан.
|
||||
# (даже с -c) — это ОЖИДАЕМО при потере символов без аналога в целевой
|
||||
# кодировке, не ошибка конвертации; вывод при этом корректно записан.
|
||||
# Поэтому код возврата iconv игнорируется (|| true).
|
||||
#
|
||||
# Тестовые файлы лимита 256 КБ лежат в testfiles/ (генератор gen_testfiles.py);
|
||||
# на диск НЕ кладутся — при необходимости добавить вручную в список ниже.
|
||||
# ------------------------------------------------------------------
|
||||
DISK_TMP := .disk_tmp
|
||||
README_DISK := $(DISK_TMP)/README.MD
|
||||
DEMO_DISK := $(DISK_TMP)/DEMO.MD
|
||||
CHLOG_DISK := $(DISK_TMP)/CHANGES.MD
|
||||
|
||||
$(DISK_TMP):
|
||||
mkdir -p $@
|
||||
|
||||
$(README_DISK): README.MD | $(DISK_TMP)
|
||||
iconv -c -f UTF-8 -t CP866 README.MD > $@ || true
|
||||
$(CHLOG_DISK): CHANGELOG.md | $(DISK_TMP)
|
||||
cp CHANGELOG.md $@
|
||||
|
||||
# UTF8TEST.MD кладётся на диск КАК ЕСТЬ (в UTF-8, без перекодировки) —
|
||||
# это тестовый вход для проверки UTF-8 рендеринга (Фаза 2 кодировок).
|
||||
#
|
||||
# Тестовые файлы лимита 256 КБ лежат в testfiles/ (генератор gen_testfiles.py);
|
||||
# на диск НЕ кладутся — при необходимости добавить вручную в список ниже.
|
||||
floppy: $(EXAMPLE).exe $(README_DISK)
|
||||
python3 $(MAKE_DISK) $(FLOPPY_IMG) $(EXAMPLE).exe $(README_DISK) UTF8TEST.MD
|
||||
$(DEMO_DISK): DEMO.MD | $(DISK_TMP)
|
||||
iconv -c -f UTF-8 -t CP1251 DEMO.MD > $@ || true
|
||||
|
||||
floppy: $(EXAMPLE).exe $(DEMO_DISK) $(CHLOG_DISK)
|
||||
python3 $(MAKE_DISK) $(FLOPPY_IMG) $(EXAMPLE).exe README.md $(DEMO_DISK) $(CHLOG_DISK)
|
||||
@echo
|
||||
@echo "Floppy ready: $(FLOPPY_IMG)"
|
||||
@echo "Run: cd $(MAME_DIR) && ./run_mame.sh"
|
||||
|
||||
Reference in New Issue
Block a user