The goal of this change is to remove the error-prone duplication
between literal strings and corresponding literal length.
This was almost 100% mechanical:
# Do this:
# - STRNEQLEN((const char *)target, "hd", 2) &&
# + !STRPREFIX((const char *)target, "hd") &&
git grep -l '\<STRNEQLEN *('| f | xargs \
perl -pi -e 's/\bSTRNEQLEN( *\(.*?, *".*?"), \d+\)/!STRPREFIX$1)/'
# Do this:
# - } else if (STREQLEN(key, "vnclisten=", 10)) {
# + } else if (STRPREFIX(key, "vnclisten=")) {
git grep -l '\<STREQLEN *('| f | xargs \
perl -pi -e 's/\bSTREQLEN( *\(.*?, *".*?"), \d+\)/STRPREFIX$1)/'
# Two missed by the above
# src/qemu_conf.c: if (STREQLEN("vnet", (const char*)ifname, 4)) {
# src/xm_internal.c: if (STREQLEN(ent->d_name, QEMU_IF_SCRIPT,
strlen(QEMU_IF_SCRIPT)))
# Since there are 3 more like the latter, do them automatically:
git grep -l '\<STREQLEN *('| f | xargs \
perl -pi -e 's/\bSTREQLEN( *\(.*?, *(\w+)), strlen\(\2\)\)/STRPREFIX$1)/'
I manually reversed the two args with the "vnet" use in qemu_conf.c,
so that the perl code would transform that one, too.
From b043c2d627a7133d75664c01a3fe813b760502e9 Mon Sep 17 00:00:00 2001
From: Jim Meyering <meyering(a)redhat.com>
Date: Thu, 15 May 2008 15:58:23 +0200
Subject: [PATCH] avoid using STREQLEN with a literal; use STRPREFIX instead
Likewise for STRNEQLEN -> !STRPREFIX.
* src/nodeinfo.c (linuxNodeInfoCPUPopulate):
* src/qemu_conf.c (qemudNetworkIfaceConnect):
(qemudParseInterfaceXML):
* src/qemu_driver.c (qemudDomainBlockStats):
* src/remote_internal.c (call):
* src/stats_linux.c (xenLinuxDomainDeviceID):
* src/xend_internal.c (xend_parse_sexp_desc):
(xend_get, sexpr_to_xend_topology):
* src/xm_internal.c (xenXMConfigCacheRefresh)
(xenXMDomainFormatXML):
---
src/nodeinfo.c | 6 +++---
src/qemu_conf.c | 6 +++---
src/qemu_driver.c | 14 +++++++-------
src/remote_internal.c | 2 +-
src/stats_linux.c | 8 ++++----
src/xend_internal.c | 6 +++---
src/xm_internal.c | 14 +++++++-------
7 files changed, 28 insertions(+), 28 deletions(-)
diff --git a/src/nodeinfo.c b/src/nodeinfo.c
index e227c69..b2ef6ee 100644
--- a/src/nodeinfo.c
+++ b/src/nodeinfo.c
@@ -57,7 +57,7 @@ int linuxNodeInfoCPUPopulate(virConnectPtr conn, FILE *cpuinfo,
virNodeInfoPtr n
/* XXX hyperthreads */
while (fgets(line, sizeof(line), cpuinfo) != NULL) {
char *buf = line;
- if (STREQLEN(buf, "processor", 9)) { /* aka a single logical CPU */
+ if (STRPREFIX(buf, "processor")) { /* aka a single logical CPU */
buf += 9;
while (*buf && c_isspace(*buf))
buf++;
@@ -68,7 +68,7 @@ int linuxNodeInfoCPUPopulate(virConnectPtr conn, FILE *cpuinfo,
virNodeInfoPtr n
return -1;
}
nodeinfo->cpus++;
- } else if (STREQLEN(buf, "cpu MHz", 7)) {
+ } else if (STRPREFIX(buf, "cpu MHz")) {
char *p;
unsigned int ui;
buf += 9;
@@ -84,7 +84,7 @@ int linuxNodeInfoCPUPopulate(virConnectPtr conn, FILE *cpuinfo,
virNodeInfoPtr n
/* Accept trailing fractional part. */
&& (*p == '\0' || *p == '.' || c_isspace(*p)))
nodeinfo->mhz = ui;
- } else if (STREQLEN(buf, "cpu cores", 9)) { /* aka cores */
+ } else if (STRPREFIX(buf, "cpu cores")) { /* aka cores */
char *p;
unsigned int id;
buf += 9;
diff --git a/src/qemu_conf.c b/src/qemu_conf.c
index f31b33a..8ae0960 100644
--- a/src/qemu_conf.c
+++ b/src/qemu_conf.c
@@ -816,7 +816,7 @@ static int qemudParseInterfaceXML(virConnectPtr conn,
(net->type == QEMUD_NET_BRIDGE)) &&
xmlStrEqual(cur->name, BAD_CAST "target")) {
ifname = xmlGetProp(cur, BAD_CAST "dev");
- if (STREQLEN("vnet", (const char*)ifname, 4)) {
+ if (STRPREFIX((const char*)ifname, "vnet")) {
/* An auto-generated target name, blank it out */
xmlFree(ifname);
ifname = NULL;
@@ -2130,7 +2130,7 @@ qemudNetworkIfaceConnect(virConnectPtr conn,
}
brname = network->bridge;
if (net->dst.network.ifname[0] == '\0' ||
- STREQLEN(net->dst.network.ifname, "vnet", 4) ||
+ STRPREFIX(net->dst.network.ifname, "vnet") ||
strchr(net->dst.network.ifname, '%')) {
strcpy(net->dst.network.ifname, "vnet%d");
}
@@ -2138,7 +2138,7 @@ qemudNetworkIfaceConnect(virConnectPtr conn,
} else if (net->type == QEMUD_NET_BRIDGE) {
brname = net->dst.bridge.brname;
if (net->dst.bridge.ifname[0] == '\0' ||
- STREQLEN(net->dst.bridge.ifname, "vnet", 4) ||
+ STRPREFIX(net->dst.bridge.ifname, "vnet") ||
strchr(net->dst.bridge.ifname, '%')) {
strcpy(net->dst.bridge.ifname, "vnet%d");
}
diff --git a/src/qemu_driver.c b/src/qemu_driver.c
index 7d52798..6ba6179 100644
--- a/src/qemu_driver.c
+++ b/src/qemu_driver.c
@@ -2650,12 +2650,12 @@ qemudDomainBlockStats (virDomainPtr dom,
* cdrom to ide1-cd0
* fd[a-] to floppy[0-]
*/
- if (STREQLEN (path, "hd", 2) && path[2] >= 'a'
&& path[2] <= 'z')
+ if (STRPREFIX (path, "hd") && path[2] >= 'a' &&
path[2] <= 'z')
snprintf (qemu_dev_name, sizeof (qemu_dev_name),
"ide0-hd%d", path[2] - 'a');
else if (STREQ (path, "cdrom"))
strcpy (qemu_dev_name, "ide1-cd0");
- else if (STREQLEN (path, "fd", 2) && path[2] >= 'a'
&& path[2] <= 'z')
+ else if (STRPREFIX (path, "fd") && path[2] >= 'a'
&& path[2] <= 'z')
snprintf (qemu_dev_name, sizeof (qemu_dev_name),
"floppy%d", path[2] - 'a');
else {
@@ -2679,7 +2679,7 @@ qemudDomainBlockStats (virDomainPtr dom,
* unlikely to be the name of a block device, we can use this
* to detect if qemu supports the command.
*/
- if (STREQLEN (info, "info ", 5)) {
+ if (STRPREFIX (info, "info ")) {
free (info);
qemudReportError (dom->conn, dom, NULL, VIR_ERR_NO_SUPPORT,
"%s",
@@ -2711,19 +2711,19 @@ qemudDomainBlockStats (virDomainPtr dom,
p += len+2; /* Skip to first label. */
while (*p) {
- if (STREQLEN (p, "rd_bytes=", 9)) {
+ if (STRPREFIX (p, "rd_bytes=")) {
p += 9;
if (virStrToLong_ll (p, &dummy, 10, &stats->rd_bytes) ==
-1)
DEBUG ("error reading rd_bytes: %s", p);
- } else if (STREQLEN (p, "wr_bytes=", 9)) {
+ } else if (STRPREFIX (p, "wr_bytes=")) {
p += 9;
if (virStrToLong_ll (p, &dummy, 10, &stats->wr_bytes) ==
-1)
DEBUG ("error reading wr_bytes: %s", p);
- } else if (STREQLEN (p, "rd_operations=", 14)) {
+ } else if (STRPREFIX (p, "rd_operations=")) {
p += 14;
if (virStrToLong_ll (p, &dummy, 10, &stats->rd_req) ==
-1)
DEBUG ("error reading rd_req: %s", p);
- } else if (STREQLEN (p, "wr_operations=", 14)) {
+ } else if (STRPREFIX (p, "wr_operations=")) {
p += 14;
if (virStrToLong_ll (p, &dummy, 10, &stats->wr_req) ==
-1)
DEBUG ("error reading wr_req: %s", p);
diff --git a/src/remote_internal.c b/src/remote_internal.c
index 1b6e9d3..51e8eb7 100644
--- a/src/remote_internal.c
+++ b/src/remote_internal.c
@@ -4339,7 +4339,7 @@ call (virConnectPtr conn, struct private_data *priv,
rerror.domain == VIR_FROM_REMOTE &&
rerror.code == VIR_ERR_RPC &&
rerror.level == VIR_ERR_ERROR &&
- STREQLEN(*rerror.message, "unknown procedure", 17)) {
+ STRPREFIX(*rerror.message, "unknown procedure")) {
return -2;
}
server_error (flags & REMOTE_CALL_IN_OPEN ? NULL : conn, &rerror);
diff --git a/src/stats_linux.c b/src/stats_linux.c
index cb647fe..30a4990 100644
--- a/src/stats_linux.c
+++ b/src/stats_linux.c
@@ -230,7 +230,7 @@ xenLinuxDomainDeviceID(virConnectPtr conn, int domid, const char
*path)
/* Strip leading path if any */
if (strlen(path) > 5 &&
- STREQLEN(path, "/dev/", 5))
+ STRPREFIX(path, "/dev/"))
path += 5;
/*
@@ -251,7 +251,7 @@ xenLinuxDomainDeviceID(virConnectPtr conn, int domid, const char
*path)
*/
if (strlen (path) >= 4 &&
- STREQLEN (path, "xvd", 3)) {
+ STRPREFIX (path, "xvd")) {
/* Xen paravirt device handling */
disk = (path[3] - 'a');
if (disk < 0 || disk > 15) {
@@ -274,7 +274,7 @@ xenLinuxDomainDeviceID(virConnectPtr conn, int domid, const char
*path)
return (XENVBD_MAJOR * 256) + (disk * 16) + part;
} else if (strlen (path) >= 3 &&
- STREQLEN (path, "sd", 2)) {
+ STRPREFIX (path, "sd")) {
/* SCSI device handling */
int majors[] = { SCSI_DISK0_MAJOR, SCSI_DISK1_MAJOR, SCSI_DISK2_MAJOR,
SCSI_DISK3_MAJOR, SCSI_DISK4_MAJOR, SCSI_DISK5_MAJOR,
@@ -318,7 +318,7 @@ xenLinuxDomainDeviceID(virConnectPtr conn, int domid, const char
*path)
return (majors[disk/16] * 256) + ((disk%16) * 16) + part;
} else if (strlen (path) >= 3 &&
- STREQLEN (path, "hd", 2)) {
+ STRPREFIX (path, "hd")) {
/* IDE device handling */
int majors[] = { IDE0_MAJOR, IDE1_MAJOR, IDE2_MAJOR, IDE3_MAJOR,
IDE4_MAJOR, IDE5_MAJOR, IDE6_MAJOR, IDE7_MAJOR,
diff --git a/src/xend_internal.c b/src/xend_internal.c
index 6aecfdd..590fabe 100644
--- a/src/xend_internal.c
+++ b/src/xend_internal.c
@@ -487,7 +487,7 @@ xend_get(virConnectPtr xend, const char *path,
close(s);
if (((ret < 0) || (ret >= 300)) &&
- ((ret != 404) || (STRNEQLEN(path, "/xend/domain/", 13)))) {
+ ((ret != 404) || (!STRPREFIX(path, "/xend/domain/")))) {
virXendError(xend, VIR_ERR_GET_FAILED, content);
}
@@ -1943,7 +1943,7 @@ xend_parse_sexp_desc(virConnectPtr conn, struct sexpr *root,
}
}
- if (STREQLEN(dst, "ioemu:", 6))
+ if (STRPREFIX(dst, "ioemu:"))
dst += 6;
/* New style disk config from Xen >= 3.0.3 */
@@ -2399,7 +2399,7 @@ sexpr_to_xend_topology(virConnectPtr conn,
goto parse_error;
cur++;
virSkipSpaces(&cur);
- if (STREQLEN(cur, "no cpus", 7)) {
+ if (STRPREFIX(cur, "no cpus")) {
nb_cpus = 0;
for (cpu = 0; cpu < numCpus; cpu++)
cpuset[cpu] = 0;
diff --git a/src/xm_internal.c b/src/xm_internal.c
index 393700c..9731125 100644
--- a/src/xm_internal.c
+++ b/src/xm_internal.c
@@ -353,19 +353,19 @@ static int xenXMConfigCacheRefresh (virConnectPtr conn) {
*/
/* Like 'dot' files... */
- if (STREQLEN(ent->d_name, ".", 1))
+ if (STRPREFIX(ent->d_name, "."))
continue;
/* ...and the XenD server config file */
- if (STREQLEN(ent->d_name, XEND_CONFIG_FILE, strlen(XEND_CONFIG_FILE)))
+ if (STRPREFIX(ent->d_name, XEND_CONFIG_FILE))
continue;
/* ...and random PCI config cruft */
- if (STREQLEN(ent->d_name, XEND_PCI_CONFIG_PREFIX,
strlen(XEND_PCI_CONFIG_PREFIX)))
+ if (STRPREFIX(ent->d_name, XEND_PCI_CONFIG_PREFIX))
continue;
/* ...and the example domain configs */
- if (STREQLEN(ent->d_name, XM_EXAMPLE_PREFIX, strlen(XM_EXAMPLE_PREFIX)))
+ if (STRPREFIX(ent->d_name, XM_EXAMPLE_PREFIX))
continue;
/* ...and the QEMU networking script */
- if (STREQLEN(ent->d_name, QEMU_IF_SCRIPT, strlen(QEMU_IF_SCRIPT)))
+ if (STRPREFIX(ent->d_name, QEMU_IF_SCRIPT))
continue;
/* ...and editor backups */
@@ -778,7 +778,7 @@ char *xenXMDomainFormatXML(virConnectPtr conn, virConfPtr conf) {
}
/* And the source driver sub-type */
- if (STREQLEN(drvName, "tap", 3)) {
+ if (STRPREFIX(drvName, "tap")) {
if (!(tmp1 = strchr(tmp+1, ':')) || !tmp1[0])
goto skipdisk;
strncpy(drvType, tmp+1, (tmp1-(tmp+1)));
@@ -795,7 +795,7 @@ char *xenXMDomainFormatXML(virConnectPtr conn, virConfPtr conf) {
}
/* Remove legacy ioemu: junk */
- if (STREQLEN(dev, "ioemu:", 6)) {
+ if (STRPREFIX(dev, "ioemu:")) {
memmove(dev, dev+6, strlen(dev)-5);
}
--
1.5.5.1.148.gbc1be