-+ if (! strncmp("%ifarch", s, sizeof("%ifarch")-1)) {
-+ const char *arch = rpmExpand("%{_target_cpu}", NULL);
-+ s += 7;
-+ match = matchTok(arch, s);
-+ free((void *)arch);
-+ } else if (! strncmp("%ifnarch", s, sizeof("%ifnarch")-1)) {
-+ const char *arch = rpmExpand("%{_target_cpu}", NULL);
-+ s += 8;
-+ match = !matchTok(arch, s);
-+ free((void *)arch);
-+ } else if (! strncmp("%ifos", s, sizeof("%ifos")-1)) {
-+ const char *os = rpmExpand("%{_target_os}", NULL);
-+ s += 5;
-+ match = matchTok(os, s);
-+ free((void *)os);
-+ } else if (! strncmp("%ifnos", s, sizeof("%ifnos")-1)) {
-+ const char *os = rpmExpand("%{_target_os}", NULL);
-+ s += 6;
-+ match = !matchTok(os, s);
-+ free((void *)os);
-+ } else if (! strncmp("%if", s, sizeof("%if")-1)) {
-+ s += 3;
-+ match = parseExpressionBoolean(spec, s);
-+ if (match < 0) {
-+ rpmError(RPMERR_UNMATCHEDIF,
-+ _("%s:%d: parseExpressionBoolean returns %d\n"),
-+ ofi->fileName, ofi->lineNum, match);
-+ return RPMERR_BADSPEC;
-+ }
-+ } else if (! strncmp("%else", s, sizeof("%else")-1)) {
-+ s += 5;
-+ if (! spec->readStack->next) {
-+ /* Got an else with no %if ! */
-+ rpmError(RPMERR_UNMATCHEDIF,
-+ _("%s:%d: Got a %%else with no %%if\n"),
-+ ofi->fileName, ofi->lineNum);
-+ return RPMERR_UNMATCHEDIF;
-+ }
-+ spec->readStack->reading =
-+ spec->readStack->next->reading && ! spec->readStack->reading;
-+ spec->line[0] = '\0';
-+ } else if (! strncmp("%endif", s, sizeof("%endif")-1)) {
-+ s += 6;
-+ if (! spec->readStack->next) {
-+ /* Got an end with no %if ! */
-+ rpmError(RPMERR_UNMATCHEDIF,
-+ _("%s:%d: Got a %%endif with no %%if\n"),
-+ ofi->fileName, ofi->lineNum);
-+ return RPMERR_UNMATCHEDIF;
-+ }
-+ rl = spec->readStack;
-+ spec->readStack = spec->readStack->next;
-+ free(rl);
-+ spec->line[0] = '\0';
-+ } else if (! strncmp("%include", s, sizeof("%include")-1)) {
-+ char *fileName, *endFileName, *p;
-+
-+ s += 8;
-+ fileName = s;
-+ if (! isspace(*fileName)) {
-+ rpmError(RPMERR_BADSPEC, _("malformed %%include statement\n"));
-+ return RPMERR_BADSPEC;
-+ }
-+ SKIPSPACE(fileName);
-+ endFileName = fileName;
-+ SKIPNONSPACE(endFileName);
-+ p = endFileName;
-+ SKIPSPACE(p);
-+ if (*p != '\0') {
-+ rpmError(RPMERR_BADSPEC, _("malformed %%include statement\n"));
-+ return RPMERR_BADSPEC;
-+ }
-+ *endFileName = '\0';
-
-- forceIncludeFile(spec, fileName);
-+ forceIncludeFile(spec, fileName);
-
-- ofi = spec->fileStack;
-- goto retry;
-+ ofi = spec->fileStack;
-+ goto retry;
-+ }