PATH:
usr
/
lib64
/
tcl8.5
/
Tix8.4.3
# -*- mode: TCL; fill-column: 75; tab-width: 8; coding: iso-latin-1-unix -*- # # $Id: fs.tcl,v 1.6 2004/03/28 02:44:57 hobbs Exp $ # # File system routines to handle some file system variations # and how that interoperates with the Tix widgets (mainly HList). # # Copyright (c) 2004 ActiveState ## ## Cross-platform ## proc tixFSSep {} { return "/" } proc tixFSNormalize {path} { # possibly use tixFSTilde ? return [file normalize $path] } proc tixFSVolumes {} { return [file volumes] } proc tixFSAncestors {path} { return [file split [file normalize $path]] } # how a filename should be displayed proc tixFSDisplayFileName {path} { if {$path eq [file dirname $path]} { return $path } else { return [file tail $path] } } # dir: Make a listing of this directory # showSubDir: Want to list the subdirectories? # showFile: Want to list the non-directory files in this directory? # showPrevDir: Want to list ".." as well? # showHidden: Want to list the hidden files? # # return value: a list of files and/or subdirectories # proc tixFSListDir {dir showSubDir showFile showPrevDir \ showHidden {pattern ""}} { if {$pattern eq ""} { set pattern [list "*"] } if {$::tcl_platform(platform) eq "unix" && $showHidden && $pattern eq "*"} { lappend pattern ".*" } if {[catch {eval [list glob -nocomplain -directory $dir] \ $pattern} files]} { # The user has entered an invalid or unreadable directory # %% todo: prompt error, go back to last succeed directory return "" } set list "" foreach f [lsort -dictionary $files] { set tail [file tail $f] # file tail handles this automatically #if {[string match ~* $tail]} { set tail ./$tail } if {[file isdirectory $f]} { if {$tail eq "."} { continue } if {$showSubDir} { if {$tail eq ".." && !$showPrevDir} { continue } lappend list $tail } } else { if {$showFile} { lappend list $tail } } } return $list } # in: internal name # out: native name proc tixFSNativeNorm {path} { return [tixFSNative [tixFSNormalize $path]] } # tixFSDisplayName -- # # Returns the name of a normalized path which is usually displayed by # the OS # proc tixFSDisplayName {path} { return [tixFSNative $path] } proc tixFSTilde {path} { # verify that paths with leading ~ are files or real users if {[string match ~* $path]} { # The following will report if the user doesn't exist if {![file isdirectory $path]} { set path ./$path } else { set path [file normalize $path] } } return $path } proc tixFSJoin {dir sub} { return [tixFSNative [file join $dir [tixFSTilde $sub]]] } proc tixFSNative {path} { return $path } if {$::tcl_platform(platform) eq "windows"} { ## ## WINDOWS ## # is an absoulte path only if it starts with a baclskash # or starts with "<drive letter>:" # # in: nativeName # proc tixFSIsAbsPath {nativeName} { set ptype [file pathtype $nativename] return [expr {$ptype eq "absolute" || $ptype eq "volumerelative"}] } # tixFSIsValid -- # # Checks whether a native pathname contains invalid characters. # proc tixFSIsValid {path} { #if {$::tcl_platform(platform) eq "windows"} {set bad "\\/:*?\"<>|\0"} return 1 } proc tixFSExternal {path} { # Avoid normalization on root adding unwanted volumerelative pwd if {[string match -nocase {[A-Z]:} $path]} { return $path/ } return [file normalize $path] } proc tixFSInternal {path} { # Only need to watch for ^[A-Z]:/$, but this does the trick return [string trimright [file normalize $path] /] } } else { ## ## UNIX ## proc tixFSIsAbsPath {path} { return [string match {[~/]*} $path] } # tixFSIsValid -- # # Checks whether a native pathname contains invalid characters. # proc tixFSIsValid {path} { return 1 } proc tixFSExternal {path} { return $path } proc tixFSInternal {path} { return $path } }
[-] StackWin.tcl
[edit]
[-] VResize.tcl
[edit]
[-] LabEntry.tcl
[edit]
[-] fs.tcl
[edit]
[-] EFileBox.tcl
[edit]
[-] Meter.tcl
[edit]
[-] StdBBox.tcl
[edit]
[-] CObjView.tcl
[edit]
[-] DefSchm.tcl
[edit]
[-] BtnBox.tcl
[edit]
[-] OldUtil.tcl
[edit]
[-] WInfo.tcl
[edit]
[+]
..
[-] Compat.tcl
[edit]
[-] ComboBox.tcl
[edit]
[-] SWidget.tcl
[edit]
[-] LabFrame.tcl
[edit]
[-] EFileDlg.tcl
[edit]
[-] FileDlg.tcl
[edit]
[-] Balloon.tcl
[edit]
[-] SListBox.tcl
[edit]
[+]
pref
[-] README.txt
[edit]
[-] PopMenu.tcl
[edit]
[-] DirList.tcl
[edit]
[-] Control.tcl
[edit]
[-] FileBox.tcl
[edit]
[-] StatBar.tcl
[edit]
[-] pkgIndex.tcl
[edit]
[-] StdShell.tcl
[edit]
[-] Tix.tcl
[edit]
[-] license.terms
[edit]
[-] Select.tcl
[edit]
[-] OptMenu.tcl
[edit]
[-] DirDlg.tcl
[edit]
[-] Shell.tcl
[edit]
[-] STList.tcl
[edit]
[+]
bitmaps
[-] LabWidg.tcl
[edit]
[-] DirBox.tcl
[edit]
[-] VStack.tcl
[edit]
[-] SHList.tcl
[edit]
[-] Variable.tcl
[edit]
[-] NoteBook.tcl
[edit]
[-] ResizeH.tcl
[edit]
[-] Grid.tcl
[edit]
[-] SGrid.tcl
[edit]
[-] SimpDlg.tcl
[edit]
[-] VTree.tcl
[edit]
[-] FileEnt.tcl
[edit]
[-] Utils.tcl
[edit]
[-] Event.tcl
[edit]
[-] Tree.tcl
[edit]
[-] HListDD.tcl
[edit]
[-] MultView.tcl
[edit]
[-] Init.tcl
[edit]
[-] TList.tcl
[edit]
[-] FloatEnt.tcl
[edit]
[-] libTix.so
[edit]
[-] DialogS.tcl
[edit]
[-] DirTree.tcl
[edit]
[-] DtlList.tcl
[edit]
[-] Console.tcl
[edit]
[-] PanedWin.tcl
[edit]
[-] HList.tcl
[edit]
[-] FileCbx.tcl
[edit]
[-] ListNBk.tcl
[edit]
[-] SWindow.tcl
[edit]
[-] ChkList.tcl
[edit]
[-] IconView.tcl
[edit]
[-] SText.tcl
[edit]
[-] DragDrop.tcl
[edit]
[-] Primitiv.tcl
[edit]
[+]
html