@ -67,7 +67,7 @@
/menuconfig.idx 0 def
menuconfig.humans {
menuconfig.human eq {
menuconfig.entrie s menuconfig.idx menuconfig.curlabel put
menuconfig.label s menuconfig.idx menuconfig.curlabel put
return
} if
/menuconfig.idx inc
@ -80,13 +80,14 @@
menuconfig.curlabel .undef eq { return } if
/menuconfig.idx 0 def
menuconfig.entrie s {
menuconfig.label s {
menuconfig.curlabel eq {
% Copy everything up to here into new arrays.
/menuconfig.newargs menuconfig.args length 1 sub array def
/menuconfig.newentries menuconfig.entries length 1 sub array def
/menuconfig.newhumans menuconfig.humans length 1 sub array def
/menuconfig.newindices menuconfig.indices length 1 sub array def
/menuconfig.newlabels menuconfig.labels length 1 sub array def
menuconfig.idx 0 ne {
0 1 menuconfig.idx 1 sub {
menuconfig.args over get
@ -95,20 +96,24 @@
menuconfig.newentries 2 index rot put
menuconfig.humans over get
menuconfig.newhumans 2 index rot put
menuconfig.labels over get
menuconfig.newlabels 2 index rot put
menuconfig.indices over get
menuconfig.newindices 3 1 roll put
} for
} if
menuconfig.idx menuconfig.entrie s length 1 sub lt {
menuconfig.idx menuconfig.label s length 1 sub lt {
% Slide everything else down one place.
menuconfig.idx 1 menuconfig.entrie s length 2 sub {
menuconfig.idx 1 menuconfig.label s length 2 sub {
menuconfig.args over 1 add get
menuconfig.newargs 2 index rot put
menuconfig.entries over 1 add get
menuconfig.newentries 2 index rot put
menuconfig.humans over 1 add get
menuconfig.newhumans 2 index rot put
menuconfig.labels over 1 add get
menuconfig.newlabels 2 index rot put
menuconfig.indices over 1 add get
menuconfig.newindices 3 1 roll put
} for
@ -118,6 +123,7 @@
/menuconfig.entries menuconfig.newentries def
/menuconfig.humans menuconfig.newhumans def
/menuconfig.indices menuconfig.newindices def
/menuconfig.labels menuconfig.newlabels def
return
} if
@ -182,7 +188,8 @@
% removed.
/menuconfig.init {
dup length array /menuconfig.args exch def
over length array /menuconfig.entries exch def
dup length array /menuconfig.entries exch def
over length array /menuconfig.labels exch def
over length array /menuconfig.humans exch def
over length array /menuconfig.indices exch def
@ -195,6 +202,7 @@
/menuconfig.idx 0 def
{
dup menuconfig.entries menuconfig.idx rot put
dup menuconfig.labels menuconfig.idx rot put
menuconfig.humans menuconfig.idx rot put
menuconfig.indices menuconfig.idx dup put
/menuconfig.idx inc
@ -209,5 +217,5 @@
.undef menuconfig.parse
menuconfig.indices menuconfig.humans menuconfig.entries menuconfig.args
menuconfig.labels menuconfig. indices menuconfig.humans menuconfig.entries menuconfig.args
} def