-redecl
-bufferoverflowhigh
--nullpass # rpmExpand annoyance
+-nullpass # 62 rpmExpand annoyance
# --- +partial artifacts
-declundef
-exportfcn
-exporttype
-exportvar
--fielduse # 1 occurence <bits/sigset.h>
+-fielduse # 405
-forblock # tedious
-ifblock # tedious
-namechecks # 1843 tedious ANSI compliance checks
-compdestroy # 66
-mustdefine # 66
--sys-dir-errors
+-sys-dir-errors # 842
-strictops # 46
-whileblock # 54
# --- not-yet at checks level
+enumint # 861
-mustfree # 671
--predboolptr # 311
--usedef # 191
+-predboolptr # 308
+-usedef # 126
# --- not-yet at standard level
-boolops # 165
i = p->nrelocs;
if (newPath != NULL && *newPath != '\0' && p->relocs != NULL)
for (i = 0; i < p->nrelocs; i++) {
+/*@-nullpass@*/ /* XXX {old,new}Path might be NULL */
if (strcmp(p->relocs[i].oldPath, "/"))
continue;
if (strcmp(p->relocs[i].newPath, newPath))
continue;
+/*@=nullpass@*/
break;
}
}
/*@=boundsread@*/
+/*@-compdef@*/ /* keyp might no be defined. */
rpmdbMatchIterator rpmtsInitIterator(const rpmts ts, rpmTag rpmtag,
const void * keyp, size_t keylen)
{
xx = rpmdbSetIteratorRE(mi, RPMTAG_ARCH, RPMMIRE_DEFAULT, arch);
return mi;
}
+/*@=compdef@*/
rpmRC rpmtsFindPubkey(rpmts ts)
{
+slovak-fcns
-bufferoverflowhigh
--branchstate
--castfcnptr
--compdef
--evalorderuncon
--exportheader
--globs
--globstate
--incondefs # 1
--internalglobs
--modfilesys
--modnomods
--modobserveruncon
--moduncon
--modunconnomods
--noeffect
--noeffectuncon
--nullassign
--nullderef
+-castfcnptr # 48
+-compdef # 28
+-globs # 150
+-globstate # 3 rpmfd
+-internalglobs # 114
+-modfilesys # 131
+-moduncon # 441
+-noeffect # 7
+-noeffectuncon # 132
+-nullassign # 60
-nullpass # 40
--nullret
--nullstate
-paramuse # 14
--predboolothers
--protoparammatch
+-protoparammatch # 5
-redecl # 23
--retalias
--retvalint
--shiftimplementation
--sizeoftype
--type
--usereleased
-
--dependenttrans
--exposetrans
--immediatetrans
--kepttrans
--newreftrans
--observertrans
--onlytrans
--readonlytrans
--refcounttrans
--statictrans
--temptrans
-
--ifempty
+-retalias # 41 PyNone
+-retvalint # 51
+-sizeoftype # 11
+-type # 44
+-usereleased # 6
+
+-dependenttrans # 3
+-exposetrans # 2 rpmte
+-immediatetrans # 34 PyNone
+-kepttrans # 1 rpmfd
+-newreftrans # 3
+-onlytrans # 2 rpmfd
+-readonlytrans # 211
+-refcounttrans # 5
+-statictrans # 46
+-temptrans # 10
+
+-ifempty # 51
# --- +partial artifacts
-declundef
#include "debug.h"
+/*@null@*/
static PyObject *
rpmal_Debug(/*@unused@*/ rpmalObject * s, PyObject * args)
/*@globals _Py_NoneStruct @*/
return Py_None;
}
+/*@null@*/
static PyObject *
rpmal_Add(rpmalObject * s, PyObject * args)
/*@modifies s @*/
return Py_BuildValue("i", pkgKey);
}
+/*@null@*/
static PyObject *
rpmal_Del(rpmalObject * s, PyObject * args)
/*@globals _Py_NoneStruct @*/
return Py_None;
}
+/*@null@*/
static PyObject *
rpmal_AddProvides(rpmalObject * s, PyObject * args)
/*@globals _Py_NoneStruct @*/
return Py_None;
}
+/*@null@*/
static PyObject *
rpmal_MakeIndex(rpmalObject * s, PyObject * args)
/*@globals _Py_NoneStruct @*/
/*@unchecked@*/
extern PyTypeObject rpmal_Type;
+/*@null@*/
rpmalObject * rpmal_Wrap(rpmal al)
/*@*/;
/**
*/
+/*@null@*/
static rpmmiObject *
rpmdb_Match (rpmdbObject * s, PyObject * args)
/*@globals rpmGlobalMacroContext @*/
/**
*/
+/*@null@*/
static hdrObject *
rpmdb_subscript(rpmdbObject * s, PyObject * key)
/*@globals rpmGlobalMacroContext @*/
static void rpmdb_dealloc(rpmdbObject * s)
/*@modifies s @*/
{
- if (s->db)
+ if (s->db != NULL)
rpmdbClose(s->db);
PyObject_Del(s);
}
/**
*/
+/*@observer@*/
static const char * lbl(void * s)
/*@*/
{
/*@access rpmds @*/
+/*@null@*/
static PyObject *
rpmds_Debug(/*@unused@*/ rpmdsObject * s, PyObject * args)
/*@globals _Py_NoneStruct @*/
return Py_None;
}
+/*@null@*/
static PyObject *
rpmds_Count(rpmdsObject * s, PyObject * args)
/*@*/
return Py_BuildValue("i", rpmdsCount(s->ds));
}
+/*@null@*/
static PyObject *
rpmds_Ix(rpmdsObject * s, PyObject * args)
/*@*/
return Py_BuildValue("i", rpmdsIx(s->ds));
}
+/*@null@*/
static PyObject *
rpmds_DNEVR(rpmdsObject * s, PyObject * args)
/*@*/
return Py_BuildValue("s", rpmdsDNEVR(s->ds));
}
+/*@null@*/
static PyObject *
rpmds_N(rpmdsObject * s, PyObject * args)
/*@*/
return Py_BuildValue("s", rpmdsN(s->ds));
}
+/*@null@*/
static PyObject *
rpmds_EVR(rpmdsObject * s, PyObject * args)
/*@*/
return Py_BuildValue("s", rpmdsEVR(s->ds));
}
+/*@null@*/
static PyObject *
rpmds_Flags(rpmdsObject * s, PyObject * args)
/*@*/
return Py_BuildValue("i", rpmdsFlags(s->ds));
}
+/*@null@*/
static PyObject *
rpmds_TagN(rpmdsObject * s, PyObject * args)
/*@*/
return Py_BuildValue("i", rpmdsTagN(s->ds));
}
+/*@null@*/
static PyObject *
rpmds_Color(rpmdsObject * s, PyObject * args)
/*@*/
return Py_BuildValue("i", rpmdsColor(s->ds));
}
+/*@null@*/
static PyObject *
rpmds_Refs(rpmdsObject * s, PyObject * args)
/*@*/
return (PyObject *)s;
}
+/*@null@*/
static PyObject *
rpmds_iternext(rpmdsObject * s)
/*@globals _Py_NoneStruct @*/
return result;
}
+/*@null@*/
static PyObject *
rpmds_Next(rpmdsObject * s, PyObject *args)
/*@globals _Py_NoneStruct @*/
return result;
}
+/*@null@*/
static PyObject *
rpmds_SetNoPromote(rpmdsObject * s, PyObject * args)
/*@modifies s @*/
return Py_BuildValue("i", rpmdsSetNoPromote(s->ds, nopromote));
}
+/*@null@*/
static PyObject *
rpmds_Notify(rpmdsObject * s, PyObject * args)
/*@globals _Py_NoneStruct @*/
}
#ifdef NOTYET
+/*@null@*/
static PyObject *
rpmds_Problem(rpmdsObject * s, PyObject * args)
/*@*/
return rpmdsCount(s->ds);
}
+/*@null@*/
static PyObject *
rpmds_subscript(rpmdsObject * s, PyObject * key)
/*@modifies s @*/
/**
*/
+/*@null@*/
rpmds dsFromDs(rpmdsObject * ds)
/*@*/;
/**
*/
+/*@null@*/
rpmdsObject * rpmds_Wrap(rpmds ds)
/*@*/;
/**
*/
+/*@null@*/
rpmdsObject * rpmds_Single(PyObject * s, PyObject * args)
/*@*/;
/**
*/
+/*@null@*/
rpmdsObject * hdr_dsFromHeader(PyObject * s, PyObject * args)
/*@*/;
/**
*/
+/*@null@*/
rpmdsObject * hdr_dsOfHeader(PyObject * s, PyObject * args)
/*@*/;
* \brief An python rpm.fd object represents an rpm I/O handle.
*/
+/*@null@*/
static PyObject *
rpmfd_Debug(/*@unused@*/ rpmfdObject * s, PyObject * args)
/*@globals _Py_NoneStruct @*/
last = node;
node = node->next;
}
+/*@-branchstate@*/
if (node) {
if (last)
last->next = node->next;
node->fd = fdFree(node->fd, "closeCallback");
node = _free (node);
}
+/*@=branchstate@*/
return 0;
}
/**
*/
+/*@null@*/
static PyObject *
rpmfd_Fopen(/*@unused@*/ PyObject * s, PyObject * args)
/*@globals fdhead, fdtail @*/
}
node->next = NULL;
+/*@-branchstate@*/
if (!fdhead) {
fdhead = fdtail = node;
} else if (fdtail) {
} else {
fdhead = node;
}
+/*@=branchstate@*/
fdtail = node;
return PyFile_FromFile (node->f, path, mode, closeCallback);
/** \ingroup py_c
*/
+/*@null@*/
static rpmfdObject * rpmfd_new(PyTypeObject * subtype, PyObject *args, PyObject *kwds)
/*@*/
{
typedef struct rpmfdObject_s {
PyObject_HEAD
PyObject *md_dict; /*!< to look like PyModuleObject */
+/*@relnull@*/
FD_t fd;
} rpmfdObject;
/*@unchecked@*/
extern PyTypeObject rpmfd_Type;
+/*@null@*/
rpmfdObject * rpmfd_Wrap(FD_t fd)
/*@*/;
/*@access rpmfi @*/
+/*@null@*/
static PyObject *
rpmfi_Debug(/*@unused@*/ rpmfiObject * s, PyObject * args)
/*@globals _Py_NoneStruct @*/
return Py_None;
}
+/*@null@*/
static PyObject *
rpmfi_FC(rpmfiObject * s, PyObject * args)
/*@*/
return Py_BuildValue("i", rpmfiFC(s->fi));
}
+/*@null@*/
static PyObject *
rpmfi_FX(rpmfiObject * s, PyObject * args)
/*@*/
return Py_BuildValue("i", rpmfiFX(s->fi));
}
+/*@null@*/
static PyObject *
rpmfi_DC(rpmfiObject * s, PyObject * args)
/*@*/
return Py_BuildValue("i", rpmfiDC(s->fi));
}
+/*@null@*/
static PyObject *
rpmfi_DX(rpmfiObject * s, PyObject * args)
/*@*/
return Py_BuildValue("i", rpmfiDX(s->fi));
}
+/*@null@*/
static PyObject *
rpmfi_BN(rpmfiObject * s, PyObject * args)
/*@*/
return Py_BuildValue("s", xstrdup(rpmfiBN(s->fi)));
}
+/*@null@*/
static PyObject *
rpmfi_DN(rpmfiObject * s, PyObject * args)
/*@*/
return Py_BuildValue("s", xstrdup(rpmfiDN(s->fi)));
}
+/*@null@*/
static PyObject *
rpmfi_FN(rpmfiObject * s, PyObject * args)
/*@modifies s @*/
return Py_BuildValue("s", xstrdup(rpmfiFN(s->fi)));
}
+/*@null@*/
static PyObject *
rpmfi_FFlags(rpmfiObject * s, PyObject * args)
/*@*/
return Py_BuildValue("i", rpmfiFFlags(s->fi));
}
+/*@null@*/
static PyObject *
rpmfi_VFlags(rpmfiObject * s, PyObject * args)
/*@*/
return Py_BuildValue("i", rpmfiVFlags(s->fi));
}
+/*@null@*/
static PyObject *
rpmfi_FMode(rpmfiObject * s, PyObject * args)
/*@*/
return Py_BuildValue("i", rpmfiFMode(s->fi));
}
+/*@null@*/
static PyObject *
rpmfi_FState(rpmfiObject * s, PyObject * args)
/*@*/
}
/* XXX rpmfiMD5 */
+/*@null@*/
static PyObject *
rpmfi_MD5(rpmfiObject * s, PyObject * args)
/*@*/
if (!PyArg_ParseTuple(args, ":MD5")) return NULL;
MD5 = rpmfiMD5(s->fi);
+ if (MD5 != NULL)
for (i = 0, t = fmd5; i < 16; i++, t += 2)
sprintf(t, "%02x", MD5[i]);
*t = '\0';
return Py_BuildValue("s", xstrdup(fmd5));
}
+/*@null@*/
static PyObject *
rpmfi_FLink(rpmfiObject * s, PyObject * args)
/*@*/
return Py_BuildValue("s", xstrdup(rpmfiFLink(s->fi)));
}
+/*@null@*/
static PyObject *
rpmfi_FSize(rpmfiObject * s, PyObject * args)
/*@*/
return Py_BuildValue("i", rpmfiFSize(s->fi));
}
+/*@null@*/
static PyObject *
rpmfi_FRdev(rpmfiObject * s, PyObject * args)
/*@*/
return Py_BuildValue("i", rpmfiFRdev(s->fi));
}
+/*@null@*/
static PyObject *
rpmfi_FMtime(rpmfiObject * s, PyObject * args)
/*@*/
return Py_BuildValue("i", rpmfiFMtime(s->fi));
}
+/*@null@*/
static PyObject *
rpmfi_FUser(rpmfiObject * s, PyObject * args)
/*@*/
return Py_BuildValue("s", xstrdup(rpmfiFUser(s->fi)));
}
+/*@null@*/
static PyObject *
rpmfi_FGroup(rpmfiObject * s, PyObject * args)
/*@*/
return Py_BuildValue("s", xstrdup(rpmfiFGroup(s->fi)));
}
+/*@null@*/
static PyObject *
rpmfi_FColor(rpmfiObject * s, PyObject * args)
/*@*/
return Py_BuildValue("i", rpmfiFColor(s->fi));
}
+/*@null@*/
static PyObject *
rpmfi_FClass(rpmfiObject * s, PyObject * args)
/*@*/
}
#endif
+/*@null@*/
static PyObject *
rpmfi_iternext(rpmfiObject * s)
/*@globals _Py_NoneStruct @*/
}
#ifdef NOTYET
+/*@null@*/
static PyObject *
rpmfi_NextD(rpmfiObject * s, PyObject * args)
/*@*/
return Py_None;
}
+/*@null@*/
static PyObject *
rpmfi_InitD(rpmfiObject * s, PyObject * args)
/*@*/
return rpmfiFC(s->fi);
}
+/*@null@*/
static PyObject *
rpmfi_subscript(rpmfiObject * s, PyObject * key)
/*@modifies s @*/
/*@unchecked@*/
extern PyTypeObject rpmfi_Type;
+/*@null@*/
rpmfi fiFromFi(rpmfiObject * fi)
/*@*/;
+/*@null@*/
rpmfiObject * rpmfi_Wrap(rpmfi fi)
/*@*/;
+/*@null@*/
rpmfiObject * hdr_fiFromHeader(PyObject * s, PyObject * args)
- /*@*/;
+ /*@globals rpmGlobalMacroContext @*/
+ /*@modifies rpmGlobalMacroContext @*/;
#endif
/*@modifies s @*/
{
int ac = 1;
- char * t;
size_t nb;
+/*@-branchstate@*/
if (root == NULL) root = "/";
+/*@=branchstate@*/
if (options == -1) options = (FTS_COMFOLLOW | FTS_LOGICAL | FTS_NOSTAT);
if (ignore == -1) ignore = infoBit(FTS_DP);
nb = (ac + 1) * sizeof(*s->roots);
nb += strlen(root) + 1;
s->roots = malloc(nb);
- t = (char *) &s->roots[ac + 1];
- s->roots[0] = t;
- s->roots[ac] = NULL;
- (void) stpcpy(t, root);
+ if (s->roots != NULL) {
+ char *t = (char *) &s->roots[ac + 1];
+ s->roots[0] = t;
+ s->roots[ac] = NULL;
+ (void) stpcpy(t, root);
+ }
s->options = options;
s->ignore = ignore;
return rc;
}
+/*@null@*/
static PyObject *
rpmfts_step(rpmftsObject * s)
/*@modifies s @*/
* \brief A python rpm.fts object represents an rpm fts(3) handle.
*/
+/*@null@*/
static PyObject *
rpmfts_Debug(/*@unused@*/ rpmftsObject * s, PyObject * args)
/*@globals _Py_NoneStruct @*/
return Py_None;
}
+/*@null@*/
static PyObject *
rpmfts_Open(rpmftsObject * s, PyObject * args)
/*@modifies s @*/
return (PyObject *)s;
}
+/*@null@*/
static PyObject *
rpmfts_Read(rpmftsObject * s, PyObject * args)
/*@globals _Py_NoneStruct @*/
return result;
}
+/*@null@*/
static PyObject *
rpmfts_Children(rpmftsObject * s, PyObject * args)
/*@globals _Py_NoneStruct @*/
return Py_None;
}
+/*@null@*/
static PyObject *
rpmfts_Close(rpmftsObject * s, PyObject * args)
/*@modifies s @*/
return Py_BuildValue("i", rpmfts_state(s, RPMFTS_CLOSE));
}
+/*@null@*/
static PyObject *
rpmfts_Set(rpmftsObject * s, PyObject * args)
/*@modifies s @*/
return (PyObject *)s;
}
+/*@null@*/
static PyObject *
rpmfts_iternext(rpmftsObject * s)
/*@modifies s @*/
return rpmfts_initialize(s, root, options, ignore);
}
+/*@null@*/
static PyObject * rpmfts_new(PyTypeObject *type, PyObject *args, PyObject *kwds)
/*@*/
{
{
static int indent = 2;
- if (!(s && s->ftsp && s->fts))
+ if (!(s != NULL && s->ftsp != NULL && s->fts != NULL))
return -1;
fprintf(fp, "FTS_%-7s %*s%s", ftsInfoStr(s->fts->fts_info),
indent * (s->fts->fts_level < 0 ? 0 : s->fts->fts_level), "",
/**
*/
+/*@null@*/
static PyObject *
rpmmi_iternext(rpmmiObject * s)
/*@globals rpmGlobalMacroContext @*/
/**
*/
+/*@null@*/
static PyObject *
rpmmi_Next(rpmmiObject * s, PyObject *args)
/*@globals rpmGlobalMacroContext, _Py_NoneStruct @*/
/**
*/
+/*@null@*/
static PyObject *
rpmmi_Instance(rpmmiObject * s, PyObject * args)
/*@*/
if (!PyArg_ParseTuple(args, ":Instance"))
return NULL;
- if (s->mi)
+ if (s->mi != NULL)
rc = rpmdbGetIteratorOffset(s->mi);
return Py_BuildValue("i", rc);
/**
*/
+/*@null@*/
static PyObject *
rpmmi_Count(rpmmiObject * s, PyObject * args)
/*@*/
if (!PyArg_ParseTuple(args, ":Instance"))
return NULL;
- if (s->mi)
+ if (s->mi != NULL)
rc = rpmdbGetIteratorCount(s->mi);
return Py_BuildValue("i", rc);
/**
*/
+/*@null@*/
static PyObject *
rpmmi_Pattern(rpmmiObject * s, PyObject * args)
/*@globals rpmGlobalMacroContext, _Py_NoneStruct @*/
/*@unchecked@*/
extern PyTypeObject rpmmi_Type;
+/*@null@*/
rpmmiObject * rpmmi_Wrap(rpmdbMatchIterator mi)
/*@*/;
/**
*/
+/*@null@*/
static PyObject * rpmrc_iternext(PyObject * s)
/*@*/
{
/**
*/
+/*@null@*/
static PyObject * rpmrc_next(PyObject * s, PyObject *args)
/*@*/
{
/** \ingroup py_c
*/
+/*@null@*/
static PyObject * rpmrc_new(PyTypeObject * subtype, PyObject *args, PyObject *kwds)
/*@*/
{
/*@unchecked@*/
extern PyTypeObject rpmrc_Type;
+/*@null@*/
PyObject * rpmrc_AddMacro(PyObject * self, PyObject * args)
/*@globals rpmGlobalMacroContext, _Py_NoneStruct @*/
/*@modifies rpmGlobalMacroContext, _Py_NoneStruct @*/;
+/*@null@*/
PyObject * rpmrc_DelMacro(PyObject * self, PyObject * args)
/*@globals rpmGlobalMacroContext, _Py_NoneStruct @*/
/*@modifies rpmGlobalMacroContext, _Py_NoneStruct @*/;
#if Py_TPFLAGS_HAVE_ITER /* XXX backport to python-1.5.2 */
+/*@null@*/
PyObject * rpmrc_Create(PyObject * self, PyObject * args, PyObject * kwds)
/*@*/;
#endif
* @param tag 'Basenames'
*/
+/*@null@*/
static PyObject *
rpmte_Debug(/*@unused@*/ rpmteObject * s, /*@unused@*/ PyObject * args)
/*@globals _Py_NoneStruct @*/
return Py_None;
}
+/*@null@*/
static PyObject *
rpmte_TEType(rpmteObject * s, PyObject * args)
/*@*/
return Py_BuildValue("i", rpmteType(s->te));
}
+/*@null@*/
static PyObject *
rpmte_N(rpmteObject * s, PyObject * args)
/*@*/
return Py_BuildValue("s", rpmteN(s->te));
}
+/*@null@*/
static PyObject *
rpmte_E(rpmteObject * s, PyObject * args)
/*@*/
return Py_BuildValue("s", rpmteE(s->te));
}
+/*@null@*/
static PyObject *
rpmte_V(rpmteObject * s, PyObject * args)
/*@*/
return Py_BuildValue("s", rpmteV(s->te));
}
+/*@null@*/
static PyObject *
rpmte_R(rpmteObject * s, PyObject * args)
/*@*/
return Py_BuildValue("s", rpmteR(s->te));
}
+/*@null@*/
static PyObject *
rpmte_A(rpmteObject * s, PyObject * args)
/*@*/
return Py_BuildValue("s", rpmteA(s->te));
}
+/*@null@*/
static PyObject *
rpmte_O(rpmteObject * s, PyObject * args)
/*@*/
return Py_BuildValue("s", rpmteO(s->te));
}
+/*@null@*/
static PyObject *
rpmte_NEVR(rpmteObject * s, PyObject * args)
/*@*/
return Py_BuildValue("s", rpmteNEVR(s->te));
}
+/*@null@*/
static PyObject *
rpmte_Color(rpmteObject * s, PyObject * args)
/*@*/
return Py_BuildValue("i", rpmteColor(s->te));
}
+/*@null@*/
static PyObject *
rpmte_PkgFileSize(rpmteObject * s, PyObject * args)
/*@*/
return Py_BuildValue("i", rpmtePkgFileSize(s->te));
}
+/*@null@*/
static PyObject *
rpmte_Depth(rpmteObject * s, PyObject * args)
/*@*/
return Py_BuildValue("i", rpmteDepth(s->te));
}
+/*@null@*/
static PyObject *
rpmte_Npreds(rpmteObject * s, PyObject * args)
/*@*/
return Py_BuildValue("i", rpmteNpreds(s->te));
}
+/*@null@*/
static PyObject *
rpmte_Degree(rpmteObject * s, PyObject * args)
/*@*/
return Py_BuildValue("i", rpmteDegree(s->te));
}
+/*@null@*/
static PyObject *
rpmte_Parent(rpmteObject * s, PyObject * args)
/*@*/
return Py_BuildValue("i", rpmteParent(s->te));
}
+/*@null@*/
static PyObject *
rpmte_Tree(rpmteObject * s, PyObject * args)
/*@*/
return Py_BuildValue("i", rpmteTree(s->te));
}
+/*@null@*/
static PyObject *
rpmte_AddedKey(rpmteObject * s, PyObject * args)
/*@*/
return Py_BuildValue("i", rpmteAddedKey(s->te));
}
+/*@null@*/
static PyObject *
rpmte_DependsOnKey(rpmteObject * s, PyObject * args)
/*@*/
return Py_BuildValue("i", rpmteDependsOnKey(s->te));
}
+/*@null@*/
static PyObject *
rpmte_DBOffset(rpmteObject * s, PyObject * args)
/*@*/
return Py_BuildValue("i", rpmteDBOffset(s->te));
}
+/*@null@*/
static PyObject *
rpmte_Key(rpmteObject * s, PyObject * args)
/*@globals _Py_NoneStruct @*/
return Key;
}
+/*@null@*/
static PyObject *
rpmte_DS(rpmteObject * s, PyObject * args)
/*@globals _Py_NoneStruct @*/
return (PyObject *) rpmds_Wrap(rpmdsLink(ds, "rpmte_DS"));
}
+/*@null@*/
static PyObject *
rpmte_FI(rpmteObject * s, PyObject * args)
/*@globals _Py_NoneStruct @*/
/*@unchecked@*/
extern PyTypeObject rpmte_Type;
+/*@null@*/
rpmteObject * rpmte_Wrap(rpmte te)
/*@*/;
/** \ingroup py_c
*/
+/*@null@*/
static PyObject *
rpmts_Debug(/*@unused@*/ rpmtsObject * s, PyObject * args)
/*@globals _Py_NoneStruct @*/
*/
static void rpmtsAddAvailableElement(rpmts ts, Header h,
/*@exposed@*/ /*@null@*/ fnpyKey key)
- /*@modifies h, ts @*/
+ /*@globals rpmGlobalMacroContext @*/
+ /*@modifies h, ts, rpmGlobalMacroContext @*/
{
int scareMem = 0;
rpmds provides = rpmdsNew(h, RPMTAG_PROVIDENAME, scareMem);
/** \ingroup py_c
*/
+/*@null@*/
static PyObject *
rpmts_AddInstall(rpmtsObject * s, PyObject * args)
/*@globals rpmGlobalMacroContext, _Py_NoneStruct @*/
{
hdrObject * h;
PyObject * key;
- char * how = NULL;
+ char * how = "u"; /* XXX default to upgrade element if missing */
int isUpgrade = 0;
if (!PyArg_ParseTuple(args, "O!O|s:AddInstall", &hdr_Type, &h, &key, &how))
/** \ingroup py_c
* @todo Permit finer control (i.e. not just --allmatches) of deleted elments.
*/
+/*@null@*/
static PyObject *
rpmts_AddErase(rpmtsObject * s, PyObject * args)
/*@globals rpmGlobalMacroContext, _Py_NoneStruct @*/
/** \ingroup py_c
*/
+/*@null@*/
static PyObject *
rpmts_Check(rpmtsObject * s, PyObject * args)
/*@globals rpmGlobalMacroContext, _Py_NoneStruct @*/
PyEval_RestoreThread(cbInfo._save);
- if (ps) {
+ if (ps != NULL) {
list = PyList_New(0);
/* XXX TODO: rpmlib >= 4.0.3 can return multiple suggested keys. */
/** \ingroup py_c
*/
+/*@null@*/
static PyObject *
rpmts_Order(rpmtsObject * s, PyObject * args)
/*@globals rpmGlobalMacroContext @*/
/** \ingroup py_c
*/
+/*@null@*/
static PyObject *
rpmts_Clean(rpmtsObject * s, PyObject * args)
/*@globals _Py_NoneStruct @*/
/** \ingroup py_c
*/
+/*@null@*/
static PyObject *
rpmts_IDTXload(rpmtsObject * s, PyObject * args)
/*@globals rpmGlobalMacroContext, _Py_NoneStruct @*/
idtx = IDTXload(s->ts, tag);
Py_END_ALLOW_THREADS
+/*@-branchstate@*/
if (idtx == NULL || idtx->nidt <= 0) {
Py_INCREF(Py_None);
result = Py_None;
Py_DECREF(ho);
}
}
+/*@=branchstate@*/
idtx = IDTXfree(idtx);
/** \ingroup py_c
*/
+/*@null@*/
static PyObject *
rpmts_IDTXglob(rpmtsObject * s, PyObject * args)
/*@globals rpmGlobalMacroContext, _Py_NoneStruct @*/
globstr = _free(globstr);
Py_END_ALLOW_THREADS
+/*@-branchstate@*/
if (idtx == NULL || idtx->nidt <= 0) {
Py_INCREF(Py_None);
result = Py_None;
Py_DECREF(ho);
}
}
+/*@=branchstate@*/
idtx = IDTXfree(idtx);
/** \ingroup py_c
*/
+/*@null@*/
static PyObject *
rpmts_Rollback(rpmtsObject * s, PyObject * args)
/*@globals rpmGlobalMacroContext @*/
/** \ingroup py_c
*/
+/*@null@*/
static PyObject *
rpmts_OpenDB(rpmtsObject * s, PyObject * args)
/*@globals rpmGlobalMacroContext @*/
/** \ingroup py_c
*/
+/*@null@*/
static PyObject *
rpmts_CloseDB(rpmtsObject * s, PyObject * args)
/*@modifies s @*/
/** \ingroup py_c
*/
+/*@null@*/
static PyObject *
rpmts_InitDB(rpmtsObject * s, PyObject * args)
/*@globals rpmGlobalMacroContext @*/
/** \ingroup py_c
*/
+/*@null@*/
static PyObject *
rpmts_RebuildDB(rpmtsObject * s, PyObject * args)
/*@globals rpmGlobalMacroContext @*/
/** \ingroup py_c
*/
+/*@null@*/
static PyObject *
rpmts_VerifyDB(rpmtsObject * s, PyObject * args)
/*@globals rpmGlobalMacroContext @*/
/** \ingroup py_c
*/
+/*@null@*/
static PyObject *
rpmts_HdrFromFdno(rpmtsObject * s, PyObject * args)
/*@globals rpmGlobalMacroContext, fileSystem @*/
if (_rpmts_debug)
fprintf(stderr, "*** rpmts_HdrFromFdno(%p) ts %p rc %d\n", s, s->ts, rpmrc);
+/*@-branchstate@*/
switch (rpmrc) {
case RPMRC_OK:
if (h)
PyErr_SetString(pyrpmError, "error reading package header");
break;
}
+/*@=branchstate@*/
return result;
}
/** \ingroup py_c
*/
+/*@null@*/
static PyObject *
rpmts_HdrCheck(rpmtsObject * s, PyObject * args)
/*@globals rpmGlobalMacroContext, _Py_NoneStruct @*/
/** \ingroup py_c
*/
+/*@null@*/
static PyObject *
rpmts_SetVSFlags(rpmtsObject * s, PyObject * args)
/*@modifies s @*/
/** \ingroup py_c
*/
+/*@null@*/
static PyObject *
rpmts_SetColor(rpmtsObject * s, PyObject * args)
/*@modifies s @*/
/** \ingroup py_c
*/
+/*@null@*/
static PyObject *
rpmts_PgpPrtPkts(rpmtsObject * s, PyObject * args)
/*@globals _Py_NoneStruct @*/
/** \ingroup py_c
*/
+/*@null@*/
static PyObject *
rpmts_PgpImportPubkey(rpmtsObject * s, PyObject * args)
/*@globals rpmGlobalMacroContext, _Py_NoneStruct @*/
/** \ingroup py_c
*/
+/*@null@*/
static PyObject *
rpmts_GetKeys(rpmtsObject * s, PyObject * args)
/*@globals _Py_NoneStruct @*/
/** \ingroup py_c
*/
+/*@null@*/
static void *
rpmtsCallback(/*@unused@*/ const void * hd, const rpmCallbackType what,
const unsigned long amount, const unsigned long total,
/**
* @todo Add TR_ADDED filter to iterator.
*/
+/*@null@*/
static PyObject *
rpmts_iternext(rpmtsObject * s)
/*@modifies s @*/
}
te = rpmtsiNext(s->tsi, s->tsiFilter);
+/*@-branchstate@*/
if (te != NULL) {
result = (PyObject *) rpmte_Wrap(te);
} else {
s->tsi = rpmtsiFree(s->tsi);
s->tsiFilter = 0;
}
+/*@=branchstate@*/
return result;
}
/**
*/
+/*@null@*/
static rpmmiObject *
rpmts_Match(rpmtsObject * s, PyObject * args)
/*@globals rpmGlobalMacroContext @*/
/** \ingroup py_c
*/
static int rpmts_setattro(PyObject * o, PyObject * n, PyObject * v)
- /*@modifies o @*/
+ /*@*/
{
rpmtsObject *s = (rpmtsObject *)o;
char * name = PyString_AsString(n);
rpmts ts;
PyObject * keyList; /* keeps reference counts correct */
FD_t scriptFd;
+/*@relnull@*/
rpmtsi tsi;
rpmElementType tsiFilter;
rpmprobFilterFlags ignoreSet;
-usedef # 9
# --- not-yet at standard level
--boolops # 116
+-boolops # 117
+boolint # 11
+charint # 146
+ignorequals # 112