Changeset 4763
- Timestamp:
- 05/13/07 13:45:02 (1 year ago)
- Files:
-
- wired/trunk/wired/files.c (modified) (6 diffs)
- wired/trunk/wired/users.c (modified) (28 diffs)
Legend:
- Unmodified
- Added
- Removed
- Modified
- Copied
- Moved
wired/trunk/wired/files.c
r4750 r4763 73 73 static wi_boolean_t wd_files_read_comment(wi_file_t *, wi_string_t **, wi_string_t **); 74 74 75 static WI_FTS * wd_files_fts_open(wi_string_t *); 76 static WI_FTS * wd_files_fts_open_sorted(wi_string_t *); 75 static WI_FTS * wd_files_fts_open(wi_string_t *, wi_boolean_t, wi_boolean_t); 77 76 static wd_files_fts_action_t wd_files_fts_action(WI_FTSENT *, int *); 78 77 static int wd_files_fts_namecmp(const WI_FTSENT **, const WI_FTSENT **); … … 143 142 } 144 143 145 fts = wd_files_fts_open _sorted(realpath);144 fts = wd_files_fts_open(realpath, true, true); 146 145 147 146 if(!fts) { … … 284 283 int error; 285 284 286 fts = wd_files_fts_open(path );285 fts = wd_files_fts_open(path, false, false); 287 286 288 287 if(!fts) { … … 562 561 wi_boolean_t alias, recurse; 563 562 564 fts = wd_files_fts_open(path );563 fts = wd_files_fts_open(path, false, true); 565 564 566 565 if(!fts) { … … 878 877 } 879 878 880 fts = wd_files_fts_open(path );879 fts = wd_files_fts_open(path, false, true); 881 880 882 881 if(!fts) { … … 1296 1295 #pragma mark - 1297 1296 1298 static WI_FTS * wd_files_fts_open(wi_string_t *path ) {1297 static WI_FTS * wd_files_fts_open(wi_string_t *path, wi_boolean_t sorted, wi_boolean_t logical) { 1299 1298 WI_FTS *fts; 1300 1299 char *paths[2]; 1300 int options; 1301 1301 1302 1302 paths[0] = (char *) wi_string_cstring(path); 1303 1303 paths[1] = NULL; 1304 1304 1305 options = WI_FTS_NOSTAT; 1306 1307 if(logical) 1308 options |= WI_FTS_LOGICAL; 1309 else 1310 options |= WI_FTS_PHYSICAL | WI_FTS_COMFOLLOW; 1311 1305 1312 errno = 0; 1306 fts = wi_fts_open(paths, WI_FTS_LOGICAL | WI_FTS_NOSTAT, NULL); 1307 1308 if(fts && errno != 0) { 1309 wi_fts_close(fts); 1310 1311 fts = NULL; 1312 } 1313 1314 return fts; 1315 } 1316 1317 1318 1319 static WI_FTS * wd_files_fts_open_sorted(wi_string_t *path) { 1320 WI_FTS *fts; 1321 char *paths[2]; 1322 1323 paths[0] = (char *) wi_string_cstring(path); 1324 paths[1] = NULL; 1325 1326 errno = 0; 1327 fts = wi_fts_open(paths, WI_FTS_LOGICAL | WI_FTS_NOSTAT, wd_files_fts_namecmp); 1328 1313 fts = wi_fts_open(paths, options, sorted ? wd_files_fts_namecmp : NULL); 1314 1329 1315 if(fts && errno != 0) { 1330 1316 wi_fts_close(fts); wired/trunk/wired/users.c
r4754 r4763 45 45 #define WD_USERS_TIMER_INTERVAL 60.0 46 46 47 #define WD_USER_SET_VALUE( dst, src)\47 #define WD_USER_SET_VALUE(user, dst, src) \ 48 48 WI_STMT_START \ 49 wi_recursive_lock_lock( user->user_lock); \49 wi_recursive_lock_lock((user)->user_lock); \ 50 50 (dst) = (src); \ 51 wi_recursive_lock_unlock( user->user_lock);\51 wi_recursive_lock_unlock((user)->user_lock); \ 52 52 WI_STMT_END 53 53 54 #define WD_USER_SET_OBJECT( dst, src)\54 #define WD_USER_SET_OBJECT(user, dst, src) \ 55 55 WI_STMT_START \ 56 wi_recursive_lock_lock( user->user_lock); \56 wi_recursive_lock_lock((user)->user_lock); \ 57 57 wi_retain((src)); \ 58 58 wi_release((dst)); \ 59 59 (dst) = (src); \ 60 wi_recursive_lock_unlock( user->user_lock);\60 wi_recursive_lock_unlock((user)->user_lock); \ 61 61 WI_STMT_END 62 62 63 #define WD_USER_RETURN_VALUE( src)\63 #define WD_USER_RETURN_VALUE(user, src) \ 64 64 WI_STMT_START \ 65 65 typeof(src) _value; \ 66 66 \ 67 wi_recursive_lock_lock( user->user_lock); \67 wi_recursive_lock_lock((user)->user_lock); \ 68 68 _value = (src); \ 69 wi_recursive_lock_unlock( user->user_lock);\69 wi_recursive_lock_unlock((user)->user_lock); \ 70 70 \ 71 71 return _value; \ 72 72 WI_STMT_END 73 73 74 #define WD_USER_RETURN_OBJECT( src)\74 #define WD_USER_RETURN_OBJECT(user, src) \ 75 75 WI_STMT_START \ 76 76 typeof(src) _object; \ 77 77 \ 78 wi_recursive_lock_lock( user->user_lock); \78 wi_recursive_lock_lock((user)->user_lock); \ 79 79 _object = wi_autorelease(wi_retain((src))); \ 80 wi_recursive_lock_unlock( user->user_lock);\80 wi_recursive_lock_unlock((user)->user_lock); \ 81 81 \ 82 82 return _object; \ … … 391 391 392 392 void wd_user_set_state(wd_user_t *user, wd_user_state_t state) { 393 WD_USER_SET_VALUE(user ->state, state);393 WD_USER_SET_VALUE(user, user->state, state); 394 394 } 395 395 … … 397 397 398 398 wd_user_state_t wd_user_state(wd_user_t *user) { 399 WD_USER_RETURN_VALUE(user ->state);399 WD_USER_RETURN_VALUE(user, user->state); 400 400 } 401 401 … … 403 403 404 404 void wd_user_set_icon(wd_user_t *user, wd_icon_t icon) { 405 WD_USER_SET_VALUE(user ->icon, icon);405 WD_USER_SET_VALUE(user, user->icon, icon); 406 406 } 407 407 … … 409 409 410 410 wd_icon_t wd_user_icon(wd_user_t *user) { 411 WD_USER_RETURN_VALUE(user ->icon);411 WD_USER_RETURN_VALUE(user, user->icon); 412 412 } 413 413 … … 415 415 416 416 void wd_user_set_idle(wd_user_t *user, wi_boolean_t idle) { 417 WD_USER_SET_VALUE(user ->idle, idle);417 WD_USER_SET_VALUE(user, user->idle, idle); 418 418 } 419 419 … … 421 421 422 422 wi_boolean_t wd_user_is_idle(wd_user_t *user) { 423 WD_USER_RETURN_VALUE(user ->idle);423 WD_USER_RETURN_VALUE(user, user->idle); 424 424 } 425 425 … … 427 427 428 428 void wd_user_set_admin(wd_user_t *user, wi_boolean_t admin) { 429 WD_USER_SET_VALUE(user ->admin, admin);429 WD_USER_SET_VALUE(user, user->admin, admin); 430 430 } 431 431 … … 433 433 434 434 wi_boolean_t wd_user_is_admin(wd_user_t *user) { 435 WD_USER_RETURN_VALUE(user ->admin);435 WD_USER_RETURN_VALUE(user, user->admin); 436 436 } 437 437 … … 439 439 440 440 void wd_user_set_account(wd_user_t *user, wd_account_t *account) { 441 WD_USER_SET_OBJECT(user ->account, account);441 WD_USER_SET_OBJECT(user, user->account, account); 442 442 } 443 443 … … 445 445 446 446 wd_account_t * wd_user_account(wd_user_t *user) { 447 WD_USER_RETURN_OBJECT(user ->account);447 WD_USER_RETURN_OBJECT(user, user->account); 448 448 } 449 449 … … 451 451 452 452 void wd_user_set_nick(wd_user_t *user, wi_string_t *nick) { 453 WD_USER_SET_OBJECT(user ->nick, nick);453 WD_USER_SET_OBJECT(user, user->nick, nick); 454 454 } 455 455 … … 457 457 458 458 wi_string_t * wd_user_nick(wd_user_t *user) { 459 WD_USER_RETURN_OBJECT(user ->nick);459 WD_USER_RETURN_OBJECT(user, user->nick); 460 460 } 461 461 … … 463 463 464 464 void wd_user_set_login(wd_user_t *user, wi_string_t *login) { 465 WD_USER_SET_OBJECT(user ->login, login);465 WD_USER_SET_OBJECT(user, user->login, login); 466 466 } 467 467 … … 469 469 470 470 wi_string_t * wd_user_login(wd_user_t *user) { 471 WD_USER_RETURN_OBJECT(user ->login);471 WD_USER_RETURN_OBJECT(user, user->login); 472 472 } 473 473 … … 475 475 476 476 void wd_user_set_version(wd_user_t *user, wi_string_t *version) { 477 WD_USER_SET_OBJECT(user ->version, version);477 WD_USER_SET_OBJECT(user, user->version, version); 478 478 } 479 479 … … 481 481 482 482 wi_string_t * wd_user_version(wd_user_t *user) { 483 WD_USER_RETURN_OBJECT(user ->version);483 WD_USER_RETURN_OBJECT(user, user->version); 484 484 } 485 485 … … 487 487 488 488 void wd_user_set_status(wd_user_t *user, wi_string_t *status) { 489 WD_USER_SET_OBJECT(user ->status, status);489 WD_USER_SET_OBJECT(user, user->status, status); 490 490 } 491 491 … … 493 493 494 494 wi_string_t * wd_user_status(wd_user_t *user) { 495 WD_USER_RETURN_OBJECT(user ->status);495 WD_USER_RETURN_OBJECT(user, user->status); 496 496 } 497 497 … … 499 499 500 500 void wd_user_set_image(wd_user_t *user, wi_string_t *image) { 501 WD_USER_SET_OBJECT(user ->image, image);501 WD_USER_SET_OBJECT(user, user->image, image); 502 502 } 503 503 504 504 505 505 wi_string_t * wd_user_image(wd_user_t *user) { 506 WD_USER_RETURN_OBJECT(user ->image);506 WD_USER_RETURN_OBJECT(user, user->image); 507 507 } 508 508 … … 510 510 511 511 void wd_user_set_idle_time(wd_user_t *user, wi_time_interval_t idle_time) { 512 WD_USER_SET_VALUE(user ->idle_time, idle_time);512 WD_USER_SET_VALUE(user, user->idle_time, idle_time); 513 513 } 514 514 … … 516 516 517 517 wi_time_interval_t wd_user_idle_time(wd_user_t *user) { 518 WD_USER_RETURN_VALUE(user ->idle_time);518 WD_USER_RETURN_VALUE(user, user->idle_time); 519 519 } 520 520 … … 522 522 523 523 void wd_user_increase_downloads(wd_user_t *user) { 524 WD_USER_SET_VALUE(user ->downloads, user->downloads + 1);524 WD_USER_SET_VALUE(user, user->downloads, user->downloads + 1); 525 525 } 526 526 … … 528 528 529 529 void wd_user_decrease_downloads(wd_user_t *user) { 530 WD_USER_SET_VALUE(user ->downloads, user->downloads - 1);530 WD_USER_SET_VALUE(user, user->downloads, user->downloads - 1); 531 531 } 532 532 … … 534 534 535 535 wi_uinteger_t wd_user_downloads(wd_user_t *user) { 536 WD_USER_RETURN_VALUE(user ->downloads);536 WD_USER_RETURN_VALUE(user, user->downloads); 537 537 } 538 538 … … 540 540 541 541 void wd_user_increase_uploads(wd_user_t *user) { 542 WD_USER_SET_VALUE(user ->uploads, user->uploads + 1);542 WD_USER_SET_VALUE(user, user->uploads, user->uploads + 1); 543 543 } 544 544 … … 546 546 547 547 void wd_user_decrease_uploads(wd_user_t *user) { 548 WD_USER_SET_VALUE(user ->uploads, user->uploads - 1);548 WD_USER_SET_VALUE(user, user->uploads, user->uploads - 1); 549 549 } 550 550 … … 552 552 553 553 wi_uinteger_t wd_user_uploads(wd_user_t *user) { 554 WD_USER_RETURN_VALUE(user ->uploads);554 WD_USER_RETURN_VALUE(user, user->uploads); 555 555 } 556 556
