cmark_parser *cmark_parser_new(int options) { cmark_parser *parser = (cmark_parser *)malloc(sizeof(cmark_parser)); cmark_node *document = make_document(); cmark_strbuf *line = (cmark_strbuf *)malloc(sizeof(cmark_strbuf)); cmark_strbuf *buf = (cmark_strbuf *)malloc(sizeof(cmark_strbuf)); cmark_strbuf_init(line, 256); cmark_strbuf_init(buf, 0); parser->refmap = cmark_reference_map_new(); parser->root = document; parser->current = document; parser->line_number = 0; parser->offset = 0; parser->column = 0; parser->first_nonspace = 0; parser->first_nonspace_column = 0; parser->indent = 0; parser->blank = false; parser->curline = line; parser->last_line_length = 0; parser->linebuf = buf; parser->options = options; return parser; }
modify_collection& modify_collection::index(bsoncxx::document::view_or_value index_spec, std::chrono::seconds seconds) { _index.emplace( make_document(kvp("keyPattern", bsoncxx::types::b_document{std::move(index_spec)}), kvp("expireAfterSeconds", bsoncxx::types::b_int64{seconds.count()}))); return *this; }
int iter_bson(const bson_t *bson, ERL_NIF_TERM *out, decode_state *ds) { vec_term_t vec; bson_iter_t iter; int ret = 0; vec_init(&vec); ds->vec = &vec; if(!bson_iter_init(&iter, bson)) { goto finish; } if(bson_iter_visit_all(&iter, &decode_visitors, ds) || iter.err_off) { goto finish; } if(!make_document(ds->env, ds->vec, out, ds->return_maps)) { goto finish; } ret = 1; finish: vec_deinit(&vec); ds->vec = NULL; return ret; }
cmark_doc_parser *cmark_new_doc_parser() { cmark_doc_parser *parser = (cmark_doc_parser*)malloc(sizeof(cmark_doc_parser)); cmark_node *document = make_document(); strbuf *line = (strbuf*)malloc(sizeof(strbuf)); cmark_strbuf_init(line, 256); parser->refmap = reference_map_new(); parser->root = document; parser->current = document; parser->line_number = 0; parser->curline = line; return parser; }
cmark_parser *cmark_parser_new() { cmark_parser *parser = (cmark_parser*)malloc(sizeof(cmark_parser)); cmark_node *document = make_document(); cmark_strbuf *line = (cmark_strbuf*)malloc(sizeof(cmark_strbuf)); cmark_strbuf *buf = (cmark_strbuf*)malloc(sizeof(cmark_strbuf)); cmark_strbuf_init(line, 256); cmark_strbuf_init(buf, 0); parser->refmap = cmark_reference_map_new(); parser->root = document; parser->current = document; parser->line_number = 0; parser->curline = line; parser->last_line_length = 0; parser->linebuf = buf; return parser; }
TEST_CASE("options::rewriter::rewrite_find_modifiers() with $comment", "[find][option]") { instance::current(); SECTION("$comment with k_utf8 type is translated") { auto find_opts = options::rewriter::rewrite_find_modifiers( options::find{}.modifiers_deprecated(make_document(kvp("$comment", "test")))); REQUIRE(!find_opts.modifiers_deprecated()); REQUIRE(find_opts.comment()); REQUIRE(*find_opts.comment() == stdx::string_view("test")); } SECTION("$comment with other types is rejected") { REQUIRE_THROWS_AS( options::rewriter::rewrite_find_modifiers( options::find{}.modifiers_deprecated(make_document(kvp("$comment", 1)))), logic_error); } } TEST_CASE("options::rewriter::rewrite_find_modifiers() with $explain", "[find][option]") { instance::current(); SECTION("$explain isn't supported") { REQUIRE_THROWS_AS( options::rewriter::rewrite_find_modifiers( options::find{}.modifiers_deprecated(make_document(kvp("$explain", true)))), logic_error); } }
int main(int argc, char *argv[]) { int i; bool ast = false; int g = 0; int numfps = 0; int files[argc]; for (i=1; i < argc; i++) { if (strcmp(argv[i], "--version") == 0) { printf("stmd %s", VERSION); printf(" - standard markdown converter (c) 2014 John MacFarlane\n"); exit(0); } else if ((strcmp(argv[i], "--help") == 0) || (strcmp(argv[i], "-h") == 0)) { print_usage(); exit(0); } else if (strcmp(argv[i], "--ast") == 0) { ast = true; } else if (*argv[i] == '-') { print_usage(); exit(1); } else { // treat as file argument files[g] = i; g++; } } numfps = g; bstring s = NULL; bstring html; g = 0; block * cur = make_document(); int linenum = 1; extern int errno; FILE * fp = NULL; if (numfps == 0) { // read from stdin while ((s = bgets((bNgetc) fgetc, stdin, '\n'))) { check(incorporate_line(s, linenum, &cur) == 0, "error incorporating line %d", linenum); bdestroy(s); linenum++; } } else { // iterate over input file pointers for (g=0; g < numfps; g++) { fp = fopen(argv[files[g]], "r"); if (fp == NULL) { fprintf(stderr, "Error opening file %s: %s\n", argv[files[g]], strerror(errno)); exit(1); } while ((s = bgets((bNgetc) fgetc, fp, '\n'))) { check(incorporate_line(s, linenum, &cur) == 0, "error incorporating line %d", linenum); bdestroy(s); linenum++; } fclose(fp); } } while (cur != cur->top) { finalize(cur, linenum); cur = cur->parent; } check(cur == cur->top, "problems finalizing open containers"); finalize(cur, linenum); process_inlines(cur, cur->attributes.refmap); if (ast) { print_blocks(cur, 0); } else { check(blocks_to_html(cur, &html, false) == 0, "could not format as HTML"); printf("%s", html->data); bdestroy(html); } free_blocks(cur); return 0; error: return -1; }