Browse Source

dtc: Consider one-character strings as strings

When using overlays, a target-path property pointing to the root node is
quite common.  However, "dtc -O dts" prints it as a byte array:

    target-path = [2f 00];

instead of a string:

    target-path = "/";

For guess_value_type() to consider a value to be a string, it must
contain less nul bytes than non-nul bytes, thus ruling out strings
containing only a single character.  Allow printing such strings by
relaxing the condition slightly.

Signed-off-by: Geert Uytterhoeven <geert+renesas@glider.be>
Message-Id: <20200623094343.26010-1-geert+renesas@glider.be>
Signed-off-by: David Gibson <david@gibson.dropbear.id.au>
main
Geert Uytterhoeven 4 years ago committed by David Gibson
parent
commit
9d7888cbf1
  1. 2
      treesource.c

2
treesource.c

@ -183,7 +183,7 @@ static enum markertype guess_value_type(struct property *prop) @@ -183,7 +183,7 @@ static enum markertype guess_value_type(struct property *prop)
nnotcelllbl++;
}

if ((p[len-1] == '\0') && (nnotstring == 0) && (nnul < (len-nnul))
if ((p[len-1] == '\0') && (nnotstring == 0) && (nnul <= (len-nnul))
&& (nnotstringlbl == 0)) {
return TYPE_STRING;
} else if (((len % sizeof(cell_t)) == 0) && (nnotcelllbl == 0)) {

Loading…
Cancel
Save