# build/parseSpec.c File Reference

Top level dispatcher for spec file parsing. More...

`#include "system.h"`
`#include <rpmio_internal.h>`
`#include <rpmbuild.h>`
`#include "rpmds.h"`
`#include "rpmts.h"`
`#include "debug.h"`
Include dependency graph for parseSpec.c:

Go to the source code of this file.

## Data Structures

struct | PartRec

## Defines

#define | _RPMTAG_INTERNAL

## Functions

static void | initParts (struct PartRec *p)
rpmParseState | isPart (Spec spec)
| Check line for section separator, return next parser state.
static int | matchTok (const char *token, const char *line)
void | handleComments (char *s)
| Truncate comment lines.
static void | forceIncludeFile (Spec spec, const char *fileName)
static int | restoreFirstChar (Spec spec)
static int | copyNextLineFromOFI (Spec spec, OFI_t *ofi)
static int | copyNextLineFinish (Spec spec, int strip)
static int | readLineFromOFI (Spec spec, OFI_t *ofi)
int | readLine (Spec spec, int strip)
| Read next line from spec file.
void | closeSpec (Spec spec)
| Stop reading from spec file, freeing resources.
int | parseSpec (rpmts ts, const char *specFile, const char *rootURL, int recursing, const char *passPhrase, const char *cookie, int anyarch, int force, int verify)
| Parse spec file into spec control structure.

## Variables

static struct PartRec | partList []
int | noLang

## Detailed Description

Top level dispatcher for spec file parsing.

Definition in file parseSpec.c.

## Define Documentation

#define _RPMTAG_INTERNAL

Definition at line 9 of file parseSpec.c.

## Function Documentation

static int copyNextLineFinish | ( | Spec | spec,
|  | int | strip |
| ) |  |  | `[static]`

Definition at line 246 of file parseSpec.c.

References handleComments(), Spec_s::line, Spec_s::nextline, Spec_s::nextpeekc, STRIP_COMMENTS, STRIP_TRAILINGSPACE, and xisspace().

Referenced by readLine().

static int copyNextLineFromOFI | ( | Spec | spec,
|  | OFI_t * | ofi |
| ) |  |  | `[static]`

Definition at line 171 of file parseSpec.c.

References _, expandMacros(), Spec_s::lbuf, Spec_s::lbuf_len, Spec_s::lbufPtr, Spec_s::lineNum, Spec_s::macros, Spec_s::nextline, ReadLevelEntry::reading, OpenFileInfo::readPtr, Spec_s::readStack, rpmlog(), RPMLOG_ERR, and RPMRC_FAIL.

Referenced by readLine().

static void forceIncludeFile | ( | Spec | spec,
|  | const char * | fileName |
| ) |  |  | `[static]`

Definition at line 144 of file parseSpec.c.

References OpenFileInfo::fileName, Spec_s::fileStack, newOpenFileInfo(), OpenFileInfo::next, and xstrdup().

Referenced by readLine().

static void initParts | ( | struct PartRec * | p | ) | `[inline, static]`

Definition at line 53 of file parseSpec.c.

References PartRec::len, and PartRec::token.

Referenced by isPart().

static int matchTok | ( | const char * | token,
|  | const char * | line |
| ) |  |  | `[static]`

Definition at line 113 of file parseSpec.c.

References SKIPNONSPACE, SKIPSPACE, and xstrncasecmp().

Referenced by readLine().

static int readLineFromOFI | ( | Spec | spec,
|  | OFI_t * | ofi |
| ) |  |  | `[static]`

Definition at line 277 of file parseSpec.c.

References _, _free(), Fclose(), OpenFileInfo::fd, fdGetFp(), Ferror(), OpenFileInfo::fileName, Spec_s::fileStack, Fopen(), Fstrerror(), OpenFileInfo::lineNum, Spec_s::lineNum, OpenFileInfo::next, ReadLevelEntry::next, OpenFileInfo::readBuf, OpenFileInfo::readPtr, Spec_s::readStack, rpmlog(), RPMLOG_ERR, RPMRC_FAIL, Spec_s::sl, speclines_s::sl_lines, speclines_s::sl_nalloc, speclines_s::sl_nlines, xrealloc(), and xstrdup().

Referenced by readLine().

static int restoreFirstChar | ( | Spec | spec | ) | `[static]`

Definition at line 157 of file parseSpec.c.

References Spec_s::nextline, and Spec_s::nextpeekc.

Referenced by readLine().

## Variable Documentation

int noLang

Definition at line 55 of file poptBT.c.

struct PartRec partList[]`[static]`

Referenced by isPart().