Script 'mail_helper' called by obssrc
Hello community,

here is the log from the commit of package libyui for openSUSE:Factory checked 
in at 2021-05-05 20:39:44
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/libyui (Old)
 and      /work/SRC/openSUSE:Factory/.libyui.new.2988 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "libyui"

Wed May  5 20:39:44 2021 rev:62 rq:890629 version:4.2.10

Changes:
--------
--- /work/SRC/openSUSE:Factory/libyui/libyui.changes    2021-05-01 
00:46:17.463560963 +0200
+++ /work/SRC/openSUSE:Factory/.libyui.new.2988/libyui.changes  2021-05-05 
20:39:47.794968881 +0200
@@ -1,0 +2,15 @@
+Mon May  3 15:34:39 UTC 2021 - Stefan Hundhammer <shundham...@suse.com>
+
+- Added pkgconfig files for libyui-qt and libyui-ncurses
+  for writing extensions of the Qt and NCurses plug-ins
+  (GitHub issue #9 / bsc#1139747)
+- 4.2.10
+
+-------------------------------------------------------------------
+Thu Apr 29 12:37:17 UTC 2021 - Oleksandr Orlov <oor...@suse.com>
+
+- Ignore ampersand when search item in YMenuWidget and YDumbTab
+  with rest-api (bsc#1139747)
+- 4.2.9  
+
+-------------------------------------------------------------------

Old:
----
  libyui-4.2.8.tar.bz2

New:
----
  libyui-4.2.10.tar.bz2

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Other differences:
------------------
++++++ libyui-bindings.spec ++++++
--- /var/tmp/diff_new_pack.JILJmJ/_old  2021-05-05 20:39:48.534965705 +0200
+++ /var/tmp/diff_new_pack.JILJmJ/_new  2021-05-05 20:39:48.538965688 +0200
@@ -20,7 +20,7 @@
 Name:           libyui-bindings
 
 # DO NOT manually bump the version here; instead, use rake version:bump
-Version:        4.2.8
+Version:        4.2.10
 Release:        0
 Summary:        Bindings for libyui
 License:        LGPL-2.1-only OR LGPL-3.0-only

++++++ libyui-ncurses-pkg.spec ++++++
--- /var/tmp/diff_new_pack.JILJmJ/_old  2021-05-05 20:39:48.554965619 +0200
+++ /var/tmp/diff_new_pack.JILJmJ/_new  2021-05-05 20:39:48.558965602 +0200
@@ -19,7 +19,7 @@
 Name:           libyui-ncurses-pkg
 
 # DO NOT manually bump the version here; instead, use rake version:bump
-Version:        4.2.8
+Version:        4.2.10
 Release:        0
 
 %define         so_version 15

libyui-ncurses-rest-api.spec: same change
++++++ libyui-ncurses.spec ++++++
--- /var/tmp/diff_new_pack.JILJmJ/_old  2021-05-05 20:39:48.594965448 +0200
+++ /var/tmp/diff_new_pack.JILJmJ/_new  2021-05-05 20:39:48.598965431 +0200
@@ -19,7 +19,7 @@
 Name:           libyui-ncurses
 
 # DO NOT manually bump the version here; instead, use rake version:bump
-Version:        4.2.8
+Version:        4.2.10
 Release:        0
 
 %define         so_version 15
@@ -136,6 +136,7 @@
 %dir %{_docdir}/%{bin_name}
 %{_libdir}/yui/lib*.so
 %{_prefix}/include/yui
+%{_libdir}/pkgconfig/%{name}.pc
 
 %files tools
 %defattr(-,root,root)

++++++ libyui-qt-graph.spec ++++++
--- /var/tmp/diff_new_pack.JILJmJ/_old  2021-05-05 20:39:48.614965362 +0200
+++ /var/tmp/diff_new_pack.JILJmJ/_new  2021-05-05 20:39:48.618965345 +0200
@@ -19,7 +19,7 @@
 Name:           libyui-qt-graph
 
 # DO NOT manually bump the version here; instead, use   rake version:bump
-Version:        4.2.8
+Version:        4.2.10
 Release:        0
 
 %define         so_version 15

++++++ libyui-qt-pkg.spec ++++++
--- /var/tmp/diff_new_pack.JILJmJ/_old  2021-05-05 20:39:48.634965276 +0200
+++ /var/tmp/diff_new_pack.JILJmJ/_new  2021-05-05 20:39:48.638965259 +0200
@@ -19,7 +19,7 @@
 Name:           libyui-qt-pkg
 
 # DO NOT manually bump the version here; instead, use rake version:bump
-Version:        4.2.8
+Version:        4.2.10
 Release:        0
 
 %define         so_version 15

libyui-qt-rest-api.spec: same change
++++++ libyui-qt.spec ++++++
--- /var/tmp/diff_new_pack.JILJmJ/_old  2021-05-05 20:39:48.682965070 +0200
+++ /var/tmp/diff_new_pack.JILJmJ/_new  2021-05-05 20:39:48.686965053 +0200
@@ -19,7 +19,7 @@
 Name:           libyui-qt
 
 # DO NOT manually bump the version here; instead, use rake version:bump
-Version:        4.2.8
+Version:        4.2.10
 Release:        0
 
 %define         so_version 15
@@ -126,5 +126,6 @@
 %defattr(-,root,root)
 %{_libdir}/yui/lib*.so
 %{_includedir}/yui/qt
+%{_libdir}/pkgconfig/%{name}.pc
 
 %changelog

++++++ libyui-rest-api.spec ++++++
--- /var/tmp/diff_new_pack.JILJmJ/_old  2021-05-05 20:39:48.710964950 +0200
+++ /var/tmp/diff_new_pack.JILJmJ/_new  2021-05-05 20:39:48.714964933 +0200
@@ -19,7 +19,7 @@
 Name:           libyui-rest-api
 
 # DO NOT manually bump the version here; instead, use rake version:bump
-Version:        4.2.8
+Version:        4.2.10
 Release:        0
 
 %define         so_version 15

libyui.spec: same change
++++++ libyui-4.2.8.tar.bz2 -> libyui-4.2.10.tar.bz2 ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/libyui-4.2.8/README.md new/libyui-4.2.10/README.md
--- old/libyui-4.2.8/README.md  2021-04-29 13:48:48.000000000 +0200
+++ new/libyui-4.2.10/README.md 2021-05-05 10:55:01.000000000 +0200
@@ -7,7 +7,7 @@
 Libyui is a widget abstraction library providing graphical (Qt) and
 text-based (NCurses) front-ends.
 
-The is also a Gtk front-end with (limited) community support.
+There is also a Gtk front-end with (limited) community support.
 
 Originally, libyui was developed for [YaST](https://yast.github.io/), but it
 can be also used in independent projects.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/libyui-4.2.8/Rakefile new/libyui-4.2.10/Rakefile
--- old/libyui-4.2.8/Rakefile   2021-04-29 13:48:48.000000000 +0200
+++ new/libyui-4.2.10/Rakefile  2021-05-05 10:55:01.000000000 +0200
@@ -25,7 +25,7 @@
   conf.skip_license_check << /CMakeLists\.txt$/
   conf.skip_license_check << /src\/.*\.h\.in$/
   conf.skip_license_check << /src\/icons\/.*\.svg$/
-  conf.skip_license_check << /^libyui\/pkgconfig\/.*\.pc\.in$/
+  conf.skip_license_check << /\/pkgconfig\/.*\.pc\.in$/
   conf.skip_license_check << /^libyui-bindings\/.*/
   conf.skip_license_check << /^libyui-qt\/src\/lang_fonts/
 end
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/libyui-4.2.8/VERSION.cmake 
new/libyui-4.2.10/VERSION.cmake
--- old/libyui-4.2.8/VERSION.cmake      2021-04-29 13:48:48.000000000 +0200
+++ new/libyui-4.2.10/VERSION.cmake     2021-05-05 10:55:01.000000000 +0200
@@ -1,6 +1,6 @@
 SET( VERSION_MAJOR "4")
 SET( VERSION_MINOR "2" )
-SET( VERSION_PATCH "8" )
+SET( VERSION_PATCH "10" )
 SET( VERSION "${VERSION_MAJOR}.${VERSION_MINOR}.${VERSION_PATCH}" )
 
 SET( SONAME_MAJOR "15" )
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/libyui-4.2.8/libyui/pkgconfig/CMakeLists.txt 
new/libyui-4.2.10/libyui/pkgconfig/CMakeLists.txt
--- old/libyui-4.2.8/libyui/pkgconfig/CMakeLists.txt    2021-04-29 
13:48:48.000000000 +0200
+++ new/libyui-4.2.10/libyui/pkgconfig/CMakeLists.txt   2021-05-05 
10:55:01.000000000 +0200
@@ -9,9 +9,7 @@
 # flags (-lyui), compiler flags (including include directories) and paths.
 # See man pkg-config.
 #
-# Notice that libyui this is the ONLY libyui* package where a .pc file makes
-# sense since the API is defined only by libyui, not by libyui-qt,
-# libyui-ncurses or any other libyui package.
+# This .pc file is the only one used for applications that use the C++ API.
 
 include( ../../VERSION.cmake )
 include( GNUInstallDirs )       # set CMAKE_INSTALL_LIBDIR
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/libyui-4.2.8/libyui/pkgconfig/libyui.pc.in 
new/libyui-4.2.10/libyui/pkgconfig/libyui.pc.in
--- old/libyui-4.2.8/libyui/pkgconfig/libyui.pc.in      2021-04-29 
13:48:48.000000000 +0200
+++ new/libyui-4.2.10/libyui/pkgconfig/libyui.pc.in     2021-05-05 
10:55:01.000000000 +0200
@@ -10,8 +10,8 @@
 datarootdir=${exec_prefix}/share
 datadir=${datarootdir}/libyui
 libdir=${exec_prefix}/@CMAKE_INSTALL_LIBDIR@
-includedir=${exec_prefix}/include/yui
-plugindir=${exec_prefix}/@CMAKE_INSTALL_DIR@yui
+includedir=${exec_prefix}/include
+plugindir=${exec_prefix}/@CMAKE_INSTALL_LIBDIR@/yui
 
 soversion_major=@SONAME_MAJOR@
 soversion_minor=@SONAME_MINOR@
@@ -23,4 +23,4 @@
 Description: libyui - GUI-abstraction library
 Libs: -L${libdir} -lyui
 Libs.private: -ldl -lpthread
-Cflags: -I${includedir}
+Cflags: -I${includedir} -I${includedir}/yui
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/libyui-4.2.8/libyui-ncurses/CMakeLists.txt 
new/libyui-4.2.10/libyui-ncurses/CMakeLists.txt
--- old/libyui-4.2.8/libyui-ncurses/CMakeLists.txt      2021-04-29 
13:48:48.000000000 +0200
+++ new/libyui-4.2.10/libyui-ncurses/CMakeLists.txt     2021-05-05 
10:55:01.000000000 +0200
@@ -24,6 +24,7 @@
 
 option( BUILD_SRC         "Build in src/ subdirectory"                on )
 option( BUILD_DOC         "Build class documentation"                 off )
+option( BUILD_PKGCONFIG   "Build pkg-config support files"            on  )
 option( WERROR            "Treat all compiler warnings as errors"     on  )
 
 
@@ -67,6 +68,14 @@
 # Descend into subdirectories
 #
 
+# Build and install auxiliary files first so this doesn't scroll away any 
important messages
+
+if ( BUILD_PKGCONFIG )
+  add_subdirectory( pkgconfig )
+endif()
+
+#----------------------------------------------------------------------
+
 if ( BUILD_SRC )
   add_subdirectory( src )
 endif()
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/libyui-4.2.8/libyui-ncurses/pkgconfig/CMakeLists.txt 
new/libyui-4.2.10/libyui-ncurses/pkgconfig/CMakeLists.txt
--- old/libyui-4.2.8/libyui-ncurses/pkgconfig/CMakeLists.txt    1970-01-01 
01:00:00.000000000 +0100
+++ new/libyui-4.2.10/libyui-ncurses/pkgconfig/CMakeLists.txt   2021-05-05 
10:55:01.000000000 +0200
@@ -0,0 +1,25 @@
+# CMakeLists.txt for libyui-ncurses/pkgconfig
+#
+# Support for pkg-config:
+#
+# Generate a libyui-ncurses.pc file from libyui-ncurses.pc.in and install it to
+# /usr/lib64/pkgconfig.
+#
+# A .pc file specifies how to use a development package, in particular linker
+# flags (-lyui), compiler flags (including include directories) and paths.
+# See man pkg-config.
+#
+# This .pc file is intended for extensions of the NCurses UI plug-in, not for
+# applications using libyui.
+
+include( ../../VERSION.cmake )
+include( GNUInstallDirs )       # set CMAKE_INSTALL_LIBDIR
+
+
+set( PKGCONFIG_INSTALL_DIR 
${DESTDIR}${CMAKE_INSTALL_PREFIX}/${CMAKE_INSTALL_LIBDIR}/pkgconfig )
+
+# Generate libyui-ncurses.pc where some CMake variables are expanded from 
libyui-ncurses.pc.in,
+# but only expand @VARIABLE@, not ${VARIABLE}
+configure_file( libyui-ncurses.pc.in libyui-ncurses.pc @ONLY )
+
+install( FILES ${CMAKE_CURRENT_BINARY_DIR}/libyui-ncurses.pc DESTINATION 
${PKGCONFIG_INSTALL_DIR} )
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/libyui-4.2.8/libyui-ncurses/pkgconfig/libyui-ncurses.pc.in 
new/libyui-4.2.10/libyui-ncurses/pkgconfig/libyui-ncurses.pc.in
--- old/libyui-4.2.8/libyui-ncurses/pkgconfig/libyui-ncurses.pc.in      
1970-01-01 01:00:00.000000000 +0100
+++ new/libyui-4.2.10/libyui-ncurses/pkgconfig/libyui-ncurses.pc.in     
2021-05-05 10:55:01.000000000 +0200
@@ -0,0 +1,23 @@
+#
+# Pkg-Config file for libyui-ncurses
+#
+# Generated by CMake from libyui-ncurses.pc.in
+#
+
+prefix=@CMAKE_INSTALL_PREFIX@
+exec_prefix=${prefix}
+
+libdir=${exec_prefix}/@CMAKE_INSTALL_LIBDIR@
+includedir=${exec_prefix}/include
+plugindir=${exec_prefix}/@CMAKE_INSTALL_LIBDIR@/yui
+
+soversion_major=@SONAME_MAJOR@
+soversion_minor=@SONAME_MINOR@
+soversion_patch=@SONAME_PATCH@
+soversion=@SONAME@
+
+Name: libyui-ncurses
+Version: @VERSION@
+Description: libyui-ncurses - NCurses plug-in for libyui
+Libs: -L${plugindir} -lyui-ncurses
+Cflags: -I${includedir} -I${includedir}/yui -I${includedir}/yui/ncurses
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/libyui-4.2.8/libyui-ncurses-pkg/src/NCPkgFilterPattern.cc 
new/libyui-4.2.10/libyui-ncurses-pkg/src/NCPkgFilterPattern.cc
--- old/libyui-4.2.8/libyui-ncurses-pkg/src/NCPkgFilterPattern.cc       
2021-04-29 13:48:48.000000000 +0200
+++ new/libyui-4.2.10/libyui-ncurses-pkg/src/NCPkgFilterPattern.cc      
2021-05-05 10:55:01.000000000 +0200
@@ -54,7 +54,7 @@
 
 struct paircmp
 {
-    bool operator() (std::pair<std::string, std::string> p1, 
std::pair<std::string, std::string> p2)
+    bool operator() (std::pair<std::string, std::string> p1, 
std::pair<std::string, std::string> p2) const
     {
        if ( p1.second != p2.second )
             return p1.second < p2.second;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/libyui-4.2.8/libyui-qt/CMakeLists.txt 
new/libyui-4.2.10/libyui-qt/CMakeLists.txt
--- old/libyui-4.2.8/libyui-qt/CMakeLists.txt   2021-04-29 13:48:48.000000000 
+0200
+++ new/libyui-4.2.10/libyui-qt/CMakeLists.txt  2021-05-05 10:55:01.000000000 
+0200
@@ -24,6 +24,7 @@
 
 option( BUILD_SRC         "Build in src/ subdirectory"                on )
 option( BUILD_DOC         "Build class documentation"                 off )
+option( BUILD_PKGCONFIG   "Build pkg-config support files"            on  )
 option( WERROR            "Treat all compiler warnings as errors"     on  )
 
 
@@ -67,6 +68,14 @@
 # Descend into subdirectories
 #
 
+# Build and install auxiliary files first so this doesn't scroll away any 
important messages
+
+if ( BUILD_PKGCONFIG )
+  add_subdirectory( pkgconfig )
+endif()
+
+#----------------------------------------------------------------------
+
 if ( BUILD_SRC )
   add_subdirectory( src )
 endif()
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/libyui-4.2.8/libyui-qt/pkgconfig/CMakeLists.txt 
new/libyui-4.2.10/libyui-qt/pkgconfig/CMakeLists.txt
--- old/libyui-4.2.8/libyui-qt/pkgconfig/CMakeLists.txt 1970-01-01 
01:00:00.000000000 +0100
+++ new/libyui-4.2.10/libyui-qt/pkgconfig/CMakeLists.txt        2021-05-05 
10:55:01.000000000 +0200
@@ -0,0 +1,25 @@
+# CMakeLists.txt for libyui-qt/pkgconfig
+#
+# Support for pkg-config:
+#
+# Generate a libyui-qt.pc file from libyui-qt.pc.in and install it to
+# /usr/lib64/pkgconfig.
+#
+# A .pc file specifies how to use a development package, in particular linker
+# flags (-lyui), compiler flags (including include directories) and paths.
+# See man pkg-config.
+#
+# This .pc file is intended for extensions of the Qt UI plug-in, not for
+# applications using libyui.
+
+include( ../../VERSION.cmake )
+include( GNUInstallDirs )       # set CMAKE_INSTALL_LIBDIR
+
+
+set( PKGCONFIG_INSTALL_DIR 
${DESTDIR}${CMAKE_INSTALL_PREFIX}/${CMAKE_INSTALL_LIBDIR}/pkgconfig )
+
+# Generate libyui-qt.pc where some CMake variables are expanded from 
libyui-qt.pc.in,
+# but only expand @VARIABLE@, not ${VARIABLE}
+configure_file( libyui-qt.pc.in libyui-qt.pc @ONLY )
+
+install( FILES ${CMAKE_CURRENT_BINARY_DIR}/libyui-qt.pc DESTINATION 
${PKGCONFIG_INSTALL_DIR} )
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/libyui-4.2.8/libyui-qt/pkgconfig/libyui-qt.pc.in 
new/libyui-4.2.10/libyui-qt/pkgconfig/libyui-qt.pc.in
--- old/libyui-4.2.8/libyui-qt/pkgconfig/libyui-qt.pc.in        1970-01-01 
01:00:00.000000000 +0100
+++ new/libyui-4.2.10/libyui-qt/pkgconfig/libyui-qt.pc.in       2021-05-05 
10:55:01.000000000 +0200
@@ -0,0 +1,23 @@
+#
+# Pkg-Config file for libyui-qt
+#
+# Generated by CMake from libyui-qt.pc.in
+#
+
+prefix=@CMAKE_INSTALL_PREFIX@
+exec_prefix=${prefix}
+
+libdir=${exec_prefix}/@CMAKE_INSTALL_LIBDIR@
+includedir=${exec_prefix}/include
+plugindir=${exec_prefix}/@CMAKE_INSTALL_LIBDIR@/yui
+
+soversion_major=@SONAME_MAJOR@
+soversion_minor=@SONAME_MINOR@
+soversion_patch=@SONAME_PATCH@
+soversion=@SONAME@
+
+Name: libyui-qt
+Version: @VERSION@
+Description: libyui-qt - Qt plug-in for libyui
+Libs: -L${plugindir} -lyui-qt
+Cflags: -I${includedir} -I${includedir}/yui -I${includedir}/yui/qt
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/libyui-4.2.8/libyui-rest-api/doc/API_v1.md 
new/libyui-4.2.10/libyui-rest-api/doc/API_v1.md
--- old/libyui-4.2.8/libyui-rest-api/doc/API_v1.md      2021-04-29 
13:48:48.000000000 +0200
+++ new/libyui-4.2.10/libyui-rest-api/doc/API_v1.md     2021-05-05 
10:55:01.000000000 +0200
@@ -27,7 +27,8 @@
 
 This is the specification of the version `1` of the API.
 Documentation refence is shown when accessing root url:
-```
+
+```shell
 curl http://localhost:9999/
 ```
 
@@ -37,8 +38,7 @@
 
 ### Description
 
-Get the application and UI generic properties like text or graphical mode,
-dialog size, screen size and supported UI features.
+Get the application and UI generic properties like text or graphical mode, 
dialog size, screen size and supported UI features.
 
 ### Response
 
@@ -55,7 +55,7 @@
 
 ### Examples
 
-```
+```shell
 curl http://localhost:9999/version
 ```
 ---
@@ -75,7 +75,7 @@
 
 ### Examples
 
-```
+```shell
 curl http://localhost:9999/v1/application
 ```
 ---
@@ -95,7 +95,7 @@
 
 ### Examples
 
-```
+```shell
 curl http://localhost:9999/v1/dialog
 ```
 
@@ -114,14 +114,11 @@
 
 Filter widgets:
 
-- **id** - the widget ID serialized as string, might include special characters
-  like backtick (\`)
-- **label** - widget label as currently displayed (i.e. translated!)
-- **type** - the widget type
-
-Any combination of the filters are also allowed. This is extremely helpful
-when multiple widgets have same id or label. Nevertheless, it's recommended
-to use unique ids in the application in order to simplify testing.
+- **id** - the widget ID serialized as string, might include special 
characters like backtick (\`)
+- **label** - widget label. Allowed to be passed both with and without 
shortcut ampersand. The ampersand will be ignored on server side. (e.g. if a 
label is `"label" : "Abo&rt"`, then for request the label could be used without 
`&`, i.e. `Abort`, or as is, `Abo&rt`);
+- **type** - the widget type (shown as `class` in JSON response, e.g. `"class" 
: "YDumbTab"`)
+
+Any combination of the filters are also allowed. This is extremely helpful 
when multiple widgets have same id or label. Nevertheless, it's recommended to 
use unique ids in the application in order to simplify testing.
 
 ### Response
 
@@ -129,12 +126,12 @@
 
 ### Examples
 
-```
-curl 'http://localhost:9999/v1/widgets?label=Next
-curl 'http://localhost:9999/v1/widgets?id=next
-curl 'http://localhost:9999/v1/widgets?type=YCheckBox
-curl 'http://localhost:9999/v1/widgets?type=YPushButton&label=ok
-curl 'http://localhost:9999/v1/widgets?type=YPushButton&id=next
+```shell
+curl 'http://localhost:9999/v1/widgets?label=Next'
+curl 'http://localhost:9999/v1/widgets?id=next'
+curl 'http://localhost:9999/v1/widgets?type=YCheckBox'
+curl 'http://localhost:9999/v1/widgets?type=YPushButton&label=ok'
+curl 'http://localhost:9999/v1/widgets?type=YPushButton&id=next'
 ```
 
 ---
@@ -151,35 +148,34 @@
 
 Filter the widgets, one of:
 
-- **id** - widget ID serialized as string, might include special characters
-  like backtick (\`)
-- **label** - widget label as currently displayed (i.e. translated!)
-- **type** - type of the widget
+- **id** - widget ID serialized as string, might include special characters 
like backtick (\`);
+- **label** - widget label. Allowed to be passed both with and without 
shortcut ampersand. The ampersand will be ignored on server side. (e.g. if a 
label is `"label" : "Abo&rt"`, then for request the label may be used without 
`&`, i.e. `Abort`, or as is, `Abo&rt`);
+- **type** - type of the widget (shown as `class` in JSON response, e.g. 
`"class" : "YDumbTab"`).
 
 Same as for reading, combinations of the filters are also allowed.
 
 Then specify the action:
 
-- **action** - the action to do
-- **value** (optional) - new value or a parameter of the action
-- **column** (optional) - integer, column number when selecting item in the 
table
-- **row** (optional) - integer, row number when selecting item in the table
+- **action** - the action to do;
+- **value** (optional) - new value or a parameter of the action;
+- **column** (optional) - integer, column number when selecting item in the 
table;
+- **row** (optional) - integer, row number when selecting item in the table.
 Supported actions:
 
-- **press** - to press the button
-- **check** | **uncheck**  | **toggle** - check, uncheck or toggle checkbox
+- **press** - to press the button;
+- **check** | **uncheck**  | **toggle** - check, uncheck or toggle checkbox;
 - **enter_text** - set text in the field, the text is passed in the
-  *value* parameter
-- **select** - select value in the combobox, row in the table or node in the
-  tree, item in button menu requires *value* parameter
-  - In case of table: select row in the table with given value. If
-        *column* parameter is not provided, the first column will be used.
-        If table contains sub-items, child nodes can be selected by sending
-        path, similarly to the Tree widgets: `root_row|sub_item_row`.
-  - In case of tree: select node in the tree. Use `|` as a delimiter for
-        the child nodes. For example: `root|subnode|subsubnode`.
-  - In case of button menu: to select item, use `|` as a delimiter for the
-  sub-menus. For example: 'File|Save as|PDF'
+  *value* parameter;
+- **select** - select value in the combobox, row in the table or node in the 
tree, item in button menu requires *value* parameter:
+  - In case of table: select row in the table with given value. If *column* 
parameter is not provided, the first column will be used. If table contains 
sub-items, child nodes can be selected by sending path, similarly to the Tree 
widgets.
+  For example: `root_row|sub_item_row`.
+  - In case of tree: select node in the tree. Use `|` as a delimiter for the 
child nodes.
+  For example: `root|subnode|subsubnode`.
+  - In case of button menu: to select item, use `|` as a delimiter for the 
sub-menus. Allowed to be passed both with and without shortcut ampersand. The 
ampersand will be ignored on server side. (e.g. if an item label is `"label" : 
"&Default"`, then for request the label may be used without `&`, i.e. 
`Default`, or as is, `&Default`);
+  For example: `File|Save as|PDF`.
+
+
+
 ### Response
 
 JSON format
@@ -205,6 +201,6 @@
 curl -X POST 
'http://localhost:9999/v1/widgets?type=YRichText&action=select&value=firewall'
 # select menu item with label "Image" in parent menu item with label 
"Document" in menu button
 curl -X POST 
'http://localhost:9999/v1/widgets?type=YMenuButton&action=select&value=Document%7CImage'
-# select menu bar item with label "&Folder" in parent menu item with label 
"&Create" in menu bar
-curl -X POST 
'http://localhost:9999/v1/widgets?type=YMenuBar&action=select&value=%26Create%7C%26Folder'
+# select menu bar item with label "Folder" in parent menu item with label 
"Create" in menu bar
+curl -X POST 
'http://localhost:9999/v1/widgets?type=YMenuBar&action=select&value=Create%7CFolder'
 ```
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/libyui-4.2.8/libyui-rest-api/doc/README.md 
new/libyui-4.2.10/libyui-rest-api/doc/README.md
--- old/libyui-4.2.8/libyui-rest-api/doc/README.md      2021-04-29 
13:48:48.000000000 +0200
+++ new/libyui-4.2.10/libyui-rest-api/doc/README.md     2021-05-05 
10:55:01.000000000 +0200
@@ -9,6 +9,7 @@
     * [Contributing](#contributing)
     * [Building](#building)
     * [Testing](#testing)
+    * [Troubleshooting](#troubleshooting)
 * [License](#license)
 
 # libyui-rest-api
@@ -122,6 +123,12 @@
 useful tasks, like `rake version:bump`.
 One can run `rake --tasks` locally to see all available tasks.
 
+To build the whole project with libyui-rest-api, the additional `--rest-api` 
flag is required:
+
+```shell
+sudo ./build-all install --rest-api
+```
+
 ## Testing
 
 In order to test changes, one can use yast modules in her system.
@@ -150,6 +157,20 @@
 After that server should be available on the provided port and http request can
 be sent to it.
 
+## Troubleshooting
+In case unexpected errors or application crashes happen, the following steps 
may help to get rid of those issues:
+ - Delete `build/` directories in each of sub-projects;
+ - Delete all the built packages: 
+   ```shell
+   cd /usr/lib64/yui
+   rm *
+   ```
+ - Rebuild all:
+   ```shell
+   sudo ./build-all install --rest-api
+   ```
+
+
 ## Contributing
 
 1. Fork it
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/libyui-4.2.8/libyui-rest-api/src/CMakeLists.txt 
new/libyui-4.2.10/libyui-rest-api/src/CMakeLists.txt
--- old/libyui-4.2.8/libyui-rest-api/src/CMakeLists.txt 2021-04-29 
13:48:48.000000000 +0200
+++ new/libyui-4.2.10/libyui-rest-api/src/CMakeLists.txt        2021-05-05 
10:55:01.000000000 +0200
@@ -31,6 +31,7 @@
 
 
 set( SOURCES
+ YDumbTabActionHandler.cc
  YHttpServer.cc
  YHttpAppHandler.cc
  YHttpDialogHandler.cc
@@ -42,12 +43,14 @@
  YHttpWidgetsHandler.cc
 
  YJsonSerializer.cc
+ YMenuWidgetActionHandler.cc
  YTableActionHandler.cc
  YWidgetFinder.cc
  )
 
 
 set( HEADERS
+ YDumbTabActionHandler.h
  YHttpServer.h
  YHttpServerSockets.h
 
@@ -61,6 +64,7 @@
  YHttpWidgetsHandler.h
 
  YJsonSerializer.h
+ YMenuWidgetActionHandler.h
  YTableActionHandler.h
  YWidgetActionHandler.h
  YWidgetFinder.h
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/libyui-4.2.8/libyui-rest-api/src/YDumbTabActionHandler.cc 
new/libyui-4.2.10/libyui-rest-api/src/YDumbTabActionHandler.cc
--- old/libyui-4.2.8/libyui-rest-api/src/YDumbTabActionHandler.cc       
1970-01-01 01:00:00.000000000 +0100
+++ new/libyui-4.2.10/libyui-rest-api/src/YDumbTabActionHandler.cc      
2021-05-05 10:55:01.000000000 +0200
@@ -0,0 +1,64 @@
+/*
+  Copyright (C) 2021 SUSE LLC
+
+  This library is free software; you can redistribute it and/or modify
+  it under the terms of the GNU Lesser General Public License as
+  published by the Free Software Foundation; either version 2.1 of the
+  License, or (at your option) version 3.0 of the License. This library
+  is distributed in the hope that it will be useful, but WITHOUT ANY
+  WARRANTY; without even the implied warranty of MERCHANTABILITY or
+  FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public
+  License for more details. You should have received a copy of the GNU
+  Lesser General Public License along with this library; if not, write
+  to the Free Software Foundation, Inc., 51 Franklin Street, Fifth
+  Floor, Boston, MA 02110-1301 USA
+*/
+
+#include <boost/algorithm/string.hpp>
+
+#define YUILogComponent "rest-api"
+#include <yui/YUILog.h>
+
+#include <yui/YDumbTab.h>
+#include <yui/YItem.h>
+
+#include "YDumbTabActionHandler.h"
+
+
+std::function<void (YDumbTab*)> YDumbTabActionHandler::get_handler( YDumbTab * 
widget,
+                                                                    const 
std::string &item_label )
+{
+    return [&] (YDumbTab *tab) {
+        YItem * item = findItem( item_label, widget->itemsBegin(), 
widget->itemsEnd() );
+        if ( item )
+        {
+            yuiMilestone() << "Activating Tree Item \"" << item->label() << 
'"' << std::endl;
+            tab->setKeyboardFocus();
+            tab->selectItem( item );
+            activate_widget( tab );
+        }
+        else
+        {
+            throw YUIException("Item: '" + item_label + "' cannot be found 
among tabs");
+        }
+    };
+}
+
+YItem * 
+YDumbTabActionHandler::findItem( const std::string &item_label, 
+                                 YItemConstIterator    begin,
+                                 YItemConstIterator    end ) const
+{
+    std::string item_label_sanitized = boost::erase_all_copy(item_label, 
ShortcutChar);
+    for ( YItemConstIterator it = begin; it != end; ++it )
+    {
+        YItem * item = *it;
+
+        if ( boost::erase_all_copy(item->label(), ShortcutChar) == 
item_label_sanitized )
+        {
+            return item;
+        }
+    }
+
+    return nullptr;
+}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/libyui-4.2.8/libyui-rest-api/src/YDumbTabActionHandler.h 
new/libyui-4.2.10/libyui-rest-api/src/YDumbTabActionHandler.h
--- old/libyui-4.2.8/libyui-rest-api/src/YDumbTabActionHandler.h        
1970-01-01 01:00:00.000000000 +0100
+++ new/libyui-4.2.10/libyui-rest-api/src/YDumbTabActionHandler.h       
2021-05-05 10:55:01.000000000 +0200
@@ -0,0 +1,42 @@
+/*
+  Copyright (C) 2021 SUSE LLC
+
+  This library is free software; you can redistribute it and/or modify
+  it under the terms of the GNU Lesser General Public License as
+  published by the Free Software Foundation; either version 2.1 of the
+  License, or (at your option) version 3.0 of the License. This library
+  is distributed in the hope that it will be useful, but WITHOUT ANY
+  WARRANTY; without even the implied warranty of MERCHANTABILITY or
+  FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public
+  License for more details. You should have received a copy of the GNU
+  Lesser General Public License along with this library; if not, write
+  to the Free Software Foundation, Inc., 51 Franklin Street, Fifth
+  Floor, Boston, MA 02110-1301 USA
+*/
+
+#ifndef YDumbTabActionHandler_h
+#define YDumbTabActionHandler_h
+
+#include <yui/YDumbTab.h>
+
+#include "YWidgetActionHandler.h"
+
+
+class YDumbTabActionHandler : public YWidgetActionHandler
+{
+public:
+
+    YDumbTabActionHandler() {};
+    virtual ~YDumbTabActionHandler() {};
+
+    std::function<void (YDumbTab*)> get_handler( YDumbTab * widget,
+                                                 const std::string &item_label 
);
+
+private:
+
+    YItem * findItem( const std::string &item_label, 
+                      YItemConstIterator       begin,
+                      YItemConstIterator       end ) const;
+};
+
+#endif // YDumbTabActionHandler_h
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/libyui-4.2.8/libyui-rest-api/src/YHttpWidgetsActionHandler.cc 
new/libyui-4.2.10/libyui-rest-api/src/YHttpWidgetsActionHandler.cc
--- old/libyui-4.2.8/libyui-rest-api/src/YHttpWidgetsActionHandler.cc   
2021-04-29 13:48:48.000000000 +0200
+++ new/libyui-4.2.10/libyui-rest-api/src/YHttpWidgetsActionHandler.cc  
2021-05-05 10:55:01.000000000 +0200
@@ -391,22 +391,9 @@
                 }
             } );
         }
-        else if ( dynamic_cast<YDumbTab*>(widget) )
+        else if ( auto tab = dynamic_cast<YDumbTab*>(widget) )
         {
-            return action_handler<YDumbTab>( widget, body, [&] (YDumbTab *tab) 
{
-                YItem * item = tab->findItem( value );
-                if ( item )
-                {
-                    yuiMilestone() << "Activating Tree Item \"" << 
item->label() << '"' << std::endl;
-                    tab->setKeyboardFocus();
-                    tab->selectItem( item );
-                    get_widget_handler()->activate_widget( tab );
-                }
-                else
-                {
-                    throw YUIException("Item: '" + value + "' cannot be found 
among tabs");
-                }
-            } );
+            return action_handler<YDumbTab>( widget, body, 
get_dumb_tab_handler()->get_handler(tab, value) );
         }
         else if( dynamic_cast<YRadioButton*>(widget) )
         {
@@ -458,13 +445,13 @@
         {
             return action_handler<YMenuButton>( widget,
                                                 body,
-                                                
get_widget_handler()->get_menu_selector_handler( menu, value ) );
+                                                
get_menu_handler()->get_handler( menu, value ) );
         }
         else if( YMenuBar* menu = dynamic_cast<YMenuBar*>(widget) )
         {
             return action_handler<YMenuBar>( widget,
                                              body,
-                                             
get_widget_handler()->get_menu_selector_handler( menu, value ) );
+                                             get_menu_handler()->get_handler( 
menu, value ) );
         }
 
         std::string error ( "Action 'select' is not supported for the selected 
widget: \"" );
@@ -480,6 +467,18 @@
     return MHD_HTTP_OK;
 }
 
+YDumbTabActionHandler* YHttpWidgetsActionHandler::get_dumb_tab_handler() {
+    if( !dumb_tab_action_handler )
+        dumb_tab_action_handler = new YDumbTabActionHandler();
+    return dumb_tab_action_handler;
+}
+
+YMenuWidgetActionHandler* YHttpWidgetsActionHandler::get_menu_handler() {
+    if( !menu_action_handler )
+        menu_action_handler = new YMenuWidgetActionHandler();
+    return menu_action_handler;
+}
+
 YWidgetActionHandler* YHttpWidgetsActionHandler::get_widget_handler() {
     if( !widget_action_handler )
         widget_action_handler = new YWidgetActionHandler();
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/libyui-4.2.8/libyui-rest-api/src/YHttpWidgetsActionHandler.h 
new/libyui-4.2.10/libyui-rest-api/src/YHttpWidgetsActionHandler.h
--- old/libyui-4.2.8/libyui-rest-api/src/YHttpWidgetsActionHandler.h    
2021-04-29 13:48:48.000000000 +0200
+++ new/libyui-4.2.10/libyui-rest-api/src/YHttpWidgetsActionHandler.h   
2021-05-05 10:55:01.000000000 +0200
@@ -37,6 +37,8 @@
 #include <yui/YTimeField.h>
 #include <yui/YWidget.h>
 
+#include "YDumbTabActionHandler.h"
+#include "YMenuWidgetActionHandler.h"
 #include "YTableActionHandler.h"
 #include "YWidgetActionHandler.h"
 #include "YWidgetFinder.h"
@@ -65,6 +67,8 @@
      * Define widgets handlers to override in case need to implement
      * UI specific actions, like activation.
      **/
+    virtual YDumbTabActionHandler* get_dumb_tab_handler();
+    virtual YMenuWidgetActionHandler* get_menu_handler();
     virtual YWidgetActionHandler* get_widget_handler();
     virtual YTableActionHandler* get_table_handler();
 
@@ -109,6 +113,8 @@
         return MHD_HTTP_OK;
     }
 
+    YDumbTabActionHandler * dumb_tab_action_handler = nullptr;
+    YMenuWidgetActionHandler * menu_action_handler = nullptr;
     YTableActionHandler  * table_action_handler = nullptr;
     YWidgetActionHandler * widget_action_handler = nullptr;
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/libyui-4.2.8/libyui-rest-api/src/YMenuWidgetActionHandler.cc 
new/libyui-4.2.10/libyui-rest-api/src/YMenuWidgetActionHandler.cc
--- old/libyui-4.2.8/libyui-rest-api/src/YMenuWidgetActionHandler.cc    
1970-01-01 01:00:00.000000000 +0100
+++ new/libyui-4.2.10/libyui-rest-api/src/YMenuWidgetActionHandler.cc   
2021-05-05 10:55:01.000000000 +0200
@@ -0,0 +1,55 @@
+/*
+  Copyright (C) 2021 SUSE LLC
+
+  This library is free software; you can redistribute it and/or modify
+  it under the terms of the GNU Lesser General Public License as
+  published by the Free Software Foundation; either version 2.1 of the
+  License, or (at your option) version 3.0 of the License. This library
+  is distributed in the hope that it will be useful, but WITHOUT ANY
+  WARRANTY; without even the implied warranty of MERCHANTABILITY or
+  FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public
+  License for more details. You should have received a copy of the GNU
+  Lesser General Public License along with this library; if not, write
+  to the Free Software Foundation, Inc., 51 Franklin Street, Fifth
+  Floor, Boston, MA 02110-1301 USA
+*/
+
+#include <boost/algorithm/string.hpp>
+
+#define YUILogComponent "rest-api"
+
+#include <yui/YMenuItem.h>
+#include "YMenuWidgetActionHandler.h"
+
+YMenuItem* 
+YMenuWidgetActionHandler::findItem( std::vector<std::string>::iterator 
path_begin,
+                                    std::vector<std::string>::iterator 
path_end,
+                                    YItemConstIterator                 begin,
+                                    YItemConstIterator                 end ) 
const
+{
+    for ( YItemConstIterator it = begin; it != end; ++it )
+    {
+        YMenuItem * item = dynamic_cast<YMenuItem *>(*it);
+
+        if ( !item )
+            return nullptr;
+
+        if ( boost::erase_all_copy( item->label(), ShortcutChar ) == 
*path_begin )
+        {
+            if ( std::next( path_begin ) == path_end )
+            {
+                // Only return items which can trigger an action.
+                // Intermediate items only open a submenu, so continue looking.
+                if ( item->hasChildren() )
+                    continue;
+
+                return item;
+            }
+            YMenuItem * result = findItem( ++path_begin, path_end,
+                                           item->childrenBegin(), 
item->childrenEnd() );
+            if ( result )
+                return result;
+        }
+    }
+    return nullptr;
+}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/libyui-4.2.8/libyui-rest-api/src/YMenuWidgetActionHandler.h 
new/libyui-4.2.10/libyui-rest-api/src/YMenuWidgetActionHandler.h
--- old/libyui-4.2.8/libyui-rest-api/src/YMenuWidgetActionHandler.h     
1970-01-01 01:00:00.000000000 +0100
+++ new/libyui-4.2.10/libyui-rest-api/src/YMenuWidgetActionHandler.h    
2021-05-05 10:55:01.000000000 +0200
@@ -0,0 +1,58 @@
+/*
+  Copyright (C) 2021 SUSE LLC
+
+  This library is free software; you can redistribute it and/or modify
+  it under the terms of the GNU Lesser General Public License as
+  published by the Free Software Foundation; either version 2.1 of the
+  License, or (at your option) version 3.0 of the License. This library
+  is distributed in the hope that it will be useful, but WITHOUT ANY
+  WARRANTY; without even the implied warranty of MERCHANTABILITY or
+  FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public
+  License for more details. You should have received a copy of the GNU
+  Lesser General Public License along with this library; if not, write
+  to the Free Software Foundation, Inc., 51 Franklin Street, Fifth
+  Floor, Boston, MA 02110-1301 USA
+*/
+
+#ifndef YMenuWidgetActionHandler_h
+#define YMenuWidgetActionHandler_h
+
+#include "YWidgetActionHandler.h"
+
+
+class YMenuWidgetActionHandler : public YWidgetActionHandler
+{
+public:
+
+    YMenuWidgetActionHandler() {};
+    virtual ~YMenuWidgetActionHandler() {};
+
+    template<typename T>
+    std::function<void (T*)> get_handler( T *widget, const std::string &value 
) {
+        return [&] ( T *menu_selector ) {
+            std::string value_sanitized = boost::erase_all_copy( value, 
ShortcutChar );
+            // Vector of string to store path to the tree item
+            std::vector<std::string> path;
+            boost::split( path, value_sanitized, boost::is_any_of( 
TreePathDelimiter ) );
+            YMenuItem * item = findItem( path.begin(), path.end(), 
widget->itemsBegin(), widget->itemsEnd() );
+            if ( item )
+            {
+                menu_selector->setKeyboardFocus();
+                activate_widget( menu_selector, item );
+            }
+            else
+            {
+                throw YUIException( "Item with path: '" + value + "' cannot be 
found in the menu selector widget" );
+            }
+        };
+    }
+
+private:
+
+  YMenuItem * findItem( std::vector<std::string>::iterator path_begin,
+                        std::vector<std::string>::iterator path_end,
+                        YItemConstIterator                 begin,
+                        YItemConstIterator                 end ) const;
+};
+
+#endif // YMenuWidgetActionHandler_h
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/libyui-4.2.8/libyui-rest-api/src/YWidgetActionHandler.h 
new/libyui-4.2.10/libyui-rest-api/src/YWidgetActionHandler.h
--- old/libyui-4.2.8/libyui-rest-api/src/YWidgetActionHandler.h 2021-04-29 
13:48:48.000000000 +0200
+++ new/libyui-4.2.10/libyui-rest-api/src/YWidgetActionHandler.h        
2021-05-05 10:55:01.000000000 +0200
@@ -24,6 +24,7 @@
 #include <boost/algorithm/string.hpp>
 
 #define TreePathDelimiter "|"
+#define ShortcutChar "&"
 
 #include <yui/YCheckBoxFrame.h>
 #include <yui/YComboBox.h>
@@ -110,25 +111,6 @@
             }
         };
     }
-
-    template<typename T>
-    std::function<void (T*)> get_menu_selector_handler( T *widget, const 
std::string &value ) {
-        return [&] (T *menu_selector) {
-            // Vector of string to store path to the tree item
-            std::vector<std::string> path;
-            boost::split( path, value, boost::is_any_of( TreePathDelimiter ) );
-            YMenuItem * item = menu_selector->findItem( path );
-            if ( item )
-            {
-                menu_selector->setKeyboardFocus();
-                activate_widget( menu_selector, item );
-            }
-            else
-            {
-                throw YUIException("Item with path: '" + value + "' cannot be 
found in the menu selector widget");
-            }
-        };
-    }
 };
 
 #endif //YWidgetActionHandler_h
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/libyui-4.2.8/libyui-rest-api/src/YWidgetFinder.cc 
new/libyui-4.2.10/libyui-rest-api/src/YWidgetFinder.cc
--- old/libyui-4.2.8/libyui-rest-api/src/YWidgetFinder.cc       2021-04-29 
13:48:48.000000000 +0200
+++ new/libyui-4.2.10/libyui-rest-api/src/YWidgetFinder.cc      2021-05-05 
10:55:01.000000000 +0200
@@ -94,13 +94,14 @@
 
 static bool filter_by_label_rec(YWidget *w, const std::string &label)
 {
+    std::string label_sanitized = boost::erase_all_copy( label, ShortcutChar );
     // check the widget label if it is defined
     if ( w->propertySet().contains("Label") )
     {
         std::string widget_label = w->getProperty("Label").stringVal();
-        boost::erase_all(widget_label, "&");
+        boost::erase_all( widget_label, ShortcutChar );
 
-        if ( widget_label == label )
+        if ( widget_label == label_sanitized )
             return true;
     }
     return false;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/libyui-4.2.8/libyui-rest-api/src/YWidgetFinder.h 
new/libyui-4.2.10/libyui-rest-api/src/YWidgetFinder.h
--- old/libyui-4.2.8/libyui-rest-api/src/YWidgetFinder.h        2021-04-29 
13:48:48.000000000 +0200
+++ new/libyui-4.2.10/libyui-rest-api/src/YWidgetFinder.h       2021-05-05 
10:55:01.000000000 +0200
@@ -20,6 +20,8 @@
 #include <string>
 #include <vector>
 
+#define ShortcutChar "&"
+
 class YWidget;
 
 typedef std::vector<YWidget*> WidgetArray;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/libyui-4.2.8/package/libyui-bindings.spec 
new/libyui-4.2.10/package/libyui-bindings.spec
--- old/libyui-4.2.8/package/libyui-bindings.spec       2021-04-29 
13:48:48.000000000 +0200
+++ new/libyui-4.2.10/package/libyui-bindings.spec      2021-05-05 
10:55:01.000000000 +0200
@@ -20,7 +20,7 @@
 Name:           libyui-bindings
 
 # DO NOT manually bump the version here; instead, use rake version:bump
-Version:        4.2.8
+Version:        4.2.10
 Release:        0
 Summary:        Bindings for libyui
 License:        LGPL-2.1-only OR LGPL-3.0-only
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/libyui-4.2.8/package/libyui-ncurses-pkg.spec 
new/libyui-4.2.10/package/libyui-ncurses-pkg.spec
--- old/libyui-4.2.8/package/libyui-ncurses-pkg.spec    2021-04-29 
13:48:48.000000000 +0200
+++ new/libyui-4.2.10/package/libyui-ncurses-pkg.spec   2021-05-05 
10:55:01.000000000 +0200
@@ -19,7 +19,7 @@
 Name:           libyui-ncurses-pkg
 
 # DO NOT manually bump the version here; instead, use rake version:bump
-Version:        4.2.8
+Version:        4.2.10
 Release:        0
 
 %define         so_version 15
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/libyui-4.2.8/package/libyui-ncurses-rest-api.spec 
new/libyui-4.2.10/package/libyui-ncurses-rest-api.spec
--- old/libyui-4.2.8/package/libyui-ncurses-rest-api.spec       2021-04-29 
13:48:48.000000000 +0200
+++ new/libyui-4.2.10/package/libyui-ncurses-rest-api.spec      2021-05-05 
10:55:01.000000000 +0200
@@ -19,7 +19,7 @@
 Name:           libyui-ncurses-rest-api
 
 # DO NOT manually bump the version here; instead, use rake version:bump
-Version:        4.2.8
+Version:        4.2.10
 Release:        0
 
 %define         so_version 15
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/libyui-4.2.8/package/libyui-ncurses.spec 
new/libyui-4.2.10/package/libyui-ncurses.spec
--- old/libyui-4.2.8/package/libyui-ncurses.spec        2021-04-29 
13:48:48.000000000 +0200
+++ new/libyui-4.2.10/package/libyui-ncurses.spec       2021-05-05 
10:55:01.000000000 +0200
@@ -19,7 +19,7 @@
 Name:           libyui-ncurses
 
 # DO NOT manually bump the version here; instead, use rake version:bump
-Version:        4.2.8
+Version:        4.2.10
 Release:        0
 
 %define         so_version 15
@@ -136,6 +136,7 @@
 %dir %{_docdir}/%{bin_name}
 %{_libdir}/yui/lib*.so
 %{_prefix}/include/yui
+%{_libdir}/pkgconfig/%{name}.pc
 
 %files tools
 %defattr(-,root,root)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/libyui-4.2.8/package/libyui-qt-graph.spec 
new/libyui-4.2.10/package/libyui-qt-graph.spec
--- old/libyui-4.2.8/package/libyui-qt-graph.spec       2021-04-29 
13:48:48.000000000 +0200
+++ new/libyui-4.2.10/package/libyui-qt-graph.spec      2021-05-05 
10:55:01.000000000 +0200
@@ -19,7 +19,7 @@
 Name:           libyui-qt-graph
 
 # DO NOT manually bump the version here; instead, use   rake version:bump
-Version:        4.2.8
+Version:        4.2.10
 Release:        0
 
 %define         so_version 15
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/libyui-4.2.8/package/libyui-qt-pkg.spec 
new/libyui-4.2.10/package/libyui-qt-pkg.spec
--- old/libyui-4.2.8/package/libyui-qt-pkg.spec 2021-04-29 13:48:48.000000000 
+0200
+++ new/libyui-4.2.10/package/libyui-qt-pkg.spec        2021-05-05 
10:55:01.000000000 +0200
@@ -19,7 +19,7 @@
 Name:           libyui-qt-pkg
 
 # DO NOT manually bump the version here; instead, use rake version:bump
-Version:        4.2.8
+Version:        4.2.10
 Release:        0
 
 %define         so_version 15
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/libyui-4.2.8/package/libyui-qt-rest-api.spec 
new/libyui-4.2.10/package/libyui-qt-rest-api.spec
--- old/libyui-4.2.8/package/libyui-qt-rest-api.spec    2021-04-29 
13:48:48.000000000 +0200
+++ new/libyui-4.2.10/package/libyui-qt-rest-api.spec   2021-05-05 
10:55:01.000000000 +0200
@@ -19,7 +19,7 @@
 Name:           libyui-qt-rest-api
 
 # DO NOT manually bump the version here; instead, use rake version:bump
-Version:        4.2.8
+Version:        4.2.10
 Release:        0
 
 %define         so_version 15
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/libyui-4.2.8/package/libyui-qt.spec 
new/libyui-4.2.10/package/libyui-qt.spec
--- old/libyui-4.2.8/package/libyui-qt.spec     2021-04-29 13:48:48.000000000 
+0200
+++ new/libyui-4.2.10/package/libyui-qt.spec    2021-05-05 10:55:01.000000000 
+0200
@@ -19,7 +19,7 @@
 Name:           libyui-qt
 
 # DO NOT manually bump the version here; instead, use rake version:bump
-Version:        4.2.8
+Version:        4.2.10
 Release:        0
 
 %define         so_version 15
@@ -126,5 +126,6 @@
 %defattr(-,root,root)
 %{_libdir}/yui/lib*.so
 %{_includedir}/yui/qt
+%{_libdir}/pkgconfig/%{name}.pc
 
 %changelog
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/libyui-4.2.8/package/libyui-rest-api.spec 
new/libyui-4.2.10/package/libyui-rest-api.spec
--- old/libyui-4.2.8/package/libyui-rest-api.spec       2021-04-29 
13:48:48.000000000 +0200
+++ new/libyui-4.2.10/package/libyui-rest-api.spec      2021-05-05 
10:55:01.000000000 +0200
@@ -19,7 +19,7 @@
 Name:           libyui-rest-api
 
 # DO NOT manually bump the version here; instead, use rake version:bump
-Version:        4.2.8
+Version:        4.2.10
 Release:        0
 
 %define         so_version 15
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/libyui-4.2.8/package/libyui.changes 
new/libyui-4.2.10/package/libyui.changes
--- old/libyui-4.2.8/package/libyui.changes     2021-04-29 13:48:48.000000000 
+0200
+++ new/libyui-4.2.10/package/libyui.changes    2021-05-05 10:55:01.000000000 
+0200
@@ -1,4 +1,19 @@
 -------------------------------------------------------------------
+Mon May  3 15:34:39 UTC 2021 - Stefan Hundhammer <shundham...@suse.com>
+
+- Added pkgconfig files for libyui-qt and libyui-ncurses
+  for writing extensions of the Qt and NCurses plug-ins
+  (GitHub issue #9 / bsc#1139747)
+- 4.2.10
+
+-------------------------------------------------------------------
+Thu Apr 29 12:37:17 UTC 2021 - Oleksandr Orlov <oor...@suse.com>
+
+- Ignore ampersand when search item in YMenuWidget and YDumbTab
+  with rest-api (bsc#1139747)
+- 4.2.9  
+
+-------------------------------------------------------------------
 Thu Apr 29 11:11:56 UTC 2021 - Stefan Hundhammer <shundham...@suse.com>
 
 - Fixed license headers to use the correct license (LGPL) everywhere
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/libyui-4.2.8/package/libyui.spec 
new/libyui-4.2.10/package/libyui.spec
--- old/libyui-4.2.8/package/libyui.spec        2021-04-29 13:48:48.000000000 
+0200
+++ new/libyui-4.2.10/package/libyui.spec       2021-05-05 10:55:01.000000000 
+0200
@@ -19,7 +19,7 @@
 Name:           libyui
 
 # DO NOT manually bump the version here; instead, use rake version:bump
-Version:        4.2.8
+Version:        4.2.10
 Release:        0
 
 %define         so_version 15

Reply via email to