Browse Source

Add strstarts() helper function

nodename_from_path() in flattree.c uses strneq() to test that one
string starts with another. This is, in fact, the only correct usage
of strneq() in the entire tree.  To make things harder to confuse, add
a strstarts() function for this purpose.

Signed-off-by: David Gibson <david@gibson.dropbear.id.au>
main
David Gibson 7 years ago
parent
commit
fca296445e
  1. 1
      dtc.h
  2. 2
      flattree.c

1
dtc.h

@ -68,6 +68,7 @@ typedef uint32_t cell_t; @@ -68,6 +68,7 @@ typedef uint32_t cell_t;

#define streq(a, b) (strcmp((a), (b)) == 0)
#define strneq(a, b, n) (strncmp((a), (b), (n)) == 0)
#define strstarts(s, prefix) (strncmp((s), (prefix), strlen(prefix)) == 0)

#define ALIGN(x, a) (((x) + (a) - 1) & ~((a) - 1))


2
flattree.c

@ -731,7 +731,7 @@ static char *nodename_from_path(const char *ppath, const char *cpath) @@ -731,7 +731,7 @@ static char *nodename_from_path(const char *ppath, const char *cpath)

plen = strlen(ppath);

if (!strneq(ppath, cpath, plen))
if (!strstarts(cpath, ppath))
die("Path \"%s\" is not valid as a child of \"%s\"\n",
cpath, ppath);


Loading…
Cancel
Save