diff --git a/src/obidmscolumn.c b/src/obidmscolumn.c index c855d74..9ab5ecf 100644 --- a/src/obidmscolumn.c +++ b/src/obidmscolumn.c @@ -1973,7 +1973,7 @@ int obi_enlarge_column(OBIDMS_column_p column) // Calculate the new file size old_line_count = (column->header)->line_count; - new_line_count = old_line_count * COLUMN_GROWTH_FACTOR; + new_line_count = ceil((double) old_line_count * (double) COLUMN_GROWTH_FACTOR); if (new_line_count > MAXIMUM_LINE_COUNT) { @@ -2381,6 +2381,54 @@ char* obi_get_elements_names(OBIDMS_column_p column) } +char* obi_get_formatted_elements_names(OBIDMS_column_p column) +{ + char* elements_names; + int i, j; + int elt_idx; + int len; + + elements_names = (char*) malloc(((column->header)->elements_names_length + (column->header)->nb_elements_per_line) * sizeof(char)); + if (elements_names == NULL) + { + obi_set_errno(OBI_MALLOC_ERROR); + obidebug(1, "\nError allocating memory for elements names"); + return NULL; + } + + j = 0; + for (i=0; i < (column->header)->nb_elements_per_line; i++) + { + elt_idx = ((column->header)->elements_names_idx)[i]; + len = strlen(((column->header)->elements_names)+elt_idx); + memcpy(elements_names+j, ((column->header)->elements_names)+elt_idx, len*sizeof(char)); + j = j + len; + elements_names[j] = ';'; + j++; + elements_names[j] = ' '; + j++; + } + + elements_names[j - 1] = '\0'; + + return elements_names; +} + + +char* obi_column_formatted_infos(OBIDMS_column_p column) +{ + char* column_infos; + char* elt_names; + + column_infos = malloc(1024 * sizeof(char)); + + elt_names = obi_get_formatted_elements_names(column); + + + free(elt_names); + return column_infos; +} + int obi_column_prepare_to_set_value(OBIDMS_column_p column, index_t line_nb, index_t elt_idx) {