Commit 0bd2f4dc authored by Michal Čihař's avatar Michal Čihař

Imported Upstream version 4.7.1

parent ec2d3431
This diff is collapsed.
This diff is collapsed.
......@@ -7,9 +7,7 @@ The latest releases are always available at:
Additional RPM documentation (papers, slides, HOWTOs) can also be
found at the same site: http://rpm.org.
There is a mailing list for discussion of RPM issues, rpm-list@redhat.com.
To subscribe, send a message to rpm-list-request@redhat.com with the word
"subscribe" in the subject line.
http://rpm.org/wiki/Communicate lists all rpm releated mailing lists.
RPM was originally written by:
......
This diff is collapsed.
This diff is collapsed.
......@@ -18,6 +18,7 @@
#include <rpm/rpmlog.h>
#include "rpmio/rpmio_internal.h" /* XXX rpmioSlurp */
#include "rpmio/base64.h"
#include "rpmio/fts.h"
#include "lib/cpio.h"
#include "lib/rpmfi_internal.h" /* XXX fi->apath */
......@@ -990,6 +991,14 @@ static int isDoc(FileList fl, const char * fileName)
return 0;
}
static int isHardLink(FileListRec flp, FileListRec tlp)
{
return ((S_ISREG(flp->fl_mode) && S_ISREG(tlp->fl_mode)) &&
((flp->fl_nlink > 1) && (flp->fl_nlink == tlp->fl_nlink)) &&
(flp->fl_ino == tlp->fl_ino) &&
(flp->fl_dev == tlp->fl_dev));
}
/**
* Verify that file attributes scope over hardlinks correctly.
* If partial hardlink sets are possible, then add tracking dependency.
......@@ -1008,14 +1017,18 @@ static int checkHardLinks(FileList fl)
for (j = i + 1; j < fl->fileListRecsUsed; j++) {
jlp = fl->fileList + j;
if (!S_ISREG(jlp->fl_mode))
continue;
if (ilp->fl_nlink != jlp->fl_nlink)
continue;
if (ilp->fl_ino != jlp->fl_ino)
continue;
if (ilp->fl_dev != jlp->fl_dev)
continue;
if (isHardLink(ilp, jlp)) {
return 1;
}
}
}
return 0;
}
static int seenHardLink(FileList fl, FileListRec flp)
{
for (FileListRec ilp = fl->fileList; ilp < flp; ilp++) {
if (isHardLink(flp, ilp)) {
return 1;
}
}
......@@ -1156,9 +1169,12 @@ static void genCpioListAndHeader(FileList fl,
rpm_off_t rsize32 = (rpm_off_t)flp->fl_size;
headerPutUint32(h, RPMTAG_FILESIZES, &rsize32, 1);
}
/* Excludes and dupes have been filtered out by now */
if (S_ISREG(flp->fl_mode))
totalFileSize += flp->fl_size;
/* Excludes and dupes have been filtered out by now. */
if (S_ISREG(flp->fl_mode)) {
if (flp->fl_nlink == 1 || !seenHardLink(fl, flp)) {
totalFileSize += flp->fl_size;
}
}
/*
* For items whose size varies between systems, always explicitly
......@@ -1479,25 +1495,7 @@ static rpmRC addFile(FileList fl, const char * diskPath,
flp->specdFlags = fl->currentSpecdFlags;
flp->verifyFlags = fl->currentVerifyFlags;
/* Hard links need be counted only once. */
if (S_ISREG(flp->fl_mode) && flp->fl_nlink > 1) {
FileListRec ilp;
for (i = 0; i < fl->fileListRecsUsed; i++) {
ilp = fl->fileList + i;
if (!S_ISREG(ilp->fl_mode))
continue;
if (flp->fl_nlink != ilp->fl_nlink)
continue;
if (flp->fl_ino != ilp->fl_ino)
continue;
if (flp->fl_dev != ilp->fl_dev)
continue;
break;
}
} else
i = fl->fileListRecsUsed;
if (!(flp->flags & RPMFILE_EXCLUDE) && S_ISREG(flp->fl_mode) && i >= fl->fileListRecsUsed) {
if (!(flp->flags & RPMFILE_EXCLUDE) && S_ISREG(flp->fl_mode)) {
/*
* XXX Simple and stupid check for now, this needs to be per-payload
* format check once we have other payloads than good 'ole cpio.
......@@ -1606,12 +1604,10 @@ static rpmRC processMetadataFile(Package pkg, FileList fl,
break;
case RPMTAG_PUBKEYS: {
if ((xx = pgpReadPkts(fn, &pkt, (size_t *)&pktlen)) <= 0) {
rc = RPMRC_FAIL;
rpmlog(RPMLOG_ERR, _("%s: public key read failed.\n"), fn);
goto exit;
}
if (xx != PGPARMOR_PUBKEY) {
rc = RPMRC_FAIL;
rpmlog(RPMLOG_ERR, _("%s: not an armored public key.\n"), fn);
goto exit;
}
......@@ -1620,18 +1616,21 @@ static rpmRC processMetadataFile(Package pkg, FileList fl,
}
case RPMTAG_POLICIES:
if ((xx = rpmioSlurp(fn, &pkt, &pktlen)) != 0 || pkt == NULL) {
rc = RPMRC_FAIL;
rpmlog(RPMLOG_ERR, _("%s: *.te policy read failed.\n"), fn);
rpmlog(RPMLOG_ERR, _("%s: policy file read failed.\n"), fn);
goto exit;
}
apkt = (char *) pkt; /* XXX unsigned char */
pkt = NULL;
apkt = b64encode(pkt, pktlen, -1);
break;
}
headerPutString(pkg->header, tag, apkt);
if (!apkt) {
rpmlog(RPMLOG_ERR, _("%s: failed to encode\n"), fn);
goto exit;
}
headerPutString(pkg->header, tag, apkt);
rc = RPMRC_OK;
if (absolute)
rc = addFile(fl, fn, NULL);
......@@ -1734,35 +1733,33 @@ static rpmRC processPackageFiles(rpmSpec spec, Package pkg,
if (pkg->fileFile) {
char *ffn;
ARGV_t filelists;
FILE *fd;
/* XXX W2DO? urlPath might be useful here. */
if (*pkg->fileFile == '/') {
ffn = rpmGetPath(pkg->fileFile, NULL);
} else {
/* XXX FIXME: add %{buildsubdir} */
argvSplit(&filelists, getStringBuf(pkg->fileFile), "\n");
for (fp = filelists; *fp != NULL; fp++) {
ffn = rpmGetPath("%{_builddir}/",
(spec->buildSubdir ? spec->buildSubdir : "") ,
"/", pkg->fileFile, NULL);
}
fd = fopen(ffn, "r");
"/", *fp, NULL);
fd = fopen(ffn, "r");
if (fd == NULL || ferror(fd)) {
rpmlog(RPMLOG_ERR, _("Could not open %%files file %s: %m\n"), ffn);
return RPMRC_FAIL;
}
ffn = _free(ffn);
while (fgets(buf, sizeof(buf), fd)) {
handleComments(buf);
if (expandMacros(spec, spec->macros, buf, sizeof(buf))) {
rpmlog(RPMLOG_ERR, _("line: %s\n"), buf);
fclose(fd);
if (fd == NULL || ferror(fd)) {
rpmlog(RPMLOG_ERR, _("Could not open %%files file %s: %m\n"), ffn);
return RPMRC_FAIL;
}
appendStringBuf(pkg->fileList, buf);
ffn = _free(ffn);
while (fgets(buf, sizeof(buf), fd)) {
handleComments(buf);
if (expandMacros(spec, spec->macros, buf, sizeof(buf))) {
rpmlog(RPMLOG_ERR, _("line: %s\n"), buf);
fclose(fd);
return RPMRC_FAIL;
}
appendStringBuf(pkg->fileList, buf);
}
(void) fclose(fd);
}
(void) fclose(fd);
}
/* Init the file list structure */
......
......@@ -18,12 +18,11 @@ int parseFiles(rpmSpec spec)
int arg;
const char ** argv = NULL;
const char *name = NULL;
const char *file = NULL;
int flag = PART_SUBNAME;
poptContext optCon = NULL;
struct poptOption optionsTable[] = {
{ NULL, 'n', POPT_ARG_STRING, &name, 'n', NULL, NULL},
{ NULL, 'f', POPT_ARG_STRING, &file, 'f', NULL, NULL},
{ NULL, 'f', POPT_ARG_STRING, NULL, 'f', NULL, NULL},
{ 0, 0, 0, 0, 0, NULL, NULL}
};
......@@ -65,15 +64,13 @@ int parseFiles(rpmSpec spec)
goto exit;
}
if (pkg->fileList != NULL) {
rpmlog(RPMLOG_ERR, _("line %d: Second %%files list\n"),
spec->lineNum);
goto exit;
}
if (file) {
/* XXX not necessary as readline has expanded already, but won't hurt. */
pkg->fileFile = rpmGetPath(file, NULL);
for (arg=1; arg<argc; arg++) {
if (!strcmp(argv[arg], "-f") && argv[arg+1]) {
char *file = rpmGetPath(argv[arg+1], NULL);
if (!pkg->fileFile) pkg->fileFile = newStringBuf();
appendLineStringBuf(pkg->fileFile, file);
free(file);
}
}
pkg->fileList = newStringBuf();
......
......@@ -59,13 +59,10 @@ rpmRC parseRCPOT(rpmSpec spec, Package pkg, const char *field, rpmTag tagN,
h = spec->buildRestrictions;
break;
case RPMTAG_PREREQ:
tagflags |= RPMSENSE_PREREQ;
/* XXX map legacy PreReq into Requires(pre,preun) */
tagflags |= (RPMSENSE_SCRIPT_PRE|RPMSENSE_SCRIPT_PREUN);
h = pkg->header;
break;
case RPMTAG_BUILDPREREQ:
tagflags |= RPMSENSE_PREREQ;
h = spec->buildRestrictions;
break;
case RPMTAG_TRIGGERPREIN:
tagflags |= RPMSENSE_TRIGGERPREIN;
h = pkg->header;
......@@ -82,6 +79,7 @@ rpmRC parseRCPOT(rpmSpec spec, Package pkg, const char *field, rpmTag tagN,
tagflags |= RPMSENSE_TRIGGERUN;
h = pkg->header;
break;
case RPMTAG_BUILDPREREQ:
case RPMTAG_BUILDREQUIRES:
tagflags |= RPMSENSE_ANY;
h = spec->buildRestrictions;
......
......@@ -1349,25 +1349,25 @@ static struct DepMsg_s depMsgs[] = {
0, -1 },
{ "Requires(interp)", { NULL, "interp", NULL, NULL },
RPMTAG_REQUIRENAME, RPMTAG_REQUIREVERSION, RPMTAG_REQUIREFLAGS,
_notpre(RPMSENSE_INTERP), 0 },
RPMSENSE_INTERP, 0 },
{ "Requires(rpmlib)", { NULL, "rpmlib", NULL, NULL },
-1, -1, RPMTAG_REQUIREFLAGS,
_notpre(RPMSENSE_RPMLIB), 0 },
RPMSENSE_RPMLIB, 0 },
{ "Requires(verify)", { NULL, "verify", NULL, NULL },
-1, -1, RPMTAG_REQUIREFLAGS,
RPMSENSE_SCRIPT_VERIFY, 0 },
{ "Requires(pre)", { NULL, "pre", NULL, NULL },
-1, -1, RPMTAG_REQUIREFLAGS,
_notpre(RPMSENSE_SCRIPT_PRE), 0 },
RPMSENSE_SCRIPT_PRE, 0 },
{ "Requires(post)", { NULL, "post", NULL, NULL },
-1, -1, RPMTAG_REQUIREFLAGS,
_notpre(RPMSENSE_SCRIPT_POST), 0 },
RPMSENSE_SCRIPT_POST, 0 },
{ "Requires(preun)", { NULL, "preun", NULL, NULL },
-1, -1, RPMTAG_REQUIREFLAGS,
_notpre(RPMSENSE_SCRIPT_PREUN), 0 },
RPMSENSE_SCRIPT_PREUN, 0 },
{ "Requires(postun)", { NULL, "postun", NULL, NULL },
-1, -1, RPMTAG_REQUIREFLAGS,
_notpre(RPMSENSE_SCRIPT_POSTUN), 0 },
RPMSENSE_SCRIPT_POSTUN, 0 },
{ "Requires", { "%{?__find_requires}", NULL, NULL, NULL },
-1, -1, RPMTAG_REQUIREFLAGS, /* XXX inherit name/version arrays */
RPMSENSE_FIND_REQUIRES|RPMSENSE_TRIGGERIN|RPMSENSE_TRIGGERUN|RPMSENSE_TRIGGERPOSTUN|RPMSENSE_TRIGGERPREIN, 0 },
......
......@@ -169,7 +169,7 @@ struct Package_s {
struct TriggerFileEntry * triggerFiles;
char * fileFile;
StringBuf fileFile;
StringBuf fileList; /* If NULL, package will not be written */
Package next;
......
......@@ -157,7 +157,7 @@ Package freePackage(Package pkg)
pkg->header = headerFree(pkg->header);
pkg->ds = rpmdsFree(pkg->ds);
pkg->fileList = freeStringBuf(pkg->fileList);
pkg->fileFile = _free(pkg->fileFile);
pkg->fileFile = freeStringBuf(pkg->fileFile);
if (pkg->cpioList) {
rpmfi fi = pkg->cpioList;
pkg->cpioList = NULL;
......
......@@ -355,6 +355,10 @@
/* Define to 1 if you have the `__secure_getenv' function. */
#undef HAVE___SECURE_GETENV
/* Define to the sub-directory in which libtool stores uninstalled libraries.
*/
#undef LT_OBJDIR
/* Define to 1 if `major', `minor', and `makedev' are declared in <mkdev.h>.
*/
#undef MAJOR_IN_MKDEV
......
This diff is collapsed.
AC_PREREQ(2.61)
AC_INIT(rpm, 4.7.0, rpm-maint@lists.rpm.org)
AC_INIT(rpm, 4.7.1, rpm-maint@lists.rpm.org)
AC_CONFIG_SRCDIR([rpmqv.c])
AC_CONFIG_HEADERS([config.h])
......
This diff is collapsed.
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
<title>rpm: Doxyheader Source File</title>
<link href="doxygen.css" rel="stylesheet" type="text/css">
<link href="tabs.css" rel="stylesheet" type="text/css">
<link href="doxygen.css" rel="stylesheet" type="text/css">
</head><body>
<!-- Generated by Doxygen 1.5.7.1 -->
<!-- Generated by Doxygen 1.5.8 -->
<div class="navigation" id="top">
<div class="tabs">
<ul>
......@@ -23,8 +23,8 @@
</div>
<h1>Doxyheader</h1><a href="Doxyheader.html">Go to the documentation of this file.</a><div class="fragment"><pre class="fragment"><a name="l00001"></a>00001
</pre></div></div>
<hr size="1"><address style="text-align: right;"><small>Generated on Fri Apr 3 14:41:37 2009 for rpm by&nbsp;
<hr size="1"><address style="text-align: right;"><small>Generated on Tue Jul 14 15:02:07 2009 for rpm by&nbsp;
<a href="http://www.doxygen.org/index.html">
<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.7.1 </small></address>
<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.8 </small></address>
</body>
</html>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
<title>rpm: Doxyheader File Reference</title>
<link href="doxygen.css" rel="stylesheet" type="text/css">
<link href="tabs.css" rel="stylesheet" type="text/css">
<link href="doxygen.css" rel="stylesheet" type="text/css">
</head><body>
<!-- Generated by Doxygen 1.5.7.1 -->
<!-- Generated by Doxygen 1.5.9 -->
<div class="navigation" id="top">
<div class="tabs">
<ul>
......@@ -25,12 +25,12 @@
<div class="contents">
<h1>Doxyheader File Reference</h1>
<p>
<a href="Doxyheader-source.html">Go to the source code of this file.</a><table border="0" cellpadding="0" cellspacing="0">
<a href="Doxyheader_source.html">Go to the source code of this file.</a><table border="0" cellpadding="0" cellspacing="0">
<tr><td></td></tr>
</table>
</div>
<hr size="1"><address style="text-align: right;"><small>Generated on Fri Apr 3 14:41:37 2009 for rpm by&nbsp;
<hr size="1"><address style="text-align: right;"><small>Generated on Tue Jul 21 09:47:55 2009 for rpm by&nbsp;
<a href="http://www.doxygen.org/index.html">
<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.7.1 </small></address>
<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.9 </small></address>
</body>
</html>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
<title>rpm: Doxyheader Source File</title>
<link href="tabs.css" rel="stylesheet" type="text/css">
<link href="doxygen.css" rel="stylesheet" type="text/css">
</head><body>
<!-- Generated by Doxygen 1.5.9 -->
<div class="navigation" id="top">
<div class="tabs">
<ul>
<li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
<li><a href="pages.html"><span>Related&nbsp;Pages</span></a></li>
<li><a href="modules.html"><span>Modules</span></a></li>
<li><a href="annotated.html"><span>Data&nbsp;Structures</span></a></li>
<li class="current"><a href="files.html"><span>Files</span></a></li>
</ul>
</div>
<div class="tabs">
<ul>
<li><a href="files.html"><span>File&nbsp;List</span></a></li>
<li><a href="globals.html"><span>Globals</span></a></li>
</ul>
</div>
<h1>Doxyheader</h1><a href="Doxyheader.html">Go to the documentation of this file.</a><div class="fragment"><pre class="fragment"><a name="l00001"></a>00001
</pre></div></div>
<hr size="1"><address style="text-align: right;"><small>Generated on Tue Jul 21 09:47:55 2009 for rpm by&nbsp;
<a href="http://www.doxygen.org/index.html">
<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.9 </small></address>
</body>
</html>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
<title>rpm: Data Structures</title>
<link href="doxygen.css" rel="stylesheet" type="text/css">
<link href="tabs.css" rel="stylesheet" type="text/css">
<link href="doxygen.css" rel="stylesheet" type="text/css">
</head><body>
<!-- Generated by Doxygen 1.5.7.1 -->
<!-- Generated by Doxygen 1.5.9 -->
<div class="navigation" id="top">
<div class="tabs">
<ul>
......@@ -62,8 +62,8 @@
<tr><td class="indexkey"><a class="el" href="structurlinfo__s.html">urlinfo_s</a></td><td class="indexvalue">URL control structure </td></tr>
</table>
</div>
<hr size="1"><address style="text-align: right;"><small>Generated on Fri Apr 3 14:41:38 2009 for rpm by&nbsp;
<hr size="1"><address style="text-align: right;"><small>Generated on Tue Jul 21 09:47:56 2009 for rpm by&nbsp;
<a href="http://www.doxygen.org/index.html">
<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.7.1 </small></address>
<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.9 </small></address>
</body>
</html>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
<title>rpm: argv.h Source File</title>
<link href="doxygen.css" rel="stylesheet" type="text/css">
<link href="tabs.css" rel="stylesheet" type="text/css">
<link href="doxygen.css" rel="stylesheet" type="text/css">
</head><body>
<!-- Generated by Doxygen 1.5.7.1 -->
<!-- Generated by Doxygen 1.5.8 -->
<div class="navigation" id="top">
<div class="tabs">
<ul>
......@@ -83,8 +83,8 @@
<a name="l00161"></a>00161 <span class="preprocessor"></span>
<a name="l00162"></a>00162 <span class="preprocessor">#endif </span><span class="comment">/* _H_ARGV_ */</span>
</pre></div></div>
<hr size="1"><address style="text-align: right;"><small>Generated on Fri Apr 3 14:41:37 2009 for rpm by&nbsp;
<hr size="1"><address style="text-align: right;"><small>Generated on Tue Jul 14 15:02:07 2009 for rpm by&nbsp;
<a href="http://www.doxygen.org/index.html">
<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.7.1 </small></address>
<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.8 </small></address>
</body>
</html>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
<title>rpm: argv.h File Reference</title>
<link href="doxygen.css" rel="stylesheet" type="text/css">
<link href="tabs.css" rel="stylesheet" type="text/css">
<link href="doxygen.css" rel="stylesheet" type="text/css">
</head><body>
<!-- Generated by Doxygen 1.5.7.1 -->
<!-- Generated by Doxygen 1.5.9 -->
<div class="navigation" id="top">
<div class="tabs">
<ul>
......@@ -33,7 +33,7 @@ Include dependency graph for argv.h:</div>
</div>
<p>
<a href="argv_8h-source.html">Go to the source code of this file.</a><table border="0" cellpadding="0" cellspacing="0">
<a href="argv_8h_source.html">Go to the source code of this file.</a><table border="0" cellpadding="0" cellspacing="0">
<tr><td></td></tr>
<tr><td colspan="2"><br><h2>Data Structures</h2></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">struct &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="structARGI__s.html">ARGI_s</a></td></tr>
......@@ -102,9 +102,9 @@ Include dependency graph for argv.h:</div>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Join an argv array into a string. <a href="group__rpmargv.html#ga2cd5cd79cd2093457d1e8ec8d251142"></a><br></td></tr>
</table>
<hr><a name="_details"></a><h2>Detailed Description</h2>
<hr><h2>Detailed Description</h2>
<p>Definition in file <a class="el" href="argv_8h-source.html">argv.h</a>.</p>
<p>Definition in file <a class="el" href="argv_8h_source.html">argv.h</a>.</p>
<hr><h2>Typedef Documentation</h2>
<a class="anchor" name="06169139595e32faa83d08a85179056f"></a><!-- doxytag: member="argv.h::ARGI_const_t" ref="06169139595e32faa83d08a85179056f" args="" -->
<div class="memitem">
......@@ -119,7 +119,7 @@ Include dependency graph for argv.h:</div>
<p>
<p>Definition at line <a class="el" href="argv_8h-source.html#l00023">23</a> of file <a class="el" href="argv_8h-source.html">argv.h</a>.</p>
<p>Definition at line <a class="el" href="argv_8h_source.html#l00023">23</a> of file <a class="el" href="argv_8h_source.html">argv.h</a>.</p>
</div>
</div><p>
......@@ -136,7 +136,7 @@ Include dependency graph for argv.h:</div>
<p>
<p>Definition at line <a class="el" href="argv_8h-source.html#l00022">22</a> of file <a class="el" href="argv_8h-source.html">argv.h</a>.</p>
<p>Definition at line <a class="el" href="argv_8h_source.html#l00022">22</a> of file <a class="el" href="argv_8h_source.html">argv.h</a>.</p>
</div>
</div><p>
......@@ -153,7 +153,7 @@ Include dependency graph for argv.h:</div>
<p>
<p>Definition at line <a class="el" href="argv_8h-source.html#l00017">17</a> of file <a class="el" href="argv_8h-source.html">argv.h</a>.</p>
<p>Definition at line <a class="el" href="argv_8h_source.html#l00017">17</a> of file <a class="el" href="argv_8h_source.html">argv.h</a>.</p>
</div>
</div><p>
......@@ -170,7 +170,7 @@ Include dependency graph for argv.h:</div>
<p>