<div dir="ltr"><span style="font-size:12.8px">From: Quentin Liu <</span><a href="mailto:Quentin.Liu.0415@gmail.com" style="font-size:12.8px">Quentin.Liu.0415@gmail.com</a><span style="font-size:12.8px">></span><br style="font-size:12.8px"><br style="font-size:12.8px"><span style="font-size:12.8px">If the type of drirc options is changed, the parser will not be able to</span><br style="font-size:12.8px"><span style="font-size:12.8px"> recognize xml files that had been present before the change. To achieve</span><br style="font-size:12.8px"><span style="font-size:12.8px">backward compatibility, the parser is relaxed to recognize boolean type</span><br style="font-size:12.8px"><span style="font-size:12.8px">options with enum values.</span><br style="font-size:12.8px"><span style="font-size:12.8px">---</span><br style="font-size:12.8px"><span style="font-size:12.8px"> src/util/xmlconfig.c | 17 +++++++++++++++--</span><br style="font-size:12.8px"><span style="font-size:12.8px"> 1 file changed, 15 insertions(+), 2 deletions(-)</span><br style="font-size:12.8px"><br style="font-size:12.8px"><span style="font-size:12.8px">diff --git a/src/util/xmlconfig.c b/src/util/xmlconfig.c</span><br style="font-size:12.8px"><span style="font-size:12.8px">index d3f47ec..d81a07b 100644</span><br style="font-size:12.8px"><span style="font-size:12.8px">--- a/src/util/xmlconfig.c</span><br style="font-size:12.8px"><span style="font-size:12.8px">+++ b/src/util/xmlconfig.c</span><br style="font-size:12.8px"><span style="font-size:12.8px">@@ -317,8 +317,21 @@ parseValue(driOptionValue *v, driOptionType type, const XML_Char *string)</span><br style="font-size:12.8px"><span style="font-size:12.8px">             v->_bool = true;</span><br style="font-size:12.8px"><span style="font-size:12.8px">             tail = string + 4;</span><br style="font-size:12.8px"><span style="font-size:12.8px">         }</span><br style="font-size:12.8px"><span style="font-size:12.8px">-        else</span><br style="font-size:12.8px"><span style="font-size:12.8px">-            return false;</span><br style="font-size:12.8px"><span style="font-size:12.8px">+        else {</span><br style="font-size:12.8px"><span style="font-size:12.8px">+            /* Some drirc options, such as pp_celshade, were formerly enum</span><br style="font-size:12.8px"><span style="font-size:12.8px">+             * values. Now that they have been turned into boolean values,</span><br style="font-size:12.8px"><span style="font-size:12.8px">+             * to achieve backward compatibility relax the check here a</span><br style="font-size:12.8px"><span style="font-size:12.8px">+             * little bit */</span><br style="font-size:12.8px"><span style="font-size:12.8px">+            int value = strToI(string, &tail, 0);</span><br style="font-size:12.8px"><span style="font-size:12.8px">+            if (value == 1)</span><br style="font-size:12.8px"><span style="font-size:12.8px">+                v->_bool = true;</span><br style="font-size:12.8px"><span style="font-size:12.8px">+            else if (value == 0)</span><br style="font-size:12.8px"><span style="font-size:12.8px">+                v->_bool = false;</span><br style="font-size:12.8px"><span style="font-size:12.8px">+            else</span><br style="font-size:12.8px"><span style="font-size:12.8px">+                return false; /* wrong value here */</span><br style="font-size:12.8px"><span style="font-size:12.8px">+            }</span><br style="font-size:12.8px"><span style="font-size:12.8px">+       }</span><br style="font-size:12.8px"><span style="font-size:12.8px">+</span><br style="font-size:12.8px"><span style="font-size:12.8px">         break;</span><br style="font-size:12.8px"><span style="font-size:12.8px">       case DRI_ENUM: /* enum is just a special integer */</span><br style="font-size:12.8px"><span style="font-size:12.8px">       case DRI_INT:</span><div class="gmail-yj6qo gmail-ajU" style="margin:2px 0px 0px;font-size:12.8px"></div><div><span style="font-size:12.8px"><br></span></div><div><br class="gmail-Apple-interchange-newline"><span style="color:rgb(136,136,136);font-size:12.8px">--</span><br style="color:rgb(136,136,136);font-size:12.8px"><span style="color:rgb(136,136,136);font-size:12.8px">2.7.4</span><span style="font-size:12.8px"><br></span></div></div>