示例#1
0
文件: main.c 项目: RazZziel/wine
void wineXmlCallbackLog(char const* caller, xmlErrorLevel lvl, char const* msg, va_list ap)
{
    static const int max_size = 200;
    enum __wine_debug_class dbcl;
    char buff[max_size];
    int len;

    switch (lvl)
    {
        case XML_ERR_NONE:
            dbcl = __WINE_DBCL_TRACE;
            break;
        case XML_ERR_WARNING:
            dbcl = __WINE_DBCL_WARN;
            break;
        default:
            dbcl = __WINE_DBCL_ERR;
            break;
    }

    len = vsnprintf(buff, max_size, msg, ap);
    if (len == -1 || len >= max_size) buff[max_size-1] = 0;

    wine_dbg_log(dbcl, &__wine_dbch_msxml, caller, "%s", buff);
}
示例#2
0
文件: main.c 项目: Sunmonds/wine
void wineXmlCallbackLog(char const* caller, xmlErrorLevel lvl, char const* msg, va_list ap)
{
    char* buf = NULL;
    int len = 32, needed;
    enum __wine_debug_class dbcl = __WINE_DBCL_ERR;
    switch (lvl)
    {
        case XML_ERR_NONE:
            dbcl = __WINE_DBCL_TRACE;
            break;
        case XML_ERR_WARNING:
            dbcl = __WINE_DBCL_WARN;
            break;
        default:
            break;
    }

    do
    {
        heap_free(buf);
        buf = heap_alloc(len);
        needed = vsnprintf(buf, len, msg, ap);
        if (needed == -1)
            len *= 2;
        else if (needed >= len)
            len = needed + 1;
        else
            needed = 0;
    }
    while (needed);

    wine_dbg_log(dbcl, &__wine_dbch_msxml, caller, "%s", buf);
    heap_free(buf);
}
示例#3
0
文件: main.c 项目: RazZziel/wine
void wineXmlCallbackError(char const* caller, xmlErrorPtr err)
{
    enum __wine_debug_class dbcl;

    switch (err->level)
    {
    case XML_ERR_NONE:    dbcl = __WINE_DBCL_TRACE; break;
    case XML_ERR_WARNING: dbcl = __WINE_DBCL_WARN; break;
    default:              dbcl = __WINE_DBCL_ERR; break;
    }

    wine_dbg_log(dbcl, &__wine_dbch_msxml, caller, "error code %d", err->code);
    if (err->message)
        wine_dbg_log(dbcl, &__wine_dbch_msxml, caller, ": %s", err->message);
    else
        wine_dbg_log(dbcl, &__wine_dbch_msxml, caller, "\n");
}