# build/spec.c File Reference

Handle spec data structure. More...

`#include "system.h"`
`#include "buildio.h"`
`#include "debug.h"`

Go to the source code of this file.

## Defines

#define | SKIPWHITE(_x) {while(*(_x) && (xisspace(*_x) || *(_x) == ',')) (_x)++;}
#define | SKIPNONWHITE(_x) {while(*(_x) &&!(xisspace(*_x) || *(_x) == ',')) (_x)++;}

## Functions

static struct TriggerFileEntry * | freeTriggerFiles (struct TriggerFileEntry *p)
static struct Source * | freeSources (struct Source *s)
| Destroy source component chain.
int | lookupPackage (Spec spec, const char *name, int flag, Package *pkg)
| Find sub-package control structure by name.
Package | newPackage (Spec spec)
| Create and initialize package control structure.
Package | freePackage (Package pkg)
| Destroy package control structure.
Package | freePackages (Package packages)
| Destroy all packages associated with spec file.
static struct Source * | findSource (Spec spec, int num, int flag)
int | parseNoSource (Spec spec, const char *field, int tag)
int | addSource (Spec spec, Package pkg, const char *field, int tag)
static speclines | newSl (void)
static speclines | freeSl (speclines sl)
static spectags | newSt (void)
static spectags | freeSt (spectags st)
Spec | newSpec (void)
| Create and initialize Spec structure.
Spec | freeSpec (Spec spec)
| Destroy Spec structure.
OpenFileInfo * | newOpenFileInfo (void)

## Variables

int | specedit

## Detailed Description

Handle spec data structure.

Definition in file spec.c.

## Define Documentation

#define SKIPNONWHITE | ( | _x |  | ) | {while(*(_x) &&!(xisspace(*_x) || *(_x) == ',')) (_x)++;}

| Definition at line 16 of file spec.c.

#define SKIPWHITE | ( | _x |  | ) | {while(*(_x) && (xisspace(*_x) || *(_x) == ',')) (_x)++;}

| Definition at line 15 of file spec.c.

## Function Documentation

static struct Source* findSource | ( | Spec | spec,
|  | int | num,
|  | int | flag
| ) | `[inline, static]`

| Definition at line 190 of file spec.c. References Source::flags, Source::next, Source::num, and SpecStruct::sources. Referenced by parseNoSource().

static speclines freeSl | ( | speclines | sl | ) | `[inline, static]`

| Definition at line 359 of file spec.c. References _free(), speclines_s::sl_lines, and speclines_s::sl_nlines. Referenced by freeSpec().

static struct Source* freeSources | ( | struct Source * | s | ) | `[inline, static]`

Destroy source component chain.

Parameters:

  | source | component chain

Returns:
  NULL always

Definition at line 46 of file spec.c.

References _free(), Source::fullSource, and Source::next.

Referenced by freePackage(), and freeSpec().

static spectags freeSt | ( | spectags | st | ) | `[inline, static]`

| Definition at line 391 of file spec.c. References _free(), spectags_s::st_ntags, spectags_s::st_t, and spectag_s::t_lang. Referenced by freeSpec().

static struct TriggerFileEntry* freeTriggerFiles | ( | struct TriggerFileEntry * | p | ) | `[inline, static]`

Returns:
  NULL always

Definition at line 24 of file spec.c.

References _free(), TriggerFileEntry::fileName, TriggerFileEntry::next, TriggerFileEntry::prog, and TriggerFileEntry::script.

Referenced by freePackage().

static speclines newSl | ( | void |  | ) | `[inline, static]`

| Definition at line 342 of file spec.c. References specedit, and xmalloc(). Referenced by newSpec().

static spectags newSt | ( | void |  | ) | `[inline, static]`

| Definition at line 374 of file spec.c. References specedit, and xmalloc(). Referenced by newSpec().

## Variable Documentation

int specedit

| Definition at line 17 of file poptQV.c. Referenced by main(), newSl(), newSt(), and rpmQueryVerify().