Emacs is fairly good about navigating across function and scope
boundaries, provided that the code has balanced {}. The vbox
code, however, violated that premise, by splitting 'if () {'
across several #ifdef branches, but sharing the '} else {...}'
outside of the branches. The extra lines of code is worth my
sanity, in a function that is already a horrendous 1100+ lines
long. Bad nesting is hard to maintain.
* src/vbox/vbox_tmpl.c (vboxDomainGetXMLDesc) Duplicate code
rather than trying to share else branch across #ifdef.
Signed-off-by: Eric Blake <eblake(a)redhat.com>
---
Pushing under the trivial rule. I'm tired of '^X-4-a' pulling
up a changelog template for the wrong function, only to have
to scroll through several hundred lines of #ifdef mess to find
what function I'm really modifying.
src/vbox/vbox_tmpl.c | 8 +++++++-
1 file changed, 7 insertions(+), 1 deletion(-)
diff --git a/src/vbox/vbox_tmpl.c b/src/vbox/vbox_tmpl.c
index 7162a25..2aeddd0 100644
--- a/src/vbox/vbox_tmpl.c
+++ b/src/vbox/vbox_tmpl.c
@@ -2649,6 +2649,9 @@ static char *vboxDomainGetXMLDesc(virDomainPtr dom, unsigned int
flags) {
VRDxServer->vtbl->GetPort(VRDxServer, &VRDPport);
if (VRDPport) {
def->graphics[def->ngraphics]->data.rdp.port =
VRDPport;
+ } else {
+ def->graphics[def->ngraphics]->data.rdp.autoport
= true;
+ }
#elif VBOX_API_VERSION < 4000000 /* 3001000 <= VBOX_API_VERSION < 4000000 */
PRUnichar *VRDPport = NULL;
VRDxServer->vtbl->GetPorts(VRDxServer, &VRDPport);
@@ -2656,6 +2659,9 @@ static char *vboxDomainGetXMLDesc(virDomainPtr dom, unsigned int
flags) {
/* even if vbox supports mutilpe ports, single port for
now here */
def->graphics[def->ngraphics]->data.rdp.port =
PRUnicharToInt(VRDPport);
VBOX_UTF16_FREE(VRDPport);
+ } else {
+ def->graphics[def->ngraphics]->data.rdp.autoport
= true;
+ }
#else /* VBOX_API_VERSION >= 4000000 */
PRUnichar *VRDEPortsKey = NULL;
PRUnichar *VRDEPortsValue = NULL;
@@ -2666,10 +2672,10 @@ static char *vboxDomainGetXMLDesc(virDomainPtr dom, unsigned int
flags) {
/* even if vbox supports mutilpe ports, single port for
now here */
def->graphics[def->ngraphics]->data.rdp.port =
PRUnicharToInt(VRDEPortsValue);
VBOX_UTF16_FREE(VRDEPortsValue);
-#endif /* VBOX_API_VERSION >= 4000000 */
} else {
def->graphics[def->ngraphics]->data.rdp.autoport
= true;
}
+#endif /* VBOX_API_VERSION >= 4000000 */
def->graphics[def->ngraphics]->type =
VIR_DOMAIN_GRAPHICS_TYPE_RDP;
--
1.8.5.3