Single shared files are a bit special and contain the full path in the
name because they are not shared as part of a directory, epurate the
path component from matching process and from search result
Add capability to libretroshare to share single files without sharing
the whole folder containing it, this is expecially useful in Android
where files are organized in a peculiar way that render classic way of
sharing folder almost unusable. Using extra files which was already
implemented doesn't solve this use case as extra files are limited in
time and dosn't support search and sharing permissions.
RetroShare GUI works fine if a single file is added as shared dir via
JSON API, but probably would need tweaking some flags in file picker
to give the ability to the user.
The field is actually a raw memory chunk even if declared as an
std::string as result the produced JSON is broken and JSON API clients
cannot parse the output of methods like rsIdentity/getIdentitiesInfo
A proper fix would be refactoring the whole code to use a proper raw
memory buffer for that field but given there is no usage for a raw PGP
signature on a client app as RetroShare library already verify it internally
workaround the issue by just ignoring that field in JSON serial operations.
When requestGrp was called with different groups for same peer multiple
times between ticks the list was overridden and groups from previous
call overridden by the new, as a result some requested groups may be
never really requested. Fix the bug by using a set instead of a list
so the newly requested groups are uniquely added to the set without
removing the previously added.