+ if (pending_code && isxdigit(c)) {
+ size_t len = strlen(at_page);
+ if (len && at_page[0] == '0') {
+ memmove(at_page, at_page + 1, len--);
+ }
+ if (len < sizeof(at_page) - 1) {
+ at_page[len++] = (char) c;
+ at_page[len] = '\0';
+ }
+ } else if (pending_code
+ && (c == '\b' || c == KEY_BACKSPACE || c == KEY_DC)) {
+ size_t len = strlen(at_page);
+ if (len)
+ at_page[--len] = '\0';
+ } else if (c < 256 && isdigit(c)) {
+ digit = (unsigned) (c - '0');