From 852630ba34195660f6c2401659dcdc951f2200a4 Mon Sep 17 00:00:00 2001
From: Jean Chalard <jchalard@google.com>
Date: Thu, 12 Jan 2012 12:00:01 +0900
Subject: [PATCH] Add a sanity check

Check if any character is both a magic space swapper and
a magic space stripper for the current language, and throw
an exception if found. Since this is expensive, it's done
only in debug mode.

Change-Id: Ibd166db87c91495b76878ea0e4f420a62c7bb276
---
 .../src/com/android/inputmethod/latin/SettingsValues.java | 8 ++++++++
 1 file changed, 8 insertions(+)

diff --git a/java/src/com/android/inputmethod/latin/SettingsValues.java b/java/src/com/android/inputmethod/latin/SettingsValues.java
index 651d90ca4f..83b27f7fe4 100644
--- a/java/src/com/android/inputmethod/latin/SettingsValues.java
+++ b/java/src/com/android/inputmethod/latin/SettingsValues.java
@@ -91,6 +91,14 @@ public class SettingsValues {
         mDelayUpdateOldSuggestions = res.getInteger(R.integer.config_delay_update_old_suggestions);
         mMagicSpaceStrippers = res.getString(R.string.magic_space_stripping_symbols);
         mMagicSpaceSwappers = res.getString(R.string.magic_space_swapping_symbols);
+        if (LatinImeLogger.sDBG) {
+            for (int i = 0; i < mMagicSpaceStrippers.length(); ++i) {
+                if (isMagicSpaceSwapper(mMagicSpaceStrippers.codePointAt(i))) {
+                    throw new RuntimeException("Char code " + mMagicSpaceStrippers.codePointAt(i)
+                            + " is both a magic space swapper and stripper.");
+                }
+            }
+        }
         mSuggestPuncs = res.getString(R.string.suggested_punctuations);
         // TODO: it would be nice not to recreate this each time we change the configuration
         mSuggestPuncList = createSuggestPuncList(mSuggestPuncs);
-- 
GitLab