[libvirt PATCH] scripts: fix API parsing of *** pointers

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



The currrent generated API contains *** pointer types with bogus
whitespace in the middle:

  <arg name='keys' type='char ** *' info='pointer to a variable to store authorized keys'/>

because the tokenizer only tries to merge 2 distinct '*' together.
This refactors the code to merge an arbitrary number, resulting
in

  <arg name='keys' type='char ***' info='pointer to a variable to store authorized keys'/>

Signed-off-by: Daniel P. Berrangé <berrange@xxxxxxxxxx>
---
 scripts/apibuild.py | 13 ++++++-------
 1 file changed, 6 insertions(+), 7 deletions(-)

diff --git a/scripts/apibuild.py b/scripts/apibuild.py
index b94c0f6c09..722fd33f0e 100755
--- a/scripts/apibuild.py
+++ b/scripts/apibuild.py
@@ -603,13 +603,12 @@ class CLexer:
                         i = i + 3
                         continue
 
-                    j = i + 1
-                    if j < nline and line[j] in "+-*><=/%&!|":
-                        self.tokens.append(('op', line[i:j + 1]))
-                        i = j + 1
-                    else:
-                        self.tokens.append(('op', line[i]))
-                        i = i + 1
+                    j = i
+                    while (j + 1) < nline and line[j+1] in "+-*><=/%&!|":
+                        j = j + 1
+
+                    self.tokens.append(('op', line[i:j+1]))
+                    i = j + 1
                     continue
                 s = i
                 while i < nline:
-- 
2.31.1




[Index of Archives]     [Virt Tools]     [Libvirt Users]     [Lib OS Info]     [Fedora Users]     [Fedora Desktop]     [Fedora SELinux]     [Big List of Linux Books]     [Yosemite News]     [KDE Users]     [Fedora Tools]

  Powered by Linux