Skip to content

end to end test with conan support #196

@luoliwoshang

Description

@luoliwoshang

libxml2 difference

In the Linux (apt) version, in addition to the pointer declaration difference, there's an extra definition of the _uconv_t structure and its type alias:
apt install libxml2-dev libxml/encoding.h

    /*
    * Block defining the handlers for non UTF-8 encodings.
    * If iconv is supported, there are two extra fields.
    */
    #ifdef LIBXML_ICU_ENABLED
    /* Size of pivot buffer, same as icu/source/common/ucnv.cpp CHUNK_SIZE */
    #define ICU_PIVOT_BUF_SIZE 1024
    struct _uconv_t {
    UConverter *uconv; /* for conversion between an encoding and UTF-16 */
    UConverter *utf8; /* for conversion between UTF-8 and UTF-16 */
    UChar      pivot_buf[ICU_PIVOT_BUF_SIZE];
    UChar      *pivot_source;
    UChar      *pivot_target;
    };
    typedef struct _uconv_t uconv_t;
    #endif

typedef struct _xmlCharEncodingHandler xmlCharEncodingHandler;
typedef xmlCharEncodingHandler *xmlCharEncodingHandlerPtr;
struct _xmlCharEncodingHandler {
    char                       *name;
    xmlCharEncodingInputFunc   input;
    xmlCharEncodingOutputFunc  output;
#ifdef LIBXML_ICONV_ENABLED
    iconv_t                    iconv_in;
    iconv_t                    iconv_out;
#endif /* LIBXML_ICONV_ENABLED */
#ifdef LIBXML_ICU_ENABLED
    uconv_t                    *uconv_in;
    uconv_t                    *uconv_out;
#endif /* LIBXML_ICU_ENABLED */
};

In contrast, the macOS (brew) version only retains a forward declaration of the structure, without the complete structure definition and type alias.

/*
 * Block defining the handlers for non UTF-8 encodings.
 * If iconv is supported, there are two extra fields.
 */
typedef struct _xmlCharEncodingHandler xmlCharEncodingHandler;
typedef xmlCharEncodingHandler *xmlCharEncodingHandlerPtr;
struct _xmlCharEncodingHandler {
    char *name;
    xmlCharEncodingInputFunc input;
    xmlCharEncodingOutputFunc output;
#ifdef LIBXML_ICONV_ENABLED
    iconv_t iconv_in;
    iconv_t iconv_out;
#endif /* LIBXML_ICONV_ENABLED */
#ifdef LIBXML_ICU_ENABLED
    struct _uconv_t *uconv_in;
    struct _uconv_t *uconv_out;
#endif /* LIBXML_ICU_ENABLED */
};

Metadata

Metadata

Assignees

Labels

enhancementNew feature or request

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions