Messages in this thread | | | Date | Tue, 30 Aug 2022 14:03:30 +0200 | From | Maxime Ripard <> | Subject | Re: [PATCH v2 14/41] drm/modes: Move named modes parsing to a separate function |
| |
Hi,
On Tue, Aug 30, 2022 at 01:43:07PM +0300, Jani Nikula wrote: > On Tue, 30 Aug 2022, Geert Uytterhoeven <geert@linux-m68k.org> wrote: > > On Mon, Aug 29, 2022 at 3:13 PM Maxime Ripard <maxime@cerno.tech> wrote: > >> +#define STR_STRICT_EQ(str, len, cmp) \ > >> + ((strlen(cmp) == len) && !strncmp(str, cmp, len)) > > > > This is not part of the move, but newly added. > > The same construct is also duplicated elsewhere in the series, and I > kept being confused by it.
I'm not sure what is confusing, but I can add a comment if needed.
> The above is precisely the same as: > > str_has_prefix(str, cmp) == len
Here, it's used to make sure we don't have a named mode starting with either e, d, or D.
If I understood str_has_prefix() right, str_has_prefix("DUMB-MODE", "D") == strlen("DUMB-MODE") would return true, while it's actually what we want to avoid.
It's also used indeed in drm_get_tv_mode_from_name(), where we try to match a list of names with one passed as argument.
With drm_get_tv_mode_from_name("NSTC", strlen("NTSC")), we would end up calling str_has_prefix("NTSC-J", "NTSC") == strlen("NTSC-J") which would work. However, we end up calling prefix not a prefix, but an entire string we want to match against, which is very confusing to me too.
Maxime
| |