public inbox for linux-media@vger.kernel.org
 help / color / mirror / Atom feed
From: Sean Young <sean@mess.org>
To: Matthias Reichl <hias@horus.com>
Cc: Mauro Carvalho Chehab <mchehab@s-opensource.com>,
	linux-media@vger.kernel.org
Subject: Re: [PATCH] v4l-utils: fix invalid protocol in streamzap keymap
Date: Sat, 18 Feb 2017 19:24:43 +0000	[thread overview]
Message-ID: <20170218192443.GA5892@gofer.mess.org> (raw)
In-Reply-To: <20170217091916.GA24266@camel2.lan>

On Fri, Feb 17, 2017 at 10:19:16AM +0100, Matthias Reichl wrote:
> ir-keytable can't load the streamzap keymap because the
> protocol type RC5_SZ is invalid:
> 
> ./ir-keytable -w rc_keymaps/streamzap
> Protocol RC5_SZ invalid
> ...
> 
> Fix this by changing the protocol type to RC-5-SZ which
> matches the kernel protocol rc-5-sz
> 
> Signed-off-by: Matthias Reichl <hias@horus.com>
> ---
>  utils/keytable/rc_keymaps/streamzap | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
> 
> diff --git a/utils/keytable/rc_keymaps/streamzap b/utils/keytable/rc_keymaps/streamzap
> index 3512cd8..03d2cb8 100644
> --- a/utils/keytable/rc_keymaps/streamzap
> +++ b/utils/keytable/rc_keymaps/streamzap

This is file is generated by utils/keytable/gen_keytables.pl, so there is no
use in patching it.

Actually I think a better solution would be to be less pernickety about how
the protocol is specified. ir-ctl also does this. How about the following
patch.

Sean

From: Sean Young <sean@mess.org>
Subject: [PATCH] [PATCH v4l-utils] ir-keytable: be more permissive on protocol
 name

Allowed the protocol to be specified with or without underscores or
dashes. This also solves the problem of not being able to load
the streamzap keymap.

./ir-keytable -w rc_keymaps/streamzap
Protocol RC5_SZ invalid

Reported-by: Matthias Reichl <hias@horus.com>
Signed-off-by: Sean Young <sean@mess.org>
---
 utils/keytable/keytable.c | 20 ++++++++++++++++----
 1 file changed, 16 insertions(+), 4 deletions(-)

diff --git a/utils/keytable/keytable.c b/utils/keytable/keytable.c
index a6ecc9e..a35db5b 100644
--- a/utils/keytable/keytable.c
+++ b/utils/keytable/keytable.c
@@ -120,9 +120,7 @@ const struct protocol_map_entry protocol_map[] = {
 	{ "other",	NULL,		SYSFS_OTHER	},
 	{ "lirc",	NULL,		SYSFS_LIRC	},
 	{ "rc-5",	"/rc5_decoder",	SYSFS_RC5	},
-	{ "rc5",	NULL,		SYSFS_RC5	},
 	{ "rc-5x",	NULL,		SYSFS_INVALID	},
-	{ "rc5x",	NULL,		SYSFS_INVALID	},
 	{ "rc-5-sz",	NULL,		SYSFS_RC5_SZ	},
 	{ "jvc",	"/jvc_decoder",	SYSFS_JVC	},
 	{ "sony",	"/sony_decoder",SYSFS_SONY	},
@@ -134,7 +132,6 @@ const struct protocol_map_entry protocol_map[] = {
 	{ "mce_kbd",	NULL,		SYSFS_MCE_KBD	},
 	{ "mce-kbd",	NULL,		SYSFS_MCE_KBD	},
 	{ "rc-6",	"/rc6_decoder",	SYSFS_RC6	},
-	{ "rc6",	NULL,		SYSFS_RC6	},
 	{ "rc-6-0",	NULL,		SYSFS_INVALID	},
 	{ "rc-6-6a-20",	NULL,		SYSFS_INVALID	},
 	{ "rc-6-6a-24",	NULL,		SYSFS_INVALID	},
@@ -145,6 +142,21 @@ const struct protocol_map_entry protocol_map[] = {
 	{ NULL,		NULL,		SYSFS_INVALID	},
 };
 
+static bool str_like(const char *a, const char *b)
+{
+	while (*a && *b) {
+		if (*a == '-' || *a == '_')
+			a++;
+		if (*b == '-' || *b == '_')
+			b++;
+		if (tolower(*a) != tolower(*b))
+			return false;
+		a++; b++;
+	}
+
+	return !*a && !*b;
+}
+
 static enum sysfs_protocols parse_sysfs_protocol(const char *name, bool all_allowed)
 {
 	const struct protocol_map_entry *pme;
@@ -156,7 +168,7 @@ static enum sysfs_protocols parse_sysfs_protocol(const char *name, bool all_allo
 		return ~0;
 
 	for (pme = protocol_map; pme->name; pme++) {
-		if (!strcasecmp(name, pme->name))
+		if (str_like(name, pme->name))
 			return pme->sysfs_protocol;
 	}
 
-- 
2.9.3

  reply	other threads:[~2017-02-18 19:25 UTC|newest]

Thread overview: 3+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2017-02-17  9:19 [PATCH] v4l-utils: fix invalid protocol in streamzap keymap Matthias Reichl
2017-02-18 19:24 ` Sean Young [this message]
2017-02-20 17:33   ` Matthias Reichl

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20170218192443.GA5892@gofer.mess.org \
    --to=sean@mess.org \
    --cc=hias@horus.com \
    --cc=linux-media@vger.kernel.org \
    --cc=mchehab@s-opensource.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox