Rebased ref, commits from common ancestor:
commit 7d392796df7ee52279285cfe67d800c3aa3cbe61
Author:     Stephan Bergmann <[email protected]>
AuthorDate: Tue Feb 6 13:27:59 2024 +0100
Commit:     Andras Timar <[email protected]>
CommitDate: Sun Apr 6 14:07:44 2025 +0200

    external/zxcvbn-c: There is no std::basic_string<int>
    
    ...and at least LLVM 19 trunk libc++ complains about it now since
    <c3668779c13596e223c26fbd49670d18cd638c40> "[libc++] Remove deprecated
    char_traits base template (#72694)" with
    
    > In file included from dict-generate.cpp:25:
    > In file included from ~/llvm/inst/bin/../include/c++/v1/iostream:43:
    > In file included from ~/llvm/inst/bin/../include/c++/v1/ios:223:
    > In file included from ~/llvm/inst/bin/../include/c++/v1/__locale:24:
    > ~/llvm/inst/bin/../include/c++/v1/string:746:43: error: implicit 
instantiation of undefined template 'std::char_traits<int>'
    >   746 |   static_assert((is_same<_CharT, typename 
traits_type::char_type>::value),
    >       |                                           ^
    > dict-generate.cpp:861:18: note: in instantiation of template class 
'std::basic_string<int>' requested here
    >   861 |     StringOfInts Chld;
    >       |                  ^
    > ~/llvm/inst/bin/../include/c++/v1/__fwd/string.h:23:29: note: template is 
declared here
    >    23 | struct _LIBCPP_TEMPLATE_VIS char_traits;
    >       |                             ^
    
    etc., so use a std::vector<int> instead
    
    Change-Id: I51e8296edf7b16925ff01679e671525256055552
    Reviewed-on: https://gerrit.libreoffice.org/c/core/+/163048
    Tested-by: Jenkins
    Reviewed-by: Stephan Bergmann <[email protected]>

diff --git a/external/zxcvbn-c/0001-There-is-no-std-basic_string-int.patch.1 
b/external/zxcvbn-c/0001-There-is-no-std-basic_string-int.patch.1
new file mode 100644
index 000000000000..a1fe25bba08e
--- /dev/null
+++ b/external/zxcvbn-c/0001-There-is-no-std-basic_string-int.patch.1
@@ -0,0 +1,72 @@
+From 92c6ea875231876ca264187326ce2d615d5ad543 Mon Sep 17 00:00:00 2001
+From: Stephan Bergmann <[email protected]>
+Date: Tue, 6 Feb 2024 13:14:08 +0100
+Subject: There is no std::basic_string<int>
+
+...and at least LLVM 19 trunk libc++ complains about it now since
+<c3668779c13596e223c26fbd49670d18cd638c40> "[libc++] Remove deprecated
+char_traits base template (#72694)" with
+
+> In file included from dict-generate.cpp:25:
+> In file included from ~/llvm/inst/bin/../include/c++/v1/iostream:43:
+> In file included from ~/llvm/inst/bin/../include/c++/v1/ios:223:
+> In file included from ~/llvm/inst/bin/../include/c++/v1/__locale:24:
+> ~/llvm/inst/bin/../include/c++/v1/string:746:43: error: implicit 
instantiation of undefined template 'std::char_traits<int>'
+>   746 |   static_assert((is_same<_CharT, typename 
traits_type::char_type>::value),
+>       |                                           ^
+> dict-generate.cpp:861:18: note: in instantiation of template class 
'std::basic_string<int>' requested here
+>   861 |     StringOfInts Chld;
+>       |                  ^
+> ~/llvm/inst/bin/../include/c++/v1/__fwd/string.h:23:29: note: template is 
declared here
+>    23 | struct _LIBCPP_TEMPLATE_VIS char_traits;
+>       |                             ^
+
+etc., so use a std::vector<int> instead
+---
+ dict-generate.cpp | 12 ++++++------
+ 1 file changed, 6 insertions(+), 6 deletions(-)
+
+diff --git a/dict-generate.cpp b/dict-generate.cpp
+index eebcca9..fcfaaea 100644
+--- a/dict-generate.cpp
++++ b/dict-generate.cpp
+@@ -22,6 +22,7 @@
+  *
+  
**********************************************************************************/
+ 
++#include <algorithm>
+ #include <iostream>
+ #include <string>
+ #include <fstream>
+@@ -387,7 +388,7 @@ typedef map<string, Entry> EntryMap_t;
+ typedef list<string> StringList_t;
+ typedef list<NodeSPtr> NodeList_t;
+ typedef set<StringInt> StringIntSet_t;
+-typedef basic_string<int> StringOfInts;
++typedef vector<int> StringOfInts;
+ typedef vector<unsigned int> UintVect;
+ typedef vector<uint64_t> Uint64Vect;
+ typedef vector<StringInt *> StrIntPtrVect_t;
+@@ -864,15 +865,14 @@ void CreateArrays(NodeSPtr Root, StringIntSet_t & 
StrSet, StringOfInts & ChildAd
+     for(Itc = Root->ChildBegin(); Itc != Root->ChildEnd(); ++Itc)
+     {
+         int i = Itc->second->GetAddr();
+-        Chld += i;
++        Chld.push_back(i);
+     }
+     // Find where in pointer array the child pointer string is
+-    StringOfInts::size_type x = ChildAddrs.find(Chld);
+-    if (x == StringOfInts::npos)
++    StringOfInts::size_type x = search(ChildAddrs.begin(), ChildAddrs.end(), 
Chld.begin(), Chld.end()) - ChildAddrs.begin();
++    if (x == ChildAddrs.size())
+     {
+         // Not found, add it
+-        x = ChildAddrs.length();
+-        ChildAddrs += Chld;
++        ChildAddrs.insert(ChildAddrs.end(), Chld.begin(), Chld.end());
+     }
+     // Val will contain the final node data
+     uint64_t Val = Its->i;
+-- 
+2.43.0
+
diff --git a/external/zxcvbn-c/UnpackedTarball_zxcvbn-c.mk 
b/external/zxcvbn-c/UnpackedTarball_zxcvbn-c.mk
index b6eba6b8cb3a..b3b76aa3ef1c 100644
--- a/external/zxcvbn-c/UnpackedTarball_zxcvbn-c.mk
+++ b/external/zxcvbn-c/UnpackedTarball_zxcvbn-c.mk
@@ -11,8 +11,11 @@ $(eval $(call gb_UnpackedTarball_UnpackedTarball,zxcvbn-c))
 
 $(eval $(call gb_UnpackedTarball_set_tarball,zxcvbn-c,$(ZXCVBN_C_TARBALL)))
 
+# * external/zxcvbn-c/0001-There-is-no-std-basic_string-int.patch.1 sent 
upstream as
+#   <https://github.com/tsyrogit/zxcvbn-c/pull/31> "There is no 
std::basic_string<int>":
 $(eval $(call gb_UnpackedTarball_add_patches,zxcvbn-c,\
        external/zxcvbn-c/zxcvbn-c-2.5-do-not-use-stdafx.patch \
+       external/zxcvbn-c/0001-There-is-no-std-basic_string-int.patch.1 \
 ))
 
 # vim: set noet sw=4 ts=4:
commit 70048affa456e843f7c8b9b012983315af919db3
Author:     Thorsten Behrens <[email protected]>
AuthorDate: Sat Dec 23 22:37:26 2023 +0100
Commit:     Andras Timar <[email protected]>
CommitDate: Sun Apr 6 14:07:26 2025 +0200

    zxcvbn-c: disable warnings
    
    Change-Id: I348dc5f92f41fc3e8c1aee8743d5e1cf86fa3bbb
    Reviewed-on: https://gerrit.libreoffice.org/c/core/+/161259
    Tested-by: Jenkins
    Reviewed-by: Thorsten Behrens <[email protected]>

diff --git a/external/zxcvbn-c/ExternalProject_zxcvbn-c.mk 
b/external/zxcvbn-c/ExternalProject_zxcvbn-c.mk
index 51b60a9c2ecb..bd652464ca15 100644
--- a/external/zxcvbn-c/ExternalProject_zxcvbn-c.mk
+++ b/external/zxcvbn-c/ExternalProject_zxcvbn-c.mk
@@ -9,6 +9,8 @@
 
 $(eval $(call gb_ExternalProject_ExternalProject,zxcvbn-c))
 
+$(eval $(call gb_Library_set_warnings_disabled,zxcvbn-c))
+
 $(eval $(call gb_ExternalProject_register_targets,zxcvbn-c,\
        generate-dictionary-nodes \
 ))
diff --git a/external/zxcvbn-c/StaticLibrary_zxcvbn-c.mk 
b/external/zxcvbn-c/StaticLibrary_zxcvbn-c.mk
index 9748ef850c55..ac670ad6ed5b 100644
--- a/external/zxcvbn-c/StaticLibrary_zxcvbn-c.mk
+++ b/external/zxcvbn-c/StaticLibrary_zxcvbn-c.mk
@@ -11,6 +11,8 @@ $(eval $(call gb_StaticLibrary_StaticLibrary,zxcvbn-c))
 
 $(eval $(call gb_StaticLibrary_use_unpacked,zxcvbn-c,zxcvbn-c))
 
+$(eval $(call gb_StaticLibrary_set_warnings_disabled,zxcvbn-c))
+
 # zxcvbn-c static library depends on generation of dictionary nodes resulting 
in dict-src.h
 $(eval $(call gb_StaticLibrary_use_external_project,zxcvbn-c,zxcvbn-c,full))
 

Reply via email to