Improve handling of XML errors for fix permissions
diff --git a/gui/rapidxml.hpp b/gui/rapidxml.hpp
index d98173e..c0a7be4 100644
--- a/gui/rapidxml.hpp
+++ b/gui/rapidxml.hpp
@@ -1745,8 +1745,10 @@
                 // Skip until end of declaration

                 while (text[0] != Ch('?') || text[1] != Ch('>'))

                 {

-                    if (!text[0])

+                    if (!text[0]) {

                         RAPIDXML_PARSE_ERROR("unexpected end of data", text);

+						return 0;

+					}

                     ++text;

                 }

                 text += 2;    // Skip '?>'

@@ -1780,8 +1782,10 @@
                 // Skip until end of comment

                 while (text[0] != Ch('-') || text[1] != Ch('-') || text[2] != Ch('>'))

                 {

-                    if (!text[0])

+                    if (!text[0]) {

                         RAPIDXML_PARSE_ERROR("unexpected end of data", text);

+						return 0;

+					}

                     ++text;

                 }

                 text += 3;     // Skip '-->'

@@ -1794,8 +1798,10 @@
             // Skip until end of comment

             while (text[0] != Ch('-') || text[1] != Ch('-') || text[2] != Ch('>'))

             {

-                if (!text[0])

+                if (!text[0]) {

                     RAPIDXML_PARSE_ERROR("unexpected end of data", text);

+					return 0;

+				}

                 ++text;

             }

 

@@ -1837,7 +1843,7 @@
                         {

                             case Ch('['): ++depth; break;

                             case Ch(']'): --depth; break;

-                            case 0: RAPIDXML_PARSE_ERROR("unexpected end of data", text);

+                            case 0: RAPIDXML_PARSE_ERROR("unexpected end of data", text); return 0;

                         }

                         ++text;

                     }

@@ -1847,6 +1853,7 @@
                 // Error on end of text

                 case Ch('\0'):

                     RAPIDXML_PARSE_ERROR("unexpected end of data", text);

+					return 0;

                 

                 // Other character, skip it

                 default:

@@ -1903,8 +1910,10 @@
                 // Skip to '?>'

                 while (text[0] != Ch('?') || text[1] != Ch('>'))

                 {

-                    if (*text == Ch('\0'))

+                    if (*text == Ch('\0')) {

                         RAPIDXML_PARSE_ERROR("unexpected end of data", text);

+						return 0;

+					}

                     ++text;

                 }

 

@@ -1926,8 +1935,10 @@
                 // Skip to '?>'

                 while (text[0] != Ch('?') || text[1] != Ch('>'))

                 {

-                    if (*text == Ch('\0'))

+                    if (*text == Ch('\0')) {

                         RAPIDXML_PARSE_ERROR("unexpected end of data", text);

+						return 0;

+					}

                     ++text;

                 }

                 text += 2;    // Skip '?>'

@@ -2005,8 +2016,10 @@
                 // Skip until end of cdata

                 while (text[0] != Ch(']') || text[1] != Ch(']') || text[2] != Ch('>'))

                 {

-                    if (!text[0])

+                    if (!text[0]) {

                         RAPIDXML_PARSE_ERROR("unexpected end of data", text);

+						return 0;

+					}

                     ++text;

                 }

                 text += 3;      // Skip ]]>

@@ -2017,8 +2030,10 @@
             Ch *value = text;

             while (text[0] != Ch(']') || text[1] != Ch(']') || text[2] != Ch('>'))

             {

-                if (!text[0])

+                if (!text[0]) {

                     RAPIDXML_PARSE_ERROR("unexpected end of data", text);

+					return 0;

+				}

                 ++text;

             }

 

@@ -2154,8 +2169,10 @@
                 ++text;     // Skip !

                 while (*text != Ch('>'))

                 {

-                    if (*text == 0)

+                    if (*text == 0) {

                         RAPIDXML_PARSE_ERROR("unexpected end of data", text);

+						return 0;

+					}

                     ++text;

                 }

                 ++text;     // Skip '>'

@@ -2224,6 +2241,7 @@
                 // End of data - error

                 case Ch('\0'):

                     RAPIDXML_PARSE_ERROR("unexpected end of data", text);

+					return;

 

                 // Data node

                 default: