rpm  5.4.10
Macros | Functions | Variables
query.c File Reference

Display tag values from package metadata. More...

#include "system.h"
#include <rpmio.h>
#include <rpmiotypes.h>
#include <poptIO.h>
#include <rpmtag.h>
#include "rpmdb.h"
#include "rpmfi.h"
#include "rpmts.h"
#include "rpmgi.h"
#include "manifest.h"
#include "misc.h"
#include <rpmcli.h>
#include "debug.h"
Include dependency graph for query.c:

Go to the source code of this file.

Macros

#define PATH_MAX   255
 
#define _RPMTS_INTERNAL   /* XXX for ts->rdb */
 
#define JBJDEBUG(_list)   if (_jbj) fprintf _list
 
#define FF_ISSET(_fflags, _FLAG)   ((_fflags) & (RPMFILE_##_FLAG))
 
#define QVA_ISSET(_qvaflags, _FLAG)   ((_qvaflags) & (QUERY_##_FLAG))
 
#define VSF_ISSET(_vsflags, _FLAG)   ((_vsflags) & (RPMVSF_##_FLAG))
 
#define VSF_SET(_vsflags, _FLAG)   (_vsflags) |= (RPMVSF_##_FLAG)
 
#define VSF_CLR(_vsflags, _FLAG)   (_vsflags) &= ~(RPMVSF_##_FLAG)
 

Functions

static void printFileInfo (char *te, const char *name, size_t size, unsigned short mode, unsigned int mtime, unsigned short rdev, unsigned int nlink, const char *owner, const char *group, const char *linkto)
 
static const char * queryHeader (Header h, const char *qfmt)
 
static void flushBuffer (char **tp, char **tep, int nonewline)
 
int showQueryPackage (QVA_t qva, rpmts ts, Header h)
 Display results of package query. More...
 
static int rpmgiShowMatches (QVA_t qva, rpmts ts)
 
static int rpmcliShowMatches (QVA_t qva, rpmts ts)
 Display query/verify information for each header in iterator. More...
 
static unsigned char nibble (char c)
 Convert hex to binary nibble. More...
 
int rpmQueryVerify (QVA_t qva, rpmts ts, const char *arg)
 Common query/verify source interface, called once for each CLI arg. More...
 
int rpmcliArgIter (rpmts ts, QVA_t qva, ARGV_t argv)
 
int rpmcliQuery (rpmts ts, QVA_t qva, const char **argv)
 Display package information. More...
 

Variables

static int _jbj
 

Detailed Description

Display tag values from package metadata.

Definition in file query.c.

Macro Definition Documentation

§ _RPMTS_INTERNAL

#define _RPMTS_INTERNAL   /* XXX for ts->rdb */

Definition at line 22 of file query.c.

§ FF_ISSET

#define FF_ISSET (   _fflags,
  _FLAG 
)    ((_fflags) & (RPMFILE_##_FLAG))

Definition at line 52 of file query.c.

Referenced by showQueryPackage().

§ JBJDEBUG

#define JBJDEBUG (   _list)    if (_jbj) fprintf _list

§ PATH_MAX

#define PATH_MAX   255

Definition at line 10 of file query.c.

Referenced by doFoo(), doLookup(), Realpath(), rpmdbURIPath(), and rpmQueryVerify().

§ QVA_ISSET

#define QVA_ISSET (   _qvaflags,
  _FLAG 
)    ((_qvaflags) & (QUERY_##_FLAG))

Definition at line 54 of file query.c.

Referenced by rpmcliQuery(), and showQueryPackage().

§ VSF_CLR

#define VSF_CLR (   _vsflags,
  _FLAG 
)    (_vsflags) &= ~(RPMVSF_##_FLAG)

Definition at line 58 of file query.c.

Referenced by rpmcliQuery().

§ VSF_ISSET

#define VSF_ISSET (   _vsflags,
  _FLAG 
)    ((_vsflags) & (RPMVSF_##_FLAG))

Definition at line 56 of file query.c.

§ VSF_SET

#define VSF_SET (   _vsflags,
  _FLAG 
)    (_vsflags) |= (RPMVSF_##_FLAG)

Definition at line 57 of file query.c.

Referenced by rpmcliQuery().

Function Documentation

§ flushBuffer()

static void flushBuffer ( char **  tp,
char **  tep,
int  nonewline 
)
static

Definition at line 183 of file query.c.

References rpmlog(), and RPMLOG_NOTICE.

Referenced by showQueryPackage().

§ nibble()

static unsigned char nibble ( char  c)
inlinestatic

Convert hex to binary nibble.

Parameters
chex character
Returns
binary nibble

Definition at line 490 of file query.c.

Referenced by rpmQueryVerify().

§ printFileInfo()

static void printFileInfo ( char *  te,
const char *  name,
size_t  size,
unsigned short  mode,
unsigned int  mtime,
unsigned short  rdev,
unsigned int  nlink,
const char *  owner,
const char *  group,
const char *  linkto 
)
static

Definition at line 64 of file query.c.

References _free(), alloca(), L, name, rpmPermsString(), and S_ISLNK.

Referenced by showQueryPackage().

§ queryHeader()

static const char* queryHeader ( Header  h,
const char *  qfmt 
)
inlinestatic

Definition at line 166 of file query.c.

References _, headerSprintf(), rpmHeaderFormats, rpmlog(), and RPMLOG_ERR.

Referenced by showQueryPackage().

§ rpmcliArgIter()

int rpmcliArgIter ( rpmts  ts,
QVA_t  qva,
ARGV_t  argv 
)

§ rpmcliQuery()

int rpmcliQuery ( rpmts  ts,
QVA_t  qva,
const char **  argv 
)

Display package information.

Todo:
hack: RPMQV_ALL can pass char ** arglist = NULL, not char * arg. Union?
Parameters
tstransaction set
qvaparsed query/verify options
argvquery argument(s) (or NULL)
Returns
0 on success, else no. of failures

Definition at line 912 of file query.c.

References _free(), rpmQVKArguments_s::depFlags, JBJDEBUG, rpmQVKArguments_s::qva_flags, QVA_ISSET, rpmQVKArguments_s::qva_queryFormat, rpmQVKArguments_s::qva_showPackage, rpmcliArgIter(), rpmExpand(), rpmExpandNumeric(), rpmtsSetDFlags(), rpmtsSetFlags(), rpmtsSetVSFlags(), showQueryPackage(), rpmQVKArguments_s::transFlags, VSF_CLR, VSF_SET, vsflags, and xstrdup().

Referenced by main().

§ rpmcliShowMatches()

static int rpmcliShowMatches ( QVA_t  qva,
rpmts  ts 
)
static

Display query/verify information for each header in iterator.

This routine uses:

  • qva->qva_mi rpm database iterator
  • qva->qva_showPackage query/verify display routine
Parameters
qvaparsed query/verify options
tstransaction set
Returns
result of last non-zero showPackage() return

Definition at line 462 of file query.c.

References JBJDEBUG, rpmQVKArguments_s::qva_mi, rpmQVKArguments_s::qva_showFAIL, rpmQVKArguments_s::qva_showOK, rpmQVKArguments_s::qva_showPackage, rpmQVKArguments_s::qva_source, rpmmiFree(), rpmmiNext(), and RPMQV_DBOFFSET.

Referenced by rpmQueryVerify().

§ rpmgiShowMatches()

static int rpmgiShowMatches ( QVA_t  qva,
rpmts  ts 
)
static

§ rpmQueryVerify()

int rpmQueryVerify ( QVA_t  qva,
rpmts  ts,
const char *  arg 
)

§ showQueryPackage()

int showQueryPackage ( QVA_t  qva,
rpmts  ts,
Header  h 
)

Variable Documentation

§ _jbj

int _jbj
static

Definition at line 33 of file query.c.