diff -uprN paps-0.6.8_raw/src/paps.c paps-0.6.8/src/paps.c --- paps-0.6.8_raw/src/paps.c 2020-01-15 10:16:26.292439298 +0000 +++ paps-0.6.8/src/paps.c 2020-01-15 10:21:23.197677551 +0000 @@ -46,7 +46,8 @@ typedef enum { PAPER_TYPE_A4 = 0, PAPER_TYPE_US_LETTER = 1, - PAPER_TYPE_US_LEGAL = 2 + PAPER_TYPE_US_LEGAL = 2, + PAPER_TYPE_A3 = 3 } paper_type_t ; typedef struct { @@ -57,7 +58,8 @@ typedef struct { const paper_size_t paper_sizes[] = { { 595.28, 841.89}, /* A4 */ { 612, 792}, /* US letter */ - { 612, 1008} /* US legal */ + { 612, 1008}, /* US legal */ + { 842, 1190} /* A3 */ }; typedef struct { @@ -191,6 +193,8 @@ _paps_arg_paper_cb(const char *option_na paper_type = PAPER_TYPE_US_LETTER; else if (g_ascii_strcasecmp(value, "a4") == 0) paper_type = PAPER_TYPE_A4; + else if (g_ascii_strcasecmp(value, "a3") == 0) + paper_type = PAPER_TYPE_A3; else { retval = FALSE; fprintf(stderr, "Unknown page size name: %s.\n", value); @@ -301,7 +305,7 @@ int main(int argc, char *argv[]) {"rtl", 0, 0, G_OPTION_ARG_NONE, &do_rtl, "Do rtl layout.", NULL}, {"paper", 0, 0, G_OPTION_ARG_CALLBACK, _paps_arg_paper_cb, "Choose paper size. Known paper sizes are legal,\n" - " letter, a4. (Default: a4)", "PAPER"}, + " letter, a3, a4. (Default: a4)", "PAPER"}, {"bottom-margin", 0, 0, G_OPTION_ARG_INT, &bottom_margin, "Set bottom margin in postscript point units (1/72inch). (Default: 36)", "NUM"}, {"top-margin", 0, 0, G_OPTION_ARG_INT, &top_margin, "Set top margin. (Default: 36)", "NUM"}, {"right-margin", 0, 0, G_OPTION_ARG_INT, &right_margin, "Set right margin. (Default: 36)", "NUM"},