From: Denis Kenzior <denkenz@gmail.com>
To: ofono@lists.linux.dev
Cc: Denis Kenzior <denkenz@gmail.com>
Subject: [PATCH 2/6] smsutil: Move iso639_2_from_language to util
Date: Tue, 13 Feb 2024 09:35:06 -0600 [thread overview]
Message-ID: <20240213153524.1085649-2-denkenz@gmail.com> (raw)
In-Reply-To: <20240213153524.1085649-1-denkenz@gmail.com>
Also while here, convert to using stdbool instead of gboolean
---
src/sim.c | 2 +-
src/smsutil.c | 111 --------------------------------------------------
src/smsutil.h | 27 +-----------
src/util.c | 111 ++++++++++++++++++++++++++++++++++++++++++++++++++
src/util.h | 26 ++++++++++++
5 files changed, 140 insertions(+), 137 deletions(-)
diff --git a/src/sim.c b/src/sim.c
index 55ff5f448647..fedd000923b9 100644
--- a/src/sim.c
+++ b/src/sim.c
@@ -2211,7 +2211,7 @@ static GSList *parse_eflp(const unsigned char *eflp, int length)
GSList *ret = NULL;
for (i = 0; i < length; i++) {
- if (iso639_2_from_language(eflp[i], code) == FALSE)
+ if (!iso639_2_from_language(eflp[i], code))
continue;
ret = g_slist_prepend(ret, g_strdup(code));
diff --git a/src/smsutil.c b/src/smsutil.c
index f46507f00e1c..d4f28c01bd79 100644
--- a/src/smsutil.c
+++ b/src/smsutil.c
@@ -3937,117 +3937,6 @@ gboolean cbs_extract_app_port(const struct cbs *cbs, int *dst, int *src,
return extract_app_port_common(&iter, dst, src, is_8bit);
}
-gboolean iso639_2_from_language(enum cbs_language lang, char *iso639)
-{
- switch (lang) {
- case CBS_LANGUAGE_GERMAN:
- iso639[0] = 'd';
- iso639[1] = 'e';
- iso639[2] = '\0';
- return TRUE;
- case CBS_LANGUAGE_ENGLISH:
- iso639[0] = 'e';
- iso639[1] = 'n';
- iso639[2] = '\0';
- return TRUE;
- case CBS_LANGUAGE_ITALIAN:
- iso639[0] = 'i';
- iso639[1] = 't';
- iso639[2] = '\0';
- return TRUE;
- case CBS_LANGUAGE_FRENCH:
- iso639[0] = 'f';
- iso639[1] = 'r';
- iso639[2] = '\0';
- return TRUE;
- case CBS_LANGUAGE_SPANISH:
- iso639[0] = 'e';
- iso639[1] = 's';
- iso639[2] = '\0';
- return TRUE;
- case CBS_LANGUAGE_DUTCH:
- iso639[0] = 'n';
- iso639[1] = 'l';
- iso639[2] = '\0';
- return TRUE;
- case CBS_LANGUAGE_SWEDISH:
- iso639[0] = 's';
- iso639[1] = 'v';
- iso639[2] = '\0';
- return TRUE;
- case CBS_LANGUAGE_DANISH:
- iso639[0] = 'd';
- iso639[1] = 'a';
- iso639[2] = '\0';
- return TRUE;
- case CBS_LANGUAGE_PORTUGESE:
- iso639[0] = 'p';
- iso639[1] = 't';
- iso639[2] = '\0';
- return TRUE;
- case CBS_LANGUAGE_FINNISH:
- iso639[0] = 'f';
- iso639[1] = 'i';
- iso639[2] = '\0';
- return TRUE;
- case CBS_LANGUAGE_NORWEGIAN:
- iso639[0] = 'n';
- iso639[1] = 'o';
- iso639[2] = '\0';
- return TRUE;
- case CBS_LANGUAGE_GREEK:
- iso639[0] = 'e';
- iso639[1] = 'l';
- iso639[2] = '\0';
- return TRUE;
- case CBS_LANGUAGE_TURKISH:
- iso639[0] = 't';
- iso639[1] = 'r';
- iso639[2] = '\0';
- return TRUE;
- case CBS_LANGUAGE_HUNGARIAN:
- iso639[0] = 'h';
- iso639[1] = 'u';
- iso639[2] = '\0';
- return TRUE;
- case CBS_LANGUAGE_POLISH:
- iso639[0] = 'p';
- iso639[1] = 'l';
- iso639[2] = '\0';
- return TRUE;
- case CBS_LANGUAGE_CZECH:
- iso639[0] = 'c';
- iso639[1] = 's';
- iso639[2] = '\0';
- return TRUE;
- case CBS_LANGUAGE_HEBREW:
- iso639[0] = 'h';
- iso639[1] = 'e';
- iso639[2] = '\0';
- return TRUE;
- case CBS_LANGUAGE_ARABIC:
- iso639[0] = 'a';
- iso639[1] = 'r';
- iso639[2] = '\0';
- return TRUE;
- case CBS_LANGUAGE_RUSSIAN:
- iso639[0] = 'r';
- iso639[1] = 'u';
- iso639[2] = '\0';
- return TRUE;
- case CBS_LANGUAGE_ICELANDIC:
- iso639[0] = 'i';
- iso639[1] = 's';
- iso639[2] = '\0';
- return TRUE;
- default:
- iso639[0] = '\0';
- break;
- }
-
- return FALSE;
-}
-
char *cbs_decode_text(GSList *cbs_list, char *iso639_lang)
{
GSList *l;
diff --git a/src/smsutil.h b/src/smsutil.h
index 01487de4b67c..5389757c309c 100644
--- a/src/smsutil.h
+++ b/src/smsutil.h
@@ -19,6 +19,8 @@
*
*/
+enum cbs_language;
+
#define CBS_MAX_GSM_CHARS 93
#define SMS_MSGID_LEN 20
@@ -196,30 +198,6 @@ enum sms_pid_type {
SMS_PID_TYPE_USIM_DOWNLOAD = 0x7f,
};
-enum cbs_language {
- CBS_LANGUAGE_GERMAN = 0x0,
- CBS_LANGUAGE_ENGLISH = 0x1,
- CBS_LANGUAGE_ITALIAN = 0x2,
- CBS_LANGUAGE_FRENCH = 0x3,
- CBS_LANGUAGE_SPANISH = 0x4,
- CBS_LANGUAGE_DUTCH = 0x5,
- CBS_LANGUAGE_SWEDISH = 0x6,
- CBS_LANGUAGE_DANISH = 0x7,
- CBS_LANGUAGE_PORTUGESE = 0x8,
- CBS_LANGUAGE_FINNISH = 0x9,
- CBS_LANGUAGE_NORWEGIAN = 0xA,
- CBS_LANGUAGE_GREEK = 0xB,
- CBS_LANGUAGE_TURKISH = 0xC,
- CBS_LANGUAGE_HUNGARIAN = 0xD,
- CBS_LANGUAGE_POLISH = 0xE,
- CBS_LANGUAGE_UNSPECIFIED = 0xF,
- CBS_LANGUAGE_CZECH = 0x20,
- CBS_LANGUAGE_HEBREW = 0x21,
- CBS_LANGUAGE_ARABIC = 0x22,
- CBS_LANGUAGE_RUSSIAN = 0x23,
- CBS_LANGUAGE_ICELANDIC = 0x24
-};
-
enum cbs_geo_scope {
CBS_GEO_SCOPE_CELL_IMMEDIATE,
CBS_GEO_SCOPE_PLMN,
@@ -576,7 +554,6 @@ gboolean cbs_dcs_decode(guint8 dcs, gboolean *udhi, enum sms_class *cls,
enum sms_charset *charset, gboolean *compressed,
enum cbs_language *language, gboolean *iso639);
-gboolean iso639_2_from_language(enum cbs_language lang, char *iso639);
gboolean cbs_decode(const unsigned char *pdu, int len, struct cbs *out);
gboolean cbs_encode(const struct cbs *cbs, int *len, unsigned char *pdu);
gboolean cbs_extract_app_port(const struct cbs *cbs, int *dst, int *src,
diff --git a/src/util.c b/src/util.c
index 627be7eec097..0a5212a2bca4 100644
--- a/src/util.c
+++ b/src/util.c
@@ -3753,3 +3753,114 @@ unsigned char *convert_ucs2_to_gsm(const unsigned char *text, long len,
GSM_DIALECT_DEFAULT,
GSM_DIALECT_DEFAULT);
}
+
+bool iso639_2_from_language(enum cbs_language lang, char *iso639)
+{
+ switch (lang) {
+ case CBS_LANGUAGE_GERMAN:
+ iso639[0] = 'd';
+ iso639[1] = 'e';
+ iso639[2] = '\0';
+ return true;
+ case CBS_LANGUAGE_ENGLISH:
+ iso639[0] = 'e';
+ iso639[1] = 'n';
+ iso639[2] = '\0';
+ return true;
+ case CBS_LANGUAGE_ITALIAN:
+ iso639[0] = 'i';
+ iso639[1] = 't';
+ iso639[2] = '\0';
+ return true;
+ case CBS_LANGUAGE_FRENCH:
+ iso639[0] = 'f';
+ iso639[1] = 'r';
+ iso639[2] = '\0';
+ return true;
+ case CBS_LANGUAGE_SPANISH:
+ iso639[0] = 'e';
+ iso639[1] = 's';
+ iso639[2] = '\0';
+ return true;
+ case CBS_LANGUAGE_DUTCH:
+ iso639[0] = 'n';
+ iso639[1] = 'l';
+ iso639[2] = '\0';
+ return true;
+ case CBS_LANGUAGE_SWEDISH:
+ iso639[0] = 's';
+ iso639[1] = 'v';
+ iso639[2] = '\0';
+ return true;
+ case CBS_LANGUAGE_DANISH:
+ iso639[0] = 'd';
+ iso639[1] = 'a';
+ iso639[2] = '\0';
+ return true;
+ case CBS_LANGUAGE_PORTUGESE:
+ iso639[0] = 'p';
+ iso639[1] = 't';
+ iso639[2] = '\0';
+ return true;
+ case CBS_LANGUAGE_FINNISH:
+ iso639[0] = 'f';
+ iso639[1] = 'i';
+ iso639[2] = '\0';
+ return true;
+ case CBS_LANGUAGE_NORWEGIAN:
+ iso639[0] = 'n';
+ iso639[1] = 'o';
+ iso639[2] = '\0';
+ return true;
+ case CBS_LANGUAGE_GREEK:
+ iso639[0] = 'e';
+ iso639[1] = 'l';
+ iso639[2] = '\0';
+ return true;
+ case CBS_LANGUAGE_TURKISH:
+ iso639[0] = 't';
+ iso639[1] = 'r';
+ iso639[2] = '\0';
+ return true;
+ case CBS_LANGUAGE_HUNGARIAN:
+ iso639[0] = 'h';
+ iso639[1] = 'u';
+ iso639[2] = '\0';
+ return true;
+ case CBS_LANGUAGE_POLISH:
+ iso639[0] = 'p';
+ iso639[1] = 'l';
+ iso639[2] = '\0';
+ return true;
+ case CBS_LANGUAGE_CZECH:
+ iso639[0] = 'c';
+ iso639[1] = 's';
+ iso639[2] = '\0';
+ return true;
+ case CBS_LANGUAGE_HEBREW:
+ iso639[0] = 'h';
+ iso639[1] = 'e';
+ iso639[2] = '\0';
+ return true;
+ case CBS_LANGUAGE_ARABIC:
+ iso639[0] = 'a';
+ iso639[1] = 'r';
+ iso639[2] = '\0';
+ return true;
+ case CBS_LANGUAGE_RUSSIAN:
+ iso639[0] = 'r';
+ iso639[1] = 'u';
+ iso639[2] = '\0';
+ return true;
+ case CBS_LANGUAGE_ICELANDIC:
+ iso639[0] = 'i';
+ iso639[1] = 's';
+ iso639[2] = '\0';
+ return true;
+ default:
+ iso639[0] = '\0';
+ break;
+ }
+
+ return false;
+}
diff --git a/src/util.h b/src/util.h
index 3e7dfea3e8bc..a70fb49f7ae5 100644
--- a/src/util.h
+++ b/src/util.h
@@ -38,6 +38,30 @@ enum gsm_dialect {
GSM_DIALECT_URDU,
};
+enum cbs_language {
+ CBS_LANGUAGE_GERMAN = 0x0,
+ CBS_LANGUAGE_ENGLISH = 0x1,
+ CBS_LANGUAGE_ITALIAN = 0x2,
+ CBS_LANGUAGE_FRENCH = 0x3,
+ CBS_LANGUAGE_SPANISH = 0x4,
+ CBS_LANGUAGE_DUTCH = 0x5,
+ CBS_LANGUAGE_SWEDISH = 0x6,
+ CBS_LANGUAGE_DANISH = 0x7,
+ CBS_LANGUAGE_PORTUGESE = 0x8,
+ CBS_LANGUAGE_FINNISH = 0x9,
+ CBS_LANGUAGE_NORWEGIAN = 0xA,
+ CBS_LANGUAGE_GREEK = 0xB,
+ CBS_LANGUAGE_TURKISH = 0xC,
+ CBS_LANGUAGE_HUNGARIAN = 0xD,
+ CBS_LANGUAGE_POLISH = 0xE,
+ CBS_LANGUAGE_UNSPECIFIED = 0xF,
+ CBS_LANGUAGE_CZECH = 0x20,
+ CBS_LANGUAGE_HEBREW = 0x21,
+ CBS_LANGUAGE_ARABIC = 0x22,
+ CBS_LANGUAGE_RUSSIAN = 0x23,
+ CBS_LANGUAGE_ICELANDIC = 0x24
+};
+
char *convert_gsm_to_utf8(const unsigned char *text, long len, long *items_read,
long *items_written, unsigned char terminator);
@@ -105,3 +129,5 @@ unsigned char *convert_ucs2_to_gsm_with_lang(const unsigned char *text,
unsigned char *convert_ucs2_to_gsm(const unsigned char *text, long len,
long *items_read, long *items_written,
unsigned char terminator);
+
+bool iso639_2_from_language(enum cbs_language lang, char *iso639);
--
2.43.0
next prev parent reply other threads:[~2024-02-13 15:36 UTC|newest]
Thread overview: 7+ messages / expand[flat|nested] mbox.gz Atom feed top
2024-02-13 15:35 [PATCH 1/6] sim: Drop glib use from sim_efli_format Denis Kenzior
2024-02-13 15:35 ` Denis Kenzior [this message]
2024-02-13 15:35 ` [PATCH 3/6] sim: Move EFli and EFlp parsers to simutil Denis Kenzior
2024-02-13 15:35 ` [PATCH 4/6] unit: Add unit tests for language list parsers Denis Kenzior
2024-02-13 15:35 ` [PATCH 5/6] common: Convert use of g_ascii* to ell Denis Kenzior
2024-02-13 15:35 ` [PATCH 6/6] voicecall: " Denis Kenzior
2024-02-14 16:20 ` [PATCH 1/6] sim: Drop glib use from sim_efli_format patchwork-bot+ofono
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20240213153524.1085649-2-denkenz@gmail.com \
--to=denkenz@gmail.com \
--cc=ofono@lists.linux.dev \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox