v4l-utils: bring back getsubopt patch 12944/head
authorRosen Penev <rosenp@gmail.com>
Sun, 26 Jul 2020 23:14:20 +0000 (16:14 -0700)
committerRosen Penev <rosenp@gmail.com>
Sun, 26 Jul 2020 23:22:12 +0000 (16:22 -0700)
During the update to 1.20.0, this patch was mistakenly removed.

Signed-off-by: Rosen Penev <rosenp@gmail.com>
libs/libv4l/Makefile
libs/libv4l/patches/030-getsubopt.patch [new file with mode: 0644]

index 54dfb43680c7d63899158fc92803831a3ab4e62a..9755f820dcf98912095596a28168aeb96337e52b 100644 (file)
@@ -7,7 +7,7 @@ include $(TOPDIR)/rules.mk
 
 PKG_NAME:=v4l-utils
 PKG_VERSION:=1.20.0
-PKG_RELEASE:=1
+PKG_RELEASE:=2
 
 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.bz2
 PKG_SOURCE_URL:=https://www.linuxtv.org/downloads/v4l-utils
diff --git a/libs/libv4l/patches/030-getsubopt.patch b/libs/libv4l/patches/030-getsubopt.patch
new file mode 100644 (file)
index 0000000..3e48732
--- /dev/null
@@ -0,0 +1,28 @@
+--- a/utils/v4l2-ctl/v4l2-ctl-common.cpp
++++ b/utils/v4l2-ctl/v4l2-ctl-common.cpp
+@@ -785,15 +785,17 @@ static bool parse_subset(char *optarg)
+ static bool parse_next_subopt(char **subs, char **value)
+ {
+-      static char *const subopts[] = {
+-          NULL
+-      };
+-      int opt = getsubopt(subs, subopts, value);
++      char *p = *subs;
++      *value = *subs;
+-      if (opt < 0 || *value)
+-              return false;
+-      fprintf(stderr, "Missing suboption value\n");
+-      return true;
++      while (*p && *p != ',')
++              p++;
++
++      if (*p)
++              *p++ = '\0';
++
++      *subs = p;
++      return false;
+ }
+ void common_cmd(const std::string &media_bus_info, int ch, char *optarg)