pass file name thru to Subst for better error messages.
authorespie <espie@openbsd.org>
Tue, 21 Jun 2016 10:40:37 +0000 (10:40 +0000)
committerespie <espie@openbsd.org>
Tue, 21 Jun 2016 10:40:37 +0000 (10:40 +0000)
reported by Adam Wolk

usr.sbin/pkg_add/OpenBSD/PkgCreate.pm
usr.sbin/pkg_add/OpenBSD/Subst.pm

index 47ce044..32e95eb 100644 (file)
@@ -1,6 +1,6 @@
 #! /usr/bin/perl
 # ex:ts=8 sw=4:
-# $OpenBSD: PkgCreate.pm,v 1.120 2016/04/25 10:12:58 espie Exp $
+# $OpenBSD: PkgCreate.pm,v 1.121 2016/06/21 10:40:37 espie Exp $
 #
 # Copyright (c) 2003-2014 Marc Espie <espie@openbsd.org>
 #
@@ -1027,9 +1027,9 @@ our @ISA = qw(OpenBSD::AddCreateDelete);
 
 sub handle_fragment
 {
-       my ($self, $state, $old, $not, $frag, undef, $cont) = @_;
+       my ($self, $state, $old, $not, $frag, undef, $cont, $msg) = @_;
        my $def = $frag;
-       if ($state->{subst}->has_fragment($def, $frag)) {
+       if ($state->{subst}->has_fragment($def, $frag, $msg)) {
                return undef if defined $not;
        } else {
                return undef unless defined $not;
@@ -1067,7 +1067,7 @@ sub read_fragments
                                        $l = '@comment $'.'OpenBSD: '.basename($file->name).',v$';
                                }
                                if ($l =~ m/^(\!)?\%\%(.*)\%\%$/) {
-                                       if (my $f2 = $self->handle_fragment($state, $file, $1, $2, $l, $cont)) {
+                                       if (my $f2 = $self->handle_fragment($state, $file, $1, $2, $l, $cont, $filename)) {
                                                push(@$stack, $file);
                                                $file = $f2;
                                        }
@@ -1235,8 +1235,8 @@ sub create_plist
                $state->set_status("reading plist");
        }
        $self->read_all_fragments($state, $plist);
-
        $plist->set_pkgname($pkgname);
+
        $self->add_elements($plist, $state);
        return $plist;
 }
index 5a94cee..322f96c 100644 (file)
@@ -1,5 +1,5 @@
 # ex:ts=8 sw=4:
-# $OpenBSD: Subst.pm,v 1.16 2014/03/18 18:53:29 espie Exp $
+# $OpenBSD: Subst.pm,v 1.17 2016/06/21 10:40:37 espie Exp $
 #
 # Copyright (c) 2008 Marc Espie <espie@openbsd.org>
 #
@@ -101,18 +101,18 @@ sub copy
 
 sub has_fragment
 {
-       my ($self, $def, $frag) = @_;
+       my ($self, $def, $frag, $msg) = @_;
 
        my $v = $self->value($def);
 
        if (!defined $v) {
-               die "Error: unknown fragment $frag";
+               die "Error: unknown fragment $frag in $msg";
        } elsif ($v == 1) {
                return 1;
        } elsif ($v == 0) {
                return 0;
        } else {
-               die "Incorrect define for $frag";
+               die "Incorrect define for $frag in $msg";
        }
 }