[PATCH] gsm_utils.c: in 7bit decoding, first check if the last character was an extension character before doing anything else

Nico Golde nico at ngolde.de
Thu Sep 20 14:56:23 UTC 2012


---
 src/gsm/gsm_utils.c |   10 +++++-----
 1 file changed, 5 insertions(+), 5 deletions(-)

diff --git a/src/gsm/gsm_utils.c b/src/gsm/gsm_utils.c
index 6af0a5f..8b1fae0 100644
--- a/src/gsm/gsm_utils.c
+++ b/src/gsm/gsm_utils.c
@@ -146,15 +146,15 @@ int gsm_7bit_decode_hdr(char *text, const uint8_t *user_data, uint8_t septet_l,
 			 (user_data[((i + shift) * 7) >> 3] >>
 			  (((i + shift) * 7) & 7))) & 0x7f;
 
-		if (c == 0x1b && i + 1 < septet_l) {
-			next_is_ext = 1;
-			continue;
-		}
-
 		/* this is an extension character */
 		if (next_is_ext) {
 			next_is_ext = 0;
 			*(text++) = gsm_7bit_alphabet[0x7f + c];
+			continue;
+		}
+
+		if (c == 0x1b && i + 1 < septet_l) {
+			next_is_ext = 1;
 		} else {
 			*(text++) = gsm_septet_lookup(c);
 		}
-- 
1.7.10.4


--4Ckj6UjgE2iN1+kY--




More information about the baseband-devel mailing list