From 893cc092316f82c48f7de06910bfacd5b07943bf Mon Sep 17 00:00:00 2001 From: espie Date: Mon, 10 Jul 2006 15:19:52 +0000 Subject: [PATCH] CONFIGURE_ARGS holds values that look like --with-cxxflags="-O2 -pipe" deal with split/quotes correctly. --- infrastructure/package/mksqlitedb | 28 +++++++++++++++++++++++++--- 1 file changed, 25 insertions(+), 3 deletions(-) diff --git a/infrastructure/package/mksqlitedb b/infrastructure/package/mksqlitedb index 362cfbf9f18..30bcd7f0269 100644 --- a/infrastructure/package/mksqlitedb +++ b/infrastructure/package/mksqlitedb @@ -1,5 +1,5 @@ #! /usr/bin/perl -# $OpenBSD: mksqlitedb,v 1.10 2006/07/10 14:34:01 espie Exp $ +# $OpenBSD: mksqlitedb,v 1.11 2006/07/10 15:19:52 espie Exp $ # # Copyright (c) 2006 Marc Espie # @@ -127,6 +127,28 @@ sub add } } +package QuotedListVar; +our @ISA=(qw(SecondaryVar)); + +sub add +{ + my ($class, $pkgpath, $db, $var, $value, $rowid) = @_; + AnyVar->add($pkgpath, $db, $var, $value, $rowid); + my @l = (split /\s+/, $value); + while (my $v = shift @l) { + while ($v =~ m/^[^']*\'[^']*$/ || $v =~m/^[^"]*\"[^"]*$/) { + $v.=' '.shift @l; + } + if ($v =~ m/^\"(.*)\"$/) { + $v = $1; + } + if ($v =~ m/^\'(.*)\'$/) { + $v = $1; + } + $class->addvalue($pkgpath, $db, $v) if $v ne ''; + } +} + package DefinedListVar; our @ISA=(qw(ListVar)); sub add @@ -157,7 +179,7 @@ our @ISA=(qw(DefinedListVar)); sub table() { 'Configure' } package ConfigureArgsVar; -our @ISA=(qw(ListVar)); +our @ISA=(qw(QuotedListVar)); sub table() { 'ConfigureArgs' } package WantlibVar; @@ -304,7 +326,7 @@ while () { my ($key, $var, $value) = ($1, $2, $3); # strip extra quotes - if ($value =~ m/^\"(.*)\"/) { + if ($value =~ m/^\"(.*)\"$/) { $value = $1; }