fix some gcc 4.9 valid warnings
[scilab.git] / scilab / modules / core / src / c / GetXmlFileEncoding.c
1 /*
2  * Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
3  * Copyright (C) 2007 - INRIA - Allan CORNET
4  *
5  * This file must be used under the terms of the CeCILL.
6  * This source file is licensed as described in the file COPYING, which
7  * you should have received as part of this distribution.  The terms
8  * are also available at
9  * http://www.cecill.info/licences/Licence_CeCILL_V2.1-en.txt
10  *
11  */
12 #include <string.h>
13 #include "GetXmlFileEncoding.h"
14 #include "libxml/xmlreader.h"
15 #include "sci_malloc.h"
16 #include "os_string.h"
17 #include "BOOL.h"
18 #include "getshortpathname.h"
19 /*--------------------------------------------------------------------------*/
20 char *GetXmlFileEncoding(const char *filename)
21 {
22 #define DEFAULT_ENCODING "UTF-8"
23     char *encoding = NULL;
24     xmlDocPtr doc = NULL;
25     BOOL bConvert = FALSE;
26     char *shortfilename = getshortpathname(filename, &bConvert);
27
28     /* default */
29     encoding = os_strdup(DEFAULT_ENCODING);
30
31     if (shortfilename)
32     {
33         doc = xmlParseFile (filename);
34         FREE(shortfilename);
35         shortfilename = NULL;
36         if (doc)
37         {
38             if (doc->encoding)
39             {
40                 if (encoding)
41                 {
42                     FREE(encoding);
43                     encoding = NULL;
44                 }
45                 encoding = os_strdup(doc->encoding);
46             }
47         }
48         xmlFreeDoc (doc);
49     }
50     return encoding;
51 }
52 /*--------------------------------------------------------------------------*/