| 2711 | |
| 2712 | |
| 2713 | static void |
| 2714 | print_troff_ms_text(const printTableContent *cont, FILE *fout) |
| 2715 | { |
| 2716 | bool opt_tuples_only = cont->opt->tuples_only; |
| 2717 | unsigned short opt_border = cont->opt->border; |
| 2718 | unsigned int i; |
| 2719 | const char *const *ptr; |
| 2720 | |
| 2721 | if (cancel_pressed) |
| 2722 | return; |
| 2723 | |
| 2724 | if (opt_border > 2) |
| 2725 | opt_border = 2; |
| 2726 | |
| 2727 | if (cont->opt->start_table) |
| 2728 | { |
| 2729 | /* print title */ |
| 2730 | if (!opt_tuples_only && cont->title) |
| 2731 | { |
| 2732 | fputs(".LP\n.DS C\n", fout); |
| 2733 | troff_ms_escaped_print(cont->title, fout); |
| 2734 | fputs("\n.DE\n", fout); |
| 2735 | } |
| 2736 | |
| 2737 | /* begin environment and set alignments and borders */ |
| 2738 | fputs(".LP\n.TS\n", fout); |
| 2739 | if (opt_border == 2) |
| 2740 | fputs("center box;\n", fout); |
| 2741 | else |
| 2742 | fputs("center;\n", fout); |
| 2743 | |
| 2744 | for (i = 0; i < cont->ncolumns; i++) |
| 2745 | { |
| 2746 | fputc(*(cont->aligns + i), fout); |
| 2747 | if (opt_border > 0 && i < cont->ncolumns - 1) |
| 2748 | fputs(" | ", fout); |
| 2749 | } |
| 2750 | fputs(".\n", fout); |
| 2751 | |
| 2752 | /* print headers */ |
| 2753 | if (!opt_tuples_only) |
| 2754 | { |
| 2755 | for (i = 0, ptr = cont->headers; i < cont->ncolumns; i++, ptr++) |
| 2756 | { |
| 2757 | if (i != 0) |
| 2758 | fputc('\t', fout); |
| 2759 | fputs("\\fI", fout); |
| 2760 | troff_ms_escaped_print(*ptr, fout); |
| 2761 | fputs("\\fP", fout); |
| 2762 | } |
| 2763 | fputs("\n_\n", fout); |
| 2764 | } |
| 2765 | } |
| 2766 | |
| 2767 | /* print cells */ |
| 2768 | for (i = 0, ptr = cont->cells; *ptr; i++, ptr++) |
| 2769 | { |
| 2770 | troff_ms_escaped_print(*ptr, fout); |
no test coverage detected