From 8b38576c98e0d6c0f82916fff9691743d1c0d3b0 Mon Sep 17 00:00:00 2001
From: Martin Mares <mj@ucw.cz>
Date: Fri, 15 Jun 2012 16:13:55 +0200
Subject: [PATCH] PPD: Better handling of defaults

---
 ppd/PPD.pm       |  1 +
 ppd/PPD/Paper.pm | 16 ++++++++--------
 2 files changed, 9 insertions(+), 8 deletions(-)

diff --git a/ppd/PPD.pm b/ppd/PPD.pm
index f48aba1..09471c3 100644
--- a/ppd/PPD.pm
+++ b/ppd/PPD.pm
@@ -243,6 +243,7 @@ sub heading($) {
 
 sub get_default($) {
 	my ($o) = @_;
+	$o->{Default} and return $o->{Default};
 	for my $val (@{$o->{Values}}) {
 		return $val->{Key} if $val->{Default};
 	}
diff --git a/ppd/PPD/Paper.pm b/ppd/PPD/Paper.pm
index 29e11a2..921fe07 100644
--- a/ppd/PPD/Paper.pm
+++ b/ppd/PPD/Paper.pm
@@ -82,9 +82,9 @@ sub add_papers($) {
 				Key => $k,
 				Name => ($m->{Name} // $k),
 				PS => &{$o->{PSPageSize}}($m),
-				Default => ($k eq $o->{'DefPaper'}),
 			}
-		} sort keys %real_media ]
+		} sort keys %real_media ],
+		Default => $o->{DefPaper},
 	});
 
 	option({
@@ -99,9 +99,9 @@ sub add_papers($) {
 				Key => $k,
 				Name => ($m->{Name} // $k),
 				PS => &{$o->{PSPageRegion} // $o->{PSPageSize}}($m),
-				Default => ($k eq $o->{'DefPaper'}),
 			}
-		} sort keys %real_media ]
+		} sort keys %real_media ],
+		Default => $o->{DefPaper},
 	});
 
 	option({
@@ -113,9 +113,9 @@ sub add_papers($) {
 				Key => $k,
 				Name => ($m->{Name} // $k),
 				PS => sprintf("%d %d %d %d", $margh, $margv, $m->{W} - $margh, $m->{H} - $margv),
-				Default => ($k eq $o->{'DefPaper'}),
 			}
-		} sort keys %real_media ]
+		} sort keys %real_media ],
+		Default => $o->{DefPaper},
 	});
 
 	option({
@@ -127,9 +127,9 @@ sub add_papers($) {
 				Key => $k,
 				Name => ($m->{Name} // $k),
 				PS => sprintf("%d %d", $m->{W}, $m->{H}),
-				Default => ($k eq $o->{'DefPaper'}),
 			}
-		} sort keys %real_media ]
+		} sort keys %real_media ],
+		Default => $o->{DefPaper},
 	});
 }
 
-- 
GitLab