blob: 1b3ea8d0fc76e06a959dea6523c887a5d89ab165 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
|
$NetBSD: patch-ac,v 1.1.1.1 2002/01/07 08:07:59 skrll Exp $
--- src/tools/qdir_unix.cpp.orig Wed Dec 12 06:58:31 2001
+++ src/tools/qdir_unix.cpp
@@ -81,10 +81,19 @@
bool QDir::mkdir( const QString &dirName, bool acceptAbsPath ) const
{
-#ifdef Q_OS_MACX // Mac X doesn't support trailing /'s
+#ifdef Q_TRAILING_DIR_SEP // Some OSes doesn't support trailing /'s
QString name = dirName;
- if (dirName[dirName.length() - 1] == "/")
- name = dirName.left( dirName.length() - 1 );
+ int pos = name.length();
+ if (pos > 0) {
+ while ( (pos - 1) >= 0 && name[pos - 1] == '/' ) {
+ --pos;
+ };
+ if ( pos == 0 ) {
+ name = QDir::rootDirPath();
+ } else {
+ name.truncate( pos );
+ }
+ }
return QT_MKDIR( QFile::encodeName(filePath(name,acceptAbsPath)), 0777 )
== 0;
#else
@@ -95,7 +104,24 @@
bool QDir::rmdir( const QString &dirName, bool acceptAbsPath ) const
{
+#ifdef Q_TRAILING_DIR_SEP // Some OSes doesn't support trailing /'s
+ QString name = dirName;
+ int pos = name.length();
+ if (pos > 0) {
+ while ( (pos - 1) >= 0 && name[pos - 1] == '/' ) {
+ --pos;
+ };
+ if ( pos == 0 ) {
+ name = QDir::rootDirPath();
+ } else {
+ name.truncate( pos );
+ }
+ }
+ return QT_RMDIR( QFile::encodeName(filePath(name,acceptAbsPath)) )
+ == 0;
+#else
return QT_RMDIR( QFile::encodeName(filePath(dirName,acceptAbsPath)) ) == 0;
+#endif
}
bool QDir::isReadable() const
|