Diffstat (limited to 'kabc/plugins/dir/resourcedir.cpp') (more/less context) (ignore whitespace changes)
-rw-r--r-- | kabc/plugins/dir/resourcedir.cpp | 6 |
1 files changed, 4 insertions, 2 deletions
diff --git a/kabc/plugins/dir/resourcedir.cpp b/kabc/plugins/dir/resourcedir.cpp index be19821..6ea2f4b 100644 --- a/kabc/plugins/dir/resourcedir.cpp +++ b/kabc/plugins/dir/resourcedir.cpp | |||
@@ -239,51 +239,53 @@ bool ResourceDir::lock( const QString &path ) | |||
239 | //US QString lockName = locateLocal( "data", "kabc/lock/" + p + ".lock" ); | 239 | //US QString lockName = locateLocal( "data", "kabc/lock/" + p + ".lock" ); |
240 | KURL url(p); | 240 | KURL url(p); |
241 | QString lockName = locateLocal( "data", "kabc/lock/" + url.fileName() + ".lock" ); | 241 | QString lockName = locateLocal( "data", "kabc/lock/" + url.fileName() + ".lock" ); |
242 | 242 | ||
243 | 243 | ||
244 | kdDebug(5700) << "-- lock name: " << lockName << endl; | 244 | kdDebug(5700) << "-- lock name: " << lockName << endl; |
245 | 245 | ||
246 | if ( QFile::exists( lockName ) ) return false; | 246 | if ( QFile::exists( lockName ) ) return false; |
247 | 247 | ||
248 | QString lockUniqueName; | 248 | QString lockUniqueName; |
249 | lockUniqueName = p + KApplication::randomString( 8 ); | 249 | lockUniqueName = p + KApplication::randomString( 8 ); |
250 | 250 | ||
251 | url = lockUniqueName; | 251 | url = lockUniqueName; |
252 | //US mLockUniqueName = locateLocal( "data", "kabc/lock/" + lockUniqueName ); | 252 | //US mLockUniqueName = locateLocal( "data", "kabc/lock/" + lockUniqueName ); |
253 | mLockUniqueName = locateLocal( "data", "kabc/lock/" + url.fileName() ); | 253 | mLockUniqueName = locateLocal( "data", "kabc/lock/" + url.fileName() ); |
254 | 254 | ||
255 | kdDebug(5700) << "-- lock unique name: " << mLockUniqueName << endl; | 255 | kdDebug(5700) << "-- lock unique name: " << mLockUniqueName << endl; |
256 | 256 | ||
257 | // Create unique file | 257 | // Create unique file |
258 | QFile file( mLockUniqueName ); | 258 | QFile file( mLockUniqueName ); |
259 | file.open( IO_WriteOnly ); | 259 | file.open( IO_WriteOnly ); |
260 | file.close(); | 260 | file.close(); |
261 | 261 | ||
262 | // Create lock file | 262 | // Create lock file |
263 | int result = ::link( QFile::encodeName( mLockUniqueName ), | 263 | int result = 0; |
264 | #ifndef _WIN32_ | ||
265 | result = ::link( QFile::encodeName( mLockUniqueName ), | ||
264 | QFile::encodeName( lockName ) ); | 266 | QFile::encodeName( lockName ) ); |
265 | 267 | #endif | |
266 | if ( result == 0 ) { | 268 | if ( result == 0 ) { |
267 | addressBook()->emitAddressBookLocked(); | 269 | addressBook()->emitAddressBookLocked(); |
268 | return true; | 270 | return true; |
269 | } | 271 | } |
270 | 272 | ||
271 | // TODO: check stat | 273 | // TODO: check stat |
272 | 274 | ||
273 | return false; | 275 | return false; |
274 | } | 276 | } |
275 | 277 | ||
276 | void ResourceDir::unlock( const QString &path ) | 278 | void ResourceDir::unlock( const QString &path ) |
277 | { | 279 | { |
278 | QString p = path; | 280 | QString p = path; |
279 | //US change the implementation how the lockfilename is getting created | 281 | //US change the implementation how the lockfilename is getting created |
280 | //US p.replace( QRegExp( "/" ), "_" ); | 282 | //US p.replace( QRegExp( "/" ), "_" ); |
281 | //US QString lockName = locate( "data", "kabc/lock/" + p + ".lock" ); | 283 | //US QString lockName = locate( "data", "kabc/lock/" + p + ".lock" ); |
282 | KURL url(p); | 284 | KURL url(p); |
283 | QString lockName = locate( "data", "kabc/lock/" + url.fileName() + ".lock" ); | 285 | QString lockName = locate( "data", "kabc/lock/" + url.fileName() + ".lock" ); |
284 | 286 | ||
285 | ::unlink( QFile::encodeName( lockName ) ); | 287 | ::unlink( QFile::encodeName( lockName ) ); |
286 | QFile::remove( mLockUniqueName ); | 288 | QFile::remove( mLockUniqueName ); |
287 | addressBook()->emitAddressBookUnlocked(); | 289 | addressBook()->emitAddressBookUnlocked(); |
288 | } | 290 | } |
289 | 291 | ||