Mercurial > pidgin
comparison src/ft.c @ 4517:a2b2cce63fb8
[gaim-migrate @ 4795]
Some changes to handle unknown file sizes better.
committer: Tailor Script <tailor@pidgin.im>
| author | Christian Hammond <chipx86@chipx86.com> |
|---|---|
| date | Tue, 04 Feb 2003 17:56:17 +0000 |
| parents | 7521e29658bc |
| children | a6be92358df3 |
comparison
equal
deleted
inserted
replaced
| 4516:2ad2f5caeb81 | 4517:a2b2cce63fb8 |
|---|---|
| 236 gaim_xfer_get_progress(const struct gaim_xfer *xfer) | 236 gaim_xfer_get_progress(const struct gaim_xfer *xfer) |
| 237 { | 237 { |
| 238 if (xfer == NULL) | 238 if (xfer == NULL) |
| 239 return 0.0; | 239 return 0.0; |
| 240 | 240 |
| 241 if (gaim_xfer_get_size(xfer) == 0) | |
| 242 return 0.0; | |
| 243 | |
| 241 return ((double)gaim_xfer_get_bytes_sent(xfer) / | 244 return ((double)gaim_xfer_get_bytes_sent(xfer) / |
| 242 (double)gaim_xfer_get_size(xfer)); | 245 (double)gaim_xfer_get_size(xfer)); |
| 243 } | 246 } |
| 244 | 247 |
| 245 const char * | 248 const char * |
| 303 } | 306 } |
| 304 | 307 |
| 305 void | 308 void |
| 306 gaim_xfer_set_size(struct gaim_xfer *xfer, size_t size) | 309 gaim_xfer_set_size(struct gaim_xfer *xfer, size_t size) |
| 307 { | 310 { |
| 308 if (xfer == NULL || size == 0) | 311 if (xfer == NULL) |
| 309 return; | 312 return; |
| 310 | 313 |
| 311 xfer->size = size; | 314 xfer->size = size; |
| 312 } | 315 } |
| 313 | 316 |
| 398 size_t s, r; | 401 size_t s, r; |
| 399 | 402 |
| 400 if (xfer == NULL || buffer == NULL) | 403 if (xfer == NULL || buffer == NULL) |
| 401 return 0; | 404 return 0; |
| 402 | 405 |
| 403 s = MIN(gaim_xfer_get_bytes_remaining(xfer), 4096); | 406 if (gaim_xfer_get_size(xfer) == 0) |
| 407 s = 4096; | |
| 408 else | |
| 409 s = MIN(gaim_xfer_get_bytes_remaining(xfer), 4096); | |
| 404 | 410 |
| 405 if (xfer->ops.read != NULL) | 411 if (xfer->ops.read != NULL) |
| 406 r = xfer->ops.read(buffer, xfer); | 412 r = xfer->ops.read(buffer, xfer); |
| 407 else { | 413 else { |
| 408 *buffer = g_malloc0(s); | 414 *buffer = g_malloc0(s); |
| 475 ui_ops = gaim_xfer_get_ui_ops(xfer); | 481 ui_ops = gaim_xfer_get_ui_ops(xfer); |
| 476 | 482 |
| 477 if (ui_ops != NULL && ui_ops->update_progress != NULL) | 483 if (ui_ops != NULL && ui_ops->update_progress != NULL) |
| 478 ui_ops->update_progress(xfer, gaim_xfer_get_progress(xfer)); | 484 ui_ops->update_progress(xfer, gaim_xfer_get_progress(xfer)); |
| 479 | 485 |
| 480 if (xfer->bytes_remaining == 0) | 486 if (r == 0) |
| 481 gaim_xfer_end(xfer); | 487 gaim_xfer_end(xfer); |
| 482 } | 488 } |
| 483 | 489 |
| 484 static void | 490 static void |
| 485 begin_transfer(struct gaim_xfer *xfer, GaimInputCondition cond) | 491 begin_transfer(struct gaim_xfer *xfer, GaimInputCondition cond) |
