fix(cfe-borrow): картинка элемента копируется только по голому имени файла

Значение xr:Abs и имя элемента с разделителем пути или «..» пропускаются
с предупреждением: иначе чтение и запись уходили за пределы Items, а порты
расходились на имени со «/». Источник-каталог больше не принимается за файл
картинки в PS-порте (как и в py).

Кейсы: предупреждение о картинке, которой нет в источнике; повторное
заимствование проверяет и вывод «Preserved existing».

Co-Authored-By: AndromanPro <AndromanPro@gmail.com>
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
This commit is contained in:
Nick Shirokov
2026-09-26 19:28:57 +03:00
co-authored by AndromanPro Claude Opus 5.5
parent 651065093e
commit 69745af336
29 changed files with 1029 additions and 2 deletions
@@ -2224,6 +2224,11 @@ def main():
pic_file_name = (abs_node.text or "").strip()
if not pic_el_name or not pic_file_name:
continue
# Платформа пишет сюда голое имя файла. Иное (путь, «..») — не наша выгрузка: мимо Items не ходим.
if ("\\" in pic_el_name or "\\" in pic_file_name or "/" in pic_el_name or "/" in pic_file_name
or pic_el_name in (".", "..") or pic_file_name in (".", "..")):
warn(f" Картинка элемента пропущена — не имя файла: {pic_el_name} / {pic_file_name}")
continue
rel = f"{pic_el_name}/{pic_file_name}"
if rel not in pic_rels:
pic_rels.append(rel)