|
@@ -575,17 +575,18 @@ write(Filename name) {
|
|
|
// Advances the start pointer as it writes.
|
|
// Advances the start pointer as it writes.
|
|
|
////////////////////////////////////////////////////////////////////
|
|
////////////////////////////////////////////////////////////////////
|
|
|
bool Multifile::
|
|
bool Multifile::
|
|
|
-write(char *&start, int &size) {
|
|
|
|
|
|
|
+write(char *&start, int &size, const Filename &rel_path) {
|
|
|
// Make sure we have a complete header first
|
|
// Make sure we have a complete header first
|
|
|
if (parse_header(start, size) == false)
|
|
if (parse_header(start, size) == false)
|
|
|
return false;
|
|
return false;
|
|
|
|
|
|
|
|
|
|
+ if (_current_mfile == (Memfile *)0L)
|
|
|
|
|
+ _current_mfile = new Memfile;
|
|
|
|
|
+
|
|
|
while (_num_mfiles > 0) {
|
|
while (_num_mfiles > 0) {
|
|
|
- if (_current_mfile == (Memfile *)0L)
|
|
|
|
|
- _current_mfile = new Memfile;
|
|
|
|
|
- if (_current_mfile->write(start, size) == true) {
|
|
|
|
|
|
|
+ if (_current_mfile->write(start, size, rel_path) == true) {
|
|
|
_num_mfiles--;
|
|
_num_mfiles--;
|
|
|
- delete _current_mfile;
|
|
|
|
|
|
|
+ _current_mfile->reset();
|
|
|
} else
|
|
} else
|
|
|
return false;
|
|
return false;
|
|
|
}
|
|
}
|