@@ -2822,37 +2822,40 @@ ClassMethod ListInstalled(ByRef pCommandInfo) [ Private ]
28222822 }
28232823 merge tModifiers = pCommandInfo (" modifiers" )
28242824 set sortMode = $$$lcase($get (pCommandInfo (" modifiers" , " sort" )))
2825- set type = $extract (sortMode , 1 ) // "d", "n", or "v"
2826- set isDesc = (sortMode [ " -d" )
2827- set sortMode = $case (type , " n" :" name" , " d" :" date" , " v" :" version" , :" name" )
2828- if isDesc {
2829- set sortMode = sortMode _" -desc"
2830- }
2831- set newlist =" "
2825+
28322826 if sortMode '=" " {
2827+ set newlist =" "
2828+ set type = $extract (sortMode , 1 ) // "d", "n", or "v"
2829+ set isDesc = (sortMode [ " -d" )
2830+ set sortMode = $case (type , " n" :" name" , " d" :" date" , " v" :" version" , :" name" )
2831+ if isDesc {
2832+ set sortMode = sortMode _" -desc"
2833+ }
28332834 for i =1 :1 :list {
28342835 set entry = list (i )
28352836 set name = $listget (entry ,1 )
28362837 set entry = entry _$listbuild (i )
28372838 if sortMode [" name" {
2838- set newlist ($$$lcase(name ))=entry
2839- }
2840- if sortMode [" date" {
2839+ set newlist ($$$lcase(name ),i )=entry
2840+ } elseif sortMode [" date" {
28412841 set date = $listget (entry ,6 )
2842- set newlist (date )=entry
2843- }
2844- if sortMode [" version" {
2845- set newlist ($listfromstring ($listget (entry ,2 )," ." ))=entry
2842+ set newlist (date ,name ) = entry
2843+ } elseif sortMode [" version" {
2844+ set newlist ($listfromstring ($listget (entry ,2 )," ." ),name ) = entry
28462845 }
28472846 kill list (i )
28482847 }
28492848 set direction = $select (sortMode [ " desc" : -1 , 1 : 1 )
2850- set mod = " "
2849+ set sub = " "
28512850 if $data (newlist )>1 {
28522851 // create new list based on the sorting
28532852 for {
2854- set mod = $order (newlist (mod ),direction ,data ) quit :mod =" "
2855- set list ($increment (mlist ))=data
2853+ set sub = $order (newlist (sub ),direction ) quit :sub =" "
2854+ set mod =" "
2855+ for {
2856+ set mod = $order (newlist (sub ,mod ),direction ,data ) quit :mod =" "
2857+ set list ($increment (mlist ))=data
2858+ }
28562859 }
28572860 }
28582861 }
0 commit comments