# HG changeset patch # User Markus Mützel # Date 1702317638 -3600 # Mon Dec 11 19:00:38 2023 +0100 # Branch stable # Node ID 267d64174cb8e02620c1175687a946330942d278 # Parent 3f744873ad4de01645cea1d19682edec5807886b Allow making copies of symbol_match objects (bug #64975). * glob-match.h, glob-match.cc: Add implementations for copy constructor and copy assignment operator. diff -r 3f744873ad4d -r 267d64174cb8 liboctave/util/glob-match.cc --- a/liboctave/util/glob-match.cc Sun Dec 10 11:30:47 2023 -0800 +++ b/liboctave/util/glob-match.cc Mon Dec 11 19:00:38 2023 +0100 @@ -71,6 +71,17 @@ #endif } +symbol_match::symbol_match (const symbol_match& in) +{ + m_pat = in.m_pat; + +#if defined (OCTAVE_USE_WINDOWS_API) + m_glob = nullptr; +#else + m_glob = std::unique_ptr {new glob_match {m_pat}}; +#endif +} + bool symbol_match::match (const std::string& sym) { #if defined (OCTAVE_USE_WINDOWS_API) diff -r 3f744873ad4d -r 267d64174cb8 liboctave/util/glob-match.h --- a/liboctave/util/glob-match.h Sun Dec 10 11:30:47 2023 -0800 +++ b/liboctave/util/glob-match.h Mon Dec 11 19:00:38 2023 +0100 @@ -113,9 +113,18 @@ symbol_match (const std::string& pattern); - symbol_match (const symbol_match&) = default; + symbol_match (const symbol_match&); - symbol_match& operator = (const symbol_match&) = default; + symbol_match& operator = (const symbol_match& in) + { + if (this == &in) + return *this; + + m_pat = in.m_pat; + m_glob->set_pattern (m_pat); + + return *this; + } ~symbol_match () = default;