diff --git a/webif/html/browse/index.jim b/webif/html/browse/index.jim
index 7fa05fc..8cc45c6 100755
--- a/webif/html/browse/index.jim
+++ b/webif/html/browse/index.jim
@@ -303,7 +303,7 @@ if {$parent ne ""} {
"
}
-proc s_file_stat {a b attr} {
+proc s_file_stat {a b attr {rev 0}} {
global dir
set a "$dir/$a"
@@ -325,8 +325,8 @@ proc s_file_stat {a b attr} {
if {[catch {file stat $b l}]} { return 0}
set bt $l($attr)
- if {$at < $bt} { return -1 }
- if {$at > $bt} { return 1 }
+ if {$at < $bt} { return [expr {$rev ? 1 : -1}] }
+ if {$at > $bt} { return [expr {$rev ? -1 : 1}] }
return 0
}
@@ -334,10 +334,18 @@ proc s_time {a b} {
tailcall s_file_stat $a $b mtime
}
+proc s_time_r {a b} {
+ tailcall s_file_stat $a $b mtime 1
+}
+
proc s_size {a b} {
tailcall s_file_stat $a $b size
}
+proc s_size_r {a b} {
+ tailcall s_file_stat $a $b size 1
+}
+
proc s_ext {a b} {
set at [file extension $a]
set bt [file extension $b]
@@ -350,11 +358,11 @@ proc s_ext {a b} {
set files [readdir -nocomplain $dir]
switch $order {
- 5 { set files [lsort -command s_ext $files] }
1 { set files [lsort -command s_time $files] }
- 2 { set files [lreverse [lsort -command s_time $files]] }
+ 2 { set files [lsort -command s_time_r $files] }
3 { set files [lsort -command s_size $files] }
- 4 { set files [lreverse [lsort -command s_size $files]] }
+ 4 { set files [lsort -command s_size_r $files] }
+ 5 { set files [lsort -command s_ext $files] }
default { set files [lsort -nocase $files] }
}