[libvirt] [PATCH 0/2] docs: Fix enum documentation
Michal Privoznik
mprivozn at redhat.com
Mon Jul 24 10:10:40 UTC 2017
On 07/24/2017 11:17 AM, Martin Kletzander wrote:
> On Sun, Jul 23, 2017 at 11:16:21PM +0200, Tomáš Golembiovský wrote:
>> On Sat, 22 Jul 2017 11:04:32 +0200
>> Michal Privoznik <mprivozn at redhat.com> wrote:
>>
>>> So this patch sent to the list got me roll up my sleeves and get
>>> working:
>>>
>>> https://www.redhat.com/archives/libvir-list/2017-July/msg00835.html
>>>
>>> It wasn't that bad after all.
>>>
>>
>> Thanks for giving it a try!
>>
>> There is a slight progress, if we can call it so, but we're not there
>> yet. Looking at the generated docs for virDomainMemoryStatTags, there is
>> an issue, although different from the original.
>>
>> The comment for VIR_DOMAIN_MEMORY_STAT_SWAP_IN is now picked up
>> correctly. But VIR_DOMAIN_MEMORY_STAT_MINOR_FAULT has now the comment
>> that belongs to VIR_DOMAIN_MEMORY_STAT_UNUSED.
>>
>
> Yeah, it doesn't fix everything, but thankfully it is strictly better
> than before.
>
> Reviewed-by: Martin Kletzander <mkletzan at redhat.com>
>
> What Tomas is explaining here looks like a problem with parsing or
> cleaning up the comments. It happens when there is a multiline comment
> for one enum value and the next one does not have any. I tried looking
> at the code yet again and it hurts my brain. But I'd still rather fix
> that than just work around it (add missing comments where it doesn't
> make much sense).
Actually, the fix was quite easy. In patch 1/2 I'm only appending to the
list of enums if both @commentsBeforeVal and @self.comment are set.
However, there's no real reason for testing self.comment. If the current
value the script is processing doesn't have a comment (like in this
case) then we should just not add one. To say it with patch:
diff --git i/docs/apibuild.py w/docs/apibuild.py
index 3a8f5d449..87e81f5c3 100755
--- i/docs/apibuild.py
+++ w/docs/apibuild.py
@@ -1408,7 +1408,7 @@ class CParser:
self.warning("Failed to compute value of enum %s" % (name))
value=""
if token[0] == "sep" and token[1] == ",":
- if commentsBeforeVal and self.comment is not None:
+ if commentsBeforeVal:
self.cleanupComment()
self.enums.append((name, value, self.comment))
name = comment = self.comment = None
Anyway, what is still going to be broken are cases where we mix comments
before and after values. But well, I haven't found any just yet (haven't
looked hard though) and we can fix that later if we want.
I'm squashing that diff into 1/2 before pushing. Thanks for all the fish!
Michal
More information about the libvir-list
mailing list