UnixFilename.st
author Jan Vrany <jan.vrany@fit.cvut.cz>
Tue, 22 Sep 2015 16:28:42 +0100
branchjv
changeset 18759 c1217211909c
parent 18120 e3a375d5f6a8
child 19861 95c7068e30ba
permissions -rw-r--r--
Changed identification strings to contain jv-branch ...to make explicit that this distribution is not the official one used by eXept and therefore that eXept is not to be blamed in case of any problem.
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
2943
89dee83077bd Add #isImplicit to check for builtin dir names such as '.' and '..'.
Stefan Vogel <sv@exept.de>
parents: 2931
diff changeset
     1
"
89dee83077bd Add #isImplicit to check for builtin dir names such as '.' and '..'.
Stefan Vogel <sv@exept.de>
parents: 2931
diff changeset
     2
 COPYRIGHT (c) 1997 by eXept Software AG
3125
543358373041 care for filenames with blanks when invoking 'file' command
Claus Gittinger <cg@exept.de>
parents: 2943
diff changeset
     3
	      All Rights Reserved
2943
89dee83077bd Add #isImplicit to check for builtin dir names such as '.' and '..'.
Stefan Vogel <sv@exept.de>
parents: 2931
diff changeset
     4
89dee83077bd Add #isImplicit to check for builtin dir names such as '.' and '..'.
Stefan Vogel <sv@exept.de>
parents: 2931
diff changeset
     5
 This software is furnished under a license and may be used
89dee83077bd Add #isImplicit to check for builtin dir names such as '.' and '..'.
Stefan Vogel <sv@exept.de>
parents: 2931
diff changeset
     6
 only in accordance with the terms of that license and with the
89dee83077bd Add #isImplicit to check for builtin dir names such as '.' and '..'.
Stefan Vogel <sv@exept.de>
parents: 2931
diff changeset
     7
 inclusion of the above copyright notice.   This software may not
89dee83077bd Add #isImplicit to check for builtin dir names such as '.' and '..'.
Stefan Vogel <sv@exept.de>
parents: 2931
diff changeset
     8
 be provided or otherwise made available to, or used by, any
89dee83077bd Add #isImplicit to check for builtin dir names such as '.' and '..'.
Stefan Vogel <sv@exept.de>
parents: 2931
diff changeset
     9
 other person.  No title to or ownership of the software is
89dee83077bd Add #isImplicit to check for builtin dir names such as '.' and '..'.
Stefan Vogel <sv@exept.de>
parents: 2931
diff changeset
    10
 hereby transferred.
89dee83077bd Add #isImplicit to check for builtin dir names such as '.' and '..'.
Stefan Vogel <sv@exept.de>
parents: 2931
diff changeset
    11
"
7939
3a8b75e8f804 catch twoByte string names (assume UTF8)
Claus Gittinger <cg@exept.de>
parents: 3664
diff changeset
    12
"{ Package: 'stx:libbasic' }"
3a8b75e8f804 catch twoByte string names (assume UTF8)
Claus Gittinger <cg@exept.de>
parents: 3664
diff changeset
    13
2907
1666bf27f351 VMS changes
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    14
Filename subclass:#UnixFilename
1666bf27f351 VMS changes
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    15
	instanceVariableNames:''
1666bf27f351 VMS changes
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    16
	classVariableNames:''
1666bf27f351 VMS changes
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    17
	poolDictionaries:''
1666bf27f351 VMS changes
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    18
	category:'OS-Unix'
1666bf27f351 VMS changes
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    19
!
1666bf27f351 VMS changes
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    20
2911
9964e6839a8e *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2908
diff changeset
    21
!UnixFilename class methodsFor:'documentation'!
9964e6839a8e *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2908
diff changeset
    22
2931
11bcbf8738c6 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2911
diff changeset
    23
copyright
11bcbf8738c6 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2911
diff changeset
    24
"
11bcbf8738c6 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2911
diff changeset
    25
 COPYRIGHT (c) 1997 by eXept Software AG
3125
543358373041 care for filenames with blanks when invoking 'file' command
Claus Gittinger <cg@exept.de>
parents: 2943
diff changeset
    26
	      All Rights Reserved
2931
11bcbf8738c6 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2911
diff changeset
    27
11bcbf8738c6 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2911
diff changeset
    28
 This software is furnished under a license and may be used
11bcbf8738c6 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2911
diff changeset
    29
 only in accordance with the terms of that license and with the
11bcbf8738c6 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2911
diff changeset
    30
 inclusion of the above copyright notice.   This software may not
11bcbf8738c6 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2911
diff changeset
    31
 be provided or otherwise made available to, or used by, any
11bcbf8738c6 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2911
diff changeset
    32
 other person.  No title to or ownership of the software is
11bcbf8738c6 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2911
diff changeset
    33
 hereby transferred.
11bcbf8738c6 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2911
diff changeset
    34
"
11bcbf8738c6 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2911
diff changeset
    35
!
11bcbf8738c6 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2911
diff changeset
    36
2911
9964e6839a8e *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2908
diff changeset
    37
documentation
9964e6839a8e *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2908
diff changeset
    38
"
9964e6839a8e *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2908
diff changeset
    39
    Filenames in Unix.
9964e6839a8e *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2908
diff changeset
    40
"
9964e6839a8e *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2908
diff changeset
    41
11318
fc07976462e8 Care for UTF8 filenams in linux/unix
Stefan Vogel <sv@exept.de>
parents: 9940
diff changeset
    42
!
7939
3a8b75e8f804 catch twoByte string names (assume UTF8)
Claus Gittinger <cg@exept.de>
parents: 3664
diff changeset
    43
11318
fc07976462e8 Care for UTF8 filenams in linux/unix
Stefan Vogel <sv@exept.de>
parents: 9940
diff changeset
    44
examples
7939
3a8b75e8f804 catch twoByte string names (assume UTF8)
Claus Gittinger <cg@exept.de>
parents: 3664
diff changeset
    45
    "
11318
fc07976462e8 Care for UTF8 filenams in linux/unix
Stefan Vogel <sv@exept.de>
parents: 9940
diff changeset
    46
        (self named:'/tmp/äöü') writeStream close
7939
3a8b75e8f804 catch twoByte string names (assume UTF8)
Claus Gittinger <cg@exept.de>
parents: 3664
diff changeset
    47
    "
3a8b75e8f804 catch twoByte string names (assume UTF8)
Claus Gittinger <cg@exept.de>
parents: 3664
diff changeset
    48
! !
3a8b75e8f804 catch twoByte string names (assume UTF8)
Claus Gittinger <cg@exept.de>
parents: 3664
diff changeset
    49
17047
add3f6361c26 class: UnixFilename
Claus Gittinger <cg@exept.de>
parents: 16754
diff changeset
    50
!UnixFilename class methodsFor:'defaults'!
add3f6361c26 class: UnixFilename
Claus Gittinger <cg@exept.de>
parents: 16754
diff changeset
    51
add3f6361c26 class: UnixFilename
Claus Gittinger <cg@exept.de>
parents: 16754
diff changeset
    52
defaultTempDirectoryName
add3f6361c26 class: UnixFilename
Claus Gittinger <cg@exept.de>
parents: 16754
diff changeset
    53
    "return the default temp directory as a filename."
add3f6361c26 class: UnixFilename
Claus Gittinger <cg@exept.de>
parents: 16754
diff changeset
    54
add3f6361c26 class: UnixFilename
Claus Gittinger <cg@exept.de>
parents: 16754
diff changeset
    55
    |tempDirString tempDir|
add3f6361c26 class: UnixFilename
Claus Gittinger <cg@exept.de>
parents: 16754
diff changeset
    56
add3f6361c26 class: UnixFilename
Claus Gittinger <cg@exept.de>
parents: 16754
diff changeset
    57
    #('STX_TMPDIR' 'ST_TMPDIR' 'TMPDIR' 'TEMPDIR' 'TEMP' 'TMP') do:[:envVar |
add3f6361c26 class: UnixFilename
Claus Gittinger <cg@exept.de>
parents: 16754
diff changeset
    58
        tempDirString := OperatingSystem getEnvironment:envVar.
add3f6361c26 class: UnixFilename
Claus Gittinger <cg@exept.de>
parents: 16754
diff changeset
    59
        tempDirString notNil ifTrue:[
add3f6361c26 class: UnixFilename
Claus Gittinger <cg@exept.de>
parents: 16754
diff changeset
    60
            tempDir := self named:tempDirString.    
add3f6361c26 class: UnixFilename
Claus Gittinger <cg@exept.de>
parents: 16754
diff changeset
    61
            (tempDir exists and:[ tempDir isWritable ]) ifTrue:[
17073
10f589aa4409 class: UnixFilename
Claus Gittinger <cg@exept.de>
parents: 17047
diff changeset
    62
                ('Filename [info]: using tmp folder "%1" as specified by environment: "%2"'
17075
ff03935f9141 class: UnixFilename
Claus Gittinger <cg@exept.de>
parents: 17073
diff changeset
    63
                    bindWith:tempDir pathName with:envVar) infoPrintCR.
17047
add3f6361c26 class: UnixFilename
Claus Gittinger <cg@exept.de>
parents: 16754
diff changeset
    64
                ^ tempDir asFilename.
add3f6361c26 class: UnixFilename
Claus Gittinger <cg@exept.de>
parents: 16754
diff changeset
    65
            ].
add3f6361c26 class: UnixFilename
Claus Gittinger <cg@exept.de>
parents: 16754
diff changeset
    66
        ].
add3f6361c26 class: UnixFilename
Claus Gittinger <cg@exept.de>
parents: 16754
diff changeset
    67
    ].
add3f6361c26 class: UnixFilename
Claus Gittinger <cg@exept.de>
parents: 16754
diff changeset
    68
add3f6361c26 class: UnixFilename
Claus Gittinger <cg@exept.de>
parents: 16754
diff changeset
    69
    tempDir := '/tmp' asFilename.
add3f6361c26 class: UnixFilename
Claus Gittinger <cg@exept.de>
parents: 16754
diff changeset
    70
    ('Filename [info]: using default unix tmp folder: ',tempDir pathName) infoPrintCR.
add3f6361c26 class: UnixFilename
Claus Gittinger <cg@exept.de>
parents: 16754
diff changeset
    71
    ^ tempDir    
add3f6361c26 class: UnixFilename
Claus Gittinger <cg@exept.de>
parents: 16754
diff changeset
    72
add3f6361c26 class: UnixFilename
Claus Gittinger <cg@exept.de>
parents: 16754
diff changeset
    73
    "
add3f6361c26 class: UnixFilename
Claus Gittinger <cg@exept.de>
parents: 16754
diff changeset
    74
     Filename defaultTempDirectoryName
add3f6361c26 class: UnixFilename
Claus Gittinger <cg@exept.de>
parents: 16754
diff changeset
    75
     Filename defaultTempDirectoryName exists
add3f6361c26 class: UnixFilename
Claus Gittinger <cg@exept.de>
parents: 16754
diff changeset
    76
     Filename defaultTempDirectoryName isWritable
add3f6361c26 class: UnixFilename
Claus Gittinger <cg@exept.de>
parents: 16754
diff changeset
    77
    "
add3f6361c26 class: UnixFilename
Claus Gittinger <cg@exept.de>
parents: 16754
diff changeset
    78
! !
add3f6361c26 class: UnixFilename
Claus Gittinger <cg@exept.de>
parents: 16754
diff changeset
    79
2907
1666bf27f351 VMS changes
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    80
!UnixFilename class methodsFor:'queries'!
1666bf27f351 VMS changes
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    81
1666bf27f351 VMS changes
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    82
isBadCharacter:aCharacter
1666bf27f351 VMS changes
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    83
    "return true, if aCharacter is unallowed in a filename."
1666bf27f351 VMS changes
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    84
1666bf27f351 VMS changes
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    85
    aCharacter == $/ ifTrue:[^ true].
1666bf27f351 VMS changes
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    86
    ^ super isBadCharacter:aCharacter
1666bf27f351 VMS changes
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    87
1666bf27f351 VMS changes
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    88
    "Created: 8.9.1997 / 00:13:14 / cg"
1666bf27f351 VMS changes
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    89
!
1666bf27f351 VMS changes
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    90
2908
b3be3629fcb1 vms stuff
Claus Gittinger <cg@exept.de>
parents: 2907
diff changeset
    91
isCaseSensitive
b3be3629fcb1 vms stuff
Claus Gittinger <cg@exept.de>
parents: 2907
diff changeset
    92
    "return true, if filenames are case sensitive.return true, if filenames are case sensitive."
b3be3629fcb1 vms stuff
Claus Gittinger <cg@exept.de>
parents: 2907
diff changeset
    93
14818
bf4f76418acf class: UnixFilename
Claus Gittinger <cg@exept.de>
parents: 14569
diff changeset
    94
    ^ OperatingSystem caseSensitiveFilenames
2908
b3be3629fcb1 vms stuff
Claus Gittinger <cg@exept.de>
parents: 2907
diff changeset
    95
!
b3be3629fcb1 vms stuff
Claus Gittinger <cg@exept.de>
parents: 2907
diff changeset
    96
3171
02ef7b6cc664 Add #nullFilename
Stefan Vogel <sv@exept.de>
parents: 3125
diff changeset
    97
nullFilename
02ef7b6cc664 Add #nullFilename
Stefan Vogel <sv@exept.de>
parents: 3125
diff changeset
    98
    "Return /dev/null"
02ef7b6cc664 Add #nullFilename
Stefan Vogel <sv@exept.de>
parents: 3125
diff changeset
    99
02ef7b6cc664 Add #nullFilename
Stefan Vogel <sv@exept.de>
parents: 3125
diff changeset
   100
    ^ '/dev/null'
02ef7b6cc664 Add #nullFilename
Stefan Vogel <sv@exept.de>
parents: 3125
diff changeset
   101
02ef7b6cc664 Add #nullFilename
Stefan Vogel <sv@exept.de>
parents: 3125
diff changeset
   102
    "
8752
3e7429854c55 comments
Stefan Vogel <sv@exept.de>
parents: 8245
diff changeset
   103
     Filename nullFilename  
3171
02ef7b6cc664 Add #nullFilename
Stefan Vogel <sv@exept.de>
parents: 3125
diff changeset
   104
    "
02ef7b6cc664 Add #nullFilename
Stefan Vogel <sv@exept.de>
parents: 3125
diff changeset
   105
02ef7b6cc664 Add #nullFilename
Stefan Vogel <sv@exept.de>
parents: 3125
diff changeset
   106
    "Modified: / 14.1.1998 / 14:20:55 / stefan"
02ef7b6cc664 Add #nullFilename
Stefan Vogel <sv@exept.de>
parents: 3125
diff changeset
   107
!
02ef7b6cc664 Add #nullFilename
Stefan Vogel <sv@exept.de>
parents: 3125
diff changeset
   108
2908
b3be3629fcb1 vms stuff
Claus Gittinger <cg@exept.de>
parents: 2907
diff changeset
   109
parentDirectoryName
b3be3629fcb1 vms stuff
Claus Gittinger <cg@exept.de>
parents: 2907
diff changeset
   110
    "return the name used for the parent directory.
b3be3629fcb1 vms stuff
Claus Gittinger <cg@exept.de>
parents: 2907
diff changeset
   111
     This is '..' for unix and dos-like systems.
b3be3629fcb1 vms stuff
Claus Gittinger <cg@exept.de>
parents: 2907
diff changeset
   112
     (there may be more in the future."
b3be3629fcb1 vms stuff
Claus Gittinger <cg@exept.de>
parents: 2907
diff changeset
   113
b3be3629fcb1 vms stuff
Claus Gittinger <cg@exept.de>
parents: 2907
diff changeset
   114
    ^ '..'
b3be3629fcb1 vms stuff
Claus Gittinger <cg@exept.de>
parents: 2907
diff changeset
   115
!
b3be3629fcb1 vms stuff
Claus Gittinger <cg@exept.de>
parents: 2907
diff changeset
   116
2907
1666bf27f351 VMS changes
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   117
separator
1666bf27f351 VMS changes
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   118
    "return the file/directory separator."
1666bf27f351 VMS changes
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   119
1666bf27f351 VMS changes
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   120
     ^ $/
1666bf27f351 VMS changes
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   121
1666bf27f351 VMS changes
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   122
     "
1666bf27f351 VMS changes
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   123
      Filename concreteClass separator  
1666bf27f351 VMS changes
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   124
     "
1666bf27f351 VMS changes
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   125
1666bf27f351 VMS changes
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   126
    "Created: 8.9.1997 / 00:18:14 / cg"
8245
343908a8a4e1 separatorString / separator
Claus Gittinger <cg@exept.de>
parents: 7939
diff changeset
   127
!
343908a8a4e1 separatorString / separator
Claus Gittinger <cg@exept.de>
parents: 7939
diff changeset
   128
343908a8a4e1 separatorString / separator
Claus Gittinger <cg@exept.de>
parents: 7939
diff changeset
   129
separatorString
343908a8a4e1 separatorString / separator
Claus Gittinger <cg@exept.de>
parents: 7939
diff changeset
   130
    "return the file/directory separator as a string."
343908a8a4e1 separatorString / separator
Claus Gittinger <cg@exept.de>
parents: 7939
diff changeset
   131
343908a8a4e1 separatorString / separator
Claus Gittinger <cg@exept.de>
parents: 7939
diff changeset
   132
    ^ '/'
343908a8a4e1 separatorString / separator
Claus Gittinger <cg@exept.de>
parents: 7939
diff changeset
   133
343908a8a4e1 separatorString / separator
Claus Gittinger <cg@exept.de>
parents: 7939
diff changeset
   134
    "
8752
3e7429854c55 comments
Stefan Vogel <sv@exept.de>
parents: 8245
diff changeset
   135
     Filename separatorString  
8245
343908a8a4e1 separatorString / separator
Claus Gittinger <cg@exept.de>
parents: 7939
diff changeset
   136
    "
2907
1666bf27f351 VMS changes
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   137
! !
1666bf27f351 VMS changes
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   138
1666bf27f351 VMS changes
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   139
!UnixFilename methodsFor:'file queries'!
1666bf27f351 VMS changes
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   140
1666bf27f351 VMS changes
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   141
fileType
1666bf27f351 VMS changes
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   142
    "this returns a string describing the type of contents of
1666bf27f351 VMS changes
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   143
     the file. This is done using the unix 'file' command,
1666bf27f351 VMS changes
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   144
     (which usually is configurable by /etc/magic).
3664
7bcbf8c6c2cf comments;
Claus Gittinger <cg@exept.de>
parents: 3171
diff changeset
   145
     Warning:
7bcbf8c6c2cf comments;
Claus Gittinger <cg@exept.de>
parents: 3171
diff changeset
   146
         Since the returned string differs among systems (and language settings),
7bcbf8c6c2cf comments;
Claus Gittinger <cg@exept.de>
parents: 3171
diff changeset
   147
         it is only useful for user-information; 
7bcbf8c6c2cf comments;
Claus Gittinger <cg@exept.de>
parents: 3171
diff changeset
   148
         NOT as a tag to be used by a program."
2907
1666bf27f351 VMS changes
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   149
16581
93a7592ed3bd class: UnixFilename
Claus Gittinger <cg@exept.de>
parents: 15809
diff changeset
   150
    |typeString|
2907
1666bf27f351 VMS changes
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   151
16754
0e2a27636731 class: UnixFilename
Claus Gittinger <cg@exept.de>
parents: 16581
diff changeset
   152
    "/ since executing 'file' takes some time, the most common
2907
1666bf27f351 VMS changes
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   153
    "/ ones are checked first, using the general fileType implementation. 
16754
0e2a27636731 class: UnixFilename
Claus Gittinger <cg@exept.de>
parents: 16581
diff changeset
   154
    "/ (also, the file-command is only available on Unix systems,
0e2a27636731 class: UnixFilename
Claus Gittinger <cg@exept.de>
parents: 16581
diff changeset
   155
    "/ so this provides a reasonable fallback).
2907
1666bf27f351 VMS changes
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   156
1666bf27f351 VMS changes
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   157
    typeString := super fileType.
1666bf27f351 VMS changes
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   158
    typeString ~= 'file' ifTrue:[^ typeString].
1666bf27f351 VMS changes
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   159
16581
93a7592ed3bd class: UnixFilename
Claus Gittinger <cg@exept.de>
parents: 15809
diff changeset
   160
    typeString := PipeStream outputFromCommand:('file "' , self pathName , '"').
93a7592ed3bd class: UnixFilename
Claus Gittinger <cg@exept.de>
parents: 15809
diff changeset
   161
    typeString notNil ifTrue:[
3664
7bcbf8c6c2cf comments;
Claus Gittinger <cg@exept.de>
parents: 3171
diff changeset
   162
        typeString := typeString copyFrom:(typeString indexOf:$:) + 1.
7bcbf8c6c2cf comments;
Claus Gittinger <cg@exept.de>
parents: 3171
diff changeset
   163
        typeString := typeString withoutSeparators
2907
1666bf27f351 VMS changes
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   164
    ].
1666bf27f351 VMS changes
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   165
    ^ typeString
1666bf27f351 VMS changes
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   166
1666bf27f351 VMS changes
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   167
    "
1666bf27f351 VMS changes
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   168
     'Makefile' asFilename fileType 
1666bf27f351 VMS changes
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   169
     '.' asFilename fileType     
1666bf27f351 VMS changes
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   170
     '/dev/null' asFilename fileType        
1666bf27f351 VMS changes
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   171
     'smalltalk.rc' asFilename fileType    
1666bf27f351 VMS changes
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   172
     'bitmaps/SBrowser.xbm' asFilename fileType    
3664
7bcbf8c6c2cf comments;
Claus Gittinger <cg@exept.de>
parents: 3171
diff changeset
   173
     '../../libtool/bitmaps/SBrowser.xbm' asFilename fileType    
16581
93a7592ed3bd class: UnixFilename
Claus Gittinger <cg@exept.de>
parents: 15809
diff changeset
   174
     './stx' asFilename fileType    
2907
1666bf27f351 VMS changes
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   175
    "
1666bf27f351 VMS changes
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   176
3664
7bcbf8c6c2cf comments;
Claus Gittinger <cg@exept.de>
parents: 3171
diff changeset
   177
    "Modified: / 21.7.1998 / 11:26:32 / cg"
2907
1666bf27f351 VMS changes
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   178
! !
1666bf27f351 VMS changes
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   179
2931
11bcbf8738c6 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2911
diff changeset
   180
!UnixFilename methodsFor:'queries'!
11bcbf8738c6 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2911
diff changeset
   181
11bcbf8738c6 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2911
diff changeset
   182
isExplicitRelative
11bcbf8738c6 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2911
diff changeset
   183
    "return true, if this name is an explicit relative name
11bcbf8738c6 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2911
diff changeset
   184
     (i.e. starts with './' or '../', to avoid path-prepending)"
11bcbf8738c6 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2911
diff changeset
   185
11bcbf8738c6 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2911
diff changeset
   186
    (nameString startsWith:'./') ifTrue:[
11bcbf8738c6 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2911
diff changeset
   187
	^ true
11bcbf8738c6 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2911
diff changeset
   188
    ].
11bcbf8738c6 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2911
diff changeset
   189
    (nameString startsWith:'../') ifTrue:[
11bcbf8738c6 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2911
diff changeset
   190
	^ true
11bcbf8738c6 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2911
diff changeset
   191
    ].
11bcbf8738c6 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2911
diff changeset
   192
    ^ false
11bcbf8738c6 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2911
diff changeset
   193
!
11bcbf8738c6 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2911
diff changeset
   194
11bcbf8738c6 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2911
diff changeset
   195
isHidden
11bcbf8738c6 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2911
diff changeset
   196
    "return true, if the receiver represents a hidden file.
11bcbf8738c6 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2911
diff changeset
   197
     On UNIX, a name starting with a period is considered hidden."
11bcbf8738c6 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2911
diff changeset
   198
12390
42abbd021501 changed: #isHidden
Claus Gittinger <cg@exept.de>
parents: 11318
diff changeset
   199
    |baseName|
42abbd021501 changed: #isHidden
Claus Gittinger <cg@exept.de>
parents: 11318
diff changeset
   200
42abbd021501 changed: #isHidden
Claus Gittinger <cg@exept.de>
parents: 11318
diff changeset
   201
    baseName := self baseName.
42abbd021501 changed: #isHidden
Claus Gittinger <cg@exept.de>
parents: 11318
diff changeset
   202
    ^ ((baseName startsWith:'.') and:[baseName ~= '..'])
2943
89dee83077bd Add #isImplicit to check for builtin dir names such as '.' and '..'.
Stefan Vogel <sv@exept.de>
parents: 2931
diff changeset
   203
!
89dee83077bd Add #isImplicit to check for builtin dir names such as '.' and '..'.
Stefan Vogel <sv@exept.de>
parents: 2931
diff changeset
   204
89dee83077bd Add #isImplicit to check for builtin dir names such as '.' and '..'.
Stefan Vogel <sv@exept.de>
parents: 2931
diff changeset
   205
isImplicit
89dee83077bd Add #isImplicit to check for builtin dir names such as '.' and '..'.
Stefan Vogel <sv@exept.de>
parents: 2931
diff changeset
   206
    "return true, if the receiver represents builtin names such as '.' or '..'.
3664
7bcbf8c6c2cf comments;
Claus Gittinger <cg@exept.de>
parents: 3171
diff changeset
   207
     On UNIX, the current and parent dir names are considered implicit."
2943
89dee83077bd Add #isImplicit to check for builtin dir names such as '.' and '..'.
Stefan Vogel <sv@exept.de>
parents: 2931
diff changeset
   208
89dee83077bd Add #isImplicit to check for builtin dir names such as '.' and '..'.
Stefan Vogel <sv@exept.de>
parents: 2931
diff changeset
   209
    |name|
89dee83077bd Add #isImplicit to check for builtin dir names such as '.' and '..'.
Stefan Vogel <sv@exept.de>
parents: 2931
diff changeset
   210
89dee83077bd Add #isImplicit to check for builtin dir names such as '.' and '..'.
Stefan Vogel <sv@exept.de>
parents: 2931
diff changeset
   211
    name := self baseName.
89dee83077bd Add #isImplicit to check for builtin dir names such as '.' and '..'.
Stefan Vogel <sv@exept.de>
parents: 2931
diff changeset
   212
    ^ name = '.' or:[name = '..'].
89dee83077bd Add #isImplicit to check for builtin dir names such as '.' and '..'.
Stefan Vogel <sv@exept.de>
parents: 2931
diff changeset
   213
3664
7bcbf8c6c2cf comments;
Claus Gittinger <cg@exept.de>
parents: 3171
diff changeset
   214
    "Modified: / 18.9.1997 / 18:03:28 / stefan"
7bcbf8c6c2cf comments;
Claus Gittinger <cg@exept.de>
parents: 3171
diff changeset
   215
    "Modified: / 21.7.1998 / 11:10:42 / cg"
2931
11bcbf8738c6 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2911
diff changeset
   216
! !
11bcbf8738c6 *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2911
diff changeset
   217
11318
fc07976462e8 Care for UTF8 filenams in linux/unix
Stefan Vogel <sv@exept.de>
parents: 9940
diff changeset
   218
!UnixFilename methodsFor:'special accessing'!
fc07976462e8 Care for UTF8 filenams in linux/unix
Stefan Vogel <sv@exept.de>
parents: 9940
diff changeset
   219
14221
d2ef1c042257 Fix the '~/dir/name' resolution fow windows
Stefan Vogel <sv@exept.de>
parents: 12390
diff changeset
   220
osName
d2ef1c042257 Fix the '~/dir/name' resolution fow windows
Stefan Vogel <sv@exept.de>
parents: 12390
diff changeset
   221
    "redefined from superclass, because we do not distinguish file and directory names"
11318
fc07976462e8 Care for UTF8 filenams in linux/unix
Stefan Vogel <sv@exept.de>
parents: 9940
diff changeset
   222
fc07976462e8 Care for UTF8 filenams in linux/unix
Stefan Vogel <sv@exept.de>
parents: 9940
diff changeset
   223
    ^ self osNameForFile
fc07976462e8 Care for UTF8 filenams in linux/unix
Stefan Vogel <sv@exept.de>
parents: 9940
diff changeset
   224
! !
fc07976462e8 Care for UTF8 filenams in linux/unix
Stefan Vogel <sv@exept.de>
parents: 9940
diff changeset
   225
2911
9964e6839a8e *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2908
diff changeset
   226
!UnixFilename class methodsFor:'documentation'!
2907
1666bf27f351 VMS changes
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   227
2911
9964e6839a8e *** empty log message ***
Claus Gittinger <cg@exept.de>
parents: 2908
diff changeset
   228
version
17075
ff03935f9141 class: UnixFilename
Claus Gittinger <cg@exept.de>
parents: 17073
diff changeset
   229
    ^ '$Header: /cvs/stx/stx/libbasic/UnixFilename.st,v 1.25 2014-11-18 18:59:35 cg Exp $'
12390
42abbd021501 changed: #isHidden
Claus Gittinger <cg@exept.de>
parents: 11318
diff changeset
   230
!
42abbd021501 changed: #isHidden
Claus Gittinger <cg@exept.de>
parents: 11318
diff changeset
   231
42abbd021501 changed: #isHidden
Claus Gittinger <cg@exept.de>
parents: 11318
diff changeset
   232
version_CVS
17075
ff03935f9141 class: UnixFilename
Claus Gittinger <cg@exept.de>
parents: 17073
diff changeset
   233
    ^ '$Header: /cvs/stx/stx/libbasic/UnixFilename.st,v 1.25 2014-11-18 18:59:35 cg Exp $'
2907
1666bf27f351 VMS changes
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   234
! !
14818
bf4f76418acf class: UnixFilename
Claus Gittinger <cg@exept.de>
parents: 14569
diff changeset
   235