PCFilename.st
author Claus Gittinger <cg@exept.de>
Thu, 16 Oct 1997 13:17:03 +0200
changeset 3043 aae6b34587c0
parent 3019 b1a1455438cf
child 3336 0026cec000fd
permissions -rw-r--r--
*** empty log message ***
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
3043
aae6b34587c0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3019
diff changeset
     1
"
aae6b34587c0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3019
diff changeset
     2
 COPYRIGHT (c) 1997 by eXept Software AG
aae6b34587c0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3019
diff changeset
     3
              All Rights Reserved
aae6b34587c0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3019
diff changeset
     4
aae6b34587c0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3019
diff changeset
     5
 This software is furnished under a license and may be used
aae6b34587c0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3019
diff changeset
     6
 only in accordance with the terms of that license and with the
aae6b34587c0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3019
diff changeset
     7
 inclusion of the above copyright notice.   This software may not
aae6b34587c0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3019
diff changeset
     8
 be provided or otherwise made available to, or used by, any
aae6b34587c0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3019
diff changeset
     9
 other person.  No title to or ownership of the software is
aae6b34587c0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3019
diff changeset
    10
 hereby transferred.
aae6b34587c0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3019
diff changeset
    11
"
aae6b34587c0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3019
diff changeset
    12
aae6b34587c0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3019
diff changeset
    13
'From Smalltalk/X, Version:3.2.1 on 16-oct-1997 at 1:30:13 pm'                  !

aae6b34587c0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3019
diff changeset
    14

aae6b34587c0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3019
diff changeset
    15
Filename subclass:#PCFilename
aae6b34587c0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3019
diff changeset
    16
	instanceVariableNames:''
aae6b34587c0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3019
diff changeset
    17
	classVariableNames:'StandardSuffixTable'
aae6b34587c0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3019
diff changeset
    18
	poolDictionaries:''
aae6b34587c0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3019
diff changeset
    19
	category:'OS-PC'

aae6b34587c0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3019
diff changeset
    20
!

aae6b34587c0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3019
diff changeset
    21

aae6b34587c0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3019
diff changeset
    22
!PCFilename class methodsFor:'documentation'!

aae6b34587c0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3019
diff changeset
    23

aae6b34587c0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3019
diff changeset
    24
copyright
aae6b34587c0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3019
diff changeset
    25
"
aae6b34587c0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3019
diff changeset
    26
 COPYRIGHT (c) 1997 by eXept Software AG
aae6b34587c0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3019
diff changeset
    27
              All Rights Reserved
aae6b34587c0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3019
diff changeset
    28
aae6b34587c0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3019
diff changeset
    29
 This software is furnished under a license and may be used
aae6b34587c0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3019
diff changeset
    30
 only in accordance with the terms of that license and with the
aae6b34587c0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3019
diff changeset
    31
 inclusion of the above copyright notice.   This software may not
aae6b34587c0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3019
diff changeset
    32
 be provided or otherwise made available to, or used by, any
aae6b34587c0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3019
diff changeset
    33
 other person.  No title to or ownership of the software is
aae6b34587c0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3019
diff changeset
    34
 hereby transferred.
aae6b34587c0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3019
diff changeset
    35
"
aae6b34587c0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3019
diff changeset
    36
!

aae6b34587c0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3019
diff changeset
    37

aae6b34587c0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3019
diff changeset
    38
documentation
aae6b34587c0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3019
diff changeset
    39
"
aae6b34587c0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3019
diff changeset
    40
    Filenames in Windows-NT / Win95.
aae6b34587c0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3019
diff changeset
    41
"
aae6b34587c0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3019
diff changeset
    42
! !

aae6b34587c0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3019
diff changeset
    43

aae6b34587c0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3019
diff changeset
    44
!PCFilename class methodsFor:'initialization'!

aae6b34587c0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3019
diff changeset
    45

aae6b34587c0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3019
diff changeset
    46
initStandardSuffixTable
aae6b34587c0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3019
diff changeset
    47
    "since there is no 'file' command to extract the type,
aae6b34587c0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3019
diff changeset
    48
     return a guess based upon the files suffix. The following
aae6b34587c0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3019
diff changeset
    49
     table defines what is returned."
aae6b34587c0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3019
diff changeset
    50
aae6b34587c0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3019
diff changeset
    51
    StandardSuffixTable := Dictionary new.
aae6b34587c0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3019
diff changeset
    52
    #(  
aae6b34587c0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3019
diff changeset
    53
        'COM'   'executable'
aae6b34587c0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3019
diff changeset
    54
        'DIR'   'directory'
aae6b34587c0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3019
diff changeset
    55
        'EXE'   'executable'
aae6b34587c0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3019
diff changeset
    56
        'LST'   'listing'
aae6b34587c0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3019
diff changeset
    57
        'OBJ'   'object file'
aae6b34587c0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3019
diff changeset
    58
        'TMP'   'temporary'
aae6b34587c0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3019
diff changeset
    59
        'BAS'   'basic source'
aae6b34587c0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3019
diff changeset
    60
        'C'     'c source'
aae6b34587c0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3019
diff changeset
    61
        'COB'   'cobol source'
aae6b34587c0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3019
diff changeset
    62
        'FOR'   'fortran source'
aae6b34587c0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3019
diff changeset
    63
        'PAS'   'pascal source'
aae6b34587c0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3019
diff changeset
    64
        'PL1'   'PL/1 source'
aae6b34587c0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3019
diff changeset
    65
        'ST'    'smalltalk source'
aae6b34587c0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3019
diff changeset
    66
        'STH'   'stc generated header'
aae6b34587c0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3019
diff changeset
    67
        'DLL'   'dynamic link library'
aae6b34587c0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3019
diff changeset
    68
    ) pairWiseDo:[:k :v |
aae6b34587c0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3019
diff changeset
    69
        StandardSuffixTable at:k put:v
aae6b34587c0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3019
diff changeset
    70
    ]
aae6b34587c0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3019
diff changeset
    71
aae6b34587c0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3019
diff changeset
    72
    "
aae6b34587c0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3019
diff changeset
    73
     StandardSuffixTable := nil.
aae6b34587c0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3019
diff changeset
    74
     self initStandardSuffixTable
aae6b34587c0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3019
diff changeset
    75
    "
aae6b34587c0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3019
diff changeset
    76
aae6b34587c0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3019
diff changeset
    77
    "Modified: 16.10.1997 / 13:12:39 / cg"
aae6b34587c0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3019
diff changeset
    78
! !

aae6b34587c0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3019
diff changeset
    79

aae6b34587c0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3019
diff changeset
    80
!PCFilename class methodsFor:'queries'!

aae6b34587c0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3019
diff changeset
    81

aae6b34587c0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3019
diff changeset
    82
isBadCharacter:aCharacter
aae6b34587c0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3019
diff changeset
    83
    "return true, if aCharacter is unallowed in a filename."
aae6b34587c0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3019
diff changeset
    84
aae6b34587c0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3019
diff changeset
    85
    ('<>:"/\|' includes:aCharacter) ifTrue:[^ true].
aae6b34587c0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3019
diff changeset
    86
    ^ super isBadCharacter:aCharacter
aae6b34587c0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3019
diff changeset
    87
aae6b34587c0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3019
diff changeset
    88
    "Created: 8.9.1997 / 00:14:06 / cg"
aae6b34587c0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3019
diff changeset
    89
!

aae6b34587c0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3019
diff changeset
    90

aae6b34587c0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3019
diff changeset
    91
isCaseSensitive
aae6b34587c0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3019
diff changeset
    92
    "return true, if filenames are case sensitive."
aae6b34587c0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3019
diff changeset
    93
aae6b34587c0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3019
diff changeset
    94
    ^ false
aae6b34587c0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3019
diff changeset
    95
!

aae6b34587c0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3019
diff changeset
    96

aae6b34587c0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3019
diff changeset
    97
separator
aae6b34587c0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3019
diff changeset
    98
    "return the file/directory separator."
aae6b34587c0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3019
diff changeset
    99
aae6b34587c0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3019
diff changeset
   100
     ^ $\
aae6b34587c0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3019
diff changeset
   101
aae6b34587c0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3019
diff changeset
   102
     "
aae6b34587c0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3019
diff changeset
   103
      Filename concreteClass separator  
aae6b34587c0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3019
diff changeset
   104
     "
aae6b34587c0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3019
diff changeset
   105
aae6b34587c0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3019
diff changeset
   106
    "Modified: 8.9.1997 / 00:18:03 / cg"
aae6b34587c0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3019
diff changeset
   107
! !

aae6b34587c0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3019
diff changeset
   108

aae6b34587c0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3019
diff changeset
   109
!PCFilename methodsFor:'queries'!

aae6b34587c0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3019
diff changeset
   110

aae6b34587c0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3019
diff changeset
   111
fileType
aae6b34587c0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3019
diff changeset
   112
    "this returns a string describing the type of contents of
aae6b34587c0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3019
diff changeset
   113
     the file. Here, the suffix is examined for a standard
aae6b34587c0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3019
diff changeset
   114
     suffix and an appropriate string is returned.
aae6b34587c0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3019
diff changeset
   115
     Poor MSDOS - no file command."
aae6b34587c0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3019
diff changeset
   116
aae6b34587c0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3019
diff changeset
   117
    |suff type info fmt|
aae6b34587c0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3019
diff changeset
   118
aae6b34587c0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3019
diff changeset
   119
    StandardSuffixTable isNil ifTrue:[
aae6b34587c0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3019
diff changeset
   120
        self class initStandardSuffixTable
aae6b34587c0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3019
diff changeset
   121
    ].
aae6b34587c0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3019
diff changeset
   122
aae6b34587c0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3019
diff changeset
   123
    suff := self suffix asUppercase.
aae6b34587c0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3019
diff changeset
   124
    type := StandardSuffixTable at:suff ifAbsent:nil.
aae6b34587c0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3019
diff changeset
   125
    type isNil ifTrue:[
aae6b34587c0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3019
diff changeset
   126
        type := super fileType.
aae6b34587c0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3019
diff changeset
   127
    ].
aae6b34587c0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3019
diff changeset
   128
    ^ type
aae6b34587c0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3019
diff changeset
   129
aae6b34587c0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3019
diff changeset
   130
    "Created: 16.10.1997 / 13:07:24 / cg"
aae6b34587c0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3019
diff changeset
   131
    "Modified: 16.10.1997 / 13:10:00 / cg"
aae6b34587c0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3019
diff changeset
   132
!

aae6b34587c0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3019
diff changeset
   133

aae6b34587c0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3019
diff changeset
   134
isExecutableProgram
aae6b34587c0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3019
diff changeset
   135
    "return true, if such a file exists and is an executable program.
aae6b34587c0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3019
diff changeset
   136
     (i.e. for directories, false is returned.)"
aae6b34587c0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3019
diff changeset
   137
aae6b34587c0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3019
diff changeset
   138
    (self hasSuffix:'exe') ifTrue:[
aae6b34587c0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3019
diff changeset
   139
        ^ super isExecutableProgram
aae6b34587c0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3019
diff changeset
   140
    ].
aae6b34587c0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3019
diff changeset
   141
    (self hasSuffix:'com') ifTrue:[
aae6b34587c0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3019
diff changeset
   142
        ^ super isExecutableProgram
aae6b34587c0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3019
diff changeset
   143
    ].
aae6b34587c0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3019
diff changeset
   144
    ^ false
aae6b34587c0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3019
diff changeset
   145
aae6b34587c0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3019
diff changeset
   146
    "Created: 16.10.1997 / 13:19:10 / cg"
aae6b34587c0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3019
diff changeset
   147
!

aae6b34587c0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3019
diff changeset
   148

aae6b34587c0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3019
diff changeset
   149
isExplicitRelative
aae6b34587c0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3019
diff changeset
   150
    "return true, if this name is an explicit relative name
aae6b34587c0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3019
diff changeset
   151
     (i.e. starts with './' or '../', to avoid path-prepending)"
aae6b34587c0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3019
diff changeset
   152
aae6b34587c0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3019
diff changeset
   153
    (nameString startsWith:'.\') ifTrue:[
aae6b34587c0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3019
diff changeset
   154
	^ true
aae6b34587c0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3019
diff changeset
   155
    ].
aae6b34587c0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3019
diff changeset
   156
    (nameString startsWith:'..\') ifTrue:[
aae6b34587c0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3019
diff changeset
   157
	^ true
aae6b34587c0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3019
diff changeset
   158
    ].
aae6b34587c0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3019
diff changeset
   159
    ^ false
aae6b34587c0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3019
diff changeset
   160
!

aae6b34587c0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3019
diff changeset
   161

aae6b34587c0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3019
diff changeset
   162
isVolumeAbsolute
aae6b34587c0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3019
diff changeset
   163
    "return true, if the receiver represents an absolute pathname
aae6b34587c0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3019
diff changeset
   164
     on some disk volume."
aae6b34587c0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3019
diff changeset
   165
aae6b34587c0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3019
diff changeset
   166
    ^ ((nameString size >= 2) and:[(nameString at:2) == $:])
aae6b34587c0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3019
diff changeset
   167
aae6b34587c0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3019
diff changeset
   168
    "Created: 7.9.1997 / 23:54:20 / cg"
aae6b34587c0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3019
diff changeset
   169
!

aae6b34587c0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3019
diff changeset
   170

aae6b34587c0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3019
diff changeset
   171
localNameStringFrom:aString 
aae6b34587c0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3019
diff changeset
   172
    "ST-80 compatibility.
aae6b34587c0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3019
diff changeset
   173
     what does this do ? (used in FileNavigator-goody).
aae6b34587c0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3019
diff changeset
   174
     GUESS: does it strip off the voulume-character and initial '\' ?"
aae6b34587c0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3019
diff changeset
   175
aae6b34587c0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3019
diff changeset
   176
    (aString at:2) == $: ifTrue:[
aae6b34587c0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3019
diff changeset
   177
	(aString at:3) == $\ ifTrue:[
aae6b34587c0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3019
diff changeset
   178
	    ^ aString copyFrom:4
aae6b34587c0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3019
diff changeset
   179
	].
aae6b34587c0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3019
diff changeset
   180
	^ aString copyFrom:3
aae6b34587c0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3019
diff changeset
   181
    ]. 
aae6b34587c0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3019
diff changeset
   182
    (aString at:1) == $\ ifTrue:[
aae6b34587c0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3019
diff changeset
   183
	^ aString copyFrom:1
aae6b34587c0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3019
diff changeset
   184
    ].
aae6b34587c0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3019
diff changeset
   185
    ^ aString
aae6b34587c0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3019
diff changeset
   186
!

aae6b34587c0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3019
diff changeset
   187

aae6b34587c0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3019
diff changeset
   188
volume
aae6b34587c0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3019
diff changeset
   189
    "return the disc volume part of the name or an empty string.
aae6b34587c0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3019
diff changeset
   190
     This is only used with DOS filenames - on unix, an empty string is returned"
aae6b34587c0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3019
diff changeset
   191
aae6b34587c0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3019
diff changeset
   192
    (nameString at:2) == $: ifTrue:[
aae6b34587c0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3019
diff changeset
   193
        ^ nameString copyTo:1
aae6b34587c0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3019
diff changeset
   194
    ].
aae6b34587c0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3019
diff changeset
   195
    ^ ''
aae6b34587c0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3019
diff changeset
   196
aae6b34587c0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3019
diff changeset
   197
    "Created: 7.9.1997 / 23:58:06 / cg"
aae6b34587c0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3019
diff changeset
   198
! !

aae6b34587c0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3019
diff changeset
   199

aae6b34587c0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3019
diff changeset
   200
!PCFilename class methodsFor:'documentation'!

aae6b34587c0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3019
diff changeset
   201

aae6b34587c0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3019
diff changeset
   202
version
aae6b34587c0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3019
diff changeset
   203
    ^ '$Header: /cvs/stx/stx/libbasic/PCFilename.st,v 1.6 1997-10-16 11:17:03 cg Exp $'
aae6b34587c0 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 3019
diff changeset
   204
! !