diff --git a/autobuild.xml b/autobuild.xml index 80c6e4e88b..52c4428259 100644 --- a/autobuild.xml +++ b/autobuild.xml @@ -823,47 +823,19 @@ platforms - darwin64 + common archive hash - 52c41a4547d2d9aceb4a9a1e9e1680c71e5ffa79 + 9c58108270fbad15a321f75501cdfb9c6b78a6f2 hash_algorithm sha1 url - https://github.com/secondlife/3p-emoji-shortcodes/releases/download/v6.1.0.5413f58/emoji_shortcodes-6.1.0.5413f58-darwin64-5413f58.tar.zst + https://github.com/secondlife/3p-emoji-shortcodes/releases/download/v15.3.2-r1/emoji_shortcodes-15.3.2.10207138275-common-10207138275.tar.zst name - darwin64 - - linux64 - - archive - - hash - 5b957aa7f353b10ae17b7119e5b3668f48a35325 - hash_algorithm - sha1 - url - https://github.com/secondlife/3p-emoji-shortcodes/releases/download/v6.1.0.5413f58/emoji_shortcodes-6.1.0.5413f58-linux64-5413f58.tar.zst - - name - linux64 - - windows64 - - archive - - hash - 3137e06d376767a631bc9626832d558c4d5e5aa9 - hash_algorithm - sha1 - url - https://github.com/secondlife/3p-emoji-shortcodes/releases/download/v6.1.0.5413f58/emoji_shortcodes-6.1.0.5413f58-windows64-5413f58.tar.zst - - name - windows64 + common license @@ -873,7 +845,7 @@ copyright Copyright 2017-2019 Miles Johnson. version - 6.1.0.5413f58 + 15.3.2.10207138275 name emoji_shortcodes canonical_repo @@ -1287,63 +1259,65 @@ name jpegencoderbasic - jpeglib + libjpeg-turbo platforms - darwin64 + windows64 archive hash - 776d114aa1e3455bb13deaacd756deb07b53ecbe + 36144272e381952a7c11f1d593c2916c5c7387d0 hash_algorithm sha1 url - https://github.com/secondlife/3p-jpeglib/releases/download/v8c.7846234/jpeglib-8c.7846234-darwin64-7846234.tar.zst + https://github.com/secondlife/3p-libjpeg-turbo/releases/download/v3.0.3-r1/libjpeg_turbo-3.0.3-windows64-10204037839.tar.zst name - darwin64 + windows64 linux64 archive hash - b4b2278bd2fcae85619e2145a243cca388d760d7 + f853a7d4fe842e7a661dd71a56a51f65b2ec25c7 hash_algorithm sha1 url - https://github.com/secondlife/3p-jpeglib/releases/download/v8c.7846234/jpeglib-8c.7846234-linux64-7846234.tar.zst + https://github.com/secondlife/3p-libjpeg-turbo/releases/download/v3.0.3-r1/libjpeg_turbo-3.0.3-linux64-10204037839.tar.zst name linux64 - windows64 + darwin64 archive hash - d50fcac69eeb9404638da07db96ee3e1191ecf93 + 6fcbc2c3c91b5e9bfbbc57ddf27d2f3698fe7d99 hash_algorithm sha1 url - https://github.com/secondlife/3p-jpeglib/releases/download/v8c.7846234/jpeglib-8c.7846234-windows64-7846234.tar.zst + https://github.com/secondlife/3p-libjpeg-turbo/releases/download/v3.0.3-r1/libjpeg_turbo-3.0.3-darwin64-10204037839.tar.zst name - windows64 + darwin64 license - jpeglib + libjpeg-turbo license_file - LICENSES/jpeglib.txt + LICENSES/libjpeg-turbo.txt copyright - Copyright (C) 1991-2011, Thomas G. Lane, Guido Vollbeding. + Copyright (C)2009-2024 D. R. Commander. All Rights Reserved. Copyright (C)2015 Viktor Szathmáry. All Rights Reserved. version - 8c.7846234 + 3.0.3 name - jpeglib + libjpeg-turbo + canonical_repo + https://github.com/secondlife/3p-libjpeg-turbo description JPEG encoding, decoding library @@ -1410,11 +1384,11 @@ archive hash - d5757ab84d934fa358f299ab91e2e297beaa3dac + e71ae7a645603fe967a69aa5beb5b3009185e177 hash_algorithm sha1 url - https://github.com/secondlife/3p-libhunspell/releases/download/v1.3.2.650fb94/libhunspell-1.3.2.650fb94-darwin64-650fb94.tar.zst + https://github.com/secondlife/3p-libhunspell/releases/download/v1.7.2-r1/libhunspell-1.7.2.10207243663-darwin64-10207243663.tar.zst name darwin64 @@ -1424,11 +1398,11 @@ archive hash - 6413d3bd4cd50c2a6b7f949eb4bd6f0c94feb984 + 275ffb7f60064d8008aed8406f80f34229f651fc hash_algorithm sha1 url - https://github.com/secondlife/3p-libhunspell/releases/download/v1.3.2.650fb94/libhunspell-1.3.2.650fb94-linux64-650fb94.tar.zst + https://github.com/secondlife/3p-libhunspell/releases/download/v1.7.2-r1/libhunspell-1.7.2.10207243663-linux64-10207243663.tar.zst name linux64 @@ -1438,11 +1412,11 @@ archive hash - c1be4a79b20435030b2e0e01b582c61b462c8376 + 89ff24e93eaeca7949ccdb5cc368f938f5b1f307 hash_algorithm sha1 url - https://github.com/secondlife/3p-libhunspell/releases/download/v1.3.2.650fb94/libhunspell-1.3.2.650fb94-windows64-650fb94.tar.zst + https://github.com/secondlife/3p-libhunspell/releases/download/v1.7.2-r1/libhunspell-1.7.2.10207243663-windows64-10207243663.tar.zst name windows64 @@ -1453,9 +1427,9 @@ license_file LICENSES/hunspell.txt copyright - See hunspell.txt + LGPL 2.1 version - 1.3.2.650fb94 + 1.7.2.10207243663 name libhunspell description @@ -2523,66 +2497,6 @@ Copyright (c) 2012, 2014, 2015, 2016 nghttp2 contributors description Secure Sockets Layer (SSL v2/v3) and Transport Layer Security (TLS v1) Library - pcre - - platforms - - darwin64 - - archive - - hash - b372d37596474043a62568e569b0ce155192f484 - hash_algorithm - sha1 - url - https://github.com/secondlife/3p-pcre/releases/download/v8.35.979fd86/pcre-8.35.979fd86-darwin64-979fd86.tar.zst - - name - darwin64 - - linux64 - - archive - - hash - 3a722c508a9278a49317e3f749f3256768f1c50b - hash_algorithm - sha1 - url - https://github.com/secondlife/3p-pcre/releases/download/v8.35-3c0eb51/pcre-8.35.3c0eb51-linux64-3c0eb51.tar.zst - - name - linux64 - - windows64 - - archive - - hash - 166564afb60a7536a038fae80e2fc9a41d6dbccb - hash_algorithm - sha1 - url - https://github.com/secondlife/3p-pcre/releases/download/v8.35.979fd86/pcre-8.35.979fd86-windows64-979fd86.tar.zst - - name - windows64 - - - license - bsd - license_file - LICENSES/pcre-license.txt - copyright - Copyright (c) 1997-2014 University of Cambridge; Copyright(c) 2009-2014 Zoltan Herczeg; Copyright (c) 2007-2012, Google Inc. - version - 8.35.979fd86 - name - pcre - description - PCRE Perl-compatible regular expression library - slvoice platforms @@ -2839,41 +2753,19 @@ Copyright (c) 2012, 2014, 2015, 2016 nghttp2 contributors platforms - darwin64 + common archive hash - deb47841d8e6c82fe9704aaa79d62846 + 52bfa9057a5d34cd841e93624c03a0cdcdf7b12a + hash_algorithm + sha1 url - https://3p.firestormviewer.org/viewer_fonts-1.240681616-common-240681616.tar.bz2 + https://3p.firestormviewer.org/viewer_fonts-1.0.0.242151216-common-242151216.tar.bz2 name - darwin64 - - linux64 - - archive - - hash - deb47841d8e6c82fe9704aaa79d62846 - url - https://3p.firestormviewer.org/viewer_fonts-1.240681616-common-240681616.tar.bz2 - - name - linux64 - - windows64 - - archive - - hash - deb47841d8e6c82fe9704aaa79d62846 - url - https://3p.firestormviewer.org/viewer_fonts-1.240681616-common-240681616.tar.bz2 - - name - windows64 + common license @@ -2883,7 +2775,7 @@ Copyright (c) 2012, 2014, 2015, 2016 nghttp2 contributors copyright Copyright 2016-2022 Brad Erickson CC-BY-4.0/MIT, Copyright 2016-2022 Twitter, Inc. CC-BY-4.0, Copyright 2013 Joe Loughry and Terence Eden MIT version - 1.579464 + 1.0.0.10204976553 name viewer-fonts description diff --git a/indra/cmake/Copy3rdPartyLibs.cmake b/indra/cmake/Copy3rdPartyLibs.cmake index 2c2e3de14f..4b573efa80 100644 --- a/indra/cmake/Copy3rdPartyLibs.cmake +++ b/indra/cmake/Copy3rdPartyLibs.cmake @@ -59,7 +59,6 @@ if(WINDOWS) libaprutil-1.dll nghttp2.dll glod.dll # restore GLOD - libhunspell.dll ) # Only copy OpenJPEG dll if needed @@ -201,7 +200,6 @@ elseif(DARWIN) libaprutil-1.dylib ${EXPAT_COPY} libGLOD.dylib # restore GLOD - libhunspell-1.3.0.dylib libndofdev.dylib libnghttp2.dylib libnghttp2.14.dylib @@ -271,7 +269,6 @@ elseif(LINUX) libaprutil-1.so.0 - libhunspell-1.3.so.0.0.0 #libopenjp2.so libuuid.so.16 libuuid.so.16.0.22 diff --git a/indra/cmake/Hunspell.cmake b/indra/cmake/Hunspell.cmake index bb037c0237..129679febd 100644 --- a/indra/cmake/Hunspell.cmake +++ b/indra/cmake/Hunspell.cmake @@ -1,4 +1,5 @@ # -*- cmake -*- +include(Linking) include(Prebuilt) include_guard() @@ -8,10 +9,16 @@ add_library( ll::hunspell INTERFACE IMPORTED ) use_system_binary(hunspell) use_prebuilt_binary(libhunspell) if (WINDOWS) - target_link_libraries( ll::hunspell INTERFACE libhunspell) + target_compile_definitions( ll::hunspell INTERFACE HUNSPELL_STATIC=1) + target_link_libraries( ll::hunspell INTERFACE + debug ${ARCH_PREBUILT_DIRS_DEBUG}/libhunspell.lib + optimized ${ARCH_PREBUILT_DIRS_RELEASE}/libhunspell.lib + ) elseif(DARWIN) - target_link_libraries( ll::hunspell INTERFACE hunspell-1.3) + target_link_libraries( ll::hunspell INTERFACE ${ARCH_PREBUILT_DIRS_RELEASE}/libhunspell-1.7.a + ) elseif(LINUX) - target_link_libraries( ll::hunspell INTERFACE hunspell-1.3) + target_link_libraries( ll::hunspell INTERFACE ${ARCH_PREBUILT_DIRS_RELEASE}/libhunspell-1.7.a + ) endif() target_include_directories( ll::hunspell SYSTEM INTERFACE ${LIBS_PREBUILT_DIR}/include/hunspell) diff --git a/indra/cmake/JPEG.cmake b/indra/cmake/JPEG.cmake index 252d7852d4..ade5a070cc 100644 --- a/indra/cmake/JPEG.cmake +++ b/indra/cmake/JPEG.cmake @@ -7,12 +7,14 @@ include_guard() add_library( ll::libjpeg INTERFACE IMPORTED ) use_system_binary(libjpeg) -use_prebuilt_binary(jpeglib) +use_prebuilt_binary(libjpeg-turbo) if (LINUX) - target_link_libraries( ll::libjpeg INTERFACE jpeg) + target_link_libraries( ll::libjpeg INTERFACE ${ARCH_PREBUILT_DIRS_RELEASE}/libjpeg.a) elseif (DARWIN) - target_link_libraries( ll::libjpeg INTERFACE jpeg) + target_link_libraries( ll::libjpeg INTERFACE ${ARCH_PREBUILT_DIRS_RELEASE}/libjpeg.a) elseif (WINDOWS) - target_link_libraries( ll::libjpeg INTERFACE jpeglib) + target_link_libraries( ll::libjpeg INTERFACE + debug ${ARCH_PREBUILT_DIRS_DEBUG}/jpeg.lib + optimized ${ARCH_PREBUILT_DIRS_RELEASE}/jpeg.lib) endif (LINUX) target_include_directories( ll::libjpeg SYSTEM INTERFACE ${LIBS_PREBUILT_DIR}/include) diff --git a/indra/cmake/LLPrimitive.cmake b/indra/cmake/LLPrimitive.cmake index 735f5e8052..1e81532551 100644 --- a/indra/cmake/LLPrimitive.cmake +++ b/indra/cmake/LLPrimitive.cmake @@ -6,7 +6,6 @@ include(Boost) include_guard() -add_library( ll::pcre INTERFACE IMPORTED ) add_library( ll::minizip-ng INTERFACE IMPORTED ) add_library( ll::libxml INTERFACE IMPORTED ) add_library( ll::colladadom INTERFACE IMPORTED ) @@ -22,11 +21,8 @@ use_system_binary( colladadom ) use_prebuilt_binary(colladadom) use_prebuilt_binary(minizip-ng) # needed for colladadom -use_prebuilt_binary(pcre) use_prebuilt_binary(libxml2) -target_link_libraries( ll::pcre INTERFACE pcrecpp pcre ) - if (WINDOWS) target_link_libraries( ll::minizip-ng INTERFACE libminizip ) else() diff --git a/indra/llprimitive/CMakeLists.txt b/indra/llprimitive/CMakeLists.txt index 959be7e820..fe7895ba67 100644 --- a/indra/llprimitive/CMakeLists.txt +++ b/indra/llprimitive/CMakeLists.txt @@ -71,7 +71,6 @@ target_link_libraries(llprimitive llrender llphysicsextensions_impl ll::colladadom - ll::pcre ll::glh_linear ) diff --git a/indra/llui/llemojihelper.cpp b/indra/llui/llemojihelper.cpp index 2d0db0280e..04806bec33 100644 --- a/indra/llui/llemojihelper.cpp +++ b/indra/llui/llemojihelper.cpp @@ -84,7 +84,9 @@ bool LLEmojiHelper::isCursorInEmojiCode(const LLWString& wtext, S32 cursorPos, S shortCodePos--; } - bool isShortCode = (cursorPos - shortCodePos >= 2) && (L':' == wtext[shortCodePos - 1]); // FIRE-33773 - fix logic to avoid OOB access to wtext + bool isShortCode = (cursorPos - shortCodePos >= 2) && (L':' == wtext[shortCodePos - 1]); + if(isShortCode && (shortCodePos >= 2) && isdigit(wtext[shortCodePos - 2])) // Add qualifier to avoid emoji pop-up when typing times. + isShortCode = false; if (pShortCodePos) *pShortCodePos = (isShortCode) ? shortCodePos - 1 : -1; return isShortCode; diff --git a/indra/llui/llspellcheck.cpp b/indra/llui/llspellcheck.cpp index 774aa40067..0ad9dbadc8 100644 --- a/indra/llui/llspellcheck.cpp +++ b/indra/llui/llspellcheck.cpp @@ -30,12 +30,7 @@ #include "llsdserialize.h" #include "llspellcheck.h" -#if LL_WINDOWS - #include - #pragma comment(lib, "libhunspell.lib") -#else - #include -#endif +#include static const std::string DICT_DIR = "dictionaries"; static const std::string DICT_FILE_CUSTOM = "user_custom.dic"; @@ -64,11 +59,11 @@ void LLSpellChecker::initSingleton() bool LLSpellChecker::checkSpelling(const std::string& word) const { - if ( (!mHunspell) || (word.length() < 3) || (0 != mHunspell->spell(word.c_str())) ) + if ( (!mHunspell) || (word.length() < 3) || (0 != mHunspell->spell(word)) ) { return true; } - if (mIgnoreList.size() > 0) + if (!mIgnoreList.empty()) { std::string word_lower(word); LLStringUtil::toLower(word_lower); @@ -85,15 +80,8 @@ S32 LLSpellChecker::getSuggestions(const std::string& word, std::vectorsuggest(&suggestion_list, word.c_str())) != 0 ) - { - for (int suggestion_index = 0; suggestion_index < suggestion_cnt; suggestion_index++) - { - suggestions.push_back(suggestion_list[suggestion_index]); - } - mHunspell->free_list(&suggestion_list, suggestion_cnt); - } + suggestions = mHunspell->suggest(word); + return static_cast(suggestions.size()); } @@ -194,7 +182,7 @@ void LLSpellChecker::addToCustomDictionary(const std::string& word) { if (mHunspell) { - mHunspell->add(word.c_str()); + mHunspell->add(word); } addToDictFile(getDictionaryUserPath() + DICT_FILE_CUSTOM, word); sSettingsChangeSignal(); @@ -441,7 +429,7 @@ bool LLSpellChecker::canRemoveDictionary(const std::string& dict_language) const LLSD dict_info = getDictionaryData(dict_language); return (dict_info["user_installed"].asBoolean()) && - ( (!getUseSpellCheck()) || (!LLSpellChecker::instance().isActiveDictionary(dict_language)) ); + ( (!getUseSpellCheck()) || (!isActiveDictionary(dict_language)) ); } void LLSpellChecker::removeDictionary(const std::string& dict_language) diff --git a/indra/newview/CMakeLists.txt b/indra/newview/CMakeLists.txt index d9c33a36a0..0e6a7a6949 100644 --- a/indra/newview/CMakeLists.txt +++ b/indra/newview/CMakeLists.txt @@ -2178,7 +2178,6 @@ if (WINDOWS) ${CMAKE_SOURCE_DIR}/../etc/message.xml ${CMAKE_SOURCE_DIR}/../scripts/messages/message_template.msg #${SHARED_LIB_STAGING_DIR}/openjp2.dll # Only copy OpenJPEG dll if needed - ${SHARED_LIB_STAGING_DIR}/libhunspell.dll ${SHARED_LIB_STAGING_DIR}/llwebrtc.dll #${SHARED_LIB_STAGING_DIR}/${LL_INTDIR}/SLVoice.exe #${SHARED_LIB_STAGING_DIR}/${LL_INTDIR}/libsndfile-1.dll diff --git a/indra/newview/viewer_manifest.py b/indra/newview/viewer_manifest.py index 43e9717c13..332410ba64 100755 --- a/indra/newview/viewer_manifest.py +++ b/indra/newview/viewer_manifest.py @@ -712,9 +712,6 @@ class Windows_x86_64_Manifest(ViewerManifest): # HTTP/2 self.path("nghttp2.dll") - # Hunspell - self.path("libhunspell.dll") - # BugSplat if self.args.get('bugsplat'): self.path("BsSndRpt64.exe") @@ -1163,7 +1160,6 @@ class Darwin_x86_64_Manifest(ViewerManifest): # with self.prefix(src=relpkgdir, dst=""): # self.path("libndofdev.dylib") - # self.path("libhunspell-1.3.a") # with self.prefix(src_dst="cursors_mac"): # self.path("*.tif") @@ -1450,7 +1446,6 @@ class Darwin_x86_64_Manifest(ViewerManifest): # copy additional libs in /Contents/MacOS/ self.path(os.path.join(relpkgdir, "libndofdev.dylib"), dst="Resources/libndofdev.dylib") - self.path(os.path.join(relpkgdir, "libhunspell-1.3.0.dylib"), dst="Resources/libhunspell-1.3.0.dylib") # CEF framework goes inside Contents/Frameworks. # Remember where we parked this car. @@ -2152,7 +2147,6 @@ class LinuxManifest(ViewerManifest): self.path_optional("libfusion*.so*") self.path_optional("libdirect*.so*") self.path_optional("libopenjpeg.so*") - self.path("libhunspell-1.3.so*") self.path("libalut.so*") #self.path("libpng15.so.15") #use provided libpng to workaround incompatible system versions on some distros #self.path("libpng15.so.15.13.0") #use provided libpng to workaround incompatible system versions on some distros @@ -2287,7 +2281,6 @@ class Linux_i686_Manifest(LinuxManifest): self.path("libdirectfb-1.4.so.5") self.path("libfusion-1.4.so.5") self.path("libdirect-1.4.so.5*") - self.path("libhunspell-1.3.so*") self.path("libalut.so*") self.path("libopenal.so*")