summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rwxr-xr-xpbx/ael/ael-test/runtests8
-rw-r--r--pbx/ael/ael.flex4
-rw-r--r--pbx/ael/ael.tab.c7
-rw-r--r--pbx/ael/ael.y7
-rw-r--r--pbx/ael/ael_lex.c4
5 files changed, 20 insertions, 10 deletions
diff --git a/pbx/ael/ael-test/runtests b/pbx/ael/ael-test/runtests
index c0d148de4..a8de9eaec 100755
--- a/pbx/ael/ael-test/runtests
+++ b/pbx/ael/ael-test/runtests
@@ -1,9 +1,12 @@
#!/bin/bash
-
+ORIG=`mktemp /tmp/mytest.XXXXXX`
+NEW=`mktemp /tmp/mytest.XXXXXX`
for i in ael-test*; do
echo -n Test: $i..................
(cd $i; ../../../../utils/aelparse -n -d | grep -v -i 'seconds' > ../res.$i)
- if (diff -q res.$i ref.$i > /dev/null 2>&1 ) then
+ sed 's/line:[0-9]*//; /^Executed.*/d' < res.$i > $NEW
+ sed 's/line:[0-9]*//; /^Executed.*/d' < ref.$i > $ORIG
+ if (diff -q $NEW $ORIG > /dev/null 2>&1 ) then
echo PASSED
rm res.$i
else
@@ -12,3 +15,4 @@ for i in ael-test*; do
fi
done
+rm $NEW $ORIG
diff --git a/pbx/ael/ael.flex b/pbx/ael/ael.flex
index 280960c14..0a063b8b7 100644
--- a/pbx/ael/ael.flex
+++ b/pbx/ael/ael.flex
@@ -213,9 +213,9 @@ switches { STORE_POS; return KW_SWITCHES;}
eswitches { STORE_POS; return KW_ESWITCHES;}
includes { STORE_POS; return KW_INCLUDES;}
-\n { my_lineno++; my_col = 0; }
+\n { my_lineno++; my_col = 1; }
[ ]+ { my_col += yyleng; }
-[\t]+ { my_col += 8-(my_col%8); }
+[\t]+ { my_col += (yyleng*8)-(my_col%8); }
[-a-zA-Z0-9'"_/.\<\>\*\+!$#\[\]][-a-zA-Z0-9'"_/.!\*\+\<\>\{\}$#\[\]]* {
STORE_POS;
diff --git a/pbx/ael/ael.tab.c b/pbx/ael/ael.tab.c
index a238eb990..962c27854 100644
--- a/pbx/ael/ael.tab.c
+++ b/pbx/ael/ael.tab.c
@@ -185,7 +185,7 @@
static pval *npval(pvaltype type, int first_line, int last_line,
int first_column, int last_column);
-static void linku1(pval *head, pval *tail);
+static pval * linku1(pval *head, pval *tail);
void reset_parencount(yyscan_t yyscanner);
void reset_semicount(yyscan_t yyscanner);
@@ -3521,14 +3521,17 @@ static struct pval *npval2(pvaltype type, YYLTYPE *first, YYLTYPE *last)
}
/* append second element to the list in the first one */
-static void linku1(pval *head, pval *tail)
+static pval * linku1(pval *head, pval *tail)
{
+ if (!head)
+ return tail;
if (!head->next) {
head->next = tail;
} else {
head->u1_last->next = tail;
}
head->u1_last = tail;
+ return head;
}
diff --git a/pbx/ael/ael.y b/pbx/ael/ael.y
index d9f709243..ead9501ee 100644
--- a/pbx/ael/ael.y
+++ b/pbx/ael/ael.y
@@ -32,7 +32,7 @@
static pval *npval(pvaltype type, int first_line, int last_line,
int first_column, int last_column);
-static void linku1(pval *head, pval *tail);
+static pval * linku1(pval *head, pval *tail);
void reset_parencount(yyscan_t yyscanner);
void reset_semicount(yyscan_t yyscanner);
@@ -959,13 +959,16 @@ static struct pval *npval2(pvaltype type, YYLTYPE *first, YYLTYPE *last)
}
/* append second element to the list in the first one */
-static void linku1(pval *head, pval *tail)
+static pval * linku1(pval *head, pval *tail)
{
+ if (!head)
+ return tail;
if (!head->next) {
head->next = tail;
} else {
head->u1_last->next = tail;
}
head->u1_last = tail;
+ return head;
}
diff --git a/pbx/ael/ael_lex.c b/pbx/ael/ael_lex.c
index 5d0b4e73c..b1aa53f51 100644
--- a/pbx/ael/ael_lex.c
+++ b/pbx/ael/ael_lex.c
@@ -1309,7 +1309,7 @@ case 40:
/* rule 40 can match eol */
YY_RULE_SETUP
#line 216 "ael.flex"
-{ my_lineno++; my_col = 0; }
+{ my_lineno++; my_col = 1; }
YY_BREAK
case 41:
YY_RULE_SETUP
@@ -1319,7 +1319,7 @@ YY_RULE_SETUP
case 42:
YY_RULE_SETUP
#line 218 "ael.flex"
-{ my_col += 8-(my_col%8); }
+{ my_col += (yyleng*8)-(my_col%8); }
YY_BREAK
case 43:
YY_RULE_SETUP