From 35ecf968425762c72076059464dfb6c8b21a9331 Mon Sep 17 00:00:00 2001 From: Jon Turney Date: Wed, 31 Aug 2016 11:31:22 +0100 Subject: [PATCH setup] Allow setup to parse more than 3 versions from the setup.ini file This recognizes any "[foo]" line as introducing the information for another version, which doesn't have one of the trust levels [curr], [prev] or [test], and so isn't automatically selected when setup is told to install all packages at that trust level (by default, [curr]). Setup already does all the necessary sorting in version order etc. to use these additional versions. The value of carries no meaning, but the setup.ini specification mandates the use of "[ver]". * PackageTrust.h (trusts): Add TRUST_OTHER. * inilex.ll: tokenize any other [version] as the T_OTHER token. * iniparse.yy: Add T_OTHER token and set package trust to TRUST_OTHER when it is used. --- PackageTrust.h | 2 +- inilex.ll | 1 + iniparse.yy | 3 ++- 3 files changed, 4 insertions(+), 2 deletions(-) diff --git a/PackageTrust.h b/PackageTrust.h index 3e6801d..4904705 100644 --- a/PackageTrust.h +++ b/PackageTrust.h @@ -20,10 +20,10 @@ typedef enum { TRUST_UNKNOWN, + TRUST_OTHER, TRUST_PREV, TRUST_CURR, TRUST_TEST, - NTRUST } trusts; diff --git a/inilex.ll b/inilex.ll index 49bbfa6..7daca34 100644 --- a/inilex.ll +++ b/inilex.ll @@ -159,6 +159,7 @@ B64 [a-zA-Z0-9_-] "[test]" return T_TEST; "[exp]" return T_TEST; "[prev]" return T_PREV; +"["{STR}"]" return T_OTHER; "(" return OPENBRACE; ")" return CLOSEBRACE; diff --git a/iniparse.yy b/iniparse.yy index 7645171..8ae1e2d 100644 --- a/iniparse.yy +++ b/iniparse.yy @@ -41,7 +41,7 @@ void add_correct_version(); %token SETUP_TIMESTAMP SETUP_VERSION PACKAGEVERSION INSTALL SOURCE SDESC LDESC %token CATEGORY DEPENDS REQUIRES %token APATH PPATH INCLUDE_SETUP EXCLUDE_PACKAGE DOWNLOAD_URL -%token T_PREV T_CURR T_TEST +%token T_PREV T_CURR T_TEST T_OTHER %token INSTALLEDSIZE MAINTAINER PRIORITY %token MD5 MD5LINE SHA512 SHA512LINE %token DESCTAG DESCRIPTION FILESIZE ARCHITECTURE SOURCEPACKAGE @@ -99,6 +99,7 @@ singleitem /* non-empty */ | T_PREV NL { iniBuilder->buildPackageTrust (TRUST_PREV); } | T_CURR NL { iniBuilder->buildPackageTrust (TRUST_CURR); } | T_TEST NL { iniBuilder->buildPackageTrust (TRUST_TEST); } + | T_OTHER NL { iniBuilder->buildPackageTrust (TRUST_OTHER); } | PRIORITY STRING NL { iniBuilder->buildPriority ($2); } | INSTALLEDSIZE STRING NL { iniBuilder->buildInstalledSize ($2); } | MAINTAINER STRING NL { iniBuilder->buildMaintainer ($2); } -- 2.8.3