Mercurial > sdl-ios-xcode
comparison src/stdlib/SDL_string.c @ 1867:887c3600826b
Fixed bug #251
author | Sam Lantinga <slouken@libsdl.org> |
---|---|
date | Tue, 20 Jun 2006 05:55:23 +0000 |
parents | 7995cc87b777 |
children | c121d94672cb 16f7767f9580 |
comparison
equal
deleted
inserted
replaced
1866:926aea04a595 | 1867:887c3600826b |
---|---|
509 long SDL_strtol(const char *string, char **endp, int base) | 509 long SDL_strtol(const char *string, char **endp, int base) |
510 { | 510 { |
511 size_t len; | 511 size_t len; |
512 long value; | 512 long value; |
513 | 513 |
514 len = SDL_ScanLong(string, base ? base : 10, &value); | 514 if ( !base ) { |
515 if ( (SDL_strlen(string) > 2) && (SDL_strncmp(string, "0x", 2) == 0) ) { | |
516 base = 16; | |
517 } else { | |
518 base = 10; | |
519 } | |
520 } | |
521 | |
522 len = SDL_ScanLong(string, base, &value); | |
515 if ( endp ) { | 523 if ( endp ) { |
516 *endp = (char *)string + len; | 524 *endp = (char *)string + len; |
517 } | 525 } |
518 return value; | 526 return value; |
519 } | 527 } |
523 unsigned long SDL_strtoul(const char *string, char **endp, int base) | 531 unsigned long SDL_strtoul(const char *string, char **endp, int base) |
524 { | 532 { |
525 size_t len; | 533 size_t len; |
526 unsigned long value; | 534 unsigned long value; |
527 | 535 |
528 len = SDL_ScanUnsignedLong(string, base ? base : 10, &value); | 536 if ( !base ) { |
537 if ( (SDL_strlen(string) > 2) && (SDL_strncmp(string, "0x", 2) == 0) ) { | |
538 base = 16; | |
539 } else { | |
540 base = 10; | |
541 } | |
542 } | |
543 | |
544 len = SDL_ScanUnsignedLong(string, base, &value); | |
529 if ( endp ) { | 545 if ( endp ) { |
530 *endp = (char *)string + len; | 546 *endp = (char *)string + len; |
531 } | 547 } |
532 return value; | 548 return value; |
533 } | 549 } |
591 Sint64 SDL_strtoll(const char *string, char **endp, int base) | 607 Sint64 SDL_strtoll(const char *string, char **endp, int base) |
592 { | 608 { |
593 size_t len; | 609 size_t len; |
594 Sint64 value; | 610 Sint64 value; |
595 | 611 |
596 len = SDL_ScanLongLong(string, base ? base : 10, &value); | 612 if ( !base ) { |
613 if ( (SDL_strlen(string) > 2) && (SDL_strncmp(string, "0x", 2) == 0) ) { | |
614 base = 16; | |
615 } else { | |
616 base = 10; | |
617 } | |
618 } | |
619 | |
620 len = SDL_ScanLongLong(string, base, &value); | |
597 if ( endp ) { | 621 if ( endp ) { |
598 *endp = (char *)string + len; | 622 *endp = (char *)string + len; |
599 } | 623 } |
600 return value; | 624 return value; |
601 } | 625 } |
605 Uint64 SDL_strtoull(const char *string, char **endp, int base) | 629 Uint64 SDL_strtoull(const char *string, char **endp, int base) |
606 { | 630 { |
607 size_t len; | 631 size_t len; |
608 Uint64 value; | 632 Uint64 value; |
609 | 633 |
610 len = SDL_ScanUnsignedLongLong(string, base ? base : 10, &value); | 634 if ( !base ) { |
635 if ( (SDL_strlen(string) > 2) && (SDL_strncmp(string, "0x", 2) == 0) ) { | |
636 base = 16; | |
637 } else { | |
638 base = 10; | |
639 } | |
640 } | |
641 | |
642 len = SDL_ScanUnsignedLongLong(string, base, &value); | |
611 if ( endp ) { | 643 if ( endp ) { |
612 *endp = (char *)string + len; | 644 *endp = (char *)string + len; |
613 } | 645 } |
614 return value; | 646 return value; |
615 } | 647 } |