|
|
ru.unix- RU.UNIX ---------------------------------------------------------------------- From : Artur Penttinen 2:5020/400 22 Sep 2004 23:40:36 To : all Subject : Вопрос об m4 -------------------------------------------------------------------------------- Задача -- у некоей софтинки конфигурационный файл можно загружать через m4 перпроцессор. Есть желание скидывать куски конфига в некий каталог и читать их оттуда. Hаписал макрос для m4 (упрощенный вариант): define(`readconf',`ifelse($#,0,,`sinclude($1)readconf(shift($*))')') при запуске readconf(aa.m4,bb.m4) зацикливается (aa.m4 и bb.m4 простые файлы с define для проверки): # m4 -dtae test.conf m4trace: -1- define(readconf, ifelse($#,0,,`sinclude($1)readconf(shift($*))')) m4trace: -1- readconf(aa.m4, bb.m4) -> ifelse(2,0,,`sinclude(aa.m4)readconf(shift(aa.m4,bb.m4))') m4trace: -1- ifelse(2, 0, , sinclude(aa.m4)readconf(shift(aa.m4,bb.m4))) -> sinclude(aa.m4)readconf(shift(aa.m4,bb.m4)) m4trace: -1- sinclude(aa.m4) m4trace: -1- define(aa, foo) m4trace: -2- shift(aa.m4, bb.m4) -> `bb.m4' m4trace: -1- readconf(bb.m4) -> ifelse(1,0,,`sinclude(bb.m4)readconf(shift(bb.m4 ))') m4trace: -1- ifelse(1, 0, , sinclude(bb.m4)readconf(shift(bb.m4))) -> sinclude(bb.m4)readconf(shift(bb.m4)) m4trace: -1- sinclude(bb.m4) m4trace: -1- define(bb, bar) m4trace: -2- shift(bb.m4) m4trace: -1- readconf() -> ifelse(1,0,,`sinclude()readconf(shift())') m4trace: -1- ifelse(1, 0, , sinclude()readconf(shift())) -> sinclude()readconf(shift()) m4trace: -1- sinclude() m4trace: -2- shift() m4trace: -1- readconf() -> ifelse(1,0,,`sinclude()readconf(shift())') m4trace: -1- ifelse(1, 0, , sinclude()readconf(shift())) -> sinclude()readconf(shift()) ... вопрос: где я неправ? пс. заменить m4 не предлагать. wbw,artur (Tishri 7, 5765) -- Скромность украшает мужчину, когда его больше уже ничто не украшает --- ifmail v.2.15dev5.3 * Origin: ase,cap gemini,ernst&young (2:5020/400) Вернуться к списку тем, сортированных по: возрастание даты уменьшение даты тема автор
Архивное /ru.unix/11489d870d917.html, оценка из 5, голосов 10
|