divert(-1) An experiment in defining macro options as key=val;key= ... `resistor( linespec, cycles=n;type=E|Q|H;side=L|R) chars : E=ebox Q=offset H=squared (default 3 cycles) R=to right of drawing direction' define(`sc_readkey', `pushdef(`m4xt',index(`$1',`$2'=))ifelse(m4xt,-1, `pushdef(`m4'$2,`$3')', `define(`m4tmp',substr(`$1',eval(m4xt+len(`$2')+1)))dnl ifelse(index(m4tmp,;),-1, `pushdef(`m4'$2,m4tmp)', `pushdef(`m4'$2,substr(m4tmp,0,index(m4tmp,;)))')')dnl popdef(`m4xt')') define(`xesistor', `sc_readkey(`$2',cycles,4)dnl sc_readkey(`$2',type,N)dnl sc_readkey(`$2',side,R)dnl popdef(`m4cycles')dnl popdef(`m4type')dnl popdef(`m4side')dnl ') divert(0)dnl % Test.m4 .PS xesistor(,type=E;cycles=5;) cycles:m4cycles type:m4type side:m4side .PE