Bug #589
Некорректно отрабатываются шаблоны
Статус: | New | Начата: | 07.07.2013 | |
---|---|---|---|---|
Приоритет: | Normal | Дата выполнения: | ||
Назначена: | Alexander Tratsevskiy | Готовность в %: | 0% |
|
Категория: | Calculate Utilities | Затраченное время: | - | |
Версия: | - | |||
Голоса: | 1 |
Описание
Если верить ^
- начало строки.
К примеру:
следующий шаблон для /etc/nanorc работает корректно
# Calculate format=patch <reg>#\s+(set\s+(autoindent|const|morespace|noconvert|nonewlines|nowrap|regexp|smarthome|smooth|softwrap)|include)</reg> <text>\1</text> <reg>#\s+(set\s+tabsize)\s+\d+</reg> <text>\1 4</text>
Если же добавить указатель начала строки - шаблон не срабатывает
# Calculate format=patch <reg>#\s+(set\s+(autoindent|const|morespace|noconvert|nonewlines|nowrap|regexp|smarthome|smooth|softwrap)|include)</reg> <text>\1</text> <reg>#\s+(set\s+tabsize)\s+\d+</reg> <text>\1 4</text>
Это один из примеров, где такое может быть необходимо. И здесь такая ошибка не приводит к серьезным проблемам (просто, без указания начала строки, чуть портится один из комментариев)
Конечно, того-же можно было-бы добиться и через
exec
-шаблон, вызвав из него sed с параметрами.Но если есть
format=patch
, использовать sed
, имхо, будет сродни хинди-кодингу.
Кажется я уже поднимал эту тему только при переходе на calculate3 утилиты, но не в багтрекере. Надеюсь после того, как описал эту проблему тут - она будет решена.
История
Обновлено Михаил Гагауз больше 11 лет назад
Сорри, в примере не работающего скрипта не вставил ^
, имелось ввиду вот-так:
...
Если же добавить указатель начала строки - шаблон не срабатывает
# Calculate format=patch <reg>^#\s+(set\s+(autoindent|const|morespace|noconvert|nonewlines|nowrap|regexp|smarthome|smooth|softwrap)|include)</reg> <text>\1</text> <reg>^#\s+(set\s+tabsize)\s+\d+</reg> <text>\1 4</text>
...
Обновлено Сергей Семёнов около 11 лет назад
Тоже наткнулся на данный баг.
Определил, что ^ обрабатывается только для первой строки:
Исходный файл /etc/test:
1test3 1test3 1test4 2test4 2test5 2test5
Накладываю шаблон:
# Calculate format=patch <reg>^1</reg> <text>odin</text> <reg>2</reg> <text>dva</text>
Содержимое результирующего файла /etc/test:
odintest3 1test3 1test4 dvatest4 dvatest5 dvatest5
Версия cldx-20131001-i686.iso