=================================================================== RCS file: /cvsrepo/anoncvs/cvs/src/etc/MAKEDEV.sub,v retrieving revision 1.5 retrieving revision 1.6 diff -c -r1.5 -r1.6 *** src/etc/MAKEDEV.sub 2002/01/23 06:02:19 1.5 --- src/etc/MAKEDEV.sub 2002/02/14 05:50:37 1.6 *************** *** 1,4 **** ! dnl $OpenBSD: MAKEDEV.sub,v 1.5 2002/01/23 06:02:19 todd Exp $ dnl dnl Copyright (c) 2001 Todd T. Fries dnl All rights reserved. --- 1,4 ---- ! dnl $OpenBSD: MAKEDEV.sub,v 1.6 2002/02/14 05:50:37 todd Exp $ dnl dnl Copyright (c) 2001 Todd T. Fries dnl All rights reserved. *************** *** 30,36 **** dnl o First, a change of quote to make shell statements like: `command` dnl possible dnl ! changequote(`{-',`-}')dnl dnl dnl o version info must be stripped of $ so we can say 'generated from' below dnl --- 30,36 ---- dnl o First, a change of quote to make shell statements like: `command` dnl possible dnl ! changequote(`{-', `-}')dnl dnl dnl o version info must be stripped of $ so we can say 'generated from' below dnl *************** *** 45,106 **** dnl Initialize the stacks stored in _m4_* dnl undefine({-_m4_cvs_ver-})dnl ! pushdef({-_m4_cvs_ver-},{-done-})dnl dnl undefine({-_m4_devs-})dnl ! pushdef({-_m4_devs-},{-done-})dnl dnl undefine({-_m4_disks-})dnl undefine({-_m4_disks2-})dnl ! pushdef({-_m4_disks-},{-done-})dnl ! pushdef({-_m4_disks2-},{-done-})dnl dnl dnl define stack 'add to' functions, only unique names queued dnl ! define({-ver_q-},{-ifelse(index($1_ver,y),0,, ! {-pushdef({-_m4_cvs_ver-},{-$2-})define({-$1_ver-},{-y-})-})-})dnl ver_q dnl ! define({-dev_q-},{-ifelse(index(_q_$1_dev,:),0, {-errprint({-duplicated dev id: $1 at -}__file__{-:-}__line__ originally at _q_$1_dev)-}, ! {-pushdef({-_m4_devs-},{-$1-})dnl ! define({-_q_$1_dev-},{-:-}__file__{-:-}__line__)-})-})dnl dev_q dnl ! define({-disk_q-},{-ifelse(index(_q_$1_disk,:),0, ! {-errprint({-duplicated disk id: $1 at -}__file__{-:-}__line__ originally at _q_$1_disk)-},{-pushdef({-_m4_disks-},{-$1-})dnl ! pushdef({-_m4_disks2-},{-$1-})dnl ! define({-_q_$1_disks-},{-:-}__file__{-:-}__line__)-})-})dnl disk_q dnl dnl store a version string for 'this' file dnl dnl vers ( uniqueidstring, versionstring, subdir ) dnl ! dnl example1: vers(__file__,{-$OpenBSD: MAKEDEV.sub,v 1.5 2002/01/23 06:02:19 todd Exp $-}) ! dnl example2: vers(__file__,{-$OpenBSD: MAKEDEV.sub,v 1.5 2002/01/23 06:02:19 todd Exp $-},etc.MACHINE) dnl dnl if subdir is defined, prepend it to the filename in the version string dnl define({-vers-}, ! {-ifelse({-$3-},{--}, ! {-ver_q(hstcl({-$1-}),{-translit({-{-$2-}-},{-$-},{--})-})-}, ! {-ver_q(hstcl({-$1-}),{-_addsubdir({-{-$2-}-},$3)-})-})-})dnl dnl dnl Version info for this file: dnl ! vers(__file__,{-$OpenBSD: MAKEDEV.sub,v 1.5 2002/01/23 06:02:19 todd Exp $-})dnl dnl dnl define({-_addsubdir-}, ! {-patsubst({-$1-},{-\$(OpenBSD:) ([^\$]*)\$-},{-\1 $2/\2-})-})dnl dnl dnl do the 'showing' of the version info dnl ! define({-do_vers-},{-# $1-})dnl dnl dnl show version function, to be called at the place when all versions are dnl queued, and it is time to show all of them dnl define({-show_vers-}, ! {-ifelse(_m4_cvs_ver,{-done-},{--}, {-do_vers(_m4_cvs_ver) popdef({-_m4_cvs_ver-})dnl show_vers()dnl --- 45,106 ---- dnl Initialize the stacks stored in _m4_* dnl undefine({-_m4_cvs_ver-})dnl ! pushdef({-_m4_cvs_ver-}, {-done-})dnl dnl undefine({-_m4_devs-})dnl ! pushdef({-_m4_devs-}, {-done-})dnl dnl undefine({-_m4_disks-})dnl undefine({-_m4_disks2-})dnl ! pushdef({-_m4_disks-}, {-done-})dnl ! pushdef({-_m4_disks2-}, {-done-})dnl dnl dnl define stack 'add to' functions, only unique names queued dnl ! define({-ver_q-}, {-ifelse(index($1_ver, y), 0, , ! {-pushdef({-_m4_cvs_ver-}, {-$2-})define({-$1_ver-}, {-y-})-})-})dnl ver_q dnl ! define({-dev_q-}, {-ifelse(index(_q_$1_dev, :), 0, {-errprint({-duplicated dev id: $1 at -}__file__{-:-}__line__ originally at _q_$1_dev)-}, ! {-pushdef({-_m4_devs-}, {-$1-})dnl ! define({-_q_$1_dev-}, {-:-}__file__{-:-}__line__)-})-})dnl dev_q dnl ! define({-disk_q-}, {-ifelse(index(_q_$1_disk, :), 0, ! {-errprint({-duplicated disk id: $1 at -}__file__{-:-}__line__ originally at _q_$1_disk)-}, {-pushdef({-_m4_disks-}, {-$1-})dnl ! pushdef({-_m4_disks2-}, {-$1-})dnl ! define({-_q_$1_disks-}, {-:-}__file__{-:-}__line__)-})-})dnl disk_q dnl dnl store a version string for 'this' file dnl dnl vers ( uniqueidstring, versionstring, subdir ) dnl ! dnl example1: vers(__file__, {-$OpenBSD: MAKEDEV.sub,v 1.6 2002/02/14 05:50:37 todd Exp $-}) ! dnl example2: vers(__file__, {-$OpenBSD: MAKEDEV.sub,v 1.6 2002/02/14 05:50:37 todd Exp $-}, etc.MACHINE) dnl dnl if subdir is defined, prepend it to the filename in the version string dnl define({-vers-}, ! {-ifelse({-$3-}, {--}, ! {-ver_q(hstcl({-$1-}), {-translit({-{-$2-}-}, {-$-}, {--})-})-}, ! {-ver_q(hstcl({-$1-}), {-_addsubdir({-{-$2-}-}, $3)-})-})-})dnl dnl dnl Version info for this file: dnl ! vers(__file__, {-$OpenBSD: MAKEDEV.sub,v 1.6 2002/02/14 05:50:37 todd Exp $-})dnl dnl dnl define({-_addsubdir-}, ! {-patsubst({-$1-}, {-\$(OpenBSD:) ([^\$]*)\$-}, {-\1 $2/\2-})-})dnl dnl dnl do the 'showing' of the version info dnl ! define({-do_vers-}, {-# $1-})dnl dnl dnl show version function, to be called at the place when all versions are dnl queued, and it is time to show all of them dnl define({-show_vers-}, ! {-ifelse(_m4_cvs_ver, {-done-}, {--}, {-do_vers(_m4_cvs_ver) popdef({-_m4_cvs_ver-})dnl show_vers()dnl *************** *** 108,114 **** dnl dnl show the routines to generate devices define({-show_devs-}, ! {-ifelse(_m4_devs,{-done-},{--}, {-_MKDEV(_m4_devs){--}dnl popdef({-_m4_devs-})dnl show_devs()dnl --- 108,114 ---- dnl dnl show the routines to generate devices define({-show_devs-}, ! {-ifelse(_m4_devs, {-done-}, {--}, {-_MKDEV(_m4_devs){--}dnl popdef({-_m4_devs-})dnl show_devs()dnl *************** *** 116,129 **** dnl dnl routines to generate disks define({-show_disks-}, ! {-ifelse(_m4_disks,{-done-},{--}, ! {-ifcase(_m4_disks,_m4_disks{--}*)dnl popdef({-_m4_disks-})dnl show_disks()dnl -})-})dnl dnl define({-show_disks2-}, ! {-ifelse(_m4_disks2,{-done-},{--}, {-CasE(_m4_disks2)dnl popdef({-_m4_disks2-})dnl show_disks2()dnl --- 116,129 ---- dnl dnl routines to generate disks define({-show_disks-}, ! {-ifelse(_m4_disks, {-done-}, {--}, ! {-ifcase(_m4_disks, _m4_disks{--}*)dnl popdef({-_m4_disks-})dnl show_disks()dnl -})-})dnl dnl define({-show_disks2-}, ! {-ifelse(_m4_disks2, {-done-}, {--}, {-CasE(_m4_disks2)dnl popdef({-_m4_disks2-})dnl show_disks2()dnl *************** *** 132,139 **** dnl dnl Some m4 math functions: dnl ! dnl Add(a,b) - displays the result of a+b ! dnl Mult(a,b) - displays the result of a*b dnl trunc a b - displays the string a minus b removed from the RHS dnl hex a - displays the hex equivalent of 0-15 dnl unt a - s/[a-z]*([0-9]*).*/\1/ aka sd0a -> 0 --- 132,139 ---- dnl dnl Some m4 math functions: dnl ! dnl Add(a, b) - displays the result of a+b ! dnl Mult(a, b) - displays the result of a*b dnl trunc a b - displays the string a minus b removed from the RHS dnl hex a - displays the hex equivalent of 0-15 dnl unt a - s/[a-z]*([0-9]*).*/\1/ aka sd0a -> 0 *************** *** 142,157 **** dnl dnl --> Addition dnl ! define({-Add-},{-$({-(-}$1+$2{-)-})-})dnl dnl dnl --> Multiplication dnl ! define({-Mult-},{-$({-(-}$1*$2{-)-})-})dnl dnl dnl dnl TRUNC dnl ! define({-expr_trunc-},{-$1trunc() $1{ $1 case {-$-}3 in $1 l) {-expr-} {-$-}1 : '\(.*\)'{-$-}2 ;; --- 142,157 ---- dnl dnl --> Addition dnl ! define({-Add-}, {-$({-(-}$1+$2{-)-})-})dnl dnl dnl --> Multiplication dnl ! define({-Mult-}, {-$({-(-}$1*$2{-)-})-})dnl dnl dnl dnl TRUNC dnl ! define({-expr_trunc-}, {-$1trunc() $1{ $1 case {-$-}3 in $1 l) {-expr-} {-$-}1 : '\(.*\)'{-$-}2 ;; *************** *** 160,248 **** $1}-})dnl dnl dnl ! define({-_SHELL-},{-sh-})dnl ! define({-_this-},{-{-$-}T-})dnl ! dnl define({-_recurse-},{-_SHELL _this-})dnl ! define({-_recurse-},{-R-})dnl dnl ! dnl _devitem(pattern,description) dnl define({-_devitem-}, {-{-#-} $1 {-$2-}-})dnl dnl dnl _devtitle(description) dnl ! define({-_devtitle-},{-{-#-} $1:-})dnl dnl ! dnl _DEV(name,[character major],[block major]) dnl ! define({-_DEV-},{-$1_dev{--}dnl dnl dnl _DEV 'ifelse' .. $2 - major_$1_c dnl ! ifelse($2,,,{-define(major_$1_c,$2)-})dnl dnl dnl _DEV 'ifelse' .. $3 - major_$1_b dnl ! ifelse($3,,,{-define(major_$1_b,$3)-})dnl dnl dnl _DEV 'ifelse' .. $4 - step_$1 dnl ! ifelse($4,,,{-define(step_$1,{-$4-})-})dnl dnl dnl Some magic here, defining a devitem also defines another dnl string so that later we can check if a particular devitem was dnl defined, and thus determine if the devices themselves are to dnl be built dnl ! define({-$1__DEV-},{-Y-})dnl dnl dnl More magic, put device string name into a queue of script segments to dnl be shown later if it has been defined as a device in MAKEDEV.mi dnl ! ifdef({-$1_mkdev-},{-__mkdev({-$1-})-})dnl dnl dnl -})dnl _DEV dnl dnl ! define({-ifdev-},{-ifelse($1__DEV,Y,{-$2-})-})dnl dnl ! define({-_MKDEV-},{-$1_mkdev-})dnl ! define({-_TITLE-},{-$1_title-})dnl ! define({-__devitem-},{-define($1_dev,{-_devitem($2,$3)-})$4-})dnl ! define({-__devtitle-},{-define($1_title,{-_devtitle($2)-})-})dnl dnl dnl Beginning and ending of case entries, just incase we change in the dnl future, save chasing things down again dnl ! define({-_end-},{- ;; -})dnl ! define({-_beg-},{-{-)-} -})dnl dnl dnl create the script segment for making devices dnl $1 $2 $3 ! dnl _mkdev(shortname,devpatt,action)dnl ! define({-_mkdev-},{-define($1_mkdev,{-$2{--}_beg{--}$3{--}_end-})-})dnl dnl dnl define a major character device dnl $1 $2 $3 $4 ! dnl _mcdev(shortname,devpatt,devbase,devmajor)dnl dnl ! define({-_mcdev-},{-define($1_mkdev,{-{-$2-}_beg{--}M $3$U c $4 $U{--}dnl ! ifelse($6,,ifelse($5,,,{- -}$5),{- -}ifelse($5,,600,$5){- -}$6){--}_end-})-})dnl dnl dnl $1 $2 $3 $4 $5 $6 ! dnl _cdev(shortname,devpatt,devmajor,devminor[,devmod,devgrp])dnl define({-_cdev-}, {-dnl ! define($1_mkdev,{-$2{--}_beg{--}M $2 c $3 $4 $5 $6{--}_end-}){--}-})dnl dnl dnl ! define({-__mkdev-},{-dev_q($1)-})dnl dnl dnl for showing disks dnl --- 160,248 ---- $1}-})dnl dnl dnl ! define({-_SHELL-}, {-sh-})dnl ! define({-_this-}, {-{-$-}T-})dnl ! dnl define({-_recurse-}, {-_SHELL _this-})dnl ! define({-_recurse-}, {-R-})dnl dnl ! dnl _devitem(pattern, description) dnl define({-_devitem-}, {-{-#-} $1 {-$2-}-})dnl dnl dnl _devtitle(description) dnl ! define({-_devtitle-}, {-{-#-} $1:-})dnl dnl ! dnl _DEV(name, [character major], [block major]) dnl ! define({-_DEV-}, {-$1_dev{--}dnl dnl dnl _DEV 'ifelse' .. $2 - major_$1_c dnl ! ifelse($2, , , {-define(major_$1_c, $2)-})dnl dnl dnl _DEV 'ifelse' .. $3 - major_$1_b dnl ! ifelse($3, , , {-define(major_$1_b, $3)-})dnl dnl dnl _DEV 'ifelse' .. $4 - step_$1 dnl ! ifelse($4, , , {-define(step_$1, {-$4-})-})dnl dnl dnl Some magic here, defining a devitem also defines another dnl string so that later we can check if a particular devitem was dnl defined, and thus determine if the devices themselves are to dnl be built dnl ! define({-$1__DEV-}, {-Y-})dnl dnl dnl More magic, put device string name into a queue of script segments to dnl be shown later if it has been defined as a device in MAKEDEV.mi dnl ! ifdef({-$1_mkdev-}, {-__mkdev({-$1-})-})dnl dnl dnl -})dnl _DEV dnl dnl ! define({-ifdev-}, {-ifelse($1__DEV, Y, {-$2-})-})dnl dnl ! define({-_MKDEV-}, {-$1_mkdev-})dnl ! define({-_TITLE-}, {-$1_title-})dnl ! define({-__devitem-}, {-define($1_dev, {-_devitem($2, $3)-})$4-})dnl ! define({-__devtitle-}, {-define($1_title, {-_devtitle($2)-})-})dnl dnl dnl Beginning and ending of case entries, just incase we change in the dnl future, save chasing things down again dnl ! define({-_end-}, {- ;; -})dnl ! define({-_beg-}, {-{-)-} -})dnl dnl dnl create the script segment for making devices dnl $1 $2 $3 ! dnl _mkdev(shortname, devpatt, action)dnl ! define({-_mkdev-}, {-define($1_mkdev, {-$2{--}_beg{--}$3{--}_end-})-})dnl dnl dnl define a major character device dnl $1 $2 $3 $4 ! dnl _mcdev(shortname, devpatt, devbase, devmajor)dnl dnl ! define({-_mcdev-}, {-define($1_mkdev, {-{-$2-}_beg{--}M $3$U c $4 $U{--}dnl ! ifelse($6, , ifelse($5, , , {- -}$5), {- -}ifelse($5, , 600, $5){- -}$6){--}_end-})-})dnl dnl dnl $1 $2 $3 $4 $5 $6 ! dnl _cdev(shortname, devpatt, devmajor, devminor[, devmod, devgrp])dnl define({-_cdev-}, {-dnl ! define($1_mkdev, {-$2{--}_beg{--}M $2 c $3 $4 $5 $6{--}_end-}){--}-})dnl dnl dnl ! define({-__mkdev-}, {-dev_q($1)-})dnl dnl dnl for showing disks dnl *************** *** 252,267 **** -})-})dnl dnl dnl ! define({-ifcase-},{-dnl ! ifelse(C_ase,Y,ifdev({-$1-},{-|$2-}), ! {-ifdev({-$1-},{-$2define({-C_ase-},Y)-})-})-})dnl dnl dnl dnl device list .. list devices 'iff' they are defined dnl dnl input: dnl ! dnl _dl({-usb-},{-usb0 usb1-},{-urio-},{-urio-},...) dnl dnl output: dnl --- 252,267 ---- -})-})dnl dnl dnl ! define({-ifcase-}, {-dnl ! ifelse(C_ase, Y, ifdev({-$1-}, {-|$2-}), ! {-ifdev({-$1-}, {-$2define({-C_ase-}, Y)-})-})-})dnl dnl dnl dnl device list .. list devices 'iff' they are defined dnl dnl input: dnl ! dnl _dl({-usb-}, {-usb0 usb1-}, {-urio-}, {-urio-}, ...) dnl dnl output: dnl *************** *** 270,313 **** dnl dnl wrap if more than 60 chars wide dnl ! dnl .. wrap it all up in an 'ifelse({-$1-},,{- ... -})' for neatness ?? dnl ! define({-_dl-},{-dnl ! ifdef({-_dt-},,{-define({-_dt-})-})dnl ! ifdef({-_do-},,{-_dt{--}_recurse{--}define({-_do-},0)dnl ! define({-_dt-},{- -})-})dnl ifdef({-$1__DEV-}, ! {-define({-_di-},{-$2-})-}, {-define({-_di-})-})dnl ! ifelse(eval(len(_di)+_do<60),1, ! {-ifelse(eval(len(_di)>0),1, ! {- _di{--}define({-_do-},eval(1+_do+len(_di)))-})-}, {- _dt{--}_recurse _di{--}dnl ! define({-_do-},len(_di))-})dnl ! ifelse({-$3-},{--}, ! {-undefine({-_dt-},{-_do-})-},dnl <--- The END {-_dl(shift(shift($@)))-})-})dnl dnl dnl ! define({-_show_target-},{-dnl ! ifdef({-$1__DEV-},{-disp_dev({-$2-})-})dnl ! ifelse({-$3-},{--}, ! {-_disp_dev_end()-},dnl <--- The END {-_show_target(shift(shift($@)))-})-})dnl dnl ! define({-disp_dev-},{-dnl ! ifdef({-_disp_dev_tab-},,{-define({-_disp_dev_tab-})-})dnl ! ifdef({-_disp_dev_len-},,{-dnl ! define({-_disp_dev_len-},0)dnl _disp_dev_tab{--}_recurse{--}dnl ! define({-_disp_dev_tab-},{- -})-})dnl ! ifelse(eval(len($1)+_disp_dev_len<60),1, ! {- $1{--}define({-_disp_dev_len-},eval(1+_disp_dev_len+len($1)))-},{- _disp_dev_tab{--}_recurse $1{--}dnl ! define({-_disp_dev_len-},len($1))-})dnl -})dnl ! define({-_disp_dev_end-},{-undefine({-_disp_dev_tab-},{-_disp_dev_len-})-})dnl dnl dnl A word about the above: dnl --- 270,313 ---- dnl dnl wrap if more than 60 chars wide dnl ! dnl .. wrap it all up in an 'ifelse({-$1-}, , {- ... -})' for neatness ?? dnl ! define({-_dl-}, {-dnl ! ifdef({-_dt-}, , {-define({-_dt-})-})dnl ! ifdef({-_do-}, , {-_dt{--}_recurse{--}define({-_do-}, 0)dnl ! define({-_dt-}, {- -})-})dnl ifdef({-$1__DEV-}, ! {-define({-_di-}, {-$2-})-}, {-define({-_di-})-})dnl ! ifelse(eval(len(_di)+_do<60), 1, ! {-ifelse(eval(len(_di)>0), 1, ! {- _di{--}define({-_do-}, eval(1+_do+len(_di)))-})-}, {- _dt{--}_recurse _di{--}dnl ! define({-_do-}, len(_di))-})dnl ! ifelse({-$3-}, {--}, ! {-undefine({-_dt-}, {-_do-})-}, dnl <--- The END {-_dl(shift(shift($@)))-})-})dnl dnl dnl ! define({-_show_target-}, {-dnl ! ifdef({-$1__DEV-}, {-disp_dev({-$2-})-})dnl ! ifelse({-$3-}, {--}, ! {-_disp_dev_end()-}, dnl <--- The END {-_show_target(shift(shift($@)))-})-})dnl dnl ! define({-disp_dev-}, {-dnl ! ifdef({-_disp_dev_tab-}, , {-define({-_disp_dev_tab-})-})dnl ! ifdef({-_disp_dev_len-}, , {-dnl ! define({-_disp_dev_len-}, 0)dnl _disp_dev_tab{--}_recurse{--}dnl ! define({-_disp_dev_tab-}, {- -})-})dnl ! ifelse(eval(len($1)+_disp_dev_len<60), 1, ! {- $1{--}define({-_disp_dev_len-}, eval(1+_disp_dev_len+len($1)))-}, {- _disp_dev_tab{--}_recurse $1{--}dnl ! define({-_disp_dev_len-}, len($1))-})dnl -})dnl ! define({-_disp_dev_end-}, {-undefine({-_disp_dev_tab-}, {-_disp_dev_len-})-})dnl dnl dnl A word about the above: dnl *************** *** 326,376 **** dnl ifstep(devstr) dnl .. if stepping is defined for the particular device, emit ' step', else dnl nothing ! define({-ifstep-},{-ifdef({-step_$1-},{- -}step_$1{--})-})dnl dnl dnl ! define({-target-},{-twrget({-$1-},{-$2-},{-$2-},shift(shift($@)))-})dnl dnl ! dnl twrget(target,devname,prefix,str1,str2,str3) dnl $1 $2 $3 $4 $5 $6 dnl ! define({-twrget-},{-dnl dnl ! ifdef({-$1_target-},,{-pushdef({-$1_target-},{-done-})-})dnl dnl ! ifelse({-$4-},,,{-dnl ! ifelse({-$4-},{-_done-},,{-dnl ! ifelse({-$5-},,,{-dnl ! dnl errprint({-recurse: $1,$2,$3,$4,$5,$6,...-})dnl ! twrget({-$1-},{-$2-},{-$3-},shift(shift(shift(shift($@)))))dnl -})-})-})dnl dnl ! ifelse({-$4-},{-_done-},,{-dnl ! dnl errprint({-recurse: $1_$2_dev,$3$4,$3$4,_done-})dnl ! twrget({-$1_$2_dev-},{-$3$4-},{-$3$4-},{-_done-})dnl -})dnl dnl ! ifdef({-$1$2target-},,{-dnl ! pushdef({-$1_target-},{-$2-})define({-$1$2target-})dnl -})dnl dnl -})dnl dnl dnl ! define({-show_target-},{-dnl ! ifelse($1_target,{-done-},{-_disp_dev_end()-}, {-dnl $1_target: ! show_dev($1,-}$1_target{-)dnl popdef({-$1_target-})dnl show_target({-$1-})dnl -})-})dnl dnl ! define({-show_dev-},{-dnl ! ifdef({-$2__DEV-},{-dnl ! ifelse($1_$2_dev_target,{-done-},,{-dnl disp_dev({-$1_$2_dev_target-})dnl popdef({-$1_$2_dev_target-})dnl ! show_dev({-$1-},{-$2-})-})dnl -})dnl -})dnl dnl --- 326,376 ---- dnl ifstep(devstr) dnl .. if stepping is defined for the particular device, emit ' step', else dnl nothing ! define({-ifstep-}, {-ifdef({-step_$1-}, {- -}step_$1{--})-})dnl dnl dnl ! define({-target-}, {-twrget({-$1-}, {-$2-}, {-$2-}, shift(shift($@)))-})dnl dnl ! dnl twrget(target, devname, prefix, str1, str2, str3) dnl $1 $2 $3 $4 $5 $6 dnl ! define({-twrget-}, {-dnl dnl ! ifdef({-$1_target-}, , {-pushdef({-$1_target-}, {-done-})-})dnl dnl ! ifelse({-$4-}, , , {-dnl ! ifelse({-$4-}, {-_done-}, , {-dnl ! ifelse({-$5-}, , , {-dnl ! dnl errprint({-recurse: $1, $2, $3, $4, $5, $6, ...-})dnl ! twrget({-$1-}, {-$2-}, {-$3-}, shift(shift(shift(shift($@)))))dnl -})-})-})dnl dnl ! ifelse({-$4-}, {-_done-}, , {-dnl ! dnl errprint({-recurse: $1_$2_dev, $3$4, $3$4, _done-})dnl ! twrget({-$1_$2_dev-}, {-$3$4-}, {-$3$4-}, {-_done-})dnl -})dnl dnl ! ifdef({-$1$2target-}, , {-dnl ! pushdef({-$1_target-}, {-$2-})define({-$1$2target-})dnl -})dnl dnl -})dnl dnl dnl ! define({-show_target-}, {-dnl ! ifelse($1_target, {-done-}, {-_disp_dev_end()-}, {-dnl $1_target: ! show_dev($1, -}$1_target{-)dnl popdef({-$1_target-})dnl show_target({-$1-})dnl -})-})dnl dnl ! define({-show_dev-}, {-dnl ! ifdef({-$2__DEV-}, {-dnl ! ifelse($1_$2_dev_target, {-done-}, , {-dnl disp_dev({-$1_$2_dev_target-})dnl popdef({-$1_$2_dev_target-})dnl ! show_dev({-$1-}, {-$2-})-})dnl -})dnl -})dnl dnl