X-Git-Url: https://pintos-os.org/cgi-bin/gitweb.cgi?a=blobdiff_plain;f=src%2Foutput%2Fspv%2Fspv.c;h=7a3dae4d3d4a733834bf534534a1483b9ae9772e;hb=95cde62bdf5210c1c60dad5598a888b864f93161;hp=2085d183e64124244dd3993fe9892661c52b586f;hpb=6585d706a5001487ca97b54d46ed95a63a0145d4;p=pspp diff --git a/src/output/spv/spv.c b/src/output/spv/spv.c index 2085d183e6..7a3dae4d3d 100644 --- a/src/output/spv/spv.c +++ b/src/output/spv/spv.c @@ -282,17 +282,18 @@ decode_container_text (const struct spvsx_container_text *ct) { struct font_style *font_style = xmalloc (sizeof *font_style); char *text = decode_embedded_html (ct->html->node_.raw, font_style); + struct pivot_value *value = xmalloc (sizeof *value); *value = (struct pivot_value) { - .font_style = font_style, - .type = PIVOT_VALUE_TEXT, .text = { + .type = PIVOT_VALUE_TEXT, .local = text, .c = text, .id = text, .user_provided = true, }, }; + pivot_value_ex_rw (value)->font_style = font_style; struct output_item *item = text_item_create_value (TEXT_ITEM_LOG, value, NULL); @@ -320,6 +321,9 @@ decode_page_paragraph (const struct spvsx_page_paragraph *page_paragraph, { memset (ph, 0, sizeof *ph); + if (!page_paragraph) + return; + const struct spvsx_page_paragraph_text *page_paragraph_text = page_paragraph->page_paragraph_text; if (!page_paragraph_text) @@ -673,6 +677,10 @@ spv_decode_children (struct zip_reader *zip, const char *structure_member, { const struct spvsx_container *container = spvsx_cast_container (node); + + if (container->page_break_before_present) + group_item_add_child (parent, page_break_item_create ()); + child = spv_decode_container (zip, container); } else if (spvsx_is_heading (node)) @@ -834,7 +842,6 @@ spv_read (const char *filename, struct output_item **outp, if (psp) *psp = NULL; - struct spv_reader *spv = xzalloc (sizeof *spv); struct zip_reader *zip; char *error = zip_reader_create (filename, &zip); if (error) @@ -878,15 +885,13 @@ spv_decode_fmt_spec (uint32_t u32, struct fmt_spec *out) uint8_t w = u32 >> 8; uint8_t d = u32; - msg_disable (); *out = (struct fmt_spec) { .type = FMT_F, .w = w, .d = d }; bool ok = raw_type >= 40 || fmt_from_io (raw_type, &out->type); if (ok) { fmt_fix_output (out); - ok = fmt_check_width_compat (out, 0); + ok = fmt_check_width_compat (*out, 0); } - msg_enable (); if (!ok) {