Пример #1
0
int wcs2sig(const wchar_t *str) {
    for (const auto &data : signal_table) {
        if (match_signal_name(data.name, str)) {
            return data.signal;
        }
    }

    int res = fish_wcstoi(str);
    if (errno || res < 0) return -1;
    return res;
}
Пример #2
0
int wcs2sig(const wchar_t *str) {
    int i;
    wchar_t *end = 0;

    for (i = 0; lookup[i].desc; i++) {
        if (match_signal_name(lookup[i].name, str)) {
            return lookup[i].signal;
        }
    }
    errno = 0;
    int res = fish_wcstoi(str, &end, 10);
    if (!errno && res >= 0 && !*end) return res;

    return -1;
}