Eliminate splitString() and freeSplitString()
- use ARGV_t instead, it does the same and more...
This commit is contained in:
parent
7800911bb0
commit
94ff22b129
|
@ -1746,7 +1746,8 @@ static rpmRC processPackageFiles(rpmSpec spec, Package pkg,
|
|||
{
|
||||
HGE_t hge = (HGE_t)headerGetEntryMinMemory;
|
||||
struct FileList_s fl;
|
||||
char *s, **files, **fp;
|
||||
char *s, **fp;
|
||||
ARGV_t files = NULL;
|
||||
const char *fileName;
|
||||
char buf[BUFSIZ];
|
||||
struct AttrRec_s arbuf;
|
||||
|
@ -1851,7 +1852,7 @@ static rpmRC processPackageFiles(rpmSpec spec, Package pkg,
|
|||
fl.fileListRecsUsed = 0;
|
||||
|
||||
s = getStringBuf(pkg->fileList);
|
||||
files = splitString(s, strlen(s), '\n');
|
||||
argvSplit(&files, s, "\n");
|
||||
|
||||
for (fp = files; *fp != NULL; fp++) {
|
||||
s = *fp;
|
||||
|
@ -1955,7 +1956,7 @@ static rpmRC processPackageFiles(rpmSpec spec, Package pkg,
|
|||
specialDoc = _free(specialDoc);
|
||||
}
|
||||
|
||||
freeSplitString(files);
|
||||
argvFree(files);
|
||||
|
||||
if (fl.processingFailed)
|
||||
goto exit;
|
||||
|
@ -2057,7 +2058,8 @@ int processSourceFiles(rpmSpec spec)
|
|||
StringBuf sourceFiles;
|
||||
int x, isSpec = 1;
|
||||
struct FileList_s fl;
|
||||
char *s, **files, **fp;
|
||||
char *s, **fp;
|
||||
ARGV_t files = NULL;
|
||||
Package pkg;
|
||||
static char *_srcdefattr;
|
||||
static int oneshot;
|
||||
|
@ -2135,7 +2137,7 @@ int processSourceFiles(rpmSpec spec)
|
|||
fl.buildRoot = NULL;
|
||||
|
||||
s = getStringBuf(sourceFiles);
|
||||
files = splitString(s, strlen(s), '\n');
|
||||
argvSplit(&files, s, "\n");
|
||||
|
||||
/* The first source file is the spec file */
|
||||
x = 0;
|
||||
|
@ -2197,7 +2199,7 @@ int processSourceFiles(rpmSpec spec)
|
|||
x++;
|
||||
}
|
||||
fl.fileListRecsUsed = x;
|
||||
freeSplitString(files);
|
||||
argvFree(files);
|
||||
|
||||
if (! fl.processingFailed) {
|
||||
if (spec->sourceHeader != NULL)
|
||||
|
|
|
@ -536,7 +536,8 @@ int parsePrep(rpmSpec spec)
|
|||
{
|
||||
int nextPart, res, rc;
|
||||
StringBuf sb;
|
||||
char **lines, **saveLines;
|
||||
char **lines;
|
||||
ARGV_t saveLines = NULL;
|
||||
|
||||
if (spec->prep != NULL) {
|
||||
rpmlog(RPMLOG_ERR, _("line %d: second %%prep\n"), spec->lineNum);
|
||||
|
@ -566,7 +567,7 @@ int parsePrep(rpmSpec spec)
|
|||
return rc;
|
||||
}
|
||||
|
||||
saveLines = splitString(getStringBuf(sb), strlen(getStringBuf(sb)), '\n');
|
||||
argvSplit(&saveLines, getStringBuf(sb), "\n");
|
||||
for (lines = saveLines; *lines; lines++) {
|
||||
res = 0;
|
||||
if (! strncmp(*lines, "%setup", sizeof("%setup")-1)) {
|
||||
|
@ -577,13 +578,13 @@ int parsePrep(rpmSpec spec)
|
|||
appendLineStringBuf(spec->prep, *lines);
|
||||
}
|
||||
if (res && !spec->force) {
|
||||
freeSplitString(saveLines);
|
||||
argvFree(saveLines);
|
||||
sb = freeStringBuf(sb);
|
||||
return res;
|
||||
}
|
||||
}
|
||||
|
||||
freeSplitString(saveLines);
|
||||
argvFree(saveLines);
|
||||
sb = freeStringBuf(sb);
|
||||
|
||||
return nextPart;
|
||||
|
|
|
@ -11,6 +11,7 @@
|
|||
#include <rpm/rpmds.h>
|
||||
#include <rpm/rpmfileutil.h>
|
||||
#include <rpm/rpmstring.h>
|
||||
#include <rpm/argv.h>
|
||||
|
||||
#include "rpmdb/rpmdb_internal.h" /* XXX for dbiIndexSetCount */
|
||||
#include "rpmdb/fprint.h"
|
||||
|
@ -643,8 +644,8 @@ static void skipFiles(const rpmts ts, rpmfi fi)
|
|||
rpm_color_t FColor;
|
||||
int noConfigs = (rpmtsFlags(ts) & RPMTRANS_FLAG_NOCONFIGS);
|
||||
int noDocs = (rpmtsFlags(ts) & RPMTRANS_FLAG_NODOCS);
|
||||
char ** netsharedPaths = NULL;
|
||||
char ** languages;
|
||||
ARGV_t netsharedPaths = NULL;
|
||||
ARGV_t languages = NULL;
|
||||
const char * dn, * bn;
|
||||
size_t dnlen, bnlen;
|
||||
char * s;
|
||||
|
@ -657,8 +658,9 @@ static void skipFiles(const rpmts ts, rpmfi fi)
|
|||
noDocs = rpmExpandNumeric("%{_excludedocs}");
|
||||
|
||||
{ char *tmpPath = rpmExpand("%{_netsharedpath}", NULL);
|
||||
if (tmpPath && *tmpPath != '%')
|
||||
netsharedPaths = splitString(tmpPath, strlen(tmpPath), ':');
|
||||
if (tmpPath && *tmpPath != '%') {
|
||||
argvSplit(&netsharedPaths, tmpPath, ":");
|
||||
}
|
||||
tmpPath = _free(tmpPath);
|
||||
}
|
||||
|
||||
|
@ -666,7 +668,7 @@ static void skipFiles(const rpmts ts, rpmfi fi)
|
|||
if (!(s && *s != '%'))
|
||||
s = _free(s);
|
||||
if (s) {
|
||||
languages = splitString(s, strlen(s), ':');
|
||||
argvSplit(&languages, s, ":");
|
||||
s = _free(s);
|
||||
} else
|
||||
languages = NULL;
|
||||
|
@ -845,11 +847,11 @@ static void skipFiles(const rpmts ts, rpmfi fi)
|
|||
}
|
||||
}
|
||||
|
||||
if (netsharedPaths) freeSplitString(netsharedPaths);
|
||||
if (netsharedPaths) argvFree(netsharedPaths);
|
||||
#ifdef DYING /* XXX freeFi will deal with this later. */
|
||||
fi->flangs = _free(fi->flangs);
|
||||
#endif
|
||||
if (languages) freeSplitString((char **)languages);
|
||||
if (languages) argvFree(languages);
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
|
@ -26,49 +26,6 @@ char * stripTrailingChar(char * s, char c)
|
|||
return s;
|
||||
}
|
||||
|
||||
char ** splitString(const char * str, size_t length, char sep)
|
||||
{
|
||||
const char * source;
|
||||
char * s, * dest;
|
||||
char ** list;
|
||||
int i;
|
||||
int fields;
|
||||
|
||||
s = xmalloc(length + 1);
|
||||
|
||||
fields = 1;
|
||||
for (source = str, dest = s, i = 0; i < length; i++, source++, dest++) {
|
||||
*dest = *source;
|
||||
if (*dest == sep) fields++;
|
||||
}
|
||||
|
||||
*dest = '\0';
|
||||
|
||||
list = xmalloc(sizeof(*list) * (fields + 1));
|
||||
|
||||
dest = s;
|
||||
list[0] = dest;
|
||||
i = 1;
|
||||
while (i < fields) {
|
||||
if (*dest == sep) {
|
||||
list[i++] = dest + 1;
|
||||
*dest = 0;
|
||||
}
|
||||
dest++;
|
||||
}
|
||||
|
||||
list[i] = NULL;
|
||||
|
||||
/* FIX: list[i] is NULL */
|
||||
return list;
|
||||
}
|
||||
|
||||
void freeSplitString(char ** list)
|
||||
{
|
||||
list[0] = _free(list[0]);
|
||||
list = _free(list);
|
||||
}
|
||||
|
||||
StringBuf newStringBuf(void)
|
||||
{
|
||||
StringBuf sb = xmalloc(sizeof(*sb));
|
||||
|
|
|
@ -136,21 +136,6 @@ char *rstrscat(char **dest, const char *arg, ...) RPM_GNUC_NULL_TERMINATED;
|
|||
*/
|
||||
size_t rstrlcpy(char *dest, const char *src, size_t n);
|
||||
|
||||
/** \ingroup rpmstring
|
||||
* Split string into fields separated by a character.
|
||||
* @param str string
|
||||
* @param length length of string
|
||||
* @param sep separator character
|
||||
* @return (malloc'd) argv array
|
||||
*/
|
||||
char ** splitString(const char * str, size_t length, char sep);
|
||||
|
||||
/** \ingroup rpmstring
|
||||
* Free split string argv array.
|
||||
* @param list argv array
|
||||
*/
|
||||
void freeSplitString( char ** list);
|
||||
|
||||
/** \ingroup rpmstring
|
||||
* Remove occurences of trailing character from string.
|
||||
* @param s string
|
||||
|
|
Loading…
Reference in New Issue