rem: if (isdigit(replacement[i+1])) {
add: if (isdigit((unsigned char)replacement[i+1])) {
context: int replace(regmatch_t* pmatch, char* string, char* replacement, str* result){	int len, i, j, digit, size;	len = strlen(replacement);	j = 0;	for (i = 0; i < len; i++) {		if (replacement[i] == '\\') {			if (i < len - 1) {				if (isdigit(replacement[i+1])) {					digit = replacement[i+1] - '0';					if (pmatch[digit].rm_so != -1) {						size = pmatch[digit].rm_eo - pmatch[digit].rm_so;						if (j + size < result->len) {							memcpy(&(result->s[j]), string+pmatch[digit].rm_so, size);							j = j + size;						} else {							return -1;						}					} else {						return -2;					}					i = i + 1;					continue;				} else {					i = i + 1;				}			} else {				return -3;			}		}		if (j + 1 < result->len) {			result->s[j] = replacement[i];			j = j + 1;		} else {			return -4;		}	}	result->len = j;	return 1;}