fix ash-alias/alias.tests failure
authorDenis Vlasenko <vda.linux@googlemail.com>
Thu, 2 Apr 2009 12:57:38 +0000 (12:57 -0000)
committerDenis Vlasenko <vda.linux@googlemail.com>
Thu, 2 Apr 2009 12:57:38 +0000 (12:57 -0000)
shell/ash.c

index 0d3ab0ff51a871a488c8b21fb62fccb455ffbc91..4aaea2803d86cf4d6275acf0100b69a485c49ffb 100644 (file)
@@ -354,39 +354,25 @@ raise_interrupt(void)
 } while (0)
 #endif
 
-#if ENABLE_ASH_OPTIMIZE_FOR_SIZE
-static void
+static USE_ASH_OPTIMIZE_FOR_SIZE(inline) void
 int_on(void)
 {
+       xbarrier();
        if (--suppressint == 0 && intpending) {
                raise_interrupt();
        }
 }
 #define INT_ON int_on()
-static void
+static USE_ASH_OPTIMIZE_FOR_SIZE(inline) void
 force_int_on(void)
 {
+       xbarrier();
        suppressint = 0;
        if (intpending)
                raise_interrupt();
 }
 #define FORCE_INT_ON force_int_on()
 
-#else /* !ASH_OPTIMIZE_FOR_SIZE */
-
-#define INT_ON do { \
-       xbarrier(); \
-       if (--suppressint == 0 && intpending) \
-               raise_interrupt(); \
-} while (0)
-#define FORCE_INT_ON do { \
-       xbarrier(); \
-       suppressint = 0; \
-       if (intpending) \
-               raise_interrupt(); \
-} while (0)
-#endif /* !ASH_OPTIMIZE_FOR_SIZE */
-
 #define SAVE_INT(v) ((v) = suppressint)
 
 #define RESTORE_INT(v) do { \
@@ -2700,23 +2686,26 @@ SIT(int c, int syntax)
        const char *s;
        int indx;
 
-       if (c == PEOF)          /* 2^8+2 */
+       if (c == PEOF) {         /* 2^8+2 */
                return CENDFILE;
+       }
 #if ENABLE_ASH_ALIAS
-       if (c == PEOA)          /* 2^8+1 */
+       if (c == PEOA) {         /* 2^8+1 */
                indx = 0;
-       else
+       else
 #endif
-
-       if ((unsigned char)c >= (unsigned char)(CTLESC)
-        && (unsigned char)c <= (unsigned char)(CTLQUOTEMARK)
-       ) {
-               return CCTL;
+       {
+               if ((unsigned char)c >= (unsigned char)(CTLESC)
+                && (unsigned char)c <= (unsigned char)(CTLQUOTEMARK)
+               ) {
+                       return CCTL;
+               }
+               s = strchrnul(spec_symbls, c);
+               if (*s == '\0') {
+                       return CWORD;
+               }
+               indx = syntax_index_table[s - spec_symbls];
        }
-       s = strchrnul(spec_symbls, c);
-       if (*s == '\0')
-               return CWORD;
-       indx = syntax_index_table[s - spec_symbls];
        return S_I_T[indx][syntax];
 }
 
@@ -3019,7 +3008,7 @@ static const char syntax_index_table[258] = {
        /* 257   127      */ CWORD_CWORD_CWORD_CWORD,
 };
 
-#define SIT(c, syntax) (S_I_T[(int)syntax_index_table[((int)c)+SYNBASE]][syntax])
+#define SIT(c, syntax) (S_I_T[(int)syntax_index_table[(int)(c) + SYNBASE]][syntax])
 
 #endif  /* USE_SIT_FUNCTION */