rpm 5.2.1

- Main Page
- Related Pages
- Modules
- Data Structures
- Files

- File List
- Globals

Defines | Functions | Variables
rpmio/mire.c File Reference
`#include "system.h"`
`#include <rpmiotypes.h>`
`#include <rpmio.h>`
`#include <rpmlog.h>`
`#include <mire.h>`
`#include "debug.h"`
Include dependency graph for mire.c:

Go to the source code of this file.

## Defines

#define | _MIRE_INTERNAL

## Functions

int | mireClean (miRE mire)
| Deallocate pattern match memory.
static void | mireFini (void *_mire)
miRE | mireGetPool (rpmioPool pool)
| Allocate a miRE container from the pool.
void * | mireFreeAll (miRE mire, int nmire)
| Destroy compiled patterns.
miRE | mireNew (rpmMireMode mode, int tag)
| Create pattern container.
int | mireSetCOptions (miRE mire, rpmMireMode mode, int tag, int options, const unsigned char *table)
| Initialize pattern compile options.
int | mireSetEOptions (miRE mire, int *offsets, int noffsets)
| Initialize pattern execute options (PCRE only).
int | mireSetGOptions (const char *newline, int caseless, int multiline, int utf8)
| Initialize pattern global options (PCRE only).
int | mireSetLocale (miRE mire, const char *locale)
| Compile locale-specific PCRE tables.
int | mireRegcomp (miRE mire, const char *pattern)
| Compile pattern match.
int | mireRegexec (miRE mire, const char *val, size_t vallen)
| Execute pattern match.
int | mireAppend (rpmMireMode mode, int tag, const char *pattern, const unsigned char *table, miRE *mirep, int *nmirep)
| Append pattern to array.
int | mireLoadPatterns (rpmMireMode mode, int tag, const char **patterns, const unsigned char *table, miRE *mirep, int *nmirep)
| Load patterns from string array.
int | mireApply (miRE mire, int nmire, const char *s, size_t slen, int rc)
| Apply array of patterns to a string.
int | mireStudy (miRE mire, int nmires)
| Study PCRE patterns (if any).

## Variables

int | _mire_debug = 0
const unsigned char * | _mirePCREtables = NULL
mireEL_t | _mireEL = EL_LF
int | _mireSTRINGoptions = 0
| STRING default: 0.
int | _mireGLOBoptions = FNM_EXTMATCH | FNM_PATHNAME | FNM_PERIOD
| GLOB default: FNM_PATHNAME | FNM_PERIOD.
int | _mireREGEXoptions = REG_EXTENDED | REG_NEWLINE
| REGEX default: REG_EXTENDED.
int | _mirePCREoptions = 0
| PCRE default: 0.
rpmioPool | _mirePool

## Define Documentation

#define _MIRE_INTERNAL

Definition at line 10 of file mire.c.

## Function Documentation

int mireAppend | ( | rpmMireMode | mode,
|  | int | tag,
|  | const char * | pattern,
|  | const unsigned char * | table,
|  | miRE * | mirep,
|  | int * | nmirep
| ) |  |

Append pattern to array.

Parameters:

  mode | type of pattern match
  tag | identifier (like an rpmTag)
  pattern | pattern to compile
  table | (PCRE) locale table to use (NULL uses default table)

Return values:

  *mirep | pattern array
  *nmirep | no. of patterns in array

Definition at line 479 of file mire.c.

References mireGetPool(), mireRegcomp(), mireSetCOptions(), and xrealloc().

Referenced by mireLoadPatterns(), rpmdbTriggerGlobs(), rpmfcExpandRegexps(), rpmPlatform(), and strsubFormat().

int mireApply | ( | miRE | mire,
|  | int | nmire,
|  | const char * | s,
|  | size_t | slen,
|  | int | rc
| ) |  |

Apply array of patterns to a string.

Parameters:

  mire | compiled pattern array
  nmire | no. of patterns in array
  s | string to apply against
  slen | length of string (0 will use strlen(s))
  rc | -1 == excluding, +1 == including, 0 == single pattern

Returns:
  termination condition

Definition at line 533 of file mire.c.

References mireRegexec().

Referenced by repoGetFileList().

int mireClean | ( | miRE | mire | ) |

Deallocate pattern match memory.

Parameters:

  mire | pattern container

Returns:
  0 on success

Definition at line 38 of file mire.c.

References _free(), _mire_debug, RPMMIRE_PCRE, and RPMMIRE_REGEX.

Referenced by handleOneTrigger(), mireFini(), mireFreeAll(), and mireRegcomp().

static void mireFini | ( | void * | _mire | ) | `[static]`

Definition at line 70 of file mire.c.

References mireClean().

Referenced by mireGetPool().

void* mireFreeAll | ( | miRE | mire,
|  | int | nmire
| ) |  |

Destroy compiled patterns.

Parameters:

  mire | pattern array
  nre | no of patterns in array

Returns:
  NULL always

Definition at line 93 of file mire.c.

References _free(), mireClean(), rpmioFreePoolItem(), and xrealloc().

Referenced by main(), rpmdsFini(), rpmfcFreeRegexps(), rpmfiFini(), rpmFreeRpmrc(), rpmmiFini(), rpmPlatform(), runTriggers(), and strsubFormat().

miRE mireGetPool | ( | rpmioPool | pool | ) |

Allocate a miRE container from the pool.

Parameters:

  pool | mire pool

Returns:
  miRE container

Definition at line 80 of file mire.c.

References _mire_debug, _mirePool, mireFini(), rpmioGetPool(), and rpmioNewPool().

Referenced by mireAppend(), mireNew(), and rpmmiAddPattern().

int mireLoadPatterns | ( | rpmMireMode | mode,
|  | int | tag,
|  | const char ** | patterns,
|  | const unsigned char * | table,
|  | miRE * | mirep,
|  | int * | nmirep
| ) |  |

Load patterns from string array.

Parameters:

  mode | type of pattern match
  tag | identifier (like an rpmTag)
  patterns | patterns to compile
  table | (PCRE) locale table to use (NULL uses default table)

Return values:

  *mirep | pattern array
  *nmirep | no. of patterns in array

Returns:
  0 on success

Definition at line 511 of file mire.c.

References mireAppend().

Referenced by main().

miRE mireNew | ( | rpmMireMode | mode,
|  | int | tag
| ) |  |

Create pattern container.

Parameters:

  mode | type of pattern match
  tag | identifier (e.g. an rpmTag)

Returns:
  new pattern container (NULL on error)

Definition at line 111 of file mire.c.

References mireGetPool(), and mireLink().

Referenced by handleOneTrigger(), rpmcliInstallElementPath(), rpmdbMireApply(), rpmEVRmire(), rpmmiAddPattern(), and tagValidate().

int mireRegcomp | ( | miRE | mire,
|  | const char * | pattern
| ) |  |

Compile pattern match.

Parameters:

  mire | pattern container
  val | pattern to compile

Returns:
  0 on success

Definition at line 332 of file mire.c.

References _, _mire_debug, _mireGLOBoptions, _mireREGEXoptions, mireClean(), rpmlog(), RPMLOG_ERR, RPMMIRE_DEFAULT, RPMMIRE_GLOB, RPMMIRE_PCRE, RPMMIRE_REGEX, RPMMIRE_STRCMP, xcalloc(), and xstrdup().

Referenced by handleOneTrigger(), mireAppend(), rpmcliInstallElementPath(), rpmdbMireApply(), rpmEVRmire(), rpmmiAddPattern(), and tagValidate().

int mireRegexec | ( | miRE | mire,
|  | const char * | val,
|  | size_t | vallen
| ) |  |

Execute pattern match.

Parameters:

  mire | pattern container
  val | value to match
  vallen | length of value string (0 will use strlen)

Returns:
  >=0 if pattern matches, -1 on nomatch, else error

Definition at line 396 of file mire.c.

References _, _mire_debug, alloca(), FNM_NOMATCH, fnmatch(), rpmlog(), RPMLOG_ERR, RPMMIRE_DEFAULT, RPMMIRE_GLOB, RPMMIRE_PCRE, RPMMIRE_REGEX, and RPMMIRE_STRCMP.

Referenced by handleOneTrigger(), mireApply(), mireSkip(), rpmcliWalkFirst(), rpmdbMireApply(), rpmEVRparse(), rpmfcApply(), rpmfcMatchRegexps(), rpmGetMacroEntries(), rpmPlatformScore(), runTriggersLoop(), strsubFormat(), and tagValidate().

int mireSetCOptions | ( | miRE | mire,
|  | rpmMireMode | mode,
|  | int | tag,
|  | int | options,
|  | const unsigned char * | table
| ) |  |

Initialize pattern compile options.

Parameters:

  mire | pattern container
  mode | type of pattern match
  tag | identifier (e.g. an rpmTag)
  options | pattern options (0 uses default options)
  table | (PCRE only) locale tables

Returns:
  0 on success

Definition at line 119 of file mire.c.

References _mireGLOBoptions, _mirePCREoptions, _mireREGEXoptions, RPMMIRE_DEFAULT, RPMMIRE_GLOB, RPMMIRE_PCRE, RPMMIRE_REGEX, and RPMMIRE_STRCMP.

Referenced by mireAppend(), rpmEVRmire(), and tagValidate().

int mireSetEOptions | ( | miRE | mire,
|  | int * | offsets,
|  | int | noffsets
| ) |  |

Initialize pattern execute options (PCRE only).

Parameters:

  mire | pattern container
  *offsets | (PCRE only) string offset(s)
  noffsets | (PCRE only) no. of string offsets

Returns:
  0 on success

Definition at line 154 of file mire.c.

References RPMMIRE_PCRE, and RPMMIRE_REGEX.

Referenced by rpmEVRparse(), and strsubFormat().

int mireSetGOptions | ( | const char * | newline,
|  | int | caseless,
|  | int | multiline,
|  | int | utf8
| ) |  |

Initialize pattern global options (PCRE only).

Parameters:

  newline | newline ending identifier
  caseless | should case be ignored?
  multline | are multiline matches permitted?
  utf8 | assume utf8 matching?

Returns:
  0 on success

Definition at line 178 of file mire.c.

References _mireEL, _mireGLOBoptions, _mirePCREoptions, _mireREGEXoptions, EL_ANY, EL_ANYCRLF, EL_CR, EL_CRLF, EL_LF, and FNM_CASEFOLD.

int mireSetLocale | ( | miRE | mire,
|  | const char * | locale
| ) |  |

Compile locale-specific PCRE tables.

Parameters:

  mire | pattern container
  locale | locale string (NULL uses usual envvar's)

Returns:
  0 on success

Definition at line 276 of file mire.c.

References _, __progname, _mirePCREtables, getenv(), setlocale, and xstrdup().

int mireStudy | ( | miRE | mire,
|  | int | nmires
| ) |  |

Study PCRE patterns (if any).

Parameters:

  mire | pattern container
  nmires | no. of patterns in container

Returns:
  0 on success

Definition at line 556 of file mire.c.

References _, __progname, rpmlog(), RPMLOG_ERR, and RPMMIRE_PCRE.

## Variable Documentation

int _mire_debug = 0

Definition at line 18 of file mire.c.

Referenced by mireClean(), mireGetPool(), mireRegcomp(), and mireRegexec().

mireEL_t _mireEL = EL_LF

Definition at line 24 of file mire.c.

Referenced by mireSetGOptions().

int _mireGLOBoptions = FNM_EXTMATCH | FNM_PATHNAME | FNM_PERIOD

GLOB default: FNM_PATHNAME | FNM_PERIOD.

Definition at line 30 of file mire.c.

Referenced by mireRegcomp(), mireSetCOptions(), and mireSetGOptions().

int _mirePCREoptions = 0

PCRE default: 0.

Definition at line 36 of file mire.c.

Referenced by mireSetCOptions(), and mireSetGOptions().

const unsigned char* _mirePCREtables = NULL

Definition at line 21 of file mire.c.

Referenced by mireSetLocale().

rpmioPool _mirePool

Definition at line 78 of file mire.c.

Referenced by mireGetPool(), rpmioClean(), and rpmmiAddPattern().

int _mireREGEXoptions = REG_EXTENDED | REG_NEWLINE

REGEX default: REG_EXTENDED.

Definition at line 33 of file mire.c.

Referenced by mireRegcomp(), mireSetCOptions(), and mireSetGOptions().

int _mireSTRINGoptions = 0

STRING default: 0.

Definition at line 27 of file mire.c.