È 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.
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.