Utilizzo di espressioni condizionali nelle macro

È possibile aggiungere espressioni condizionali ad una macro utilizzando un comando che introduce espressioni macro scritte in DIESEL (Direct Interpretively Evaluated String Expression Language).

Il formato è :

$M=expression

Introducendo la macro con $M= si richiede che la stringa che segue venga valutata come espressione DIESEL e si indica che espressione è l'espressione DIESEL. Nell'esempio che segue viene definita un'espressione condizionale in una macro:

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

La macro attiva e disattiva la variabile di sistema FILLMODE sottraendo il valore corrente di FILLMODE da 1 e restituendo il valore risultante alla variabile di sistema FILLMODE. Questo metodo può essere utilizzato per attivare e disattivare le variabili di sistema i cui valori validi sono 1 o 0.

Terminazione delle macro contenenti espressioni condizionali

Se si utilizza il linguaggio DIESEL per eseguire test di tipo if-then, possono verificarsi condizioni in cui non si desidera utilizzare il normale punto e virgola o spazio di terminazione (corrispondente a INVIO). Se si aggiunge ^Z alla fine della macro, non viene aggiunto automaticamente uno spazio (INVIO) alla fine dell'espressione macro.

Come per altri caratteri di controllo nei comandi, il carattere ^Z utilizzato in questi esempi è una stringa composta da ^ (un accento circonflesso) e Z e non equivale a premere CTRL+Z oppure Control-Z in Mac OS.

Negli esempi che seguono, ^Z viene utilizzato come terminatore della macro.

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

Se queste macro non terminassero con ^Z, verrebbe automaticamente aggiunto uno spazio (INVIO), ripetendo l'ultimo comando immesso.