1 | // Copyright 2016 The SwiftShader Authors. All Rights Reserved. |
2 | // |
3 | // Licensed under the Apache License, Version 2.0 (the "License"); |
4 | // you may not use this file except in compliance with the License. |
5 | // You may obtain a copy of the License at |
6 | // |
7 | // http://www.apache.org/licenses/LICENSE-2.0 |
8 | // |
9 | // Unless required by applicable law or agreed to in writing, software |
10 | // distributed under the License is distributed on an "AS IS" BASIS, |
11 | // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
12 | // See the License for the specific language governing permissions and |
13 | // limitations under the License. |
14 | |
15 | #include <limits> |
16 | |
17 | #include "util.h" |
18 | #include "preprocessor/numeric_lex.h" |
19 | |
20 | bool atof_clamp(const char *str, float *value) |
21 | { |
22 | bool success = pp::numeric_lex_float(str, value); |
23 | if(!success) |
24 | *value = std::numeric_limits<float>::max(); |
25 | return success; |
26 | } |
27 | |
28 | bool atoi_clamp(const char *str, int *value) |
29 | { |
30 | bool success = pp::numeric_lex_int(str, value); |
31 | if(!success) |
32 | *value = std::numeric_limits<int>::max(); |
33 | return success; |
34 | } |
35 | |
36 | bool atou_clamp(const char *str, unsigned int *value) |
37 | { |
38 | bool success = pp::numeric_lex_int(str, value); |
39 | if(!success) |
40 | *value = std::numeric_limits<unsigned int>::max(); |
41 | return success; |
42 | } |
43 | |