Diffstat (limited to 'kabc/plugins/file/resourcefile.cpp') (more/less context) (ignore whitespace changes)
-rw-r--r-- | kabc/plugins/file/resourcefile.cpp | 6 |
1 files changed, 4 insertions, 2 deletions
diff --git a/kabc/plugins/file/resourcefile.cpp b/kabc/plugins/file/resourcefile.cpp index 3920f69..4b4c935 100644 --- a/kabc/plugins/file/resourcefile.cpp +++ b/kabc/plugins/file/resourcefile.cpp | |||
@@ -265,51 +265,53 @@ bool ResourceFile::lock( const QString &fileName ) | |||
265 | //US fn.replace( QRegExp("/"), "_" ); | 265 | //US fn.replace( QRegExp("/"), "_" ); |
266 | //US QString lockName = locateLocal( "data", "kabc/lock/" + fn + ".lock" ); | 266 | //US QString lockName = locateLocal( "data", "kabc/lock/" + fn + ".lock" ); |
267 | 267 | ||
268 | KURL url(fn); | 268 | KURL url(fn); |
269 | QString lockName = locateLocal( "data", "kabc/lock/" + url.fileName() + ".lock" ); | 269 | QString lockName = locateLocal( "data", "kabc/lock/" + url.fileName() + ".lock" ); |
270 | 270 | ||
271 | 271 | ||
272 | 272 | ||
273 | if (QFile::exists( lockName )) return false; | 273 | if (QFile::exists( lockName )) return false; |
274 | 274 | ||
275 | QString lockUniqueName; | 275 | QString lockUniqueName; |
276 | lockUniqueName = fn + KApplication::randomString( 8 ); | 276 | lockUniqueName = fn + KApplication::randomString( 8 ); |
277 | 277 | ||
278 | url = lockUniqueName; | 278 | url = lockUniqueName; |
279 | //US mLockUniqueName = locateLocal( "data", "kabc/lock/" + lockUniqueName ); | 279 | //US mLockUniqueName = locateLocal( "data", "kabc/lock/" + lockUniqueName ); |
280 | mLockUniqueName = locateLocal( "data", "kabc/lock/" + url.fileName() ); | 280 | mLockUniqueName = locateLocal( "data", "kabc/lock/" + url.fileName() ); |
281 | kdDebug(5700) << "-- lock unique name: " << mLockUniqueName << endl; | 281 | kdDebug(5700) << "-- lock unique name: " << mLockUniqueName << endl; |
282 | 282 | ||
283 | // Create unique file | 283 | // Create unique file |
284 | QFile file( mLockUniqueName ); | 284 | QFile file( mLockUniqueName ); |
285 | file.open( IO_WriteOnly ); | 285 | file.open( IO_WriteOnly ); |
286 | file.close(); | 286 | file.close(); |
287 | 287 | ||
288 | // Create lock file | 288 | // Create lock file |
289 | int result = ::link( QFile::encodeName( mLockUniqueName ), | 289 | int result = 0; |
290 | #ifndef _WIN32_ | ||
291 | result = ::link( QFile::encodeName( mLockUniqueName ), | ||
290 | QFile::encodeName( lockName ) ); | 292 | QFile::encodeName( lockName ) ); |
291 | 293 | #endif | |
292 | if ( result == 0 ) { | 294 | if ( result == 0 ) { |
293 | addressBook()->emitAddressBookLocked(); | 295 | addressBook()->emitAddressBookLocked(); |
294 | return true; | 296 | return true; |
295 | } | 297 | } |
296 | 298 | ||
297 | // TODO: check stat | 299 | // TODO: check stat |
298 | 300 | ||
299 | return false; | 301 | return false; |
300 | } | 302 | } |
301 | 303 | ||
302 | void ResourceFile::unlock( const QString &fileName ) | 304 | void ResourceFile::unlock( const QString &fileName ) |
303 | { | 305 | { |
304 | QString fn = fileName; | 306 | QString fn = fileName; |
305 | //US change the implementation how the lockfilename is getting created | 307 | //US change the implementation how the lockfilename is getting created |
306 | //US fn.replace( QRegExp( "/" ), "_" ); | 308 | //US fn.replace( QRegExp( "/" ), "_" ); |
307 | //US QString lockName = locateLocal( "data", "kabc/lock/" + fn + ".lock" ); | 309 | //US QString lockName = locateLocal( "data", "kabc/lock/" + fn + ".lock" ); |
308 | //US QString lockName = fn + ".lock"; | 310 | //US QString lockName = fn + ".lock"; |
309 | KURL url(fn); | 311 | KURL url(fn); |
310 | QString lockName = locateLocal( "data", "kabc/lock/" + url.fileName() + ".lock" ); | 312 | QString lockName = locateLocal( "data", "kabc/lock/" + url.fileName() + ".lock" ); |
311 | 313 | ||
312 | QFile::remove( lockName ); | 314 | QFile::remove( lockName ); |
313 | QFile::remove( mLockUniqueName ); | 315 | QFile::remove( mLockUniqueName ); |
314 | addressBook()->emitAddressBookUnlocked(); | 316 | addressBook()->emitAddressBookUnlocked(); |
315 | } | 317 | } |