summary refs log tree commit diff
diff options
context:
space:
mode:
-rw-r--r--src/libexecline/PARSING.txt30
-rw-r--r--src/libexecline/el_parse.c8
2 files changed, 19 insertions, 19 deletions
diff --git a/src/libexecline/PARSING.txt b/src/libexecline/PARSING.txt
index b84c0ff..293d812 100644
--- a/src/libexecline/PARSING.txt
+++ b/src/libexecline/PARSING.txt
@@ -72,28 +72,28 @@ Q1: after a backslash in whitespace
 Q2: after a backslash in an unquoted word
 Q3: after a backslash in a quoted string
 Q: in a quoted string
-OCT: after \0 in a quoted string
-OCT1: after \0a in a quoted string
-OCT2: after \0ab in a quoted string
-DEC1: after \a in a quoted string
-DEC2: after \ab in a quoted string
-HEX: after \0x in a quoted string
-HEX1: after \0xa in a quoted string
-ENDNUM: after \0abc, \abc or \0xab in a quoted string
+OCT: after \0
+OCT1: after \0a
+OCT2: after \0ab
+DEC1: after \a
+DEC2: after \ab
+HEX: after \0x
+HEX1: after \0xa
+ENDNUM: after \0abc, \abc or \0xab
 END: success
 X: syntax error
 
 
 Actions
 
-8000	s	scan integer from mark to cur
+8000	s	scan integer from mark, push it
 4000	m	set mark
-2000	n	add blevel spaces
-1000	{	inc blevel + unpush blevel
-0800	}	dec blevel + unpush 2
-0400	p	add cur to word
-0200	c	add control char (depending on cur) to word
-0100	0	end word
+2000	n	new word: push blevel spaces
+1000	{	begin block (inc blevel, unpush)
+0800	}	end block (dec blevel, unpush)
+0400	p	push cur
+0200	c	push control char (depending on cur)
+0100	0	end word: push \0
 0080	b	switch base according to cur
 0040	unused
 0020	unused
diff --git a/src/libexecline/el_parse.c b/src/libexecline/el_parse.c
index 6ef7ce9..23a9df5 100644
--- a/src/libexecline/el_parse.c
+++ b/src/libexecline/el_parse.c
@@ -69,18 +69,18 @@ int el_parse (stralloc *sa, el_chargen_func_ref next, void *source)
       if (!blevel--) return -4 ;
       sa->len -= 2 ;
     }
-    if (c & 0x0400) if (!stralloc_catb(sa, (char *)&cur, 1)) return -1 ;
-    if (c & 0x0200)
+    if (c & 0x0400U) if (!stralloc_catb(sa, (char *)&cur, 1)) return -1 ;
+    if (c & 0x0200U)
     {
       char x = 7 + byte_chr("abtnvfr", 7, cur) ;
       if (!stralloc_catb(sa, &x, 1)) return -1 ;
     }
-    if (c & 0x0100)
+    if (c & 0x0100U)
     {
       if (n++ >= INT_MAX) return (errno = E2BIG, -1) ;
       if (!stralloc_0(sa)) return -1 ;
     }
-    if (c & 0x0080)
+    if (c & 0x0080U)
     {
       switch (cur)
       {