!C99Shell v. 1.0 pre-release build #13!

Software: Apache/2.0.54 (Unix) mod_perl/1.99_09 Perl/v5.8.0 mod_ssl/2.0.54 OpenSSL/0.9.7l DAV/2 FrontPage/5.0.2.2635 PHP/4.4.0 mod_gzip/2.0.26.1a 

uname -a: Linux snow.he.net 4.4.276-v2-mono-1 #1 SMP Wed Jul 21 11:21:17 PDT 2021 i686 

uid=99(nobody) gid=98(nobody) groups=98(nobody) 

Safe-mode: OFF (not secure)

/usr/lib/tix8.1/   drwxr-xr-x
Free 318.38 GB of 458.09 GB (69.5%)
Home    Back    Forward    UPDIR    Refresh    Search    Buffer    Encoder    Tools    Proc.    FTP brute    Sec.    SQL    PHP-code    Update    Feedback    Self remove    Logout    


Viewing file:     UnixFile.tcl (7.75 KB)      -rw-r--r--
Select action/file-type:
(+) | (+) | (+) | Code (+) | Session (+) | (+) | SDB (+) | (+) | (+) | (+) | (+) | (+) |
# -*- mode: TCL; fill-column: 75; tab-width: 8; coding: iso-latin-1-unix -*-
#
#    $Id: UnixFile.tcl,v 1.4.2.1 2001/11/03 07:25:12 idiscovery Exp $
#
# UnixFile.tcl --
#
#    Unix file access portibility routines.
#
# Copyright (c) 1993-1999 Ioi Kim Lam.
# Copyright (c) 2000-2001 Tix Project Group.
#
# See the file "license.terms" for information on usage and redistribution
# of this file, and for a DISCLAIMER OF ALL WARRANTIES.
#

proc tixInitFileCmpt:Unix {} {

# tixFSSplit --

# Splits a directory into its hierarchical components
#
# "hlist-type hierachical path"        <- "vpath"
# "name"
# "directory name"            <- "path"
#
proc tixFSSplit {dir} {
    if {[string compare [tixFSPathType $dir] "absolute"]} {
    error "$dir must be an absolute path"
    }

    set path ""
    set p ""
    foreach d [tixFileSplit $dir] {
    set p [tixFSJoin $p $d]
    lappend path [list $p $d $p]
    }
    return $path
}

# returns true if $dir is an valid path (always true in Unix)
#
proc tixFSValid {dir} {
    return 1
}

# Directory separator
#
proc tixFSSep {} {
    return "/"
}

# tixFSIntName
#
#    Returns the "virtual path" of a filename
#
proc tixFSIntName {dir} {
    if {[string compare [tixFSPathType $dir] "absolute"]} {
    error "$dir must be an absolute path"
    }

    return $dir
}

proc tixFSResolveName {p} {
    return $p
}


# These subcommands of "file" only exist in Tcl 7.5+. We define the following
# wrappers so that the code also works under Tcl 7.4
#
global tcl_version
if {![string compare $tcl_version 7.4]} {

    proc tixFSPathType {dir} {
    if {![string compare [string index $dir 0] /]} {
        return "absolute"
    }
    if {![string compare [string index $dir 0] ~]} {
        return "absolute"
    }
    return "relative"
    }

    proc tixFSJoin {dir sub} {
    set joined $dir/$sub

    regsub -all {[/]+} $joined / joined
    return $joined
    }

} else {
    proc tixFSPathType {dir} {
    return [file pathtype $dir]
    }

    proc tixFSJoin {dir sub} {
    return [file join $dir $sub]
    }
}

# 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 ""}} {
    set appPWD [pwd]

    if {[catch {cd $dir} err]} {
    # The user has entered an invalid directory
    # %% todo: prompt error, go back to last succeed directory
    cd $appPWD
    return ""
    }

    if {$pattern == ""} {
    if $showHidden {
        set pattern "* .*"
    } else {
        set pattern *
    }
    } elseif {$pattern == "*"} {
    if $showHidden {
        set pattern "* .*"
    }
    }

    set list ""
    foreach pat $pattern {
    if {[catch {set names [lsort [glob -nocomplain $pat]]} err]} {
        # Cannot read directory
        # %% todo: show directory permission denied
        continue
    }

    catch {
        # We are catch'ing, just in case the "file" command
        # returns unexpected errors
        #
        foreach fname $names {
        if {![string compare . $fname]} {
            continue
        }
        if {[file isdirectory $fname]} {
            if {![string compare ".." $fname] && !$showPrevDir} {
            continue
            }
            if $showSubDir {
            lappend list [file tail $fname]
            }
        } else {
            if $showFile {
            lappend list [file tail $fname]
            }
        }
        }
    }
    }

    cd $appPWD

    if {[llength $pattern] > 1} {
    # get rid of duplicated names
    #
    set list1 ""
    set oldfile ""
    foreach name [lsort $list] {
        if {$name == $oldfile} {
        continue
        }
        lappend list1 $name
        set oldfile $name
    }
    return [_tixFSMakeList $dir $list1]
    } else {
    return [_tixFSMakeList $dir $list]
    }
}

# _tixFSMakeList -
#
#    Internal procedure. Used only by tixFSListDir
proc _tixFSMakeList {dir list} {
    set l ""
    foreach file $list {
    set path [tixFSJoin $dir $file]
    lappend l [list $path $file $path]
    }

    return $l
}

# Directory separator
#
proc tixDirSep {} {
    return "/"
}


# tixFSInfo --
#
#    Returns information about the file system of this OS
#
# hasdrives: Boolean
#    Does this file system support seperate disk drives?
#
proc tixFSInfo {args} {
    case [lindex $args 0] {
    hasdrives {
        return 0
    }
    }
}

#----------------------------------------------------------------------
# Obsolete
#----------------------------------------------------------------------

# nativeName:    native filename used in this OS, comes from the user or
#        application programmer
# defParent:    if the filename is not an absolute path, treat it as a
#        subfolder of $defParent
proc tixFileIntName {nativeName {defParent ""}} {
    if {![tixIsAbsPath $nativeName]} {
    if {$defParent != ""} {
        set path [tixSubFolder $defParent $nativeName]
    } else {
        set path $nativeName
    }
    } else {
    set path $nativeName
    }

    set intName ""
    set path [tixFile trimslash [tixFile tildesubst $path]]
    foreach name [tixFileSplit $path] {
    set intName [tixSubFolder $intName $name]
    }
    return $intName
}

proc tixNativeName {name {mustBeAbs ""}} {
    return $name
}

proc tixFileDisplayName {intName} {
    if {$intName == "/"} {
    return "/"
    } else {
    return [file tail $intName]
    }
}


proc tixFileSplit {intName} {

    set l ""
    foreach n [split $intName /] {
    if {$n == ""} {
        continue
    }
    if {$n == "."} {
        continue
    }

    lappend l $n
    }
    

    while {1} {
    set idx [lsearch $l ".."]
    if {$idx == -1} {
        break;
    }
    set l [lreplace $l [expr $idx -1] $idx]
    }


    if {[string index $intName 0] == "/"} {
    return [concat "/" $l]
    } else {
    return $l
    }
}

proc tixSubFolder {parent sub} {
    if {$parent == ""} {
    return $sub
    }
    if {$parent == "/"} {
    return /$sub
    } else {
    return $parent/$sub
    }
}

# 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 tixListDir {dir showSubDir showFile showPrevDir showHidden {pattern ""}} { 

    set appPWD [pwd]

    if {[catch {cd $dir} err]} {
    # The user has entered an invalid directory
    # %% todo: prompt error, go back to last succeed directory
    cd $appPWD
    return ""
    }

    if {$pattern == ""} {
    if $showHidden {
        set pattern "* .*"
    } else {
        set pattern *
    }
    } elseif {$pattern == "*"} {
    if $showHidden {
        set pattern "* .*"
    }
    }

    set list ""
    foreach pat $pattern {
    if {[catch {set names [lsort [glob -nocomplain $pat]]} err]} {
        # Cannot read directory
        # %% todo: show directory permission denied
        continue
    }

    catch {
        # We are catch'ing, just in case the "file" command
        # returns unexpected errors
        #
        foreach fname $names {
        if {![string compare . $fname]} {
            continue
        }
        if {[file isdirectory $fname]} {
            if {![string compare ".." $fname] && !$showPrevDir} {
            continue
            }
            if $showSubDir {
            lappend list [file tail $fname]
            }
        } else {
            if $showFile {
            lappend list [file tail $fname]
            }
        }
        }
    }
    }

    cd $appPWD

    if {[llength $pattern] > 1} {
    set list1 ""
    set oldfile ""
    foreach name [lsort $list] {
        if {$name == $oldfile} {
        continue
        }
        lappend list1 $name
        set oldfile $name
    }
    return $list1
    } else {
    return $list
    }
}

# returns the "root directory" of this operating system
#
proc tixRootDir {} {
    return "/"
}

proc tixIsAbsPath {nativeName} {
    set c [string index $nativeName 0]
    if {$c == "~" || $c == "/"} {
    return 1
    } else {
    return 0
    }
}

proc tixVerifyFile {file} {
    return [tixFileIntName $file]
}

proc tixFilePattern {args} {
    if {[lsearch $args allFiles] != -1} {
    return *
    }
    return *
}
}






:: Command execute ::

Enter:
 
Select:
 

:: Search ::
  - regexp 

:: Upload ::
 
[ Read-Only ]

:: Make Dir ::
 
[ Read-Only ]
:: Make File ::
 
[ Read-Only ]

:: Go Dir ::
 
:: Go File ::
 

--[ c99shell v. 1.0 pre-release build #13 powered by Captain Crunch Security Team | http://ccteam.ru | Generation time: 0.0048 ]--