doing some researches in the code and some testing on top I noticed that the official client will exclude single shared files as soon as you uncheck the checkbox (or unshare them using the context menu). Now, when you just want to unshare the file it is of no further concern. The problem starts somewhere else; if you try to share the complete folder the now excluded file will not be shared although you may want to have it shared. Fixing this from within eMule is possible (browse to the proper folder in the SharedFilesWnd and check the box again) but IMO it is kinda unlogic this way.
So here I'll post you the two or three additional lines of code that will fix this for you. First of all, open SharedFileList.cpp and go to "bool CSharedFileList::ExcludeFile(CString strFilePath)". Now see below for the additional lines (they are tagged in Morph style... apparently ):
//MORPH START - Added by Stulle, Only exclude file if it was not single shared bool bSingleShared = bShared; //MORPH END - Added by Stulle, Only exlcude file if it was not single shared // check if we implicity share this file bShared |= ShouldBeShared(strFilePath.Left(strFilePath.ReverseFind('\\') + 1), strFilePath, false);
and
// add to exclude list //MORPH START - Added by Stulle, Only exclude file if it was not single shared if(!bSingleShared) //MORPH END - Added by Stulle, Only exlcude file if it was not single shared m_liSingleExcludedFiles.AddTail(strFilePath);
Well, this is really boring and lame but I thought I'd share this snippet with you... and probably the officials think alike myself and change this, too.
Have fun,
Stulle