rpm  4.5
Macros | Typedefs | Enumerations | Functions | Variables
rpmfc.h File Reference
#include <regex.h>
#include "magic.h"
Include dependency graph for rpmfc.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Macros

#define RPMFC_ELF   (RPMFC_ELF32|RPMFC_ELF64|RPMFC_ELFMIPSN32)
 

Typedefs

typedef struct rpmfc_s * rpmfc
 
typedef enum FCOLOR_e FCOLOR_t
 
typedef struct rpmfcTokens_s * rpmfcToken
 

Enumerations

enum  FCOLOR_e {
  RPMFC_BLACK = 0, RPMFC_ELF32 = (1 << 0), RPMFC_ELF64 = (1 << 1), RPMFC_ELFMIPSN32 = (1 << 2),
  RPMFC_DESKTOP_FILE = (1 << 7), RPMFC_PKGCONFIG = (1 << 8), RPMFC_LIBTOOL = (1 << 9), RPMFC_BOURNE = (1 << 10),
  RPMFC_MONO = (1 << 11), RPMFC_SCRIPT = (1 << 12), RPMFC_STATIC = (1 << 13), RPMFC_NOTSTRIPPED = (1 << 14),
  RPMFC_DIRECTORY = (1 << 16), RPMFC_SYMLINK = (2 << 16), RPMFC_DEVICE = (3 << 16), RPMFC_LIBRARY = (4 << 16),
  RPMFC_FONT = (5 << 16), RPMFC_IMAGE = (6 << 16), RPMFC_MANPAGE = (7 << 16), RPMFC_TEXT = (8 << 16),
  RPMFC_DOCUMENT = (9 << 16), RPMFC_ARCHIVE = (1 << 20), RPMFC_COMPRESSED = (1 << 21), RPMFC_MODULE = (1 << 22),
  RPMFC_EXECUTABLE = (1 << 23), RPMFC_PERL = (1 << 24), RPMFC_JAVA = (1 << 25), RPMFC_PYTHON = (1 << 26),
  RPMFC_PHP = (1 << 27), RPMFC_TCL = (1 << 28), RPMFC_WHITE = (1 << 29), RPMFC_INCLUDE = (1 << 30),
  RPMFC_ERROR = (1 << 31)
}
 

Functions

int rpmfcExec (ARGV_t av, StringBuf sb_stdin, StringBuf *sb_stdoutp, int failnonzero)
 Return helper output. More...
 
int rpmfcColoring (const char *fmstr)
 Return file color given file(1) string. More...
 
void rpmfcPrint (const char *msg, rpmfc fc, FILE *fp)
 Print results of file classification. More...
 
rpmfc rpmfcFree (rpmfc fc)
 Destroy a file classifier. More...
 
rpmfc rpmfcNew (void)
 Create a file classifier. More...
 
int rpmfcClassify (rpmfc fc, ARGV_t argv, int16_t *fmode)
 Build file class dictionary and mappings. More...
 
int rpmfcApply (rpmfc fc)
 Build file/package dependency dictionary and mappings. More...
 
int rpmfcGenerateDepends (void *specp, void *pkgp)
 Generate package dependencies. More...
 

Variables

int _rpmfc_debug
 

Macro Definition Documentation

#define RPMFC_ELF   (RPMFC_ELF32|RPMFC_ELF64|RPMFC_ELFMIPSN32)

Definition at line 32 of file rpmfc.h.

Typedef Documentation

typedef enum FCOLOR_e FCOLOR_t

Definition at line 19 of file rpmfc.h.

typedef struct rpmfc_s* rpmfc

Definition at line 15 of file rpmfc.h.

typedef struct rpmfcTokens_s* rpmfcToken

Definition at line 23 of file rpmfc.h.

Enumeration Type Documentation

enum FCOLOR_e
Enumerator
RPMFC_BLACK 
RPMFC_ELF32 
RPMFC_ELF64 
RPMFC_ELFMIPSN32 
RPMFC_DESKTOP_FILE 
RPMFC_PKGCONFIG 
RPMFC_LIBTOOL 
RPMFC_BOURNE 
RPMFC_MONO 
RPMFC_SCRIPT 
RPMFC_STATIC 
RPMFC_NOTSTRIPPED 
RPMFC_DIRECTORY 
RPMFC_SYMLINK 
RPMFC_DEVICE 
RPMFC_LIBRARY 
RPMFC_FONT 
RPMFC_IMAGE 
RPMFC_MANPAGE 
RPMFC_TEXT 
RPMFC_DOCUMENT 
RPMFC_ARCHIVE 
RPMFC_COMPRESSED 
RPMFC_MODULE 
RPMFC_EXECUTABLE 
RPMFC_PERL 
RPMFC_JAVA 
RPMFC_PYTHON 
RPMFC_PHP 
RPMFC_TCL 
RPMFC_WHITE 
RPMFC_INCLUDE 
RPMFC_ERROR 

Definition at line 27 of file rpmfc.h.

Function Documentation

int rpmfcApply ( rpmfc  fc)

Build file/package dependency dictionary and mappings.

Parameters
fcfile classifier
Returns
0 on success

Definition at line 1097 of file rpmfc.c.

References _, argiAdd(), argiCount(), argvCount(), rpmfcApplyTbl_s::colormask, rpmfcApplyTbl_s::func, rpmdsFind(), rpmdsFree(), rpmdsSingle(), rpmExpand(), RPMFC_PYTHON, rpmfcExpandRegexps(), rpmfcFindRequiredPackages(), rpmfcFreeRegexps(), RPMMESS_DEBUG, RPMMESS_NORMAL, rpmMessage, RPMTAG_PROVIDENAME, and RPMTAG_REQUIRENAME.

Referenced by main(), and rpmfcGenerateDepends().

int rpmfcClassify ( rpmfc  fc,
ARGV_t  argv,
int16_t *  fmode 
)

Build file class dictionary and mappings.

Parameters
fcfile classifier
argvfiles to classify
fmodefiles mode_t array (or NULL)
Returns
0 on success
int rpmfcColoring ( const char *  fmstr)

Return file color given file(1) string.

Parameters
fmstrfile(1) string
Returns
file color

Definition at line 622 of file rpmfc.c.

References RPMFC_BLACK, RPMFC_INCLUDE, and rpmfcTokens.

Referenced by rpmfcClassify().

int rpmfcExec ( ARGV_t  av,
StringBuf  sb_stdin,
StringBuf sb_stdoutp,
int  failnonzero 
)

Return helper output.

Parameters
avhelper argv (with possible macros)
sb_stdinhelper input
Return values
*sb_stdoutphelper output
Parameters
failnonzeroIS non-zero helper exit status a failure?

Definition at line 209 of file rpmfc.c.

References _free(), argvAppend(), argvFree(), freeStringBuf(), getOutputFrom(), getStringBuf(), rpmExpand(), and rpmfcExpandAppend().

Referenced by checkFiles(), rpmfcGenerateDependsHelper(), rpmfcGenerateScriptletDeps(), and rpmfcHelper().

rpmfc rpmfcFree ( rpmfc  fc)

Destroy a file classifier.

Parameters
fcfile classifier
Returns
NULL always

Definition at line 714 of file rpmfc.c.

References _free(), argiFree(), argvFree(), freeStringBuf(), and rpmdsFree().

Referenced by main(), and rpmfcGenerateDepends().

int rpmfcGenerateDepends ( void *  specp,
void *  pkgp 
)
rpmfc rpmfcNew ( void  )

Create a file classifier.

Returns
new file classifier

Definition at line 739 of file rpmfc.c.

References xcalloc().

Referenced by main(), and rpmfcGenerateDepends().

void rpmfcPrint ( const char *  msg,
rpmfc  fc,
FILE *  fp 
)

Print results of file classification.

Todo:
Remove debugging routine.
Parameters
msgmessage prefix (NULL for none)
fcfile classifier
fpoutput file handle (NULL for stderr)

Definition at line 637 of file rpmfc.c.

References rpmdsCount(), rpmdsDNEVR(), rpmdsNext(), rpmdsSetIx(), and RPMFC_BLACK.

Referenced by main(), and rpmfcGenerateDepends().

Variable Documentation

int _rpmfc_debug

Definition at line 76 of file poptALL.c.

Referenced by main(), rpmdepPrint(), rpmfcGenerateDepends(), and rpmfcMergePR().