Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(726)

Side by Side Diff: fusl/src/stdlib/strtol.c

Issue 1714623002: [fusl] clang-format fusl (Closed) Base URL: git@github.com:domokit/mojo.git@master
Patch Set: headers too Created 4 years, 10 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
1 #include "stdio_impl.h" 1 #include "stdio_impl.h"
2 #include "intscan.h" 2 #include "intscan.h"
3 #include "shgetc.h" 3 #include "shgetc.h"
4 #include <inttypes.h> 4 #include <inttypes.h>
5 #include <limits.h> 5 #include <limits.h>
6 #include <ctype.h> 6 #include <ctype.h>
7 #include "libc.h" 7 #include "libc.h"
8 8
9 static unsigned long long strtox(const char *s, char **p, int base, unsigned lon g long lim) 9 static unsigned long long strtox(const char* s,
10 { 10 char** p,
11 » /* FIXME: use a helper function or macro to setup the FILE */ 11 int base,
12 » FILE f; 12 unsigned long long lim) {
13 » f.flags = 0; 13 /* FIXME: use a helper function or macro to setup the FILE */
14 » f.buf = f.rpos = (void *)s; 14 FILE f;
15 » if ((size_t)s > (size_t)-1/2) 15 f.flags = 0;
16 » » f.rend = (void *)-1; 16 f.buf = f.rpos = (void*)s;
17 » else 17 if ((size_t)s > (size_t)-1 / 2)
18 » » f.rend = (unsigned char *)s+(size_t)-1/2; 18 f.rend = (void*)-1;
19 » f.lock = -1; 19 else
20 » shlim(&f, 0); 20 f.rend = (unsigned char*)s + (size_t)-1 / 2;
21 » unsigned long long y = __intscan(&f, base, 1, lim); 21 f.lock = -1;
22 » if (p) { 22 shlim(&f, 0);
23 » » size_t cnt = shcnt(&f); 23 unsigned long long y = __intscan(&f, base, 1, lim);
24 » » *p = (char *)s + cnt; 24 if (p) {
25 » } 25 size_t cnt = shcnt(&f);
26 » return y; 26 *p = (char*)s + cnt;
27 }
28 return y;
27 } 29 }
28 30
29 unsigned long long strtoull(const char *restrict s, char **restrict p, int base) 31 unsigned long long strtoull(const char* restrict s,
30 { 32 char** restrict p,
31 » return strtox(s, p, base, ULLONG_MAX); 33 int base) {
34 return strtox(s, p, base, ULLONG_MAX);
32 } 35 }
33 36
34 long long strtoll(const char *restrict s, char **restrict p, int base) 37 long long strtoll(const char* restrict s, char** restrict p, int base) {
35 { 38 return strtox(s, p, base, LLONG_MIN);
36 » return strtox(s, p, base, LLONG_MIN);
37 } 39 }
38 40
39 unsigned long strtoul(const char *restrict s, char **restrict p, int base) 41 unsigned long strtoul(const char* restrict s, char** restrict p, int base) {
40 { 42 return strtox(s, p, base, ULONG_MAX);
41 » return strtox(s, p, base, ULONG_MAX);
42 } 43 }
43 44
44 long strtol(const char *restrict s, char **restrict p, int base) 45 long strtol(const char* restrict s, char** restrict p, int base) {
45 { 46 return strtox(s, p, base, 0UL + LONG_MIN);
46 » return strtox(s, p, base, 0UL+LONG_MIN);
47 } 47 }
48 48
49 intmax_t strtoimax(const char *restrict s, char **restrict p, int base) 49 intmax_t strtoimax(const char* restrict s, char** restrict p, int base) {
50 { 50 return strtoll(s, p, base);
51 » return strtoll(s, p, base);
52 } 51 }
53 52
54 uintmax_t strtoumax(const char *restrict s, char **restrict p, int base) 53 uintmax_t strtoumax(const char* restrict s, char** restrict p, int base) {
55 { 54 return strtoull(s, p, base);
56 » return strtoull(s, p, base);
57 } 55 }
58 56
59 weak_alias(strtol, __strtol_internal); 57 weak_alias(strtol, __strtol_internal);
60 weak_alias(strtoul, __strtoul_internal); 58 weak_alias(strtoul, __strtoul_internal);
61 weak_alias(strtoll, __strtoll_internal); 59 weak_alias(strtoll, __strtoll_internal);
62 weak_alias(strtoull, __strtoull_internal); 60 weak_alias(strtoull, __strtoull_internal);
63 weak_alias(strtoimax, __strtoimax_internal); 61 weak_alias(strtoimax, __strtoimax_internal);
64 weak_alias(strtoumax, __strtoumax_internal); 62 weak_alias(strtoumax, __strtoumax_internal);
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698