Script 'mail_helper' called by obssrc Hello community, here is the log from the commit of package perl-Curses for openSUSE:Factory checked in at 2024-05-16 17:16:51 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/perl-Curses (Old) and /work/SRC/openSUSE:Factory/.perl-Curses.new.1880 (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "perl-Curses" Thu May 16 17:16:51 2024 rev:35 rq:1174461 version:1.450.0 Changes: -------- --- /work/SRC/openSUSE:Factory/perl-Curses/perl-Curses.changes 2023-03-10 22:09:13.833638010 +0100 +++ /work/SRC/openSUSE:Factory/.perl-Curses.new.1880/perl-Curses.changes 2024-05-16 17:19:18.952926398 +0200 @@ -1,0 +2,10 @@ +Sun Apr 28 03:09:21 UTC 2024 - Tina Müller <[email protected]> + +- updated to 1.45 + see /usr/share/doc/packages/perl-Curses/ChangeLog + + New in 1.45 (Released April 27, 2023) + + Correct wide character data types to fix compile failure. + +------------------------------------------------------------------- Old: ---- Curses-1.44.tar.gz New: ---- Curses-1.45.tar.gz ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ perl-Curses.spec ++++++ --- /var/tmp/diff_new_pack.hZrjwL/_old 2024-05-16 17:19:19.828958149 +0200 +++ /var/tmp/diff_new_pack.hZrjwL/_new 2024-05-16 17:19:19.828958149 +0200 @@ -1,7 +1,7 @@ # # spec file for package perl-Curses # -# Copyright (c) 2023 SUSE LLC +# Copyright (c) 2024 SUSE LLC # # All modifications and additions to the file contributed by third parties # remain the property of their copyright owners, unless otherwise agreed @@ -18,15 +18,26 @@ %define cpan_name Curses Name: perl-Curses -Version: 1.44 +Version: 1.450.0 Release: 0 +# 1.45 -> normalize -> 1.450.0 +%define cpan_version 1.45 License: Artistic-1.0 OR GPL-1.0-or-later Summary: Terminal screen handling and optimization URL: https://metacpan.org/release/%{cpan_name} -Source0: https://cpan.metacpan.org/authors/id/G/GI/GIRAFFED/%{cpan_name}-%{version}.tar.gz +Source0: https://cpan.metacpan.org/authors/id/G/GI/GIRAFFED/%{cpan_name}-%{cpan_version}.tar.gz Source1: cpanspec.yml BuildRequires: perl BuildRequires: perl-macros +Provides: perl(Curses) = %{version} +Provides: perl(Curses::Field) +Provides: perl(Curses::Form) +Provides: perl(Curses::Item) +Provides: perl(Curses::Menu) +Provides: perl(Curses::Panel) +Provides: perl(Curses::Screen) +Provides: perl(Curses::Window) +%undefine __perllib_provides %{perl_requires} # MANUAL BEGIN BuildRequires: ncurses5-devel @@ -41,9 +52,9 @@ how your system's curses(3) library works. %prep -%autosetup -n %{cpan_name}-%{version} +%autosetup -n %{cpan_name}-%{cpan_version} -find . -type f ! -path "*/t/*" ! -name "*.pl" ! -path "*/bin/*" ! -path "*/script/*" ! -name "configure" -print0 | xargs -0 chmod 644 +find . -type f ! -path "*/t/*" ! -name "*.pl" ! -path "*/bin/*" ! -path "*/script/*" ! -path "*/scripts/*" ! -name "configure" -print0 | xargs -0 chmod 644 # MANUAL BEGIN sed -i '1s| /usr//bin/perl|%{__perl}|' demo.form sed -i '1s| /usr/bin/perl|%{__perl}|' demo* gdc testsyms ++++++ Curses-1.44.tar.gz -> Curses-1.45.tar.gz ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Curses-1.44/ChangeLog new/Curses-1.45/ChangeLog --- old/Curses-1.44/ChangeLog 2023-03-07 19:39:06.000000000 +0100 +++ new/Curses-1.45/ChangeLog 2024-04-28 01:16:25.000000000 +0200 @@ -4,6 +4,10 @@ Note that the filename "ChangeLog" is recognized by the CPAN machinery as the name of a change log. +New in 1.45 (Released April 27, 2023) + + Correct wide character data types to fix compile failure. + New in 1.44 (Released March 07, 2023) Implement A_ITALIC diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Curses-1.44/Curses.pm new/Curses-1.45/Curses.pm --- old/Curses-1.44/Curses.pm 2023-03-07 18:19:47.000000000 +0100 +++ new/Curses-1.45/Curses.pm 2024-04-28 01:16:51.000000000 +0200 @@ -51,7 +51,7 @@ package Curses; -$VERSION = '1.44'; # Makefile.PL picks this up +$VERSION = '1.45'; # Makefile.PL picks this up use Carp; require Exporter; diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Curses-1.44/CursesFunWide.c new/Curses-1.45/CursesFunWide.c --- old/Curses-1.44/CursesFunWide.c 2014-04-26 18:02:50.000000000 +0200 +++ new/Curses-1.45/CursesFunWide.c 2024-04-27 05:27:42.000000000 +0200 @@ -49,10 +49,12 @@ } XS(XS_CURSES_ungetchar) { + bool succeeded; + wchar_t wc; dXSARGS; c_exactargs("ungetchar", items, 1); - wint_t wc = c_sv2wchar(ST(0)); - if (wc == WEOF) + c_sv2GetWchar(ST(0), &wc, &succeeded); + if (!succeeded) XSRETURN_NO; #ifdef C_UNGET_WCH int ret; @@ -111,7 +113,7 @@ #ifdef C_ADDNWSTR int ret; size_t len; - wint_t *wstr = c_sv2wstr(ST(c_arg), &len); + wchar_t *wstr = c_sv2wstr(ST(c_arg), &len); if (wstr == NULL) XSRETURN_NO; ret = waddnwstr(win, wstr, len); @@ -147,7 +149,7 @@ #ifdef C_INS_NWSTR int ret; size_t len; - wint_t *wstr = c_sv2wstr(ST(c_arg), &len); + wchar_t *wstr = c_sv2wstr(ST(c_arg), &len); if (wstr == NULL) XSRETURN_NO; ret = wins_nwstr(win, wstr, len); diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Curses-1.44/CursesWide.c new/Curses-1.45/CursesWide.c --- old/Curses-1.44/CursesWide.c 2014-04-19 04:19:16.000000000 +0200 +++ new/Curses-1.45/CursesWide.c 2024-04-27 05:22:43.000000000 +0200 @@ -4,7 +4,7 @@ /* Combined Normal/Wide-Character helper functions */ /* April 2014, Edgar Fuß, Mathematisches Institut der Universität Bonn, - <[email protected]> + <[email protected]> */ #include <wchar.h> @@ -35,7 +35,7 @@ there is no utf8_to_uvchr_buf, etc. #endif } - + static void @@ -71,70 +71,97 @@ SvUTF8_off(sv); } + + static void c_wstr2sv(SV * const sv, wchar_t * const ws) { /*---------------------------------------------------------------------------- Set SV to a Perl string holding a given wide string -----------------------------------------------------------------------------*/ - wint_t *ws_p; - int need_utf8 = 0; - size_t ws_len = wcslen(ws); - - for (ws_p = ws; *ws_p; ws_p++) { - if (*ws_p > 0xff) { - need_utf8 = 1; - break; - } + size_t const wsLen = wcslen(ws); + + bool needUtf8; + unsigned int i; + + for (i = 0, needUtf8 = false; ws[i]; ++i) { + if (ws[i] > 0xff) + needUtf8 = true; } + SvPOK_on(sv); - if (need_utf8) { - U8 *u8, *u8_p; - u8 = (U8 *)sv_grow(sv, (ws_len + 1) * UTF8_MAXBYTES); - for (ws_p = ws, u8_p = u8; *ws_p; ws_p++) - u8_p = UVCHR_TO_UTF8(u8_p, *ws_p); - *u8_p = 0; - SvCUR_set(sv, u8_p - u8); + + if (needUtf8) { + U8 * u8; + U8 * u8Cursor; + unsigned int i; + + u8 = (U8 *)sv_grow(sv, (wsLen + 1) * UTF8_MAXBYTES); + for (i = 0, u8Cursor = &u8[0]; ws[i]; ++i) + u8Cursor = UVCHR_TO_UTF8(u8Cursor, ws[i]); + *u8Cursor = 0; + SvCUR_set(sv, u8Cursor - &u8[0]); SvUTF8_on(sv); } else { - U8 *u8, *u8_p; - u8 = (U8 *)sv_grow(sv, ws_len + 1); - for (ws_p = ws, u8_p = u8; *ws_p; ws_p++, u8_p++) - *u8_p = *ws_p; - *u8_p = 0; - SvCUR_set(sv, ws_len); + U8 * u8; + unsigned int i; + + u8 = (U8 *)sv_grow(sv, wsLen + 1); + for (i = 0; ws[i]; ++i) + u8[i] = ws[i]; + u8[i] = 0; + SvCUR_set(sv, wsLen); SvUTF8_off(sv); } } -static wint_t -c_sv2wchar(SV * const sv) { +static void +c_sv2GetWchar(SV * const sv, + wchar_t * const wcP, + bool * const succeededP) { /*---------------------------------------------------------------------------- Extract a wide character from a SV holding a one-character Perl string - Fails (returning WEOF) if SV doesn't hold a string or the string is not one - character long. + Fails (returning *succeededP false) iff SV doesn't hold a string or the + string is not one character long. -----------------------------------------------------------------------------*/ - U8 *s; - STRLEN s_len; if (!SvPOK(sv)) - return WEOF; - s = (U8 *)SvPV(sv, s_len); - if (s_len == 0) - return WEOF; - if (SvUTF8(sv)) { - STRLEN len; - UV uv = utf8_to_uvchr_buf_x(s, s + s_len, &len); - if (len != s_len) - return WEOF; - return (wint_t) uv; - } else { - if (s_len != 1) - return WEOF; - return *s; + *succeededP = false; + else { + U8 * s; + STRLEN sLen; + + s = (U8 *)SvPV(sv, sLen); + + if (sLen == 0) + *succeededP = false; + else { + if (SvUTF8(sv)) { + STRLEN len; + UV uv; + + uv = utf8_to_uvchr_buf_x(s, s + sLen, &len); + + if (len != sLen) + *succeededP = false; + else { + *succeededP = true; + *wcP = (wchar_t)uv; + } + } else { + if (sLen != 1) + *succeededP = false; + else { + *succeededP = true; + *wcP = s[0]; + } + } + } } } + + static unsigned char * c_sv2bstr(SV * const sv, size_t * const b_len, @@ -197,54 +224,69 @@ } -static wint_t * +static wchar_t * c_sv2wstr(SV * const sv, - size_t * const w_len) { + size_t * const wLenP) { /*---------------------------------------------------------------------------- Extract a wide char string from a SV holding a Perl string. Fails (returning NULL) if SV doesn't hold a string or doesn't UTF-8 decode. - set w_len s to length of result. + set *wLenP to length of result. - Caller must free() result + Caller must free result -----------------------------------------------------------------------------*/ - U8 *s, *s_p, *s_end; - STRLEN s_len; - wint_t *ws, *ws_p; + wchar_t * ws; - if (!SvPOK(sv)) return NULL; - s = (U8 *)SvPV(sv, s_len); - s_p = s; - s_end = s + s_len; - ws = malloc((s_len + 1) * sizeof(*ws)); + if (!SvPOK(sv)) + ws = NULL; + else { + STRLEN sLen; + U8 * s; + + s = (U8 *)SvPV(sv, sLen); + ws = malloc((sLen + 1) * sizeof(ws[0])); /* number of bytes is an upper bound on the number of characters */ - if (ws == NULL) croak("c_sv2wstr: malloc"); - ws_p = ws; - if (SvUTF8(sv)) { - while (s_p < s_end) { - if (UTF8_IS_INVARIANT(*s_p)) { - *ws_p++ = *s_p++; + if (!ws) + croak("c_sv2wstr: malloc"); + if (SvUTF8(sv)) { + U8 * sP; + U8 * sEnd; + unsigned int i; + + sP = &s[0]; + sEnd = &s[sLen]; + i = 0; + + while (sP < sEnd) { + if (UTF8_IS_INVARIANT(*sP)) { + ws[i++] = *sP++; + } else { + STRLEN len; + ws[i++] = utf8_to_uvchr_buf_x(sP, sEnd, &len); + sP += len; + } + } + if (sP != sEnd) { + free(ws); + *wLenP = 0; + ws = NULL; } else { - STRLEN len; - *ws_p++ = utf8_to_uvchr_buf_x(s_p, s_end, &len); - s_p += len; + ws[i] = 0; + *wLenP = sLen; } - } - if (s_p != s_end) { - free(ws); - *w_len = 0; - return NULL; - } - } else { - s_p = s; - while (s_p < s_end) { - *ws_p++ = *s_p++; + } else { + unsigned int i; + + for (i = 0; i < sLen; ++i) + ws[i] = s[i]; + + ws[i] = 0; + *wLenP = sLen; } } - *ws_p = 0; - *w_len = s_len; return ws; } + diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Curses-1.44/META.json new/Curses-1.45/META.json --- old/Curses-1.44/META.json 2023-03-07 19:39:37.000000000 +0100 +++ new/Curses-1.45/META.json 2024-04-28 01:21:11.000000000 +0200 @@ -32,6 +32,6 @@ } }, "release_status" : "stable", - "version" : "1.44", + "version" : "1.45", "x_serialization_backend" : "JSON::PP version 4.04" } diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Curses-1.44/META.yml new/Curses-1.45/META.yml --- old/Curses-1.44/META.yml 2023-03-07 19:39:37.000000000 +0100 +++ new/Curses-1.45/META.yml 2024-04-28 01:21:11.000000000 +0200 @@ -17,5 +17,5 @@ directory: - t - inc -version: '1.44' +version: '1.45' x_serialization_backend: 'CPAN::Meta::YAML version 0.018'
