burp.cpp (Firebird-3.0.2.32703-0.tar.bz2) | : | burp.cpp (Firebird-3.0.4.33054-0.tar.bz2) | ||
---|---|---|---|---|
skipping to change at line 63 | skipping to change at line 63 | |||
#include "../burp/mvol_proto.h" | #include "../burp/mvol_proto.h" | |||
#include "../burp/resto_proto.h" | #include "../burp/resto_proto.h" | |||
#include "../yvalve/gds_proto.h" | #include "../yvalve/gds_proto.h" | |||
#include "../common/gdsassert.h" | #include "../common/gdsassert.h" | |||
#include "../common/isc_f_proto.h" | #include "../common/isc_f_proto.h" | |||
#include "../common/classes/ClumpletWriter.h" | #include "../common/classes/ClumpletWriter.h" | |||
#include "../common/classes/Switches.h" | #include "../common/classes/Switches.h" | |||
#include "../common/IntlUtil.h" | #include "../common/IntlUtil.h" | |||
#include "../common/os/os_utils.h" | #include "../common/os/os_utils.h" | |||
#include "../burp/burpswi.h" | #include "../burp/burpswi.h" | |||
#include "../common/db_alias.h" | ||||
#ifdef HAVE_CTYPE_H | #ifdef HAVE_CTYPE_H | |||
#include <ctype.h> | #include <ctype.h> | |||
#endif | #endif | |||
#include "../common/utils_proto.h" | #include "../common/utils_proto.h" | |||
#ifdef HAVE_UNISTD_H | #ifdef HAVE_UNISTD_H | |||
#include <unistd.h> | #include <unistd.h> | |||
#endif | #endif | |||
skipping to change at line 544 | skipping to change at line 545 | |||
continue; | continue; | |||
} | } | |||
if (str[0] != switch_char) | if (str[0] != switch_char) | |||
{ | { | |||
if (!file || file->fil_length || !get_size(argv[itr], fil e)) | if (!file || file->fil_length || !get_size(argv[itr], fil e)) | |||
{ | { | |||
// Miserable thing must be a filename | // Miserable thing must be a filename | |||
// (dummy in a length for the backup file | // (dummy in a length for the backup file | |||
file = FB_NEW_POOL(*getDefaultMemoryPool()) burp_ fil(*getDefaultMemoryPool()); | file = FB_NEW_POOL(tdgbl->getPool()) burp_fil(tdg bl->getPool()); | |||
file->fil_name = str.ToPathName(); | file->fil_name = str.ToPathName(); | |||
file->fil_length = file_list ? 0 : MAX_LENGTH; | file->fil_length = file_list ? 0 : MAX_LENGTH; | |||
file->fil_next = file_list; | file->fil_next = file_list; | |||
file_list = file; | file_list = file; | |||
} | } | |||
continue; | continue; | |||
} | } | |||
if (str.length() == 1) | if (str.length() == 1) | |||
{ | { | |||
skipping to change at line 974 | skipping to change at line 975 | |||
// pop off the obviously boring ones, plus do some checking | // pop off the obviously boring ones, plus do some checking | |||
const TEXT* file1 = NULL; | const TEXT* file1 = NULL; | |||
const TEXT* file2 = NULL; | const TEXT* file2 = NULL; | |||
for (file = tdgbl->gbl_sw_files; file; file = file->fil_next) | for (file = tdgbl->gbl_sw_files; file; file = file->fil_next) | |||
{ | { | |||
if (!file1) | if (!file1) | |||
file1 = file->fil_name.c_str(); | file1 = file->fil_name.c_str(); | |||
else if (!file2) | else if (!file2) | |||
file2 = file->fil_name.c_str(); | file2 = file->fil_name.c_str(); | |||
Firebird::PathName expanded; | ||||
expandDatabaseName(file->fil_name, expanded, NULL); | ||||
for (file_list = file->fil_next; file_list; | for (file_list = file->fil_next; file_list; | |||
file_list = file_list->fil_next) | file_list = file_list->fil_next) | |||
{ | { | |||
if (file->fil_name == file_list->fil_name) | if (file->fil_name == file_list->fil_name || expanded == | |||
file_list->fil_name) | ||||
{ | ||||
BURP_error(9, true); | ||||
// msg 9 mutiple sources or destinations specifie | ||||
d | ||||
} | ||||
Firebird::PathName expanded2; | ||||
expandDatabaseName(file_list->fil_name, expanded2, NULL); | ||||
if (file->fil_name == expanded2 || expanded == expanded2) | ||||
{ | { | |||
BURP_error(9, true); | BURP_error(9, true); | |||
// msg 9 mutiple sources or destinations specifie d | // msg 9 mutiple sources or destinations specifie d | |||
} | } | |||
} | } | |||
} | } | |||
// Initialize 'dpb' | // Initialize 'dpb' | |||
Firebird::ClumpletWriter dpb(Firebird::ClumpletReader::Tagged, MAX_DPB_SI ZE, isc_dpb_version1); | Firebird::ClumpletWriter dpb(Firebird::ClumpletReader::Tagged, MAX_DPB_SI ZE, isc_dpb_version1); | |||
skipping to change at line 1329 | skipping to change at line 1342 | |||
} | } | |||
} | } | |||
// Close the status output file | // Close the status output file | |||
if (tdgbl->sw_redirect == REDIRECT && tdgbl->output_file != NULL) | if (tdgbl->sw_redirect == REDIRECT && tdgbl->output_file != NULL) | |||
{ | { | |||
fclose(tdgbl->output_file); | fclose(tdgbl->output_file); | |||
tdgbl->output_file = NULL; | tdgbl->output_file = NULL; | |||
} | } | |||
// Free all unfreed memory used by GBAK itself | ||||
while (tdgbl->head_of_mem_list != NULL) | ||||
{ | ||||
UCHAR* mem = tdgbl->head_of_mem_list; | ||||
tdgbl->head_of_mem_list = *((UCHAR **) tdgbl->head_of_mem_list); | ||||
gds__free(mem); | ||||
} | ||||
BurpGlobals::restoreSpecific(); | BurpGlobals::restoreSpecific(); | |||
#if defined(DEBUG_GDS_ALLOC) | ||||
if (!uSvc->isService()) | ||||
{ | ||||
gds_alloc_report(0 ALLOC_ARGS); | ||||
} | ||||
#endif | ||||
return exit_code; | return exit_code; | |||
} | } | |||
void BURP_abort() | void BURP_abort() | |||
{ | { | |||
/************************************** | /************************************** | |||
* | * | |||
* B U R P _ a b o r t | * B U R P _ a b o r t | |||
* | * | |||
************************************** | ************************************** | |||
skipping to change at line 2383 | skipping to change at line 2381 | |||
// Compile skip relation expressions | // Compile skip relation expressions | |||
try | try | |||
{ | { | |||
if (regexp.hasData()) | if (regexp.hasData()) | |||
{ | { | |||
Firebird::string filter(regexp); | Firebird::string filter(regexp); | |||
if (!uSvc->utf8FileNames()) | if (!uSvc->utf8FileNames()) | |||
ISC_systemToUtf8(filter); | ISC_systemToUtf8(filter); | |||
BurpGlobals* tdgbl = BurpGlobals::getSpecific(); | ||||
if (!unicodeCollation) | if (!unicodeCollation) | |||
unicodeCollation = FB_NEW UnicodeCollationHolder( *getDefaultMemoryPool()); | unicodeCollation = FB_NEW_POOL(tdgbl->getPool()) UnicodeCollationHolder(tdgbl->getPool()); | |||
Jrd::TextType* const textType = unicodeCollation->getText Type(); | Jrd::TextType* const textType = unicodeCollation->getText Type(); | |||
skipDataMatcher.reset(FB_NEW Firebird::SimilarToMatcher<U | skipDataMatcher.reset(FB_NEW_POOL(tdgbl->getPool()) | |||
CHAR, Jrd::UpcaseConverter<> >( | Firebird::SimilarToMatcher<UCHAR, Jrd::UpcaseConv | |||
*getDefaultMemoryPool(), textType, (const UCHAR*) | erter<> > | |||
filter.c_str(), | (tdgbl->getPool(), textType, (const UCHAR*) filte | |||
r.c_str(), | ||||
filter.length(), '\\', true)); | filter.length(), '\\', true)); | |||
} | } | |||
} | } | |||
catch (const Firebird::Exception&) | catch (const Firebird::Exception&) | |||
{ | { | |||
Firebird::fatal_exception::raiseFmt( | Firebird::fatal_exception::raiseFmt( | |||
"error while compiling regular expression \"%s\"", regexp .c_str()); | "error while compiling regular expression \"%s\"", regexp .c_str()); | |||
} | } | |||
} | } | |||
End of changes. 9 change blocks. | ||||
22 lines changed or deleted | 24 lines changed or added |