dtinfo subdirectory DtMmdb

This commit is contained in:
Ulrich Wilkens
2013-08-28 19:16:37 +02:00
committed by Jon Trulson
parent 0be684281d
commit fbd81ef151
159 changed files with 735 additions and 588 deletions

View File

@@ -70,23 +70,27 @@ base::base(object_dict* obj_dict,
num_cset_ptrs(0), num_list_ptrs(0),
f_obj_dict(obj_dict)
{
int len = MIN(strlen(base_dir), PATHSIZ - 1);
if ( base_dir )
strcpy(base_path, base_dir);
*((char *) memcpy (base_path, base_dir, len) + len) = '\0';
else
base_path[0] = 0;
len = MIN(strlen(base_nm), PATHSIZ - 1);
if ( base_nm )
strcpy(base_name, base_nm);
*((char *) memcpy (base_name, base_nm, len) + len) = '\0';
else
base_name[0] = 0;
len = MIN(strlen(base_ds), PATHSIZ - 1);
if ( base_ds )
strcpy(base_desc, base_ds);
*((char *) memcpy (base_desc, base_ds, len) + len) = '\0';
else
base_desc[0] = 0;
len = MIN(strlen(base_uid_str), UIDSIZ - 1);
if ( base_uid_str )
strcpy(base_uid, base_uid_str);
*((char *) memcpy (base_uid, base_uid_str, len) + len) = '\0';
else
base_uid[0] = 0;

View File

@@ -88,18 +88,17 @@ public:
protected:
object_dict* f_obj_dict;
char base_path[PATHSIZ];
char base_name[PATHSIZ];
char base_desc[PATHSIZ];
char base_uid[UIDSIZ];
int num_cset_ptrs;
int num_list_ptrs;
char** info_base_set_names;
char** info_base_list_names;
int num_cset_ptrs;
int num_list_ptrs;
object_dict* f_obj_dict;
};
typedef base* basePtr;

View File

@@ -72,8 +72,9 @@ debug(cerr, base_dir);
debug(cerr, base_nm);
debug(cerr, base_ds);
*/
int len = MIN(strlen(base_locale), PATHSIZ - 1);
if (base_locale)
strcpy(info_base_locale, base_locale);
*((char *) memcpy (info_base_locale, base_locale, len) + len) = '\0';
else
*info_base_locale = 0;
@@ -131,7 +132,6 @@ info_base::~info_base()
int info_base::get_set_pos(const char* set_nm)
{
char* nm = 0;
for ( int i=0; i<num_cset_ptrs; i++ ) {
if ( strcmp(set_nm, info_base_set_names[i]) == 0 )
return i;
@@ -221,7 +221,7 @@ Iterator* info_base::first(char* col_nm, c_code_t code)
handler* x = get_set(col_nm);
if ( x == 0 ) {
handler* x = get_list(col_nm);
x = get_list(col_nm);
}
if ( x == 0 ) {
@@ -299,7 +299,7 @@ int stdin_sgml_data_getchar(unsigned char* buf, int max_sz)
chars_to_read = MIN(max_sz, remain_chars);
if ( fread((char*)buf, 1, chars_to_read, stdin) != chars_to_read ) {
if ( (int)fread((char*)buf, 1, chars_to_read, stdin) != chars_to_read ) {
throw(stringException("sgml_data_getchar(): fread() failed"));
}

View File

@@ -79,6 +79,8 @@ f_bad_info_base_names(0), f_bad_info_base_paths(0), f_descriptor(des)
//debug(cerr, info_lib_dir);
//debug(cerr, infoLibName);
int len;
f_obj_dict = new object_dict;
if ( info_lib_dir == 0 ) {
@@ -91,8 +93,10 @@ f_bad_info_base_names(0), f_bad_info_base_paths(0), f_descriptor(des)
)
);
strcpy(info_lib_path, info_lib_dir);
strcpy(info_lib_name, infoLibName);
len = MIN(strlen(info_lib_dir), PATHSIZ -1);
*((char *) memcpy (info_lib_path, info_lib_dir, len) + len) = '\0';
len = MIN(strlen(infoLibName), PATHSIZ -1);
*((char *) memcpy (info_lib_name, infoLibName, len) + len) = '\0';
fstream *map_in = 0;
@@ -163,9 +167,10 @@ f_bad_info_base_names(0), f_bad_info_base_paths(0), f_descriptor(des)
strcmp("C.ISO-8859-1", base_locale) == 0))
{
strcpy(db_path_name,
form("%s/%s", info_lib_dir, base_name)
);
len = MIN(strlen(info_lib_dir) + strlen(base_name) +1, PATHSIZ -1);
*((char *) memcpy (db_path_name,
form("%s/%s", info_lib_dir, base_name),
len) + len) = '\0';
mm_version mmv_code(MAJOR, MINOR);
mm_version mmv_base_data(2, 1);
@@ -363,10 +368,17 @@ info_lib::define_info_base( char* base_name, char* base_desc,
char new_db_path[PATHSIZ];
char f_name[PATHSIZ];
char base_uid[UIDSIZ];
int len;
const char* uid;
strcpy(new_db_path, form("%s/%s", info_lib_path, base_name));
len = MIN(strlen(info_lib_path) + strlen(base_name) + 1, PATHSIZ -1);
*((char *) memcpy (new_db_path,
form("%s/%s", info_lib_path, base_name),
len) + len) = '\0';
strcpy(base_uid, unique_id());
uid = unique_id();
len = MIN(strlen(uid), UIDSIZ -1);
*((char *) memcpy(base_uid, uid, len) + len) = '\0';
g_mode_8_3 = 1;
@@ -387,15 +399,24 @@ info_lib::define_info_base( char* base_name, char* base_desc,
// remove any old files
//////////////////////////
strcpy(f_name, form("%s.%s", base_name, DATA_FILE_SUFFIX));
len = MIN(strlen(base_name) + strlen(DATA_FILE_SUFFIX) +1, PATHSIZ -1);
*((char *) memcpy(f_name,
form("%s.%s", base_name, DATA_FILE_SUFFIX),
len) + len) = '\0';
if ( exist_file(f_name, new_db_path) == true )
del_file(f_name, new_db_path);
strcpy(f_name, form("%s.%s", base_name, INDEX_FILE_SUFFIX));
len = MIN(strlen(base_name) + strlen(INDEX_FILE_SUFFIX) + 1, PATHSIZ -1);
*((char *) memcpy(f_name,
form("%s.%s", base_name, INDEX_FILE_SUFFIX),
len) + len) = '\0';
if ( exist_file(f_name, new_db_path) == true )
del_file(f_name, new_db_path);
strcpy(f_name, form("%s.%s", base_name, SCHEMA_FILE_SUFFIX));
len = MIN(strlen(base_name) + strlen(SCHEMA_FILE_SUFFIX) +1, PATHSIZ -1);
*((char *) memcpy(f_name,
form("%s.%s", base_name, SCHEMA_FILE_SUFFIX),
len) + len) = '\0';
if ( exist_file(f_name, new_db_path) == true )
del_file(f_name, new_db_path);

View File

@@ -132,8 +132,8 @@ protected:
int f_bad_base_array_size;
int f_bad_info_bases;
char** f_bad_info_base_paths;
char** f_bad_info_base_names;
char** f_bad_info_base_paths;
int f_descriptor;

View File

@@ -65,7 +65,8 @@ server::server(char* x_infolib_path) :
)
);
strcpy(info_lib_dir, x_infolib_path);
int len = MIN(strlen(x_infolib_path), PATHSIZ - 1);
*((char *) memcpy(info_lib_dir, x_infolib_path, len) + len) = '\0';
}

View File

@@ -288,7 +288,7 @@ void smart_ptr::update_oid(int i, const oid_t& x)
handler* z = get_handler(i, OID_CODE);
oid_handler* y = (oid_handler*)z;
sprintf(buf, "%d.%d\n", x.ccode(), (int)x.icode());
snprintf(buf, sizeof(buf), "%d.%d\n", x.ccode(), (int)x.icode());
istringstream in(buf);
(*y) -> asciiIn(in);
@@ -305,16 +305,18 @@ void smart_ptr::update_string(int i, istream& in)
io_status ok;
switch ( x -> its_oid().ccode() ) {
case STRING_CODE:
ok = (*(pstring_handler*)x) -> asciiIn(in);
ok =(*(pstring_handler*)x) -> asciiIn(in);
break;
case COMPRESSED_STRING_CODE:
ok = (*(compressed_pstring_handler*)x) -> _asciiIn(in);
ok =(*(compressed_pstring_handler*)x) -> _asciiIn(in);
break;
default:
throw(stringException("invalid node data class code"));
}
if(ok) { ; }
delete x;
}