Używanie wyrażeń warunkowych w makrach

Można dodać warunkowe wyrażenia do makra, stosując polecenie, które wprowadza wyrażenia makra napisane w języku DIESEL (Direct Interpretively Evaluated String Expression Language).

Ma następujący format:

$M=expression

Wprowadzenie makra za pomocą wyrażenia $M= informuje aplikację, że ma potraktować ciąg tekstowy jako wyrażenie w języku DIESEL i że to wyrażenie jest wyrażeniem języka DIESEL. W poniższym przykładzie zdefiniowano wyrażenie warunkowe makra:

FILLMODE $M=$(-,1,$(getvar,fillmode))

Makro włącza i wyłącza zmienną systemową FILLMODE, odejmując bieżącą wartość FILLMODE od 1 i zwracając wartość wynikową do zmiennej systemowej FILLMODE. Metody tej można używać do przełączania stanu tych zmiennych systemowych, dla których dopuszczalnymi wartościami są 1 i 0.

Kończenie makr zawierających wyrażenia warunkowe

Jeśli w ciągu tekstowym języka DIESEL są wykonywane testy „jeśli-to”, mogą występować warunki, w których niepożądane jest występowanie znaków kończących, takich jak odstępy lub średniki (równoważne naciśnięciu klawisza Enter). W przypadku dodania znaku ^Z na końcu makra aplikacja nie dodaje automatycznie odstępu (naciśnięcia klawisza Enter) na końcu wyrażenia makra.

Podobnie jak inne znaki sterujące w poleceniach użyty tu znak ^Z jest ciągiem składającym się z ^ (znaku daszka) i litery Z i nie jest równoważny naciśnięciu klawiszy Ctrl+Z (lub Control-Z w systemie Mac OS).

W następnych przykładach ^Z jest używane jako znak kończący działanie makra.

^C^C$M=$(if,$(=,$(getvar,tilemode),0),$S=mview _mspace )^Z
^C^C$M=$(if,$(=,$(getvar,tilemode),0),$S=mview _pspace )^Z

Gdyby makra te nie były zakończone znakiem ^Z, aplikacja dodałaby automatycznie spację (Enter), co spowodowałoby powtórzenie ostatniego wprowadzonego polecenia.