Script 'mail_helper' called by obssrc
Hello community,

here is the log from the commit of package libHX for openSUSE:Factory checked 
in at 2026-02-01 22:01:44
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/libHX (Old)
 and      /work/SRC/openSUSE:Factory/.libHX.new.1995 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "libHX"

Sun Feb  1 22:01:44 2026 rev:86 rq:1329890 version:5.3

Changes:
--------
--- /work/SRC/openSUSE:Factory/libHX/libHX.changes      2025-10-21 
11:14:51.078836440 +0200
+++ /work/SRC/openSUSE:Factory/.libHX.new.1995/libHX.changes    2026-02-01 
22:01:50.435532812 +0100
@@ -1,0 +2,8 @@
+Thu Jan 29 14:00:41 UTC 2026 - Jan Engelhardt <[email protected]>
+
+- Update to release 5.3
+  * Added the <libHX/tie.hpp> header containing the
+    HX::unique_tie function
+  * Make HX_isascii work in C23 mode
+
+-------------------------------------------------------------------

Old:
----
  libHX-5.2.tar.asc
  libHX-5.2.tar.zst

New:
----
  libHX-5.3.tar.asc
  libHX-5.3.tar.zst

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

Other differences:
------------------
++++++ libHX.spec ++++++
--- /var/tmp/diff_new_pack.fJuchG/_old  2026-02-01 22:01:51.575580507 +0100
+++ /var/tmp/diff_new_pack.fJuchG/_new  2026-02-01 22:01:51.579580674 +0100
@@ -1,7 +1,7 @@
 #
 # spec file for package libHX
 #
-# Copyright (c) 2025 SUSE LLC and contributors
+# Copyright (c) 2026 SUSE LLC and contributors
 #
 # All modifications and additions to the file contributed by third parties
 # remain the property of their copyright owners, unless otherwise agreed
@@ -18,7 +18,7 @@
 
 Name:           libHX
 %define lname   libHX43
-Version:        5.2
+Version:        5.3
 Release:        0
 Summary:        Collection of routines for C and C++ programming
 License:        LGPL-2.1-or-later

++++++ _scmsync.obsinfo ++++++
--- /var/tmp/diff_new_pack.fJuchG/_old  2026-02-01 22:01:51.615582180 +0100
+++ /var/tmp/diff_new_pack.fJuchG/_new  2026-02-01 22:01:51.619582348 +0100
@@ -1,4 +1,4 @@
-mtime: 1760881020
-commit: 2125e5dbdf702af1279f1e0c8cd9f4bd0e0a1f535452a948bf740c7474653df1
+mtime: 1769712899
+commit: badff71bc18875f34d89596e1f4acf1900a02bb0cda72412d462310be2ec8e99
 url: https://src.opensuse.org/jengelh/libHX
 

++++++ build.specials.obscpio ++++++

++++++ build.specials.obscpio ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/.gitignore new/.gitignore
--- old/.gitignore      1970-01-01 01:00:00.000000000 +0100
+++ new/.gitignore      2026-01-29 19:55:17.000000000 +0100
@@ -0,0 +1 @@
+.osc

++++++ libHX-5.2.tar.zst -> libHX-5.3.tar.zst ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/libHX-5.2/Makefile.am new/libHX-5.3/Makefile.am
--- old/libHX-5.2/Makefile.am   2025-03-07 23:14:35.738385244 +0100
+++ new/libHX-5.3/Makefile.am   2025-11-17 10:20:17.506840894 +0100
@@ -5,6 +5,6 @@
 SUBDIRS          = include src
 
 pkgconfig_DATA   = libHX.pc
-EXTRA_DIST = doc/api.rst doc/assorted.txt doc/bitmaps.rst doc/changelog.rst 
doc/const_cast.c doc/dirstamp.rst doc/files_and_dirs.rst doc/generator.cpp 
doc/helper_headers.rst doc/history.rst doc/init.rst doc/inline_clist.rst 
doc/inline_list.rst doc/install.rst doc/libHX_Documentation.rst 
doc/linked_list.rst doc/macros.rst doc/maps.rst doc/memory_container.rst 
doc/misc_functions.rst doc/option_parsing.rst doc/process_management.rst 
doc/random_numbers.rst doc/scope.rst doc/shconfig.rst doc/socket_functions.rst 
doc/string_formatter.rst doc/string_ops.rst doc/strlcpy-timing.rst 
doc/time_functions.rst doc/typecheck_casts.rst doc/ux-file.rst doc/ux-mmap.rst
+EXTRA_DIST = doc/api.rst doc/assorted.txt doc/bitmaps.rst doc/changelog.rst 
doc/const_cast.c doc/dirstamp.rst doc/files_and_dirs.rst doc/generator.cpp 
doc/helper_headers.rst doc/history.rst doc/init.rst doc/inline_clist.rst 
doc/inline_list.rst doc/install.rst doc/libHX_Documentation.rst 
doc/linked_list.rst doc/macros.rst doc/maps.rst doc/memory_container.rst 
doc/misc_functions.rst doc/option_parsing.rst doc/process_management.rst 
doc/random_numbers.rst doc/scope.rst doc/shconfig.rst doc/socket_functions.rst 
doc/string_formatter.rst doc/string_ops.rst doc/strlcpy-timing.rst doc/tie.rst 
doc/time_functions.rst doc/typecheck_casts.rst doc/ux-file.rst doc/ux-mmap.rst
 
 ${pkgconfig_DATA}: ${top_builddir}/config.status
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/libHX-5.2/Makefile.in new/libHX-5.3/Makefile.in
--- old/libHX-5.2/Makefile.in   2025-10-19 15:26:15.670930917 +0200
+++ new/libHX-5.3/Makefile.in   2026-01-29 13:15:38.383793451 +0100
@@ -199,8 +199,7 @@
        $(top_srcdir)/build-aux/ltmain.sh \
        $(top_srcdir)/build-aux/missing COPYING build-aux/ar-lib \
        build-aux/compile build-aux/config.guess build-aux/config.sub \
-       build-aux/depcomp build-aux/install-sh build-aux/ltmain.sh \
-       build-aux/missing
+       build-aux/install-sh build-aux/ltmain.sh build-aux/missing
 DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
 distdir = $(PACKAGE)-$(VERSION)
 top_distdir = $(distdir)
@@ -384,7 +383,7 @@
 ACLOCAL_AMFLAGS = -I m4
 SUBDIRS = include src
 pkgconfig_DATA = libHX.pc
-EXTRA_DIST = doc/api.rst doc/assorted.txt doc/bitmaps.rst doc/changelog.rst 
doc/const_cast.c doc/dirstamp.rst doc/files_and_dirs.rst doc/generator.cpp 
doc/helper_headers.rst doc/history.rst doc/init.rst doc/inline_clist.rst 
doc/inline_list.rst doc/install.rst doc/libHX_Documentation.rst 
doc/linked_list.rst doc/macros.rst doc/maps.rst doc/memory_container.rst 
doc/misc_functions.rst doc/option_parsing.rst doc/process_management.rst 
doc/random_numbers.rst doc/scope.rst doc/shconfig.rst doc/socket_functions.rst 
doc/string_formatter.rst doc/string_ops.rst doc/strlcpy-timing.rst 
doc/time_functions.rst doc/typecheck_casts.rst doc/ux-file.rst doc/ux-mmap.rst
+EXTRA_DIST = doc/api.rst doc/assorted.txt doc/bitmaps.rst doc/changelog.rst 
doc/const_cast.c doc/dirstamp.rst doc/files_and_dirs.rst doc/generator.cpp 
doc/helper_headers.rst doc/history.rst doc/init.rst doc/inline_clist.rst 
doc/inline_list.rst doc/install.rst doc/libHX_Documentation.rst 
doc/linked_list.rst doc/macros.rst doc/maps.rst doc/memory_container.rst 
doc/misc_functions.rst doc/option_parsing.rst doc/process_management.rst 
doc/random_numbers.rst doc/scope.rst doc/shconfig.rst doc/socket_functions.rst 
doc/string_formatter.rst doc/string_ops.rst doc/strlcpy-timing.rst doc/tie.rst 
doc/time_functions.rst doc/typecheck_casts.rst doc/ux-file.rst doc/ux-mmap.rst
 all: config.h
        $(MAKE) $(AM_MAKEFLAGS) all-recursive
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/libHX-5.2/configure new/libHX-5.3/configure
--- old/libHX-5.2/configure     2025-10-19 15:26:16.032387905 +0200
+++ new/libHX-5.3/configure     2026-01-29 13:15:37.990053066 +0100
@@ -1,6 +1,6 @@
 #! /bin/sh
 # Guess values for system-dependent variables and create Makefiles.
-# Generated by GNU Autoconf 2.72 for libHX 5.2.
+# Generated by GNU Autoconf 2.72 for libHX 5.3.
 #
 #
 # Copyright (C) 1992-1996, 1998-2017, 2020-2023 Free Software Foundation,
@@ -611,8 +611,8 @@
 # Identity of this package.
 PACKAGE_NAME='libHX'
 PACKAGE_TARNAME='libhx'
-PACKAGE_VERSION='5.2'
-PACKAGE_STRING='libHX 5.2'
+PACKAGE_VERSION='5.3'
+PACKAGE_STRING='libHX 5.3'
 PACKAGE_BUGREPORT=''
 PACKAGE_URL=''
 
@@ -1374,7 +1374,7 @@
   # Omit some internal or obsolete options to make the list less imposing.
   # This message is too long to be a string in the A/UX 3.1 sh.
   cat <<_ACEOF
-'configure' configures libHX 5.2 to adapt to many kinds of systems.
+'configure' configures libHX 5.3 to adapt to many kinds of systems.
 
 Usage: $0 [OPTION]... [VAR=VALUE]...
 
@@ -1445,7 +1445,7 @@
 
 if test -n "$ac_init_help"; then
   case $ac_init_help in
-     short | recursive ) echo "Configuration of libHX 5.2:";;
+     short | recursive ) echo "Configuration of libHX 5.3:";;
    esac
   cat <<\_ACEOF
 
@@ -1560,7 +1560,7 @@
 test -n "$ac_init_help" && exit $ac_status
 if $ac_init_version; then
   cat <<\_ACEOF
-libHX configure 5.2
+libHX configure 5.3
 generated by GNU Autoconf 2.72
 
 Copyright (C) 2023 Free Software Foundation, Inc.
@@ -2213,7 +2213,7 @@
 This file contains any messages produced by compilers while
 running configure, to aid debugging if configure makes a mistake.
 
-It was created by libHX $as_me 5.2, which was
+It was created by libHX $as_me 5.3, which was
 generated by GNU Autoconf 2.72.  Invocation command line was
 
   $ $0$ac_configure_args_raw
@@ -3910,7 +3910,7 @@
 
 # Define the identity of the package.
  PACKAGE='libhx'
- VERSION='5.2'
+ VERSION='5.3'
 
 
 printf "%s\n" "#define PACKAGE \"$PACKAGE\"" >>confdefs.h
@@ -20393,7 +20393,7 @@
 # report actual input values of CONFIG_FILES etc. instead of their
 # values after options handling.
 ac_log="
-This file was extended by libHX $as_me 5.2, which was
+This file was extended by libHX $as_me 5.3, which was
 generated by GNU Autoconf 2.72.  Invocation command line was
 
   CONFIG_FILES    = $CONFIG_FILES
@@ -20461,7 +20461,7 @@
 cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
 ac_cs_config='$ac_cs_config_escaped'
 ac_cs_version="\\
-libHX config.status 5.2
+libHX config.status 5.3
 configured by $0, generated by GNU Autoconf 2.72,
   with options \\"\$ac_cs_config\\"
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/libHX-5.2/configure.ac new/libHX-5.3/configure.ac
--- old/libHX-5.2/configure.ac  2025-10-19 15:24:57.194642068 +0200
+++ new/libHX-5.3/configure.ac  2026-01-26 20:33:28.886918202 +0100
@@ -1,4 +1,4 @@
-AC_INIT([libHX], [5.2])
+AC_INIT([libHX], [5.3])
 AC_CONFIG_AUX_DIR([build-aux])
 AC_CONFIG_HEADERS([config.h])
 AC_CONFIG_MACRO_DIR([m4])
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/libHX-5.2/doc/api.rst new/libHX-5.3/doc/api.rst
--- old/libHX-5.2/doc/api.rst   2025-10-19 15:14:37.346683105 +0200
+++ new/libHX-5.3/doc/api.rst   2025-11-17 10:07:15.113167251 +0100
@@ -9,6 +9,7 @@
 ======  ======  ======  ========================================
 RMV     MinVer  FirstA  Name
 ======  ======  ======  ========================================
+5.3     5.3     5.3     HX::unique_tie
 5.0     5.0     4.28    HXdeque_to_vecx
 5.2     4.28    4.28    HX_getopt6
 4.28    4.28    4.28    HX_getopt6_clean
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/libHX-5.2/doc/changelog.rst 
new/libHX-5.3/doc/changelog.rst
--- old/libHX-5.2/doc/changelog.rst     2025-10-19 15:28:11.689862053 +0200
+++ new/libHX-5.3/doc/changelog.rst     2026-01-29 13:15:17.812153285 +0100
@@ -1,3 +1,18 @@
+v5.3 (2026-01-29)
+=================
+
+Enhancements:
+
+* Added the ``<libHX/tie.hpp>`` include together with the
+  ``HX::unique_tie`` function
+
+Fixes:
+
+* Make ``HX_isascii`` work in C23 mode
+* Drop symbols from libHX.map that no longer exist,
+  these caused a build failure with llvm-ld (lld)
+
+
 v5.2 (2025-10-19)
 =================
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/libHX-5.2/doc/tie.rst new/libHX-5.3/doc/tie.rst
--- old/libHX-5.2/doc/tie.rst   1970-01-01 01:00:00.000000000 +0100
+++ new/libHX-5.3/doc/tie.rst   2025-12-07 16:57:13.309634712 +0100
@@ -0,0 +1,56 @@
+==============
+Memory helpers
+==============
+
+``unique_tie``
+==============
+
+``unique_tie`` creates a proxy object for ``std::unique_ptr<T,D>`` instances to
+interact with foreign functions that output a value through a ``T**`` pointer.
+
+Normally, for functions which return their result through an argument pointer,
+a temporary variable may be necessary when one wishes to use unique_ptr:
+
+.. code-block: c++
+
+       struct mydel { void operator()(void *x) const { free(x); } };
+
+       unique_ptr<char[], mydel> u;
+       char *x;
+       bla_alloc(&x);
+       u.reset(x);
+
+With ``unique_tie``, this can be shortened to:
+
+.. code-block: c++
+
+       unique_ptr<char[], mydel> u;
+       bla_alloc(&unique_tie(u));
+
+This is similar to C++23's ``std::out_ptr`` and ``std::in_out_ptr``.
+``unique_tie`` has subtle differences, though:
+
+* Only usable to ``unique_ptr``, not ``shared_ptr`` or raw pointers.
+* No implict conversions / No user-defined conversion operators.
+* No ``void **`` conversion.
+* Clearing is explicit, with ``~``.
+* Address-taking is explicit in text, i.e. you have to type a ``&`` in source
+  code. This is a deliberate choice for helping trivial text grepping for
+  pointer-taking.
+* There is higher memory use for when using a unique_ptr with custom deleter
+  function, but the optimizer might just optimize it away anyway.
+
+Repeated use of a variable with clearing inbetween works like so:
+
+.. code-block: c++
+
+       unique_ptr<char[], mydel> u;
+       iconvxx("utf-8", "utf-16", &unique_tie(u), srctext1);
+       printf("%s\n", u.get());
+       iconvxx("utf-8", "utf-16", &~unique_tie(u), srctext2);
+       printf("%s\n", u.get());
+       iconvxx("utf-8", "utf-16", &~unique_tie(u), srctext3);
+       printf("%s\n", u.get());
+
+It is acceptable to employ/enforce ``&~`` in all uses – even the
+first – of unique_tie in your project to guard against human error.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/libHX-5.2/include/Makefile.am 
new/libHX-5.3/include/Makefile.am
--- old/libHX-5.2/include/Makefile.am   2025-03-11 01:48:59.471976632 +0100
+++ new/libHX-5.3/include/Makefile.am   2025-11-17 10:06:29.325266435 +0100
@@ -5,5 +5,5 @@
        libHX/endian.h libHX/endian_float.h libHX/init.h \
        libHX/intdiff.hpp libHX/io.h libHX/list.h \
        libHX/map.h libHX/misc.h libHX/option.h libHX/proc.h \
-       libHX/scope.hpp libHX/socket.h libHX/string.h \
+       libHX/scope.hpp libHX/socket.h libHX/string.h libHX/tie.hpp \
        libHX/libxml_helper.h libHX/wx_helper.hpp
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/libHX-5.2/include/Makefile.in 
new/libHX-5.3/include/Makefile.in
--- old/libHX-5.2/include/Makefile.in   2025-10-19 15:26:15.680648386 +0200
+++ new/libHX-5.3/include/Makefile.in   2026-01-29 13:15:38.393401446 +0100
@@ -311,7 +311,7 @@
        libHX/endian.h libHX/endian_float.h libHX/init.h \
        libHX/intdiff.hpp libHX/io.h libHX/list.h \
        libHX/map.h libHX/misc.h libHX/option.h libHX/proc.h \
-       libHX/scope.hpp libHX/socket.h libHX/string.h \
+       libHX/scope.hpp libHX/socket.h libHX/string.h libHX/tie.hpp \
        libHX/libxml_helper.h libHX/wx_helper.hpp
 
 all: all-am
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/libHX-5.2/include/libHX/ctype_helper.h 
new/libHX-5.3/include/libHX/ctype_helper.h
--- old/libHX-5.2/include/libHX/ctype_helper.h  2025-03-07 23:14:35.739385239 
+0100
+++ new/libHX-5.3/include/libHX/ctype_helper.h  2026-01-05 14:54:22.772292496 
+0100
@@ -41,7 +41,7 @@
 
 static __inline__ bool HX_isascii(unsigned char c)
 {
-       return isascii(c);
+       return c < 128;
 }
 
 static __inline__ bool HX_isdigit(unsigned char c)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/libHX-5.2/include/libHX/tie.hpp 
new/libHX-5.3/include/libHX/tie.hpp
--- old/libHX-5.2/include/libHX/tie.hpp 1970-01-01 01:00:00.000000000 +0100
+++ new/libHX-5.3/include/libHX/tie.hpp 2025-11-17 10:20:01.662895001 +0100
@@ -0,0 +1,23 @@
+#pragma once
+#include <memory>
+
+namespace HX {
+
+template<typename T, typename D> class unique_proxy {
+       public:
+       unique_proxy(std::unique_ptr<T, D> &a) : u(a), p(u.get()) {}
+       ~unique_proxy() { u.reset(p); }
+       typename std::unique_ptr<T, D>::pointer *operator&() { return &p; }
+       unique_proxy &operator~() { u.reset(); p = nullptr; return *this; }
+       private:
+       std::unique_ptr<T, D> &u;
+       typename std::unique_ptr<T, D>::pointer p;
+};
+
+template<typename T, typename D> unique_proxy<T, D>
+unique_tie(std::unique_ptr<T, D> &u)
+{
+       return unique_proxy<T, D>(u);
+}
+
+} /* namespace */
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/libHX-5.2/src/internal.h new/libHX-5.3/src/internal.h
--- old/libHX-5.2/src/internal.h        2025-10-19 15:06:56.147293516 +0200
+++ new/libHX-5.3/src/internal.h        2026-01-05 13:48:39.279764458 +0100
@@ -40,7 +40,7 @@
 #define MAXLNLEN 1024 /* max length for usual line */
 
 #define HXMC_IDENT 0x200571AF
-#if !defined(__cplusplus)
+#if !defined(__cplusplus) && __STDC_VERSION__ < 202300L
 #      define nullptr NULL
 #endif
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/libHX-5.2/src/libHX.map new/libHX-5.3/src/libHX.map
--- old/libHX-5.2/src/libHX.map 2025-10-19 15:06:56.147293516 +0200
+++ new/libHX-5.3/src/libHX.map 2025-12-07 16:55:46.695918144 +0100
@@ -46,7 +46,6 @@
        HX_strltrim;
        HX_strmid;
        HX_strndup;
-       HX_strnlen;
        HX_strquote;
        HX_strrcspn;
        HX_strrev;

Reply via email to