Esempio n. 1
0
ZIP_EXTERN struct zip_source *
zip_source_function(struct zip *za, zip_source_callback zcb, void *ud)
{
    struct zip_source *zs;

    if (za == NULL)
	return NULL;

    if ((zs=_zip_source_new(za)) == NULL)
	return NULL;

    zs->cb.f = zcb;
    zs->ud = ud;
    
    return zs;
}
Esempio n. 2
0
zip_source_layered(struct zip *za, struct zip_source *src,
		   zip_source_layered_callback cb, void *ud)
{
    struct zip_source *zs;

    if (za == NULL)
	return NULL;

    if ((zs=_zip_source_new(za)) == NULL)
	return NULL;

    zs->src = src;
    zs->cb.l = cb;
    zs->ud = ud;
    
    return zs;
}
Esempio n. 3
0
ZIP_EXTERN zip_source_t *
zip_source_function_create(zip_source_callback zcb, void *ud, zip_error_t *error)
{
    zip_source_t *zs;

    if ((zs=_zip_source_new(error)) == NULL)
	return NULL;

    zs->cb.f = zcb;
    zs->ud = ud;

    zs->supports = zcb(ud, NULL, 0, ZIP_SOURCE_SUPPORTS);
    if (zs->supports < 0) {
        zs->supports = ZIP_SOURCE_SUPPORTS_READABLE;
    }

    return zs;
}