I got confused somehow between the different versions of my modifications and Linux/Windows, anyway it should work now.
git-svn-id: http://svn.code.sf.net/p/retroshare/code/trunk@2925 b45a01b8-16f6-495d-af2f-9b41ad6348cc
The problem was that libretroshare handles files in UTF-8 but Windows's ANSI/POSIX C functions automatically assume that the char* parameters are encoded with the system's code page. There is no way to set that code page as UTF-8. So now under Windows the code translates the file name to UTF-16 before feeding it to one of the Unicode functions (they are usually prefixed or suffixed by 'w'). Please note that it is not very efficient.
Furthermore, Windows does not provide a Unicode version of opendir/readdir/closedir, so it was necessary to use FindFirstFileW/FindNextFileW/FindClose which has a different behaviour as well as different structures. The FolderIterator class was created in order to mimic the Unix way of traversing folders contents. Hence the algorithm is unchanged and the systems differences masked.
As it was necessary to use some functions from the Windows API, <windows.h> had to be included in a few files were it didn't appear before, creating macros and #define conflicts. In order to solve them, util/rswin.h must be included first in a file (if necessary). Otherwise the preprocessor will fail on purpose to avoid the code being compiled with different _WIN32_WINNT values.
As another side-effect, rstlvutil.h and rstlvutil.cc have been removed from libretroshare.pro file. They are only used by testing units and include util/utest.h which defines a macro FAILED that already exists in <windows.h>. I don't know if unit tests are still in use and I don't plan on coding often on Windows, so I'll leave that as an exercise (hot potato?) to a motivated fellow Windows programmer.
git-svn-id: http://svn.code.sf.net/p/retroshare/code/trunk@2924 b45a01b8-16f6-495d-af2f-9b41ad6348cc
- memory leak - return of takeTopLevelItem and takeChild are not deleted
- possible crash, when child has disappeared
fixed load and save of window state, i forgot to give the name of the window to the settings class
git-svn-id: http://svn.code.sf.net/p/retroshare/code/trunk@2916 b45a01b8-16f6-495d-af2f-9b41ad6348cc
pqi/authgpg.cc:
- remove French comment (with nasty non-unicode characters)
- use std::cerr instead of fprintf
tcponudp/extaddrfinder.cc:
- initialize correctly the sockaddr_in, former code wouldn't pad sin_zero
(which is required by the standard)
git-svn-id: http://svn.code.sf.net/p/retroshare/code/trunk@2909 b45a01b8-16f6-495d-af2f-9b41ad6348cc
Now used in MainWindow.cpp, MessagesDialog.cpp and peerstatus.cpp
void p3Peers::getPeerCount (unsigned int *pnFriendCount, unsigned int *pnOnlineCount);
void p3Msgs::getMessageCount(unsigned int *pnInbox, unsigned int *pnInboxNew, unsigned int *pnOutbox, unsigned int *pnDraftbox, unsigned int *pnSentbox);
git-svn-id: http://svn.code.sf.net/p/retroshare/code/trunk@2898 b45a01b8-16f6-495d-af2f-9b41ad6348cc
- ftController::copyFile -> buffer and file pointer leaks in case of error
- PeersDialog::insertSendList -> new QTreeWidgetItem for all online peers, this function is not ready yet
- PeersDialog::insertPeers -> gpg_item = new QTreeWidgetItem(0); in case of no more accept connection
- pqissl::reset -> missing SSL_free of ssl_connection
Missing return:
- IntroPage::nextId
git-svn-id: http://svn.code.sf.net/p/retroshare/code/trunk@2891 b45a01b8-16f6-495d-af2f-9b41ad6348cc
- the parser fails to embed two links in the same sentence
- the parser can potentially put smileys in the middle of <a> tags
Solution:
Since the message is in HTML, it is parsed into a DOM tree, then that DOM tree
is traversed and only the text nodes are parsed (see HandleRichText.cpp for
details).
Bonus fixes:
- missing std:: for endl (which was falling back to its Qt counterpart)
- commenting useless code in PeersDialog::smileyWidgetgroupchat()
- replacing int by size_t
- RetroShare.pro now queries gpgme-config for its include path
git-svn-id: http://svn.code.sf.net/p/retroshare/code/trunk@2888 b45a01b8-16f6-495d-af2f-9b41ad6348cc
- columns in messages list in MessagesDialog changed to defines
- fixed sort of a non date column with same id, date is used as second compare
git-svn-id: http://svn.code.sf.net/p/retroshare/code/trunk@2884 b45a01b8-16f6-495d-af2f-9b41ad6348cc
- removed settings button
- deals with hashing of its own files
subfileitem
- absolved from file hashing responsibility
- added play button functionality(taken from transfer dialog, thanks)
blog
- removed file attachments feature (only for blogging ), will add pic support later
git-svn-id: http://svn.code.sf.net/p/retroshare/code/trunk@2867 b45a01b8-16f6-495d-af2f-9b41ad6348cc
- clean up of channels old (> storeperiod) cache file downloads called at rsglobal shutdown
- added extrafilehash and extra-remove to rschannels, so it chooses appropriate way to add files (correct book-keeping)
- added extra files not copied to chan dir if over 100mb (high overhead)
- added limit to channels auto-download (1gig)
git-svn-id: http://svn.code.sf.net/p/retroshare/code/trunk@2866 b45a01b8-16f6-495d-af2f-9b41ad6348cc
- corrected calculation of message counts
- p3MsgService::checkOutgoingMessages -> notify when message was sent
- refill of message list without clear, selected messages and scroll position are not changed
- corrected sorting of date with only time for today
- changed context menu in message list
git-svn-id: http://svn.code.sf.net/p/retroshare/code/trunk@2863 b45a01b8-16f6-495d-af2f-9b41ad6348cc