404

[ Avaa Bypassed ]




Upload:

Command:

elspacio@3.142.212.150: ~ $
# -*- 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 }

}

Filemanager

Name Type Size Permission Actions
bitmaps Folder 0755
html Folder 0755
pref Folder 0755
Balloon.tcl File 12.97 KB 0644
BtnBox.tcl File 2.61 KB 0644
CObjView.tcl File 7.56 KB 0644
ChkList.tcl File 4.97 KB 0644
ComboBox.tcl File 35.42 KB 0644
Compat.tcl File 870 B 0644
Console.tcl File 14.95 KB 0644
Control.tcl File 12.11 KB 0644
DefSchm.tcl File 2.94 KB 0644
DialogS.tcl File 4.2 KB 0644
DirBox.tcl File 5.3 KB 0644
DirDlg.tcl File 2.15 KB 0644
DirList.tcl File 6.9 KB 0644
DirTree.tcl File 8.76 KB 0644
DragDrop.tcl File 3.93 KB 0644
DtlList.tcl File 1002 B 0644
EFileBox.tcl File 11.12 KB 0644
EFileDlg.tcl File 1.68 KB 0644
Event.tcl File 5.11 KB 0644
FileBox.tcl File 14 KB 0644
FileCbx.tcl File 2.42 KB 0644
FileDlg.tcl File 2.13 KB 0644
FileEnt.tcl File 7.15 KB 0644
FloatEnt.tcl File 3.1 KB 0644
Grid.tcl File 21.16 KB 0644
HList.tcl File 17.72 KB 0644
HListDD.tcl File 4.39 KB 0644
IconView.tcl File 5.97 KB 0644
Init.tcl File 6.05 KB 0644
LabEntry.tcl File 2.09 KB 0644
LabFrame.tcl File 1.15 KB 0644
LabWidg.tcl File 3.86 KB 0644
ListNBk.tcl File 3.5 KB 0644
Meter.tcl File 3.04 KB 0644
MultView.tcl File 3.62 KB 0644
NoteBook.tcl File 6.02 KB 0644
OldUtil.tcl File 2.98 KB 0644
OptMenu.tcl File 9.17 KB 0644
PanedWin.tcl File 27.68 KB 0644
PopMenu.tcl File 5.37 KB 0644
Primitiv.tcl File 10.28 KB 0644
README.txt File 987 B 0644
ResizeH.tcl File 12.94 KB 0644
SGrid.tcl File 5.8 KB 0644
SHList.tcl File 3.7 KB 0644
SListBox.tcl File 6.97 KB 0644
STList.tcl File 2.37 KB 0644
SText.tcl File 3.09 KB 0644
SWidget.tcl File 9.52 KB 0644
SWindow.tcl File 6.75 KB 0644
Select.tcl File 7.04 KB 0644
Shell.tcl File 1.06 KB 0644
SimpDlg.tcl File 1.13 KB 0644
StackWin.tcl File 1.95 KB 0644
StatBar.tcl File 1.31 KB 0644
StdBBox.tcl File 1.62 KB 0644
StdShell.tcl File 1.15 KB 0644
TList.tcl File 17.59 KB 0644
Tix.tcl File 9.51 KB 0644
Tree.tcl File 4.57 KB 0644
Utils.tcl File 10.54 KB 0644
VResize.tcl File 4.95 KB 0644
VStack.tcl File 9.42 KB 0644
VTree.tcl File 4.31 KB 0644
Variable.tcl File 2.5 KB 0644
WInfo.tcl File 965 B 0644
fs.tcl File 3.9 KB 0644
libTix.so File 341.3 KB 0755
license.terms File 2.76 KB 0644
pkgIndex.tcl File 122 B 0644