Home Miszellaneen Indizes Formatspezifische Befehle

Abfragebefehle

In vielen Fällen ist es nötig, direkt im Quelltext verschiedene Passagen für die jeweiligen Formate oder Sprachen anzugeben. UDO bietet daher einen Satz Befehle, mit denen diese Abfragen erfolgen können.

Mit einem if...-Befehl wird eine Abfrage eingeleitet. Liefert die Abfrage ein wahres Ergebnis, so werden alle Zeilen bis zum Befehl !endif bzw. !else von UDO verarbeitet. Liefert die Abfrage ein falsches Ergebnis, so werden alle Zeilen bis zu !endif bzw. !else ignoriert.

Abfrage des Zielformats

Mit dem Befehl !ifdest können Sie das Format abfragen, welches von UDO ausgegeben wird. Zur Abfrage verwenden Sie die Kürzel der Ausgabeformate:

asc ASCII
aqv Apple-QuickView
htag HP-Helptag-SGML
html HTML
info Texinfo
ldoc Linuxdoc-SGML
lyx LyX
man Manualpage
pch Pure-C-Help
pdf PDF
rtf RTF
stg ST-Guide
tex LaTeX
tvh Turbo-Vision-Help
win WinHelp

Zusätzlich zu den hier genannten Zeichenketten können jeweils auch "all" und "none" verwendet werden. Bei "all" liefert eine Abfrage immer ein wahres Ergebnis, bei "none" immer ein falsches.

Das folgende Beispiel zeigt, wie man den Titel der Windows-Hilfe anders als für die anderen Formate setzt:

!ifdest [win]
!title Die Windows-Hilfe zu
!else
!title Die Anleitung zu
!endif

Verwandt mit dem !ifdest-Befehl ist der Befehl !ifndest. Hier wird abgefragt, ob man nicht in ein Format ausgibt. Das obige Beispiel läßt sich demnach auch folgendermaßen darstellen:

!ifndest [win]
!title Die Anleitung zu
!else
!title Die Windows-Hilfe zu
!endif

Bei den Abfragen können Sie natürlich auch mehrere Formatkürzel angeben. Die Abfrage liefert dann ein wahres Ergebnis, wenn mindestens ein Kürzel mit dem Ausgabeformat übereinstimmt. Mit folgender Abfrage können Sie z.B. den Hypertextformaten einen besonderen Titel verpassen:

!ifdest [win,html,stg,htag]
!title Der Hypertext zu
!else
!title Die Anleitung zu
!endif

Abfrage der Sprache

Mit dem Befehl !iflang können Sie die Sprache abfragen, die für die Ausgabe der Zieldatei verwendet wird. Hierbei gelten folgende Zeichenketten:

english: Englisch
french: Französisch
german: Deutsch
italian: Italienisch
spanish: Spanisch
swedish: Schwedisch

Zusätzlich zu den hier genannten Zeichenketten können jeweils auch "all" und "none" verwendet werden. Bei "all" liefert eine Abfrage immer ein wahres Ergebnis, bei "none" immer ein falsches.

Bei kleineren Texten können Sie so z.B. gleich alle Übersetzungen in einem Quelltext unterbringen:

!iflang [german]
!title Die Benutzeranleitung zu
!else
!title The User's Guide to
!endif

Auch hier gibt es den verwandten Befehl !ifnlang, der abfragt, ob nicht in eine Sprache ausgegeben wird. Das obige Beispiel ließe sich also auch so ausdrücken:

!ifnlang [german]
!title The User's Guide to
!else
!title Die Benutzeranleitung zu
!endif

Selbstverständlich können Sie auch bei dieser Abfrage wieder mehrere Sprachkürzel angeben. Ein Beispiel brauche ich dafür wohl nicht mehr angeben.

Abfrage von Symbolen

Mit dem Befehl !ifset können Sie testen, ob Symbole gesetzt sind, mit dem Befehl !ifnset, ob Symbole nicht gesetzt sind.

Wie Sie bereits wissen, können Sie Symbole mit der Kommandozeilenoption -D und mit dem Befehl !set setzen und mit dem Befehl !unset wieder löschen.

Im folgenden Beispiel wird abgefragt, ob das Symbol Farbbilder gesetzt ist und entsprechend ein passendes Bild eingebunden:

!ifset [Farbbilder]
!image colour/tiger
!else
!image mono/tiger
!endif

Wenn Sie nun UDO mit der Option -D Farbbilder aufrufen bzw. vor der obigen Abfrage das Kommando !set Farbbilder in den Quelltext einbauen, so bindet UDO ein Farbbild, andernfalls ein monochromes Bild ein.

Abfrage des Betriebssystems

Mit dem Befehl !ifos können Sie das Betriebssystem abfragen, auf dem UDO läuft. Hierbei gelten folgende Zeichenketten:

beos: BeOS
dos: DOS
hpux: HP-UX
linux: Linux
macos: MacOS
nextstep: NeXTStep
sinix: SINIX
sunos: SunOS
tos: TOS

Auch hier gilt, daß zusätzlich zu den genannten Zeichenketten auch "all" und "none" verwendet werden können.

Wiederum existiert ein verwandter Befehl namens !ifnos, der abfragt, ob UDO nicht auf dem angegebenen Betriebssystem läuft.


Home Miszellaneen Indizes Formatspezifische Befehle