# | Line 245 | Line 245 | size_t CaseInsensitiveFind(const std::string& str1, co | |
---|---|---|
245 | else | |
246 | return pos - str1.begin(); | |
247 | } | |
248 | + | |
249 | + | /** |
250 | + | * memparse - parse a string with mem suffixes into a number |
251 | + | * @ptr: Where parse begins |
252 | + | * @retptr: (output) Pointer to next char after parse completes |
253 | + | * |
254 | + | * Parses a string into a number. The number stored at @ptr is |
255 | + | * potentially suffixed with %K (for kilobytes, or 1024 bytes), |
256 | + | * %M (for megabytes, or 1048576 bytes), or %G (for gigabytes, or |
257 | + | * 1073741824). If the number is suffixed with K, M, or G, then |
258 | + | * the return value is the number multiplied by one kilobyte, one |
259 | + | * megabyte, or one gigabyte, respectively. |
260 | + | */ |
261 | + | unsigned long long memparse (char *ptr, char **retptr) { |
262 | + | unsigned long long ret = strtoull (ptr, retptr, 0); |
263 | + | |
264 | + | switch (**retptr) { |
265 | + | case 'G': |
266 | + | case 'g': |
267 | + | ret <<= 10; |
268 | + | case 'M': |
269 | + | case 'm': |
270 | + | ret <<= 10; |
271 | + | case 'K': |
272 | + | case 'k': |
273 | + | ret <<= 10; |
274 | + | (*retptr)++; |
275 | + | default: |
276 | + | break; |
277 | + | } |
278 | + | return ret; |
279 | + | } |
280 | ||
281 | } |
– | Removed lines |
+ | Added lines |
< | Changed lines |
> | Changed lines |