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