aboutsummaryrefslogtreecommitdiff
path: root/common/archive.cpp
AgeCommit message (Collapse)Author
2009-10-03Fixed bug in archive.cpp that caused at least one engine (SAGA) not to workYotam Barnoy
svn-id: r44560
2009-09-23Got rid of Common::File::addDefaultDirectory, instead implemented the ↵Johannes Schickel
solution proposed in "Case agnostic handling for directories (and files)" on -devel. svn-id: r44266
2009-09-23COMMON: Add "ignoreCase" parameter to matchString.Johannes Schickel
svn-id: r44265
2009-06-01Add a 'flat' option to FSDirectory to allow searching recursively for files ↵Willem Jan Palenstijn
in subdirectories svn-id: r41090
2009-03-09Rewrote Common::List iterator code to ensure const correctness is preserved.Max Horn
We tried to implement the list iterators in a clever way, to reduce code duplication. But this is essentially impossible to do properly, sadly -- this is one of the places where the ugly drawbacks of C++ really show. As a consequence, our implementation had a bug which allowed one to convert any const_iterator to an iterator, thus allowing modifying elements of const lists. This rewrite reintroduces code duplication but at least ensures that no const list is written to accidentally. Also fix some places which incorrectly used iterator instead of const_iterator or (in the kyra code) accidentally wrote into a const list. svn-id: r39279
2009-02-24Moved FSDirectory implementation from common/archive.cpp to common/fs.cppMax Horn
svn-id: r38824
2009-02-22Modified FSDirectory::lookupCache to return a FSNode *pointer*, so that we ↵Max Horn
can distinguish between lookup failures and invalid cache entries. Also changed SearchSet::createReadStreamForMember to not use hasFile anymore, based on the assumption that any Archive::createReadStreamForMember implementation has to verify whether the member name is valid anyway (clarified the doxygen docs accordingly) svn-id: r38787
2009-02-22Changed Common::File and FSDirectory to invoke FSNode::exists a few times ↵Max Horn
less, reducing overhead svn-id: r38780
2009-02-15Merged internal 'matchPath' method of class Archive into global matchString ↵Max Horn
function (via an optional 'path mode' in the latter). Also changed Archive::listMatchingMembers to use path mode when matching, just like FSDirectory::listMatchingMembers svn-id: r38277
2009-01-29Be paranoid about g_system being setMax Horn
svn-id: r36131
2009-01-23Renamed Archive::openFile to createReadStreamForMemberMax Horn
svn-id: r36021
2009-01-23Renamed ArchiveMember::open -> createReadStream, and made it a cv member ↵Max Horn
(const); same for Archive::openFile svn-id: r36020
2009-01-23Renamed FSNode::openForReading / openForWriting to createReadStream / ↵Max Horn
createWriteStream, again to make ownership of the returned stream clear svn-id: r36014
2008-12-27Turned FSNode into a ArchiveMember subclass; removed the now obsolete ↵Max Horn
FSDirectoryMember; moved FSDirectory from common/archive.h to common/fs.h svn-id: r35578
2008-12-27Moved addDirectory from SearchManager to SearchSet; changed several places ↵Max Horn
from using '++it' instead of 'it++' to iterate over a list (this is more efficient) svn-id: r35576
2008-12-22Fixed indentation and removed whitespaces at the end of lineJordi Vilalta Prat
svn-id: r35481
2008-12-20Committed slightly modified version of my patch at bug tracker item #2309974 ↵Johannes Schickel
"ALL: */? match path separator in FSDir::listMatchingMembers". svn-id: r35450
2008-12-15cleanupMax Horn
svn-id: r35381
2008-11-21Formatting / Cleanup.Johannes Schickel
svn-id: r35141
2008-11-21refactor inconsistent calls to cacheDirectoryRecursiveWillem Jan Palenstijn
svn-id: r35140
2008-11-21Added ArchiveMember::getDisplayName() method; changed ↵Max Horn
ArchiveMember::getName() to always return a name compatible with Archive::openFile() svn-id: r35139
2008-11-07Reverted my earlier commit r34926.Nicola Mettifogo
svn-id: r34930
2008-11-07Fixed leak when using SearchSet::add for an already existing name.Johannes Schickel
svn-id: r34928
2008-11-07Fixed leaks in SearchMan. Default directories are now added with the ↵Nicola Mettifogo
'autoFree' parameter set to true. svn-id: r34926
2008-11-01Commit of patch #2207782 "ARCHIVE: New method 'getMember'".Johannes Schickel
svn-id: r34871
2008-10-22Committed updated version of my patch #2184529 "SearchSet: Get rid of ↵Johannes Schickel
SharedPtr usage". svn-id: r34837
2008-10-22Removed File::addDefaultDirectoryRecursive, tweaked SearchMan API slightlyMax Horn
svn-id: r34836
2008-10-13Removed SearchManager::addArchive, since SearchManager::add offers the same ↵Johannes Schickel
functionallity. svn-id: r34795
2008-10-12* Added prefix support to cache entries of FSDirectory, as specified in ↵Nicola Mettifogo
patch #2034983. * Updated comments on most Archive-related classes. svn-id: r34776
2008-10-08Added an optional depth parameter to FSDirectory::getSubDirectory(), so that ↵Nicola Mettifogo
returned FSDirectory can be more flexibly configured. svn-id: r34756
2008-10-03Committed slightly modified patch #2034983 "Case-insensitivy and directory ↵Johannes Schickel
handling for engines". svn-id: r34734
2008-10-02Add the current dir to the global SearchSet, i.e. to SearchMan (this should ↵Max Horn
fix the problems on Windows, and maybe other systems, see 'bug' #2137680) svn-id: r34721
2008-10-02Renamed FilesystemNode -> FSNodeMax Horn
svn-id: r34716
2008-09-29add constructor to SearchSet::Node for proper init of structure members with ↵Gregory Montoir
gcc 3.4.x (see tracker items #2120595, #2106292) svn-id: r34686
2008-09-29Add priority parameter to the SearchMan APIMax Horn
svn-id: r34679
2008-09-27Fixed a nasty bug in SearchManager::addDirectory; made the 'char' ↵Max Horn
constructor of Common::String explicit, to avoid such bugs in the future svn-id: r34660
2008-09-27Modified Common::SearchSet to take signed integer priorities, for ↵Max Horn
convenience (so that one can add archives with less-than-default priority) svn-id: r34659
2008-09-20Fixed "empty control statement" warning in FSDirectory::matchPattern().Vicent Marti
svn-id: r34605
2008-09-18Added 'native' implementations for FSDirectory::matchPattern & ↵Max Horn
SearchSet::getAllNames (untested) svn-id: r34599
2008-09-17Simplified & fixed SearchManagerMax Horn
svn-id: r34598
2008-09-15Corrected and shortened some file opening related warningsMax Horn
svn-id: r34556
2008-09-11Added first version of the SearchManager, as it is presented in patch ↵Nicola Mettifogo
tracker item 2093502. svn-id: r34492
2008-09-06Added hasArchive to SearchSet.Johannes Schickel
svn-id: r34397
2008-09-05Fix class FSDirectory (matchPattern would call getAllNames would call ↵Max Horn
matchPattern would call ...); some cleanup svn-id: r34366
2008-09-05Make use of String::matchStringMax Horn
svn-id: r34365
2008-09-05Made FSDirectory use the default matchPattern implementation.Nicola Mettifogo
svn-id: r34360
2008-09-05* Implemented a default matchPattern for Archive subclasses (courtesy of ↵Nicola Mettifogo
Fingolfin). * Fixed bug in FSDirectory::matchPattern. svn-id: r34359
2008-09-04Changed FSDirectory::getSubDirectory to return a FSDirectory pointer instead ↵Max Horn
of a SharedPtr svn-id: r34334
2008-09-03Changed Archive::openFile to return a SeekableReadStream* instead of a FilePtrMax Horn
svn-id: r34312
2008-08-31* Added Archive, an interface for searching into file containers.Nicola Mettifogo
* Added FSDirectory, an Archive implementation that models a directory from the filesystem. * Added SearchSet, an Archive implementation that allows searching multiple Archives. See patch 2034983 on sf.net. svn-id: r34227