# 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

TriggerFileEntry * | freeTriggerFiles (struct TriggerFileEntry *p)
Source * | freeSources (struct Source *s)
| Destroy source component chain.
int | lookupPackage (Spec spec, const char *name, int flag, Package *pkg)
Package | newPackage (Spec spec)
Package | freePackage (Package pkg)
Package | freePackages (Package packages)
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)
speclines | newSl (void)
speclines | freeSl (speclines sl)
spectags | newSt (void)
spectags | freeSt (spectags st)
Spec | newSpec (void)
Spec | freeSpec (Spec spec)
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

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

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

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

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

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().

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

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

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

Returns:
  NULL always

Definition at line 24 of file spec.c.

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

Referenced by freePackage().

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

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

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

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