PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : [m4] Makro wird einmal expandiert und einmal nicht



axeljaeger
04-09-2003, 16:43
Es gibt irgendwie ganz wenig Dokumentation zu GNU m4 und hier im Forum kann man auch nicht danach suchen (min-Suchlänge drei Buchstaben). Jetzt hab ich hier nur ne ganz kleine Anleitung, da steht nicht viel drinn und ich stoße schon bei ein wenig ausprobieren an meine Grenzen: In folgender Datei werden die beiden Makros STYLESHEET und IMGDIR im Makro HEADER expandiert, nicht aber im Makro NAVBAR. Ich kann mir nicht erklären warum, wüsste es aber gerne, um nicht irgendwann mal böse überrascht zu werden.


define(`STYLESHEET', ifdef(`PREFIX', `PREFIX/css/gray.css',`css/gray.css'))
define(`IMGDIR', ifdef(`PREFIX', `PREFIX/gfx/',`gfx'))

define(`HEADER', `<?xml version="1.0"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>$1 IMGDIR</title>
<link rel="stylesheet" type="text/css" href="STYLESHEET"/>
</head>
<body>')

define(`NAVBAR', `<div id="nav"><a href="#"> STYLESHEET </a>|<a href="#">KDE Stuff</a></div>IMGDIR<div id="content">')

define(`FOOTER', `</div>
<div id="footer"><span style="padding-right: 10px;">Generated by m4 on esyscmd(`date')</span></div>
</body>
</html>')

axeljaeger
04-09-2003, 18:36
Ich glaub ich bin in letzter Zeit ein bißchen voreilig mit posten, ich konnte mein Problem selber lösen: m4 mag das anscheinend nicht, wenn in einem Makro ein # ist. Das muss man extra quoten, nämlich so `#´.