Exemplo n.º 1
0
int corto_asprintf (char **str, const char *fmt, ...) {
    int size = 0;
    va_list args;

    va_start(args, fmt);

    size = corto_vasprintf(str, fmt, args);

    va_end(args);

    return size;
}
Exemplo n.º 2
0
void corto_seterrv(char *fmt, va_list args) {
    char *err = NULL;
    if (fmt) {
        corto_vasprintf(&err, fmt, args);
    }
    corto_setLasterror(err);

    if (fmt && (CORTO_DEBUG_ENABLED || CORTO_OPERATIONAL)) {
        if (CORTO_OPERATIONAL == 1) {
            corto_error("error raised while starting up: %s", err);
        } else if (CORTO_OPERATIONAL){
            corto_error("error raised while shutting down: %s", err);
        } else {
            corto_error("debug: %s", err);
        }
        corto_backtrace(stderr);
    }

    corto_dealloc(err);
}
Exemplo n.º 3
0
void cdiff_file_elemBegin(cdiff_file file, char *fmt, ...) {
    corto_assert(file != NULL, "NULL specified for file");

    if (!file->elements) {
        file->elements = corto_ll_new();
    }

    cdiff_elem *el = NULL;
    char *id = NULL;

    if (fmt) {
        va_list args;
        va_start(args, fmt);
        corto_vasprintf(&id, fmt, args);
        va_end(args);

        el = cdiff_file_elemFind(file->elements, id);
        if (!el && file->legacyElements) {
            el = cdiff_file_elemFind(file->legacyElements, id);
        }
    }

    if (!el) {
        el = malloc (sizeof(cdiff_elem));
        el->id = id;
        el->header = NULL;
        el->body = NULL;
        el->kind = id ? CDIFF_FUNCTION : CDIFF_TEXT;
        file->isChanged = true;

        if (!file->elements) {
            file->elements = corto_ll_new();
        }
        corto_ll_append(file->elements, el);
    } else {
        free(id);
    }

    file->cur = el;
    file->writeTo = 0;
}