diff --git a/src/arabic.c b/src/arabic.c
index fa5e940..4ad2c6e 100644
--- a/src/arabic.c
+++ b/src/arabic.c
@@ -200,126 +200,48 @@
     static int
 chg_c_a2s(int cur_c)
 {
-    int tempc;
-
     switch (cur_c)
     {
-	case a_HAMZA:
-	    tempc = a_s_HAMZA;
-	    break;
-	case a_ALEF_MADDA:
-	    tempc = a_s_ALEF_MADDA;
-	    break;
-	case a_ALEF_HAMZA_ABOVE:
-	    tempc = a_s_ALEF_HAMZA_ABOVE;
-	    break;
-	case a_WAW_HAMZA:
-	    tempc = a_s_WAW_HAMZA;
-	    break;
-	case a_ALEF_HAMZA_BELOW:
-	    tempc = a_s_ALEF_HAMZA_BELOW;
-	    break;
-	case a_YEH_HAMZA:
-	    tempc = a_s_YEH_HAMZA;
-	    break;
-	case a_ALEF:
-	    tempc = a_s_ALEF;
-	    break;
-	case a_TEH_MARBUTA:
-	    tempc = a_s_TEH_MARBUTA;
-	    break;
-	case a_DAL:
-	    tempc = a_s_DAL;
-	    break;
-	case a_THAL:
-	    tempc = a_s_THAL;
-	    break;
-	case a_REH:
-	    tempc = a_s_REH;
-	    break;
-	case a_ZAIN:
-	    tempc = a_s_ZAIN;
-	    break;
-	case a_TATWEEL:			/* exceptions */
-	    tempc = cur_c;
-	    break;
-	case a_WAW:
-	    tempc = a_s_WAW;
-	    break;
-	case a_ALEF_MAKSURA:
-	    tempc = a_s_ALEF_MAKSURA;
-	    break;
-	case a_BEH:
-	    tempc = a_s_BEH;
-	    break;
-	case a_TEH:
-	    tempc = a_s_TEH;
-	    break;
-	case a_THEH:
-	    tempc = a_s_THEH;
-	    break;
-	case a_JEEM:
-	    tempc = a_s_JEEM;
-	    break;
-	case a_HAH:
-	    tempc = a_s_HAH;
-	    break;
-	case a_KHAH:
-	    tempc = a_s_KHAH;
-	    break;
-	case a_SEEN:
-	    tempc = a_s_SEEN;
-	    break;
-	case a_SHEEN:
-	    tempc = a_s_SHEEN;
-	    break;
-	case a_SAD:
-	    tempc = a_s_SAD;
-	    break;
-	case a_DAD:
-	    tempc = a_s_DAD;
-	    break;
-	case a_TAH:
-	    tempc = a_s_TAH;
-	    break;
-	case a_ZAH:
-	    tempc = a_s_ZAH;
-	    break;
-	case a_AIN:
-	    tempc = a_s_AIN;
-	    break;
-	case a_GHAIN:
-	    tempc = a_s_GHAIN;
-	    break;
-	case a_FEH:
-	    tempc = a_s_FEH;
-	    break;
-	case a_QAF:
-	    tempc = a_s_QAF;
-	    break;
-	case a_KAF:
-	    tempc = a_s_KAF;
-	    break;
-	case a_LAM:
-	    tempc = a_s_LAM;
-	    break;
-	case a_MEEM:
-	    tempc = a_s_MEEM;
-	    break;
-	case a_NOON:
-	    tempc = a_s_NOON;
-	    break;
-	case a_HEH:
-	    tempc = a_s_HEH;
-	    break;
-	case a_YEH:
-	    tempc = a_s_YEH;
-	    break;
-	default:
-	    tempc = 0;
+	case a_HAMZA: return a_s_HAMZA;
+	case a_ALEF_MADDA: return a_s_ALEF_MADDA;
+	case a_ALEF_HAMZA_ABOVE: return a_s_ALEF_HAMZA_ABOVE;
+	case a_WAW_HAMZA: return a_s_WAW_HAMZA;
+	case a_ALEF_HAMZA_BELOW: return a_s_ALEF_HAMZA_BELOW;
+	case a_YEH_HAMZA: return a_s_YEH_HAMZA;
+	case a_ALEF: return a_s_ALEF;
+	case a_TEH_MARBUTA: return a_s_TEH_MARBUTA;
+	case a_DAL: return a_s_DAL;
+	case a_THAL: return a_s_THAL;
+	case a_REH: return a_s_REH;
+	case a_ZAIN: return a_s_ZAIN;
+	case a_TATWEEL: return cur_c;	/* exceptions */
+	case a_WAW: return a_s_WAW;
+	case a_ALEF_MAKSURA: return a_s_ALEF_MAKSURA;
+	case a_BEH: return a_s_BEH;
+	case a_TEH: return a_s_TEH;
+	case a_THEH: return a_s_THEH;
+	case a_JEEM: return a_s_JEEM;
+	case a_HAH: return a_s_HAH;
+	case a_KHAH: return a_s_KHAH;
+	case a_SEEN: return a_s_SEEN;
+	case a_SHEEN: return a_s_SHEEN;
+	case a_SAD: return a_s_SAD;
+	case a_DAD: return a_s_DAD;
+	case a_TAH: return a_s_TAH;
+	case a_ZAH: return a_s_ZAH;
+	case a_AIN: return a_s_AIN;
+	case a_GHAIN: return a_s_GHAIN;
+	case a_FEH: return a_s_FEH;
+	case a_QAF: return a_s_QAF;
+	case a_KAF: return a_s_KAF;
+	case a_LAM: return a_s_LAM;
+	case a_MEEM: return a_s_MEEM;
+	case a_NOON: return a_s_NOON;
+	case a_HEH: return a_s_HEH;
+	case a_YEH: return a_s_YEH;
     }
 
-    return tempc;
+    return 0;
 }
 
 
@@ -329,126 +251,62 @@
     static int
 chg_c_a2i(int cur_c)
 {
-    int tempc;
-
     switch (cur_c)
     {
-	case a_YEH_HAMZA:
-	    tempc = a_i_YEH_HAMZA;
-	    break;
+	case a_YEH_HAMZA: return a_i_YEH_HAMZA;
 	case a_HAMZA:			/* exceptions */
-	    tempc = a_s_HAMZA;
-	    break;
+	    return a_s_HAMZA;
 	case a_ALEF_MADDA:		/* exceptions */
-	    tempc = a_s_ALEF_MADDA;
-	    break;
+	    return a_s_ALEF_MADDA;
 	case a_ALEF_HAMZA_ABOVE:	/* exceptions */
-	    tempc = a_s_ALEF_HAMZA_ABOVE;
-	    break;
+	    return a_s_ALEF_HAMZA_ABOVE;
 	case a_WAW_HAMZA:		/* exceptions */
-	    tempc = a_s_WAW_HAMZA;
-	    break;
+	    return a_s_WAW_HAMZA;
 	case a_ALEF_HAMZA_BELOW:	/* exceptions */
-	    tempc = a_s_ALEF_HAMZA_BELOW;
-	    break;
+	    return a_s_ALEF_HAMZA_BELOW;
 	case a_ALEF:			/* exceptions */
-	    tempc = a_s_ALEF;
-	    break;
+	    return a_s_ALEF;
 	case a_TEH_MARBUTA:		/* exceptions */
-	    tempc = a_s_TEH_MARBUTA;
-	    break;
+	    return a_s_TEH_MARBUTA;
 	case a_DAL:			/* exceptions */
-	    tempc = a_s_DAL;
-	    break;
+	    return a_s_DAL;
 	case a_THAL:			/* exceptions */
-	    tempc = a_s_THAL;
-	    break;
+	    return a_s_THAL;
 	case a_REH:			/* exceptions */
-	    tempc = a_s_REH;
-	    break;
+	    return a_s_REH;
 	case a_ZAIN:			/* exceptions */
-	    tempc = a_s_ZAIN;
-	    break;
+	    return a_s_ZAIN;
 	case a_TATWEEL:			/* exceptions */
-	    tempc = cur_c;
-	    break;
+	    return cur_c;
 	case a_WAW:			/* exceptions */
-	    tempc = a_s_WAW;
-	    break;
+	    return a_s_WAW;
 	case a_ALEF_MAKSURA:		/* exceptions */
-	    tempc = a_s_ALEF_MAKSURA;
-	    break;
-	case a_BEH:
-	    tempc = a_i_BEH;
-	    break;
-	case a_TEH:
-	    tempc = a_i_TEH;
-	    break;
-	case a_THEH:
-	    tempc = a_i_THEH;
-	    break;
-	case a_JEEM:
-	    tempc = a_i_JEEM;
-	    break;
-	case a_HAH:
-	    tempc = a_i_HAH;
-	    break;
-	case a_KHAH:
-	    tempc = a_i_KHAH;
-	    break;
-	case a_SEEN:
-	    tempc = a_i_SEEN;
-	    break;
-	case a_SHEEN:
-	    tempc = a_i_SHEEN;
-	    break;
-	case a_SAD:
-	    tempc = a_i_SAD;
-	    break;
-	case a_DAD:
-	    tempc = a_i_DAD;
-	    break;
-	case a_TAH:
-	    tempc = a_i_TAH;
-	    break;
-	case a_ZAH:
-	    tempc = a_i_ZAH;
-	    break;
-	case a_AIN:
-	    tempc = a_i_AIN;
-	    break;
-	case a_GHAIN:
-	    tempc = a_i_GHAIN;
-	    break;
-	case a_FEH:
-	    tempc = a_i_FEH;
-	    break;
-	case a_QAF:
-	    tempc = a_i_QAF;
-	    break;
-	case a_KAF:
-	    tempc = a_i_KAF;
-	    break;
-	case a_LAM:
-	    tempc = a_i_LAM;
-	    break;
-	case a_MEEM:
-	    tempc = a_i_MEEM;
-	    break;
-	case a_NOON:
-	    tempc = a_i_NOON;
-	    break;
-	case a_HEH:
-	    tempc = a_i_HEH;
-	    break;
-	case a_YEH:
-	    tempc = a_i_YEH;
-	    break;
-	default:
-	    tempc = 0;
+	    return a_s_ALEF_MAKSURA;
+	case a_BEH: return a_i_BEH;
+	case a_TEH: return a_i_TEH;
+	case a_THEH: return a_i_THEH;
+	case a_JEEM: return a_i_JEEM;
+	case a_HAH: return a_i_HAH;
+	case a_KHAH: return a_i_KHAH;
+	case a_SEEN: return a_i_SEEN;
+	case a_SHEEN: return a_i_SHEEN;
+	case a_SAD: return a_i_SAD;
+	case a_DAD: return a_i_DAD;
+	case a_TAH: return a_i_TAH;
+	case a_ZAH: return a_i_ZAH;
+	case a_AIN: return a_i_AIN;
+	case a_GHAIN: return a_i_GHAIN;
+	case a_FEH: return a_i_FEH;
+	case a_QAF: return a_i_QAF;
+	case a_KAF: return a_i_KAF;
+	case a_LAM: return a_i_LAM;
+	case a_MEEM: return a_i_MEEM;
+	case a_NOON: return a_i_NOON;
+	case a_HEH: return a_i_HEH;
+	case a_YEH: return a_i_YEH;
     }
 
-    return tempc;
+    return 0;
 }
 
 
@@ -458,126 +316,48 @@
     static int
 chg_c_a2m(int cur_c)
 {
-    int tempc;
-
     switch (cur_c)
     {
-	case a_HAMZA:			/* exception */
-	    tempc = a_s_HAMZA;
-	    break;
-	case a_ALEF_MADDA:		/* exception */
-	    tempc = a_f_ALEF_MADDA;
-	    break;
-	case a_ALEF_HAMZA_ABOVE:	/* exception */
-	    tempc = a_f_ALEF_HAMZA_ABOVE;
-	    break;
-	case a_WAW_HAMZA:		/* exception */
-	    tempc = a_f_WAW_HAMZA;
-	    break;
-	case a_ALEF_HAMZA_BELOW:	/* exception */
-	    tempc = a_f_ALEF_HAMZA_BELOW;
-	    break;
-	case a_YEH_HAMZA:
-	    tempc = a_m_YEH_HAMZA;
-	    break;
-	case a_ALEF:			/* exception */
-	    tempc = a_f_ALEF;
-	    break;
-	case a_BEH:
-	    tempc = a_m_BEH;
-	    break;
-	case a_TEH_MARBUTA:		/* exception */
-	    tempc = a_f_TEH_MARBUTA;
-	    break;
-	case a_TEH:
-	    tempc = a_m_TEH;
-	    break;
-	case a_THEH:
-	    tempc = a_m_THEH;
-	    break;
-	case a_JEEM:
-	    tempc = a_m_JEEM;
-	    break;
-	case a_HAH:
-	    tempc = a_m_HAH;
-	    break;
-	case a_KHAH:
-	    tempc = a_m_KHAH;
-	    break;
-	case a_DAL:			/* exception */
-	    tempc = a_f_DAL;
-	    break;
-	case a_THAL:			/* exception */
-	    tempc = a_f_THAL;
-	    break;
-	case a_REH:			/* exception */
-	    tempc = a_f_REH;
-	    break;
-	case a_ZAIN:			/* exception */
-	    tempc = a_f_ZAIN;
-	    break;
-	case a_SEEN:
-	    tempc = a_m_SEEN;
-	    break;
-	case a_SHEEN:
-	    tempc = a_m_SHEEN;
-	    break;
-	case a_SAD:
-	    tempc = a_m_SAD;
-	    break;
-	case a_DAD:
-	    tempc = a_m_DAD;
-	    break;
-	case a_TAH:
-	    tempc = a_m_TAH;
-	    break;
-	case a_ZAH:
-	    tempc = a_m_ZAH;
-	    break;
-	case a_AIN:
-	    tempc = a_m_AIN;
-	    break;
-	case a_GHAIN:
-	    tempc = a_m_GHAIN;
-	    break;
-	case a_TATWEEL:			/* exception */
-	    tempc = cur_c;
-	    break;
-	case a_FEH:
-	    tempc = a_m_FEH;
-	    break;
-	case a_QAF:
-	    tempc = a_m_QAF;
-	    break;
-	case a_KAF:
-	    tempc = a_m_KAF;
-	    break;
-	case a_LAM:
-	    tempc = a_m_LAM;
-	    break;
-	case a_MEEM:
-	    tempc = a_m_MEEM;
-	    break;
-	case a_NOON:
-	    tempc = a_m_NOON;
-	    break;
-	case a_HEH:
-	    tempc = a_m_HEH;
-	    break;
-	case a_WAW:			/* exception */
-	    tempc = a_f_WAW;
-	    break;
-	case a_ALEF_MAKSURA:		/* exception */
-	    tempc = a_f_ALEF_MAKSURA;
-	    break;
-	case a_YEH:
-	    tempc = a_m_YEH;
-	    break;
-	default:
-	    tempc = 0;
+	case a_HAMZA: return a_s_HAMZA;	/* exception */
+	case a_ALEF_MADDA: return a_f_ALEF_MADDA;	/* exception */
+	case a_ALEF_HAMZA_ABOVE: return a_f_ALEF_HAMZA_ABOVE;	/* exception */
+	case a_WAW_HAMZA: return a_f_WAW_HAMZA;	/* exception */
+	case a_ALEF_HAMZA_BELOW: return a_f_ALEF_HAMZA_BELOW;	/* exception */
+	case a_YEH_HAMZA: return a_m_YEH_HAMZA;
+	case a_ALEF: return a_f_ALEF;	/* exception */
+	case a_BEH: return a_m_BEH;
+	case a_TEH_MARBUTA: return a_f_TEH_MARBUTA;	/* exception */
+	case a_TEH: return a_m_TEH;
+	case a_THEH: return a_m_THEH;
+	case a_JEEM: return a_m_JEEM;
+	case a_HAH: return a_m_HAH;
+	case a_KHAH: return a_m_KHAH;
+	case a_DAL: return a_f_DAL;	/* exception */
+	case a_THAL: return a_f_THAL;	/* exception */
+	case a_REH: return a_f_REH;	/* exception */
+	case a_ZAIN: return a_f_ZAIN;	/* exception */
+	case a_SEEN: return a_m_SEEN;
+	case a_SHEEN: return a_m_SHEEN;
+	case a_SAD: return a_m_SAD;
+	case a_DAD: return a_m_DAD;
+	case a_TAH: return a_m_TAH;
+	case a_ZAH: return a_m_ZAH;
+	case a_AIN: return a_m_AIN;
+	case a_GHAIN: return a_m_GHAIN;
+	case a_TATWEEL: return cur_c;	/* exception */
+	case a_FEH: return a_m_FEH;
+	case a_QAF: return a_m_QAF;
+	case a_KAF: return a_m_KAF;
+	case a_LAM: return a_m_LAM;
+	case a_MEEM: return a_m_MEEM;
+	case a_NOON: return a_m_NOON;
+	case a_HEH: return a_m_HEH;
+	case a_WAW: return a_f_WAW;	/* exception */
+	case a_ALEF_MAKSURA: return a_f_ALEF_MAKSURA;	/* exception */
+	case a_YEH: return a_m_YEH;
     }
 
-    return tempc;
+    return 0;
 }
 
 
