* [PATCH] dtc: Consider one-character strings as strings
@ 2020-06-23 9:43 Geert Uytterhoeven
[not found] ` <20200623094343.26010-1-geert+renesas-gXvu3+zWzMSzQB+pC5nmwQ@public.gmane.org>
0 siblings, 1 reply; 2+ messages in thread
From: Geert Uytterhoeven @ 2020-06-23 9:43 UTC (permalink / raw)
To: David Gibson, Jon Loeliger
Cc: devicetree-compiler-u79uwXL29TY76Z2rM5mHXA,
devicetree-u79uwXL29TY76Z2rM5mHXA, Geert Uytterhoeven
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-gXvu3+zWzMSzQB+pC5nmwQ@public.gmane.org>
---
Alternatively, guess_value_type() could check explicitly for "/",
reducing the number of false positives.
However, there seem to be plenty of other uses of one-character strings
in DTS files. The most common one is 'type = "a"' for HDMI connectors.
---
treesource.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/treesource.c b/treesource.c
index 2acb920d77752410..061ba8c9c5e83265 100644
--- a/treesource.c
+++ b/treesource.c
@@ -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)) {
--
2.17.1
^ permalink raw reply related [flat|nested] 2+ messages in thread[parent not found: <20200623094343.26010-1-geert+renesas-gXvu3+zWzMSzQB+pC5nmwQ@public.gmane.org>]
* Re: [PATCH] dtc: Consider one-character strings as strings [not found] ` <20200623094343.26010-1-geert+renesas-gXvu3+zWzMSzQB+pC5nmwQ@public.gmane.org> @ 2020-06-25 1:42 ` David Gibson 0 siblings, 0 replies; 2+ messages in thread From: David Gibson @ 2020-06-25 1:42 UTC (permalink / raw) To: Geert Uytterhoeven Cc: Jon Loeliger, devicetree-compiler-u79uwXL29TY76Z2rM5mHXA, devicetree-u79uwXL29TY76Z2rM5mHXA [-- Attachment #1: Type: text/plain, Size: 1779 bytes --] On Tue, Jun 23, 2020 at 11:43:43AM +0200, Geert Uytterhoeven wrote: > 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-gXvu3+zWzMSzQB+pC5nmwQ@public.gmane.org> Makes sense. Applied, thanks. > --- > Alternatively, guess_value_type() could check explicitly for "/", > reducing the number of false positives. > > However, there seem to be plenty of other uses of one-character strings > in DTS files. The most common one is 'type = "a"' for HDMI connectors. > --- > treesource.c | 2 +- > 1 file changed, 1 insertion(+), 1 deletion(-) > > diff --git a/treesource.c b/treesource.c > index 2acb920d77752410..061ba8c9c5e83265 100644 > --- a/treesource.c > +++ b/treesource.c > @@ -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)) { -- David Gibson | I'll have my music baroque, and my code david AT gibson.dropbear.id.au | minimalist, thank you. NOT _the_ _other_ | _way_ _around_! http://www.ozlabs.org/~dgibson [-- Attachment #2: signature.asc --] [-- Type: application/pgp-signature, Size: 833 bytes --] ^ permalink raw reply [flat|nested] 2+ messages in thread
end of thread, other threads:[~2020-06-25 1:42 UTC | newest]
Thread overview: 2+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2020-06-23 9:43 [PATCH] dtc: Consider one-character strings as strings Geert Uytterhoeven
[not found] ` <20200623094343.26010-1-geert+renesas-gXvu3+zWzMSzQB+pC5nmwQ@public.gmane.org>
2020-06-25 1:42 ` David Gibson
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox; as well as URLs for NNTP newsgroup(s).