On 10/23/2015 08:47 AM, Markus Armbruster wrote: > Eric Blake <ebl...@redhat.com> writes: > >> On 10/23/2015 07:05 AM, Markus Armbruster wrote: >>> Eric Blake <ebl...@redhat.com> writes: >>> >>>> c_name() produces names starting with 'q_' when protecting >>>> a QMP member name that would fail to directly compile, but >>>> in doing so can cause clashes with any QMP name already >>>> beginning with 'q-' or 'q_'. Likewise, we create a C name >>>> 'has_' for any optional member, that can clash with any QMP >>>> name beginning with 'has-' or 'has_'. >>>>
>>>> - if not valid_name.match(membername): >>>> + # Reserve the entire 'q_' namespace for c_name() >>>> + if not valid_name.match(membername) or \ >>>> + membername.replace('-', '_').startswith('q_'): >>> >>> Why not c_name(membername).startswith('q_')? >> >> Recursion. c_name('unix') is 'q_unix', which would be rejected, even >> though we want to accept it. (And yes, that was my first try, before the >> approach you see here) > > c_name(membername, False).startswith('q_')? Oh, I forgot about the optional bool. I'll try it. -- Eric Blake eblake redhat com +1-919-301-3266 Libvirt virtualization library http://libvirt.org
signature.asc
Description: OpenPGP digital signature