From 5efd167a32c4e2fc55fe3e91a9015cb326e3eae9 Mon Sep 17 00:00:00 2001 From: Capitan Cloud Date: Wed, 20 Dec 2023 05:47:38 +0100 Subject: [PATCH] Add files via upload --- radxide.tcl | 2 +- tree.tcl | 88 +++++++++++++++++++++++++++++++++++++++-------------- 2 files changed, 66 insertions(+), 24 deletions(-) diff --git a/radxide.tcl b/radxide.tcl index 3aa3bbc..e9cb1ca 100644 --- a/radxide.tcl +++ b/radxide.tcl @@ -28,7 +28,7 @@ # ########################################################### -set version "1.4.6" +set version "1.4.7" set os "$::tcl_platform(os) $::tcl_platform(osVersion)" package provide radxide $version diff --git a/tree.tcl b/tree.tcl index fda775c..a0c70e2 100644 --- a/tree.tcl +++ b/tree.tcl @@ -447,47 +447,89 @@ namespace eval tree { namespace upvar ::radxide dan dan _dirtree _dirtree incr lev - if {[catch {set dcont [lsort -dictionary [glob [file join $dirname *]]]}]} { - set dcont [list] + + # firstly directories: + + if {[catch {set dcont [lsort -dictionary [glob -type d [file join $dirname *]]]}]} { + set dcont [list] } # firstly directories: # 1. skip the ignored ones for {set i [llength $dcont]} {$i} {} { - incr i -1 - if {[ignoredDir [lindex $dcont $i]] || (($lev eq 1) && (([file tail [lindex $dcont $i]] ne "Private") && ([file tail [lindex $dcont $i]] ne "Public")))} { - set dcont [lreplace $dcont $i $i] - } + incr i -1 + if {[ignoredDir [lindex $dcont $i]] || (($lev eq 1) && (([file tail [lindex $dcont $i]] ne "Private") && ([file tail [lindex $dcont $i]] ne "Public")))} { + set dcont [lreplace $dcont $i $i] + } } # 2. put the directories to the beginning of the file list set i 0 foreach fname $dcont { - if {[file isdirectory $fname]} { - set dcont [lreplace $dcont $i $i [list $fname "y"]] - set nroot [addToDirContent $lev 0 $fname $iroot] - if {[llength $_dirtree] < $dan(MAXFILES)} { - dirContent $fname $lev $nroot $globs - } else { - break - } - } else { - set dcont [lreplace $dcont $i $i [list $fname]] - } - incr i - } + if {[file isdirectory $fname]} { + set dcont [lreplace $dcont $i $i [list $fname "y"]] + set nroot [addToDirContent $lev 0 $fname $iroot] + if {[llength $_dirtree] < $dan(MAXFILES)} { + dirContent $fname $lev $nroot $globs + } else { + break + } + } else { + set dcont [lreplace $dcont $i $i [list $fname]] + } + incr i + } + + # then files + + # hidden files + if {[catch {set dcont [lsort -dictionary [glob -types {f hidden} [file join $dirname *]]]}]} { + set dcont [list] + } + for {set i [llength $dcont]} {$i} {} { + incr i -1 + if {[ignoredDir [lindex $dcont $i]] && (!(([file tail [lindex $dcont $i]] ne ".") && ([file tail [lindex $dcont $i]] ne "..")))} { + set dcont [lreplace $dcont $i $i] + } + } if {[llength $_dirtree] < $dan(MAXFILES)} { foreach fname $dcont { lassign $fname fname d if {$d ne "y"} { + #tk_messageBox -title $dan(TITLE) -icon error -message $fname foreach gl [split $globs ","] { if {[string match $gl $fname]} { addToDirContent $lev 1 $fname $iroot break - } - } - } - } + } + } + } + } + } + # generic files + if {[catch {set dcont [lsort -dictionary [glob -type f [file join $dirname *]]]}]} { + set dcont [list] } + for {set i [llength $dcont]} {$i} {} { + incr i -1 + if {[ignoredDir [lindex $dcont $i]] && (!(([file tail [lindex $dcont $i]] ne ".") && ([file tail [lindex $dcont $i]] ne "..")))} { + set dcont [lreplace $dcont $i $i] + } + } + if {[llength $_dirtree] < $dan(MAXFILES)} { + foreach fname $dcont { + lassign $fname fname d + if {$d ne "y"} { + #tk_messageBox -title $dan(TITLE) -icon error -message $fname + foreach gl [split $globs ","] { + if {[string match $gl $fname]} { + addToDirContent $lev 1 $fname $iroot + break + } + } + } + } + } + } # ________________________ getDirectoryContent _________________________ #