/* {{{ proto bool MarkdownDoc::writeFragment(string $markdown_fragment, mixed $out_stream [, int $flags = 0 ]) */ PHP_METHOD(markdowndoc, writeFragment) { char *markdown; int markdown_len; long flags = 0; zval *zstream; php_stream *stream; int close; FILE *f; int status; if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "sz|l", &markdown, &markdown_len, &zstream, &flags) == FAILURE) { RETURN_FALSE; } if (markdowndoc_get_file(zstream, 1, &stream, &close, &f TSRMLS_CC) == FAILURE) { RETURN_FALSE; } status = mkd_generateline(markdown, markdown_len, f, (mkd_flag_t) flags); markdown_sync_stream_and_file(stream, close, f TSRMLS_CC); if (markdown_handle_io_error(status, "mkd_generateline" TSRMLS_CC) == FAILURE) { RETURN_FALSE; } RETURN_TRUE; }
/* {{{ proto bool MarkdownDocument::writeXhtmlPage(mixed $out_stream) */ PHP_METHOD(markdowndoc, writeXhtmlPage) { discount_object *dobj; zval *zstream; php_stream *stream; int close; FILE *f; int status; if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "z", &zstream) == FAILURE) { RETURN_FALSE; } if ((dobj = markdowndoc_get_object(getThis(), 1 TSRMLS_CC)) == NULL) { RETURN_FALSE; } if (markdowndoc_get_file(zstream, 1, &stream, &close, &f TSRMLS_CC) == FAILURE) { RETURN_FALSE; } status = mkd_xhtmlpage(dobj->markdoc, f); markdown_sync_stream_and_file(stream, close, f TSRMLS_CC); if (markdown_handle_io_error(status, "mkd_xhtmlpage" TSRMLS_CC) == FAILURE) { RETURN_FALSE; } RETURN_TRUE; }
/* {{{ proto bool MarkdownDocument::writeToc(mixed $out_stream) */ PHP_METHOD(markdowndoc, writeToc) { discount_object *dobj; zval *zstream; php_stream *stream; int close; FILE *f; int status; if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "z", &zstream) == FAILURE) { RETURN_FALSE; } /* no compilation required */ if ((dobj = markdowndoc_get_object(getThis(), 1 TSRMLS_CC)) == NULL) { RETURN_FALSE; } if (markdowndoc_get_file(zstream, 1, &stream, &close, &f TSRMLS_CC) == FAILURE) { RETURN_FALSE; } status = mkd_generatetoc(dobj->markdoc, f); markdown_sync_stream_and_file(stream, close, f TSRMLS_CC); if (markdown_handle_io_error(status, "mkd_generatetoc" TSRMLS_CC) == FAILURE) { RETURN_FALSE; } RETURN_BOOL(status == 1); /* 1 for no data; 0 for no MKD_TOC */ }