Bug #589
Некорректно отрабатываются шаблоны
Status: | New | Start: | 07/07/2013 | |
---|---|---|---|---|
Priority: | Normal | Due date: | ||
Assignee: | Alexander Tratsevskiy | % Done: | 0% |
|
Category: | Calculate Utilities | Spent time: | - | |
Target version: | - | |||
Votes: | 1 |
Description
Если верить ^
- начало строки.
К примеру:
следующий шаблон для /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 утилиты, но не в багтрекере. Надеюсь после того, как описал эту проблему тут - она будет решена.
History
Updated by Михаил Гагауз over 11 years ago
Сорри, в примере не работающего скрипта не вставил ^
, имелось ввиду вот-так:
...
Если же добавить указатель начала строки - шаблон не срабатывает
# 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>
...
Updated by Сергей Семёнов about 11 years ago
Тоже наткнулся на данный баг.
Определил, что ^ обрабатывается только для первой строки:
Исходный файл /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