Index: makeinfo/cmds.c =================================================================== RCS file: /cvsroot/texinfo/texinfo/makeinfo/cmds.c,v retrieving revision 1.33 diff -u -p -r1.33 cmds.c --- makeinfo/cmds.c 15 Feb 2004 15:17:35 -0000 1.33 +++ makeinfo/cmds.c 16 Feb 2004 14:52:37 -0000 @@ -1409,57 +1409,60 @@ cm_center (void) } else { - int i, start, length; - unsigned char *line; - int save_indented_fill = indented_fill; - int save_filling_enabled = filling_enabled; - int fudge_factor = 1; - - filling_enabled = indented_fill = 0; - cm_noindent (); - start = output_paragraph_offset; - - if (html) - add_html_block_elt ("
"); - - inhibit_output_flushing (); - get_rest_of_line (0, (char **)&line); - execute_string ("%s", (char *)line); - free (line); - uninhibit_output_flushing (); - if (html) - add_html_block_elt ("
"); - - else - { - i = output_paragraph_offset - 1; - while (i > (start - 1) && output_paragraph[i] == '\n') - i--; - - output_paragraph_offset = ++i; - length = output_paragraph_offset - start; - - if (length < (fill_column - fudge_factor)) - { - line = xmalloc (1 + length); - memcpy (line, (char *)(output_paragraph + start), length); - - i = (fill_column - fudge_factor - length) / 2; - output_paragraph_offset = start; - - while (i--) - insert (' '); - - for (i = 0; i < length; i++) - insert (line[i]); - - free (line); - } - } - - insert ('\n'); - filling_enabled = save_filling_enabled; - indented_fill = save_indented_fill; + int i, start, length; + unsigned char *line; + int save_indented_fill = indented_fill; + int save_filling_enabled = filling_enabled; + int fudge_factor = 1; + + filling_enabled = indented_fill = 0; + cm_noindent (); + start = output_paragraph_offset; + + if (html) + add_html_block_elt ("
"); + + inhibit_output_flushing (); + get_rest_of_line (0, (char **)&line); + execute_string ("%s", (char *)line); + free (line); + uninhibit_output_flushing (); + if (html) + add_html_block_elt ("
"); + + else + { + i = output_paragraph_offset - 1; + while (i > (start - 1) && output_paragraph[i] == '\n') + i--; + + output_paragraph_offset = ++i; + length = output_paragraph_offset - start; + + if (length < (fill_column - fudge_factor)) + { + line = xmalloc (1 + length); + memcpy (line, (char *)(output_paragraph + start), length); + + i = (fill_column - fudge_factor - length) / 2; + output_paragraph_offset = start; + + while (i--) + insert (' '); + + for (i = 0; i < length; i++) + insert (line[i]); + + free (line); + } + } + + insert ('\n'); + filling_enabled = save_filling_enabled; + indented_fill = save_indented_fill; + close_single_paragraph (); + if (looking_at("\n")) + insert ('\n'); } }