On Tue, Aug 12, 2008 at 01:58:53AM +0400, Aleksey Avdeev wrote: > >On Tue, Aug 12, 2008 at 01:48:36AM +0400, Aleksey Avdeev wrote: > >> Решая задачу проверки использования > >> (не объявления) макроса в спеке > >> нарисовал такое регулярное выражение > >>(для egrep): > >> > >>'%(<макрос>($|[^[:alnum:]_])|([{](<макрос>[}]|(|!)\?<макрос>[:}])))' > >> > >> Вопросы: > >> > >>1. Все ли случаи я учёл? > > > >%% работает как escape для %. > > Слона то я и не приметил... > > > > >Короче, я не думаю, что Вам нужно решать > >эту задачу. > > Для тестов repocop`а нужно... А что за тест? Там столько условий всяких, что регулярными выражениями просто так не отделаться. Escpae в свою очередь подвержен eval'у. $ rpm --eval '%{expand:%%_libdir}' /usr/lib64 $ Используется макрос %_libdir или не используется? $ rpm --eval '%{expand:%%%(echo _lib)dir}' /usr/lib64 $