/* SPDX-License-Identifier: GPL-3.0-or-later */ /* Copyright (C) 2021 KikooDX */ #include "strtoint.h" #include #include #include /* Attempt to convert a string to integer. */ int strtoint(char *string) { char character; int i; const size_t string_len = strlen(string); int sum = 0; int multiplier = 1; int negative = string[0] == '-'; for (i = string_len - 1; i >= negative; i -= 1) { character = string[i]; if (character < '0' || character > '9') { fprintf(stderr, "ERROR: flag expected a number " "argument, got \"%s\"\n", string); exit(EXIT_FAILURE); } sum += multiplier * (character - '0'); multiplier *= 10; } if (negative) return sum * -1; else return sum; }