2b6473
--- paps-0.6.8/src/paps.c.orig	2015-02-26 14:17:29.351338514 +0530
2b6473
+++ paps-0.6.8/src/paps.c	2015-02-26 14:17:29.351338514 +0530
2b6473
@@ -45,7 +45,8 @@
2b6473
 typedef enum {
2b6473
     PAPER_TYPE_A4 = 0,
2b6473
     PAPER_TYPE_US_LETTER = 1,
2b6473
-    PAPER_TYPE_US_LEGAL = 2
2b6473
+    PAPER_TYPE_US_LEGAL = 2,
2b6473
+    PAPER_TYPE_A3 = 3
2b6473
 } paper_type_t ;
2b6473
 
2b6473
 typedef struct  {
2b6473
@@ -56,7 +57,8 @@
2b6473
 const paper_size_t paper_sizes[] = {
2b6473
     { 595.28, 841.89}, /* A4 */
2b6473
     { 612, 792},       /* US letter */
2b6473
-    { 612, 1008}      /* US legal */
2b6473
+    { 612, 1008},      /* US legal */
2b6473
+    { 842, 1190} /* A3 */
2b6473
 };
2b6473
 
2b6473
 typedef struct {
2b6473
@@ -190,6 +192,8 @@
2b6473
         paper_type = PAPER_TYPE_US_LETTER;
2b6473
       else if (g_ascii_strcasecmp(value, "a4") == 0)
2b6473
         paper_type = PAPER_TYPE_A4;
2b6473
+      else if (g_ascii_strcasecmp(value, "a3") == 0)
2b6473
+        paper_type = PAPER_TYPE_A3;
2b6473
       else {
2b6473
         retval = FALSE;
2b6473
         fprintf(stderr, "Unknown page size name: %s.\n", value);
2b6473
@@ -300,7 +304,7 @@
2b6473
     {"rtl", 0, 0, G_OPTION_ARG_NONE, &do_rtl, "Do rtl layout.", NULL},
2b6473
     {"paper", 0, 0, G_OPTION_ARG_CALLBACK, _paps_arg_paper_cb,
2b6473
      "Choose paper size. Known paper sizes are legal,\n"
2b6473
-     "                          letter, a4. (Default: a4)", "PAPER"},
2b6473
+     "                          letter, a3, a4. (Default: a4)", "PAPER"},
2b6473
     {"bottom-margin", 0, 0, G_OPTION_ARG_INT, &bottom_margin, "Set bottom margin in postscript point units (1/72inch). (Default: 36)", "NUM"},
2b6473
     {"top-margin", 0, 0, G_OPTION_ARG_INT, &top_margin, "Set top margin. (Default: 36)", "NUM"},
2b6473
     {"right-margin", 0, 0, G_OPTION_ARG_INT, &right_margin, "Set right margin. (Default: 36)", "NUM"},