On 5/19/20 3:01 PM, Daniel P. Berrangé wrote:
Currently the value for an enum is only emitted if it is a plain
string. If the enum is an integer or hex value, or a complex code block,
it is omitted from the API build. This fixes that by emitting the raw
value if no string value is present.

With this change:

   <macro name='LIBVIR_CHECK_VERSION'
          file='libvirt-common'
          params='major,minor,micro'>
   <macro name='LIBVIR_VERSION_NUMBER'
          file='libvirt-common'>
   <macro name='VIR_COPY_CPUMAP'
          file='libvirt-domain'
          params='cpumaps,maplen,vcpu,cpumap'>
   ...snip...

   <macro name='LIBVIR_CHECK_VERSION'
          file='libvirt-common'
          params='major,minor,micro'
          raw='((major) * 1000000 + (minor) * 1000 + (micro) <= 
LIBVIR_VERSION_NUMBER)'>
   <macro name='LIBVIR_VERSION_NUMBER'
          file='libvirt-common'
          raw='6004000'>
   <macro name='VIR_COPY_CPUMAP'
          file='libvirt-domain'
          params='cpumaps,maplen,vcpu,cpumap'
          raw='memcpy(cpumap, VIR_GET_CPUMAP(cpumaps, maplen, vcpu), maplen)'>
   ...snip...

Signed-off-by: Daniel P. Berrangé <berra...@redhat.com>
---
  scripts/apibuild.py | 10 ++++++++--
  1 file changed, 8 insertions(+), 2 deletions(-)

I'm seeing some weird errors after I apply this one, like:

make[2]: Entering directory '/home/zippy/work/libvirt/libvirt.git/_build/docs'
/usr/bin/xsltproc --nonet -o ./ \
  --stringparam builddir '/home/zippy/work/libvirt/libvirt.git/_build' \
  --stringparam timestamp "Thu May 21 12:42:53 UTC 2020" \
  ../../docs/newapi.xsl libvirt-api.xml
libvirt-api.xml:2092: parser error : Unescaped '<' not allowed in attributes values ' params='major,minor,micro' raw='((major) * 1000000 + (minor) * 1000 + (micro)

       ^
libvirt-api.xml:2092: parser error : attributes construct error
' params='major,minor,micro' raw='((major) * 1000000 + (minor) * 1000 + (micro)

       ^
libvirt-api.xml:2092: parser error : Couldn't find end of Start Tag macro line 2092 ' params='major,minor,micro' raw='((major) * 1000000 + (minor) * 1000 + (micro)

       ^
libvirt-api.xml:2092: parser error : StartTag: invalid element name
params='major,minor,micro' raw='((major) * 1000000 + (minor) * 1000 + (micro) <

       ^
libvirt-api.xml:2097: parser error : Opening and ending tag mismatch: symbols line 2091 and macro
    </macro>
            ^
libvirt-api.xml:2146: parser error : xmlParseEntityRef: no name
_CPU_USED' file='libvirt-domain' params='cpumap,cpu' raw='((cpumap)[(cpu) / 8] &

       ^
libvirt-api.xml:2146: parser error : Unescaped '<' not allowed in attributes values _USED' file='libvirt-domain' params='cpumap,cpu' raw='((cpumap)[(cpu) / 8] & (1

       ^
libvirt-api.xml:2146: parser error : attributes construct error
_USED' file='libvirt-domain' params='cpumap,cpu' raw='((cpumap)[(cpu) / 8] & (1

       ^
libvirt-api.xml:2146: parser error : Couldn't find end of Start Tag macro line 2146 _USED' file='libvirt-domain' params='cpumap,cpu' raw='((cpumap)[(cpu) / 8] & (1

       ^
libvirt-api.xml:2146: parser error : StartTag: invalid element name
USED' file='libvirt-domain' params='cpumap,cpu' raw='((cpumap)[(cpu) / 8] & (1 <

       ^
libvirt-api.xml:2146: parser error : StartTag: invalid element name
SED' file='libvirt-domain' params='cpumap,cpu' raw='((cpumap)[(cpu) / 8] & (1 <<

       ^
libvirt-api.xml:2150: parser error : Opening and ending tag mismatch: api line 2 and macro
    </macro>
            ^
libvirt-api.xml:2151: parser error : Extra content at the end of the document <macro name='VIR_DOMAIN_BANDWIDTH_IN_AVERAGE' file='libvirt-domain' string='
    ^
unable to parse libvirt-api.xml


Michal

Reply via email to