aboutsummaryrefslogtreecommitdiff
path: root/lib/util.cpp
AgeCommit message (Collapse)Author
2021-10-04Further tighten the linkifier in prettyPrint()Alexey Rusakov
2021-10-03prettyPrint(): tighten up Matrix identifier regexAlexey Rusakov
It was too permissive on characters before the identifier and also allowed the domain name to start on dash, which should not occur. Closes #512.
2020-12-24Fix clang-tidy/clazy warningsKitsune Ral
2020-09-11util.cpp: assert validity of regular expressionsKitsune Ral
2020-09-11More stringent serverpart checks in user idsKitsune Ral
May lead to new crashes due to nullptr returned from Connection::user() on more utterly invalid content from the wire that the library still doesn't properly invalidate. This has long been quite a good case for exceptions, or another error-handling framework: Connection::user() can return nullptr either when out of memory or when the id is invalid or empty, and other places are likely to treat invalid ids in different ways but probably just hope that memory exhaustion "never happens", or try to handle it in a quite different way than an empty or invalid id. Something to think of in 0.7.
2020-08-23More cleanup; drop Qt bearer management on Qt 5.15+Kitsune Ral
Qt 5.15 deprecates bearer management.
2020-06-07util.cpp: drop OptimizeOnFirstUsage option on newer QtKitsune Ral
Qt 5.12+ always optimise QRegularExpression on first usage.
2020-02-07Fix build on big-endian systemsAndres Salomon
On little-endian systems, this call to qToLittleEndian(hash) disappears completely. On big-endian systems, it turns into qbswap(hash), and causes a build error. qbswap() isn't defined for QByteArrays, because QByteArray isn't an array containing multi-byte elements. Since each element is a single byte, machine endianness isn't a factor. (If we really wanted to swap the bytes, we'd need to reverse every 4 bytes of the array.) This just drops the call to QToLittleEndian completely. The lines after it converts part of the hash to a QDataStream, which DOES have to worry about endianness, but that code is also specifically calling QDataStream::setByteOrder to specify little-endian.
2019-11-30Fix room highlighting for names with hashtagAlexey Andreyev
Fixes #359
2019-09-29function_traits: drop unused piecesKitsune Ral
is_callable won't ever be needed because std::is_invokable is here; arg_number and returns() didn't find its users; and function_type has been just broken all along for member functions.
2019-08-09stringToHueF: pick a safer name for the variableKitsune Ral
std::string is still a thing, after all.
2019-08-09Namespace: QMatrixClient -> Quotient (with back comp alias)Kitsune Ral
2019-08-02Apply the new brace wrapping to source filesKitsune Ral
2019-07-09Merge branch 'master' into use-clang-formatKitsune Ral
2019-07-09Move serverPart() to the public APIKitsune Ral
Also: Connection::resolveServer() now only accepts MXIDs, not domains.
2019-07-02linkifyUrls: support matrix: scheme and relative URLsKitsune Ral
2019-06-29Merge remote-tracking branch 'remotes/origin/master' into use-clang-formatKitsune Ral
2019-06-24Merge branch 'master' into clang-formatKitsune Ral
# Conflicts: # CMakeLists.txt # lib/avatar.cpp # lib/connection.cpp # lib/connection.h # lib/connectiondata.cpp # lib/csapi/account-data.cpp # lib/csapi/account-data.h # lib/csapi/capabilities.cpp # lib/csapi/capabilities.h # lib/csapi/content-repo.cpp # lib/csapi/create_room.cpp # lib/csapi/filter.cpp # lib/csapi/joining.cpp # lib/csapi/keys.cpp # lib/csapi/list_joined_rooms.cpp # lib/csapi/notifications.cpp # lib/csapi/openid.cpp # lib/csapi/presence.cpp # lib/csapi/pushrules.cpp # lib/csapi/registration.cpp # lib/csapi/room_upgrades.cpp # lib/csapi/room_upgrades.h # lib/csapi/search.cpp # lib/csapi/users.cpp # lib/csapi/versions.cpp # lib/csapi/whoami.cpp # lib/csapi/{{base}}.cpp.mustache # lib/events/accountdataevents.h # lib/events/eventcontent.h # lib/events/roommemberevent.cpp # lib/events/stateevent.cpp # lib/jobs/basejob.cpp # lib/jobs/basejob.h # lib/networkaccessmanager.cpp # lib/networksettings.cpp # lib/room.cpp # lib/room.h # lib/settings.cpp # lib/settings.h # lib/syncdata.cpp # lib/user.cpp # lib/user.h # lib/util.cpp
2019-05-23Move out the logic of the hue calculation to utilsAlexey Andreyev
2019-05-13sanitized(): add object replacement character (0xfffc) to the blacklistKitsune Ral
2019-05-13linkifyUrls(): be more conservative in parsing serverpartsKitsune Ral
Closes #321.
2019-05-13prettyPrint(): First linkify, than add more tagsKitsune Ral
Otherwise the linkification gets confused by HTML tags being already there and doesn't linkify what has to be linkified if that occurs at the beginning of the message.
2019-04-06Clean up on clang-tidy/clazy analysisKitsune Ral
2019-03-24Expose linkifyUrls() into library API for future useKitsune Ral
2019-03-24RoomMemberEvent: sanitize user display namesKitsune Ral
MemberEventContent::displayName() will strip away Unicode text direction override characters. Direct access to JSON can still provide "raw" data.
2019-03-24linkifyUrls(): fix linkification of emails containing "www."Kitsune Ral
Closes #303.
2019-03-02style: apply .clang-format to all .cpp and .h filesMarc Deop
2019-02-26Linkify Matrix identifiersKitsune Ral
This is a crude interim implementation until we get new fancy Matrix URIs.
2019-02-26prettyPrint(): only linkify http(s), ftp, mailto, magnet linksKitsune Ral
Closes #278.
2018-12-10Suppress a function_traits<> test with lambdas on MSVC2015Kitsune Ral
Assigning a lambda to a static variable causes it to fail with 'auto must always deduce to the same type' error.
2018-12-08function_traits: more tests, fix function objects/lambdas not working with ↵Kitsune Ral
some compilers A member function reference is not the same as a member function pointer.
2018-12-08function_traits<>: support any arity; add compile-time testsKitsune Ral
2018-11-22Fix QString initialisation from QStringBuilderKitsune Ral
You can't assign a QStringBuilder to auto.
2018-11-22Generalise and expose cacheLocation()Kitsune Ral
2018-07-07Remove [[gnu::const]] from linkifyUrls()Kitsune Ral
It's not a pure function by any account. Closes #377. Also: minor tweaks in util.cpp
2018-06-30Try [[gnu::const]]Kitsune Ral
2018-05-28Move out prettyPrint() from Room to util.hKitsune Ral
So that it could be used outside of room context.