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