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-06-15 16:37:02 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/libyui (Old) and /work/SRC/openSUSE:Factory/.libyui.new.32437 (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "libyui" Tue Jun 15 16:37:02 2021 rev:65 rq:898317 version:4.2.14 Changes: -------- --- /work/SRC/openSUSE:Factory/libyui/libyui.changes 2021-06-04 22:43:01.951094126 +0200 +++ /work/SRC/openSUSE:Factory/.libyui.new.32437/libyui.changes 2021-06-15 16:37:14.709683942 +0200 @@ -1,0 +2,7 @@ +Fri Jun 4 08:27:03 UTC 2021 - Martin Vidner <mvid...@suse.com> + +- rest-api: When finding table items by cell value, + ignore BiDi control chars (bsc#1128091) +- 4.2.14 + +------------------------------------------------------------------- Old: ---- libyui-4.2.13.tar.bz2 New: ---- libyui-4.2.14.tar.bz2 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ libyui-bindings.spec ++++++ --- /var/tmp/diff_new_pack.UZgeFB/_old 2021-06-15 16:37:15.437685202 +0200 +++ /var/tmp/diff_new_pack.UZgeFB/_new 2021-06-15 16:37:15.441685210 +0200 @@ -20,7 +20,7 @@ Name: libyui-bindings # DO NOT manually bump the version here; instead, use rake version:bump -Version: 4.2.13 +Version: 4.2.14 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.UZgeFB/_old 2021-06-15 16:37:15.457685237 +0200 +++ /var/tmp/diff_new_pack.UZgeFB/_new 2021-06-15 16:37:15.461685244 +0200 @@ -19,7 +19,7 @@ Name: libyui-ncurses-pkg # DO NOT manually bump the version here; instead, use rake version:bump -Version: 4.2.13 +Version: 4.2.14 Release: 0 %define so_version 15 libyui-ncurses-rest-api.spec: same change libyui-ncurses.spec: same change ++++++ libyui-qt-graph.spec ++++++ --- /var/tmp/diff_new_pack.UZgeFB/_old 2021-06-15 16:37:15.525685355 +0200 +++ /var/tmp/diff_new_pack.UZgeFB/_new 2021-06-15 16:37:15.529685362 +0200 @@ -19,7 +19,7 @@ Name: libyui-qt-graph # DO NOT manually bump the version here; instead, use rake version:bump -Version: 4.2.13 +Version: 4.2.14 Release: 0 %define so_version 15 ++++++ libyui-qt-pkg.spec ++++++ --- /var/tmp/diff_new_pack.UZgeFB/_old 2021-06-15 16:37:15.545685390 +0200 +++ /var/tmp/diff_new_pack.UZgeFB/_new 2021-06-15 16:37:15.549685397 +0200 @@ -19,7 +19,7 @@ Name: libyui-qt-pkg # DO NOT manually bump the version here; instead, use rake version:bump -Version: 4.2.13 +Version: 4.2.14 Release: 0 %define so_version 15 libyui-qt-rest-api.spec: same change libyui-qt.spec: same change libyui-rest-api.spec: same change libyui.spec: same change ++++++ libyui-4.2.13.tar.bz2 -> libyui-4.2.14.tar.bz2 ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libyui-4.2.13/VERSION.cmake new/libyui-4.2.14/VERSION.cmake --- old/libyui-4.2.13/VERSION.cmake 2021-06-02 14:21:22.000000000 +0200 +++ new/libyui-4.2.14/VERSION.cmake 2021-06-08 11:45:04.000000000 +0200 @@ -1,6 +1,6 @@ SET( VERSION_MAJOR "4") SET( VERSION_MINOR "2" ) -SET( VERSION_PATCH "13" ) +SET( VERSION_PATCH "14" ) 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.13/libyui-bindings/CMakeLists.txt new/libyui-4.2.14/libyui-bindings/CMakeLists.txt --- old/libyui-4.2.13/libyui-bindings/CMakeLists.txt 2021-06-02 14:21:22.000000000 +0200 +++ new/libyui-4.2.14/libyui-bindings/CMakeLists.txt 2021-06-08 11:45:04.000000000 +0200 @@ -101,16 +101,41 @@ FIND_PACKAGE(SWIG REQUIRED) -FIND_LIBRARY( LIBYUI NAMES yui REQUIRED ) +FIND_PACKAGE(PkgConfig REQUIRED) -SET( LIBYUI_LIBRARY yui ) -SET( LIBYUI_INCLUDE_DIR /usr/include ) +# Don't require libyui just because it is always built into source tree +PKG_CHECK_MODULES(YUI libyui) +if (YUI_FOUND) + pkg_get_variable(YUI_INCLUDE_DIR libyui includedir) + message (STATUS "Found libyui into ${YUI_LIBRARY_DIRS}") + SET( LIBYUI_LIBRARY ${YUI_LIBRARIES} ) + SET( LIBYUI_INCLUDE_DIR ${YUI_INCLUDE_DIR} ) + SET( LIBYUI_INCLUDE_CFLAGS -I${YUI_INCLUDE_DIR} ) +else() + message (STATUS "System libyui not found") + # set them anyway for subdir CMakeLists.txt + SET( LIBYUI_LIBRARY yui ) + SET( LIBYUI_INCLUDE_DIR /usr/include ) + SET( LIBYUI_INCLUDE_CFLAGS -I${YUI_INCLUDE_DIR} ) +endif() IF(WITH_MGA) -FIND_PACKAGE(Libyui-mga REQUIRED) -SET( LIBYUI_LIBRARY yui yui-mga ) -ADD_DEFINITIONS( -DWITH_MGA ) -SET( SWIG_FLAGS "-DWITH_MGA" ) + # Don't require libyui-mga just because it could be built into libyui source tree + PKG_CHECK_MODULES(YUIMGA libyui-mga) + if (YUIMGA_FOUND) + pkg_get_variable(YUIMGA_INCLUDE_DIR libyui-mga includedir) + message (STATUS "Found libyui-mga into ${YUIMGA_LIBRARY_DIRS}") + + SET( LIBYUI_LIBRARY ${LIBYUI_LIBRARY} ${YUIMGA_LIBRARIES} ) + SET( LIBYUI_INCLUDE_DIR ${LIBYUI_INCLUDE_DIR} ${YUIMGA_INCLUDE_DIR}) + SET( LIBYUI_INCLUDE_CFLAGS ${LIBYUI_INCLUDE_CFLAGS} -I${YUIMGA_INCLUDE_DIR} ) + else() + # set them anyway for subdir CMakeLists.txt + SET( LIBYUI_LIBRARY ${LIBYUI_LIBRARY} yui-mga ) + endif() + + ADD_DEFINITIONS( -DWITH_MGA ) + SET( SWIG_FLAGS "-DWITH_MGA" ) ENDIF(WITH_MGA) ADD_SUBDIRECTORY(swig) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libyui-4.2.13/libyui-bindings/swig/mono/CMakeLists.txt new/libyui-4.2.14/libyui-bindings/swig/mono/CMakeLists.txt --- old/libyui-4.2.13/libyui-bindings/swig/mono/CMakeLists.txt 2021-06-02 14:21:22.000000000 +0200 +++ new/libyui-4.2.14/libyui-bindings/swig/mono/CMakeLists.txt 2021-06-08 11:45:04.000000000 +0200 @@ -17,15 +17,20 @@ set( LOCAL_INCLUDE_DIR ${CMAKE_CURRENT_BINARY_DIR}/include ) + # Symlink ../../../libyui/src to build/src/include/yui # so the headers there can be included as <yui/YFoo.h> file( MAKE_DIRECTORY ${LOCAL_INCLUDE_DIR} ) file( CREATE_LINK ${CMAKE_CURRENT_SOURCE_DIR}/../../../libyui/src ${LOCAL_INCLUDE_DIR}/yui SYMBOLIC ) +if (EXISTS ${CMAKE_CURRENT_SOURCE_DIR}/../../../libyui-mga/src) + file( CREATE_LINK ${CMAKE_CURRENT_SOURCE_DIR}/../../../libyui-mga/src ${LOCAL_INCLUDE_DIR}/yui/mga SYMBOLIC ) +endif() + ADD_CUSTOM_COMMAND ( OUTPUT ${SWIG_OUTPUT} COMMAND ${CMAKE_COMMAND} -E echo_append "Creating wrapper code for CSharp ..." - COMMAND ${SWIG_EXECUTABLE} -c++ -csharp -features autodoc ${SWIG_FLAGS} -o ${SWIG_OUTPUT} -I${LOCAL_INCLUDE_DIR} -I${LIBYUI_INCLUDE_DIR} ${SWIG_INPUT} + COMMAND ${SWIG_EXECUTABLE} -c++ -csharp -features autodoc ${SWIG_FLAGS} -o ${SWIG_OUTPUT} -I${LOCAL_INCLUDE_DIR} ${LIBYUI_INCLUDE_CFLAGS} ${SWIG_INPUT} COMMAND ${CMAKE_COMMAND} -E echo "Done." WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR} DEPENDS ${CMAKE_CURRENT_SOURCE_DIR}/../*.i @@ -42,8 +47,24 @@ target_include_directories( ${TARGETLIB} BEFORE PUBLIC ${LOCAL_INCLUDE_DIR} ) -# Find yui during a combined build -target_link_directories( ${TARGETLIB} BEFORE PUBLIC ../../../libyui/build/src ) +if ( WITH_MGA) + if (EXISTS ${CMAKE_CURRENT_SOURCE_DIR}/../../../libyui-mga/build/src) + # Find yui and yui-mga during a combined build + target_link_directories( ${TARGETLIB} + BEFORE PUBLIC ../../../libyui/build/src + BEFORE PUBLIC ../../../libyui-mga/build/src + ) + else() + # Using yui and yui-mga from system + target_link_directories( ${TARGETLIB} + PUBLIC ${YUI_LIBRARY_DIRS} + PUBLIC ${YUIMGA_LIBRARY_DIRS} + ) + endif() +else() + # Find yui during a combined build + target_link_directories( ${TARGETLIB} BEFORE PUBLIC ../../../libyui/build/src ) +endif() TARGET_LINK_LIBRARIES( ${TARGETLIB} ${LIBYUI_LIBRARY} ) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libyui-4.2.13/libyui-bindings/swig/perl/CMakeLists.txt new/libyui-4.2.14/libyui-bindings/swig/perl/CMakeLists.txt --- old/libyui-4.2.13/libyui-bindings/swig/perl/CMakeLists.txt 2021-06-02 14:21:22.000000000 +0200 +++ new/libyui-4.2.14/libyui-bindings/swig/perl/CMakeLists.txt 2021-06-08 11:45:04.000000000 +0200 @@ -30,18 +30,23 @@ if(COMMAND cmake_policy) cmake_policy(SET CMP0003 NEW) endif(COMMAND cmake_policy) - + set( LOCAL_INCLUDE_DIR ${CMAKE_CURRENT_BINARY_DIR}/include ) + # Symlink ../../../libyui/src to build/src/include/yui # so the headers there can be included as <yui/YFoo.h> file( MAKE_DIRECTORY ${LOCAL_INCLUDE_DIR} ) file( CREATE_LINK ${CMAKE_CURRENT_SOURCE_DIR}/../../../libyui/src ${LOCAL_INCLUDE_DIR}/yui SYMBOLIC ) +if (EXISTS ${CMAKE_CURRENT_SOURCE_DIR}/../../../libyui-mga/src) + file( CREATE_LINK ${CMAKE_CURRENT_SOURCE_DIR}/../../../libyui-mga/src ${LOCAL_INCLUDE_DIR}/yui/mga SYMBOLIC ) +endif() + ADD_CUSTOM_COMMAND ( OUTPUT ${SWIG_OUTPUT} COMMAND ${CMAKE_COMMAND} -E echo_append "Creating wrapper code for Perl ..." - COMMAND ${SWIG_EXECUTABLE} -c++ -perl -shadow -features autodoc ${SWIG_FLAGS} -o ${SWIG_OUTPUT} -I${LOCAL_INCLUDE_DIR} -I${LIBYUI_INCLUDE_DIR} ${SWIG_INPUT} + COMMAND ${SWIG_EXECUTABLE} -c++ -perl -shadow -features autodoc ${SWIG_FLAGS} -o ${SWIG_OUTPUT} -I${LOCAL_INCLUDE_DIR} ${LIBYUI_INCLUDE_CFLAGS} ${SWIG_INPUT} COMMAND ${CMAKE_COMMAND} -E echo "Done." WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR} DEPENDS ${CMAKE_CURRENT_SOURCE_DIR}/../*.i @@ -58,8 +63,24 @@ target_include_directories( ${TARGETLIB} BEFORE PUBLIC ${LOCAL_INCLUDE_DIR} ) INCLUDE_DIRECTORIES( ${PERL_CORE_DIR} ${LIBYUI_INCLUDE_DIR}) -# Find yui during a combined build -target_link_directories( ${TARGETLIB} BEFORE PUBLIC ../../../libyui/build/src ) +if ( WITH_MGA) + if (EXISTS ${CMAKE_CURRENT_SOURCE_DIR}/../../../libyui-mga/build/src) + # Find yui and yui-mga during a combined build + target_link_directories( ${TARGETLIB} + BEFORE PUBLIC ../../../libyui/build/src + BEFORE PUBLIC ../../../libyui-mga/build/src + ) + else() + # Using yui and yui-mga from system + target_link_directories( ${TARGETLIB} + PUBLIC ${YUI_LIBRARY_DIRS} + PUBLIC ${YUIMGA_LIBRARY_DIRS} + ) + endif() +else() + # Find yui during a combined build + target_link_directories( ${TARGETLIB} BEFORE PUBLIC ../../../libyui/build/src ) +endif() TARGET_LINK_LIBRARIES( ${TARGETLIB} ${LIBYUI_LIBRARY} ) TARGET_LINK_LIBRARIES( ${TARGETLIB} ${PERL_LIBRARY} ) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libyui-4.2.13/libyui-bindings/swig/python/CMakeLists.txt new/libyui-4.2.14/libyui-bindings/swig/python/CMakeLists.txt --- old/libyui-4.2.13/libyui-bindings/swig/python/CMakeLists.txt 2021-06-02 14:21:22.000000000 +0200 +++ new/libyui-4.2.14/libyui-bindings/swig/python/CMakeLists.txt 2021-06-08 11:45:04.000000000 +0200 @@ -26,15 +26,20 @@ set( LOCAL_INCLUDE_DIR ${CMAKE_CURRENT_BINARY_DIR}/include ) + # Symlink ../../../libyui/src to build/src/include/yui # so the headers there can be included as <yui/YFoo.h> file( MAKE_DIRECTORY ${LOCAL_INCLUDE_DIR} ) file( CREATE_LINK ${CMAKE_CURRENT_SOURCE_DIR}/../../../libyui/src ${LOCAL_INCLUDE_DIR}/yui SYMBOLIC ) +if (EXISTS ${CMAKE_CURRENT_SOURCE_DIR}/../../../libyui-mga/src) + file( CREATE_LINK ${CMAKE_CURRENT_SOURCE_DIR}/../../../libyui-mga/src ${LOCAL_INCLUDE_DIR}/yui/mga SYMBOLIC ) +endif() + ADD_CUSTOM_COMMAND ( OUTPUT ${SWIG_OUTPUT} COMMAND ${CMAKE_COMMAND} -E echo_append "Creating wrapper code for Python ..." - COMMAND ${SWIG_EXECUTABLE} -c++ -python -shadow -features autodoc ${SWIG_FLAGS} -o ${SWIG_OUTPUT} -I${LOCAL_INCLUDE_DIR} -I${LIBYUI_INCLUDE_DIR} ${SWIG_INPUT} + COMMAND ${SWIG_EXECUTABLE} -c++ -python -shadow -features autodoc ${SWIG_FLAGS} -o ${SWIG_OUTPUT} -I${LOCAL_INCLUDE_DIR} ${LIBYUI_INCLUDE_CFLAGS} ${SWIG_INPUT} COMMAND ${CMAKE_COMMAND} -E echo "Done." WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR} DEPENDS ${CMAKE_CURRENT_SOURCE_DIR}/../*.i @@ -51,8 +56,24 @@ target_include_directories( ${TARGETLIB} BEFORE PUBLIC ${LOCAL_INCLUDE_DIR} ) INCLUDE_DIRECTORIES( ${PYTHON_INCLUDE_PATH} ${LIBYUI_INCLUDE_DIR} ) -# Find yui during a combined build -target_link_directories( ${TARGETLIB} BEFORE PUBLIC ../../../libyui/build/src ) +if ( WITH_MGA) + if (EXISTS ${CMAKE_CURRENT_SOURCE_DIR}/../../../libyui-mga/build/src) + # Find yui and yui-mga during a combined build + target_link_directories( ${TARGETLIB} + BEFORE PUBLIC ../../../libyui/build/src + BEFORE PUBLIC ../../../libyui-mga/build/src + ) + else() + # Using yui and yui-mga from system + target_link_directories( ${TARGETLIB} + PUBLIC ${YUI_LIBRARY_DIRS} + PUBLIC ${YUIMGA_LIBRARY_DIRS} + ) + endif() +else() + # Find yui during a combined build + target_link_directories( ${TARGETLIB} BEFORE PUBLIC ../../../libyui/build/src ) +endif() TARGET_LINK_LIBRARIES( ${TARGETLIB} ${LIBYUI_LIBRARY} ) TARGET_LINK_LIBRARIES( ${TARGETLIB} ${PYTHON_LIBRARIES} ) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libyui-4.2.13/libyui-bindings/swig/ruby/CMakeLists.txt new/libyui-4.2.14/libyui-bindings/swig/ruby/CMakeLists.txt --- old/libyui-4.2.13/libyui-bindings/swig/ruby/CMakeLists.txt 2021-06-02 14:21:22.000000000 +0200 +++ new/libyui-4.2.14/libyui-bindings/swig/ruby/CMakeLists.txt 2021-06-08 11:45:04.000000000 +0200 @@ -27,15 +27,20 @@ set( LOCAL_INCLUDE_DIR ${CMAKE_CURRENT_BINARY_DIR}/include ) -# Symlink ../../../libyui/src to build/src/include/yui -# so the headers there can be included as <yui/YFoo.h> -file( MAKE_DIRECTORY ${LOCAL_INCLUDE_DIR} ) -file( CREATE_LINK ${CMAKE_CURRENT_SOURCE_DIR}/../../../libyui/src ${LOCAL_INCLUDE_DIR}/yui SYMBOLIC ) +if(NOT WITH_MGA) + # Symlink ../../../libyui/src to build/src/include/yui + # so the headers there can be included as <yui/YFoo.h> + file( MAKE_DIRECTORY ${LOCAL_INCLUDE_DIR} ) + file( CREATE_LINK ${CMAKE_CURRENT_SOURCE_DIR}/../../../libyui/src ${LOCAL_INCLUDE_DIR}/yui SYMBOLIC ) + if (EXISTS ${CMAKE_CURRENT_SOURCE_DIR}/../../../libyui-mga/src) + file( CREATE_LINK ${CMAKE_CURRENT_SOURCE_DIR}/../../../libyui-mga/src ${LOCAL_INCLUDE_DIR}/yui/mga SYMBOLIC ) + endif() +endif() ADD_CUSTOM_COMMAND ( OUTPUT ${SWIG_OUTPUT} COMMAND ${CMAKE_COMMAND} -E echo_append "Creating wrapper code for ruby..." - COMMAND ${SWIG_EXECUTABLE} -c++ -ruby -autorename ${SWIG_FLAGS} -o ${SWIG_OUTPUT} -I${LOCAL_INCLUDE_DIR} -I${LIBYUI_INCLUDE_DIR} ${SWIG_INPUT} + COMMAND ${SWIG_EXECUTABLE} -c++ -ruby -autorename ${SWIG_FLAGS} -o ${SWIG_OUTPUT} -I${LOCAL_INCLUDE_DIR} ${LIBYUI_INCLUDE_CFLAGS} ${SWIG_INPUT} COMMAND ${CMAKE_COMMAND} -E echo "Done." WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR} DEPENDS ${CMAKE_CURRENT_SOURCE_DIR}/../*.i @@ -50,8 +55,15 @@ SET_TARGET_PROPERTIES( ${TARGETLIB} PROPERTIES PREFIX "" OUTPUT_NAME "_yui") -# Find yui during a combined build -target_link_directories( ${TARGETLIB} BEFORE PUBLIC ../../../libyui/build/src ) +if (NOT WITH_MGA) + # Find yui during a combined build + target_link_directories( ${TARGETLIB} BEFORE PUBLIC ../../../libyui/build/src ) +else() + target_link_directories( ${TARGETLIB} + PUBLIC ${YUI_LIBRARY_DIRS} + PUBLIC ${YUIMGA_LIBRARY_DIRS} + ) +endif() TARGET_LINK_LIBRARIES( ${TARGETLIB} ${LIBYUI_LIBRARY} ) TARGET_LINK_LIBRARIES( ${TARGETLIB} ${RUBY_LIBRARY} ) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libyui-4.2.13/libyui-rest-api/src/CMakeLists.txt new/libyui-4.2.14/libyui-rest-api/src/CMakeLists.txt --- old/libyui-4.2.13/libyui-rest-api/src/CMakeLists.txt 2021-06-02 14:21:22.000000000 +0200 +++ new/libyui-4.2.14/libyui-rest-api/src/CMakeLists.txt 2021-06-08 11:45:04.000000000 +0200 @@ -45,6 +45,7 @@ YJsonSerializer.cc YMenuWidgetActionHandler.cc YTableActionHandler.cc + YWidgetActionHandler.cc YWidgetFinder.cc ) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libyui-4.2.13/libyui-rest-api/src/YDumbTabActionHandler.cc new/libyui-4.2.14/libyui-rest-api/src/YDumbTabActionHandler.cc --- old/libyui-4.2.13/libyui-rest-api/src/YDumbTabActionHandler.cc 2021-06-02 14:21:22.000000000 +0200 +++ new/libyui-4.2.14/libyui-rest-api/src/YDumbTabActionHandler.cc 2021-06-08 11:45:04.000000000 +0200 @@ -49,12 +49,12 @@ YItemConstIterator begin, YItemConstIterator end ) const { - std::string item_label_sanitized = boost::erase_all_copy(item_label, ShortcutChar); + std::string item_label_sanitized = normalize_label(item_label); for ( YItemConstIterator it = begin; it != end; ++it ) { YItem * item = *it; - if ( boost::erase_all_copy(item->label(), ShortcutChar) == item_label_sanitized ) + if ( normalize_label(item->label()) == item_label_sanitized ) { return item; } diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libyui-4.2.13/libyui-rest-api/src/YMenuWidgetActionHandler.cc new/libyui-4.2.14/libyui-rest-api/src/YMenuWidgetActionHandler.cc --- old/libyui-4.2.13/libyui-rest-api/src/YMenuWidgetActionHandler.cc 2021-06-02 14:21:22.000000000 +0200 +++ new/libyui-4.2.14/libyui-rest-api/src/YMenuWidgetActionHandler.cc 2021-06-08 11:45:04.000000000 +0200 @@ -34,7 +34,7 @@ if ( !item ) return nullptr; - if ( boost::erase_all_copy( item->label(), ShortcutChar ) == *path_begin ) + if ( normalize_label( item->label() ) == *path_begin ) { if ( std::next( path_begin ) == path_end ) { diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libyui-4.2.13/libyui-rest-api/src/YMenuWidgetActionHandler.h new/libyui-4.2.14/libyui-rest-api/src/YMenuWidgetActionHandler.h --- old/libyui-4.2.13/libyui-rest-api/src/YMenuWidgetActionHandler.h 2021-06-02 14:21:22.000000000 +0200 +++ new/libyui-4.2.14/libyui-rest-api/src/YMenuWidgetActionHandler.h 2021-06-08 11:45:04.000000000 +0200 @@ -30,7 +30,7 @@ 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 ); + std::string value_sanitized = normalize_label( value ); // 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 ) ); diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libyui-4.2.13/libyui-rest-api/src/YTableActionHandler.cc new/libyui-4.2.14/libyui-rest-api/src/YTableActionHandler.cc --- old/libyui-4.2.13/libyui-rest-api/src/YTableActionHandler.cc 2021-06-02 14:21:22.000000000 +0200 +++ new/libyui-4.2.14/libyui-rest-api/src/YTableActionHandler.cc 2021-06-08 11:45:04.000000000 +0200 @@ -90,7 +90,7 @@ if ( ! item ) return nullptr; - if ( item->label(column_id) == *path_begin ) + if ( normalize_label ( item->label(column_id) ) == *path_begin ) { if ( std::next( path_begin ) == path_end ) return item; diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libyui-4.2.13/libyui-rest-api/src/YWidgetActionHandler.cc new/libyui-4.2.14/libyui-rest-api/src/YWidgetActionHandler.cc --- old/libyui-4.2.13/libyui-rest-api/src/YWidgetActionHandler.cc 1970-01-01 01:00:00.000000000 +0100 +++ new/libyui-4.2.14/libyui-rest-api/src/YWidgetActionHandler.cc 2021-06-08 11:45:04.000000000 +0200 @@ -0,0 +1,49 @@ +/* + 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 <codecvt> +#include <boost/range/algorithm/remove_if.hpp> + +#include "YWidgetActionHandler.h" + +static +std::string normalize_label_bidi(const std::string& label) +{ + static std::wstring_convert<std::codecvt_utf8<wchar_t>> conv; + + static wchar_t bidi_controls[] { L'\u202a', L'\u202b', L'\u202c', L'\u202d', L'\u202e', L'\u2066', L'\u2067', L'\u2068', L'\u2069' }; + + std::wstring wlabel(conv.from_bytes(label)); + auto new_end = boost::remove_if(wlabel, boost::is_any_of(bidi_controls)); + // for s == "hello", + // remove_if(s, is_consonant) leaves s == "eollo" and returns new_end + // pointing at the first 'l', so an additional erase is needed: + wlabel.erase(new_end, wlabel.end()); + std::string cleaned(conv.to_bytes(wlabel)); + + return cleaned; +} + +static +std::string normalize_label_shortcut(const std::string& label) +{ + return boost::erase_all_copy(label, ShortcutChar); +} + +std::string YWidgetActionHandler::normalize_label(const std::string & label) +{ + return normalize_label_shortcut(normalize_label_bidi(label)); +} diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libyui-4.2.13/libyui-rest-api/src/YWidgetActionHandler.h new/libyui-4.2.14/libyui-rest-api/src/YWidgetActionHandler.h --- old/libyui-4.2.13/libyui-rest-api/src/YWidgetActionHandler.h 2021-06-02 14:21:22.000000000 +0200 +++ new/libyui-4.2.14/libyui-rest-api/src/YWidgetActionHandler.h 2021-06-08 11:45:04.000000000 +0200 @@ -111,6 +111,19 @@ } }; } + + // Normalize a label before comparing it for equality: + // - remove shortcut characters (&) + // - remove BiDi control characters (added to certain table cells to render pathnames correctly) + static std::string normalize_label(const std::string & label); + + // Apply normalize_label to both arguments and compare the result with ==. + static bool normalized_labels_equal(const std::string & a, const std::string & b) + { + std::string na = normalize_label(a); + std::string nb = normalize_label(b); + return na == nb; + } }; #endif //YWidgetActionHandler_h diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libyui-4.2.13/libyui-rest-api/src/YWidgetFinder.cc new/libyui-4.2.14/libyui-rest-api/src/YWidgetFinder.cc --- old/libyui-4.2.13/libyui-rest-api/src/YWidgetFinder.cc 2021-06-02 14:21:22.000000000 +0200 +++ new/libyui-4.2.14/libyui-rest-api/src/YWidgetFinder.cc 2021-06-08 11:45:04.000000000 +0200 @@ -23,6 +23,7 @@ #include <yui/YWidgetID.h> #include "YWidgetFinder.h" +#include "YWidgetActionHandler.h" // internal helper methods @@ -94,14 +95,12 @@ 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, ShortcutChar ); - if ( widget_label == label_sanitized ) + if ( YWidgetActionHandler::normalized_labels_equal( widget_label, label ) ) return true; } return false; diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libyui-4.2.13/libyui-rest-api/src/YWidgetFinder.h new/libyui-4.2.14/libyui-rest-api/src/YWidgetFinder.h --- old/libyui-4.2.13/libyui-rest-api/src/YWidgetFinder.h 2021-06-02 14:21:22.000000000 +0200 +++ new/libyui-4.2.14/libyui-rest-api/src/YWidgetFinder.h 2021-06-08 11:45:04.000000000 +0200 @@ -20,8 +20,6 @@ #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.13/package/libyui-bindings.spec new/libyui-4.2.14/package/libyui-bindings.spec --- old/libyui-4.2.13/package/libyui-bindings.spec 2021-06-02 14:21:22.000000000 +0200 +++ new/libyui-4.2.14/package/libyui-bindings.spec 2021-06-08 11:45:04.000000000 +0200 @@ -20,7 +20,7 @@ Name: libyui-bindings # DO NOT manually bump the version here; instead, use rake version:bump -Version: 4.2.13 +Version: 4.2.14 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.13/package/libyui-ncurses-pkg.spec new/libyui-4.2.14/package/libyui-ncurses-pkg.spec --- old/libyui-4.2.13/package/libyui-ncurses-pkg.spec 2021-06-02 14:21:22.000000000 +0200 +++ new/libyui-4.2.14/package/libyui-ncurses-pkg.spec 2021-06-08 11:45:04.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.13 +Version: 4.2.14 Release: 0 %define so_version 15 diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libyui-4.2.13/package/libyui-ncurses-rest-api.spec new/libyui-4.2.14/package/libyui-ncurses-rest-api.spec --- old/libyui-4.2.13/package/libyui-ncurses-rest-api.spec 2021-06-02 14:21:22.000000000 +0200 +++ new/libyui-4.2.14/package/libyui-ncurses-rest-api.spec 2021-06-08 11:45:04.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.13 +Version: 4.2.14 Release: 0 %define so_version 15 diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libyui-4.2.13/package/libyui-ncurses.spec new/libyui-4.2.14/package/libyui-ncurses.spec --- old/libyui-4.2.13/package/libyui-ncurses.spec 2021-06-02 14:21:22.000000000 +0200 +++ new/libyui-4.2.14/package/libyui-ncurses.spec 2021-06-08 11:45:04.000000000 +0200 @@ -19,7 +19,7 @@ Name: libyui-ncurses # DO NOT manually bump the version here; instead, use rake version:bump -Version: 4.2.13 +Version: 4.2.14 Release: 0 %define so_version 15 diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libyui-4.2.13/package/libyui-qt-graph.spec new/libyui-4.2.14/package/libyui-qt-graph.spec --- old/libyui-4.2.13/package/libyui-qt-graph.spec 2021-06-02 14:21:22.000000000 +0200 +++ new/libyui-4.2.14/package/libyui-qt-graph.spec 2021-06-08 11:45:04.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.13 +Version: 4.2.14 Release: 0 %define so_version 15 diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libyui-4.2.13/package/libyui-qt-pkg.spec new/libyui-4.2.14/package/libyui-qt-pkg.spec --- old/libyui-4.2.13/package/libyui-qt-pkg.spec 2021-06-02 14:21:22.000000000 +0200 +++ new/libyui-4.2.14/package/libyui-qt-pkg.spec 2021-06-08 11:45:04.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.13 +Version: 4.2.14 Release: 0 %define so_version 15 diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libyui-4.2.13/package/libyui-qt-rest-api.spec new/libyui-4.2.14/package/libyui-qt-rest-api.spec --- old/libyui-4.2.13/package/libyui-qt-rest-api.spec 2021-06-02 14:21:22.000000000 +0200 +++ new/libyui-4.2.14/package/libyui-qt-rest-api.spec 2021-06-08 11:45:04.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.13 +Version: 4.2.14 Release: 0 %define so_version 15 diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libyui-4.2.13/package/libyui-qt.spec new/libyui-4.2.14/package/libyui-qt.spec --- old/libyui-4.2.13/package/libyui-qt.spec 2021-06-02 14:21:22.000000000 +0200 +++ new/libyui-4.2.14/package/libyui-qt.spec 2021-06-08 11:45:04.000000000 +0200 @@ -19,7 +19,7 @@ Name: libyui-qt # DO NOT manually bump the version here; instead, use rake version:bump -Version: 4.2.13 +Version: 4.2.14 Release: 0 %define so_version 15 diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libyui-4.2.13/package/libyui-rest-api.spec new/libyui-4.2.14/package/libyui-rest-api.spec --- old/libyui-4.2.13/package/libyui-rest-api.spec 2021-06-02 14:21:22.000000000 +0200 +++ new/libyui-4.2.14/package/libyui-rest-api.spec 2021-06-08 11:45:04.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.13 +Version: 4.2.14 Release: 0 %define so_version 15 diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libyui-4.2.13/package/libyui.changes new/libyui-4.2.14/package/libyui.changes --- old/libyui-4.2.13/package/libyui.changes 2021-06-02 14:21:22.000000000 +0200 +++ new/libyui-4.2.14/package/libyui.changes 2021-06-08 11:45:04.000000000 +0200 @@ -1,4 +1,11 @@ ------------------------------------------------------------------- +Fri Jun 4 08:27:03 UTC 2021 - Martin Vidner <mvid...@suse.com> + +- rest-api: When finding table items by cell value, + ignore BiDi control chars (bsc#1128091) +- 4.2.14 + +------------------------------------------------------------------- Wed Jun 2 11:18:42 UTC 2021 - Stefan Hundhammer <shundham...@suse.com> - Fixed build failure with latest GCC 11.1: diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libyui-4.2.13/package/libyui.spec new/libyui-4.2.14/package/libyui.spec --- old/libyui-4.2.13/package/libyui.spec 2021-06-02 14:21:22.000000000 +0200 +++ new/libyui-4.2.14/package/libyui.spec 2021-06-08 11:45:04.000000000 +0200 @@ -19,7 +19,7 @@ Name: libyui # DO NOT manually bump the version here; instead, use rake version:bump -Version: 4.2.13 +Version: 4.2.14 Release: 0 %define so_version 15