summaryrefslogtreecommitdiffstats
path: root/src/sim.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/sim.c')
-rw-r--r--src/sim.c15
1 files changed, 11 insertions, 4 deletions
diff --git a/src/sim.c b/src/sim.c
index 746c7a88..660abd41 100644
--- a/src/sim.c
+++ b/src/sim.c
@@ -1092,12 +1092,19 @@ skip_efpl:
* order of preference following TS 31.102.
* Quoting 31.102 Section 5.1.1.2:
* The preferred language selection shall always use the EFLI in
- * preference to the EFPL at the MF unless...
+ * preference to the EFPL at the MF unless:
+ * - if the EFLI has the value 'FFFF' in its highest priority position,
+ * then the preferred language selection shall be the language
+ * preference in the EFPL at the MF level
* Otherwise in order of preference according to TS 51.011
*/
- if (efli_format)
- sim->language_prefs = concat_lang_prefs(efli, efpl);
- else
+ if (efli_format) {
+ if (sim->efli_length >= 2 && sim->efli[0] == 0xff &&
+ sim->efli[1] == 0xff)
+ sim->language_prefs = concat_lang_prefs(NULL, efpl);
+ else
+ sim->language_prefs = concat_lang_prefs(efli, efpl);
+ } else
sim->language_prefs = concat_lang_prefs(efpl, efli);
if (efli) {