/* {{{ proto bool MarkdownDocument::setUrlCallback(callback $url_callback) */
PHP_METHOD(markdowndoc, setUrlCallback)
{
	zend_fcall_info			fci;
	zend_fcall_info_cache	fcc;
	discount_object			*dobj;

	if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "f!", &fci, &fcc) == FAILURE) {
		RETURN_FALSE;
	}
	if ((dobj = markdowndoc_get_object(getThis(), 0 TSRMLS_CC)) == NULL) {
		RETURN_FALSE;
	}

	if (fci.size > 0) { /* non-NULL passed */
		markdowndoc_store_callback(&fci, &fcc, &dobj->url_fci, &dobj->url_fcc);
		mkd_e_url(dobj->markdoc, proxy_url_callback);
		mkd_e_free(dobj->markdoc, free_proxy_return);
		mkd_e_data(dobj->markdoc, dobj);
	} else { /* NULL */
		markdowndoc_free_callback(&dobj->url_fci, &dobj->url_fcc);
		mkd_e_url(dobj->markdoc, NULL);
	}
	
	RETURN_TRUE;
}
Esempio n. 2
0
void
mkd_basename(MMIOT *document, char *base)
{
    mkd_e_url(document, e_basename);
    mkd_e_data(document, base);
    mkd_e_free(document, e_free);
}