annotate uptools/libcoding/scaddr.c @ 405:ed9b67e7e741

fcup-smsend: fixed bug in the handling of -W with no dest address argument The original code checked for argv[optind+1] when argv[optind] is NULL; on most systems this bogus code gets the first line of the environment, which is clearly not what we are after. Fixed the code to check argc instead.
author Mychaela Falconia <falcon@freecalypso.org>
date Sat, 11 Aug 2018 18:59:54 +0000
parents ea41b6001848
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
332
ea41b6001848 uptools/libcoding: SC address decoding implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
1 /*
ea41b6001848 uptools/libcoding: SC address decoding implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
2 * This library module contains the code that figures out how many digits
ea41b6001848 uptools/libcoding: SC address decoding implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
3 * are there in a PDU-encoded Service Centre address.
ea41b6001848 uptools/libcoding: SC address decoding implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
4 */
ea41b6001848 uptools/libcoding: SC address decoding implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
5
ea41b6001848 uptools/libcoding: SC address decoding implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
6 #include <sys/types.h>
ea41b6001848 uptools/libcoding: SC address decoding implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
7
ea41b6001848 uptools/libcoding: SC address decoding implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
8 sc_addr_ndigits(sca)
ea41b6001848 uptools/libcoding: SC address decoding implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
9 u_char *sca;
ea41b6001848 uptools/libcoding: SC address decoding implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
10 {
ea41b6001848 uptools/libcoding: SC address decoding implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
11 unsigned nb, nd;
ea41b6001848 uptools/libcoding: SC address decoding implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
12
ea41b6001848 uptools/libcoding: SC address decoding implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
13 nb = sca[0];
ea41b6001848 uptools/libcoding: SC address decoding implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
14 nd = (nb - 1) * 2;
ea41b6001848 uptools/libcoding: SC address decoding implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
15 if ((sca[nb] & 0xF0) == 0xF0)
ea41b6001848 uptools/libcoding: SC address decoding implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
16 nd--;
ea41b6001848 uptools/libcoding: SC address decoding implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
17 return nd;
ea41b6001848 uptools/libcoding: SC address decoding implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff changeset
18 }