FreeCalypso > hg > osmo-playpen
view smsc-sendmt/imsi_entry.c @ 18:9c2c1444dca9
doc/Proto-SMSC-testing: OS#6135 patches have been merged
author | Mychaela Falconia <falcon@freecalypso.org> |
---|---|
date | Mon, 13 Nov 2023 12:47:12 -0800 |
parents | 7543aa173634 |
children |
line wrap: on
line source
/* * The library function implemented in this module supports IMSI entry * at UI level, either in the standard form (long string of digits) * or in the shorthand notation introduced in fc-sim-tools. */ #include <ctype.h> #include <string.h> int grok_imsi_user_arg(const char *arg, char *dest) { const char *cp; char *dp; int n, tail_len, remain; if (!isdigit(*arg)) return(-1); cp = arg; dp = dest; n = 0; while (isdigit(*cp)) { if (n >= 15) return(-1); *dp++ = *cp++; n++; } if (!*cp) { if (n < 6) return(-1); *dp = '\0'; return(0); } if (*cp != '-') return(-1); cp++; tail_len = strlen(cp); if (!tail_len) return(-1); remain = 15 - n; if (remain < tail_len + 1) return(-1); while (remain > tail_len) { *dp++ = '0'; remain--; } while (*cp) { if (!isdigit(*cp)) return(-1); *dp++ = *cp++; } *dp = '\0'; return(0); }