* [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
* 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).