summaryrefslogtreecommitdiff
path: root/library
authorar <ar>2004-06-18 19:58:14 (UTC)
committer ar <ar>2004-06-18 19:58:14 (UTC)
commitd45caef648bce4a73f6f847bc6e9aad125977deb (patch) (side-by-side diff)
tree2e57aec5300028df4b90b1d07aeabd84e4ebc72f /library
parent589dc38a4c44ed7cdd151cf6c136b199ec273398 (diff)
downloadopie-d45caef648bce4a73f6f847bc6e9aad125977deb.zip
opie-d45caef648bce4a73f6f847bc6e9aad125977deb.tar.gz
opie-d45caef648bce4a73f6f847bc6e9aad125977deb.tar.bz2
- use QFile::encodeName instead of (const char*) or latin1()
- use POSIX rename
Diffstat (limited to 'library') (more/less context) (ignore whitespace changes)
-rw-r--r--library/filemanager.cpp29
1 files changed, 14 insertions, 15 deletions
diff --git a/library/filemanager.cpp b/library/filemanager.cpp
index 47af1c6..2e5efdd 100644
--- a/library/filemanager.cpp
+++ b/library/filemanager.cpp
@@ -23,16 +23,17 @@
/* QT */
#include <qdir.h>
#include <qfileinfo.h>
#include <qtextstream.h>
/* STD */
#include <stdlib.h>
+#include <errno.h>
#include <sys/stat.h>
/*!
\class FileManager
\brief The FileManager class assists with AppLnk input/output.
*/
/*!
@@ -58,28 +59,28 @@ bool FileManager::saveFile( const DocLnk &f, const QByteArray &data )
{
QString fileName = f.file() + ".new";
ensurePathExists( fileName );
QFile file( fileName );
//write data in temporary .new file
if ( !file.open( IO_WriteOnly|IO_Raw ) )
{
- qWarning("open failed");
+ qWarning( "open failed" );
return FALSE;
}
int total_written = file.writeBlock( data );
file.close();
//check if every was written
- if ( total_written != int(data.size()) || !f.writeLink() )
+ if ( total_written != int( data.size() ) || !f.writeLink() )
{
QFile::remove( fileName );
return FALSE;
}
- qDebug("total written %d out of %d", total_written, data.size());
+ qDebug( "total written %d out of %d", total_written, data.size() );
//rename temporary .new file in original filenam
if ( !renameFile( fileName, f.file() ) )
QFile::remove( fileName);
return TRUE;
}
/*!
@@ -93,25 +94,25 @@ bool FileManager::saveFile( const DocLnk &f, const QString &text )
{
QString fileName = f.file() + ".new";
ensurePathExists( fileName );
QFile file( fileName );
//write data in temporary .new file
if ( !file.open( IO_WriteOnly|IO_Raw ) )
{
- qWarning("open failed");
+ qWarning( "open failed" );
return FALSE;
}
QCString cstr = text.utf8();
int total_written;
total_written = file.writeBlock( cstr.data(), cstr.length() );
file.close();
- if ( total_written != int(cstr.length()) || !f.writeLink() )
+ if ( total_written != int( cstr.length()) || !f.writeLink() )
{
QFile::remove( fileName );
return FALSE;
}
// okay now rename the file..
if ( !renameFile( fileName, f.file() ) )
QFile::remove( fileName);
@@ -183,23 +184,23 @@ bool FileManager::copyFile( const AppLnk &src, const AppLnk &dest )
ok = copyFile( src.file(), fileName );
if ( ok )
ok = dest.writeLink();
if ( ok )
{
// okay now rename the file...
- if ( !renameFile( fileName.latin1(), dest.file().latin1() ) )
+ if ( !renameFile( fileName, dest.file() ) )
// remove the tmp file, otherwise, it will just lay around...
- QFile::remove( fileName.latin1() );
+ QFile::remove( fileName );
}
else
{
- QFile::remove( fileName.latin1() );
+ QFile::remove( fileName );
}
return ok;
}
bool FileManager::copyFile( const QString & src, const QString & dest )
{
//open read file
QFile srcFile( src );
@@ -236,30 +237,29 @@ bool FileManager::copyFile( const QString & src, const QString & dest )
else
bytesRead -= bytesWritten;
}
}
srcFile.close();
destFile.close();
// Set file permissions
struct stat status;
- if( stat( (const char *) src, &status ) == 0 )
+ if( stat( QFile::encodeName( src ), &status ) == 0 )
{
- chmod( (const char *) dest, status.st_mode );
+ chmod( QFile::encodeName( dest ), status.st_mode );
}
return ok;
}
bool FileManager::renameFile( const QString & src, const QString & dest )
{
- QDir dir( QFileInfo( src ).absFilePath() );
- if ( !dir.rename( src, dest ) )
+ if( rename( QFile::encodeName( src ), QFile::encodeName( dest ) ) == -1);
{
- qWarning( "problem renaming file %s to %s", src, dest );
+ qWarning( "problem renaming file %s to %s, errno: %d", src.latin1(), dest.latin1(), errno );
return false;
}
return true;
}
/*!
Opens the document specified by \a f as a readable QIODevice.
The caller must delete the return value.
@@ -315,14 +315,13 @@ bool FileManager::exists( const DocLnk &f )
Returns TRUE if successful.
*/
bool FileManager::ensurePathExists( const QString &fn )
{
QFileInfo fi(fn);
fi.setFile( fi.dirPath(TRUE) );
if ( !fi.exists() )
{
- if ( system(("mkdir -p "+fi.filePath())) )
+ if ( system( ("mkdir -p " + QFile::encodeName( fi.filePath() ) ) ) )
return FALSE;
}
-
return TRUE;
}