+ move_size=0;
+ for(i=0; i<cant_reg/2; i++){ /*copio mitad aca y mitad en el nuevo*/
+ /*avanzo*/
+ memcpy(&tam_reg, aux+sizeof(EMUFS_REG_ID), sizeof(EMUFS_REG_SIZE));
+ aux += sizeof(EMUFS_TIPO1_REG_HEADER)+tam_reg;
+ move_size += sizeof(EMUFS_TIPO1_REG_HEADER)+tam_reg;
+ }
+ /*copio el resto del bloque al nuevo bloque*/
+ memcpy(new_bloque, aux, emu->tam_bloque-move_size);
+ /*borro lo que sobra en el bloque original, guardando el footer*/
+ memset(aux, 0, emu->tam_bloque - move_size - sizeof(int));
+ /*actualizo la cant de registros (footer)*/
+ memcpy(bloque+emu->tam_bloque-sizeof(int), i, sizeof(int));
+ /*grabo el bloque original*/
+ emufs_tipo1_grabar_bloque_fsc(emu, bloque, num_bloque, EMUFS_NOT_FOUND, err);
+ /*actualizo el footer del nuevo bloque*/
+ memcpy(new_bloque+emu->tam_bloque, cant_reg-i, sizeof(int));
+ /*genero un nuevo espacio para un bloque en el archivo y lo cargo en query
+ la clave ya estaba en query desde antes*/
+ query.num_bloque = create_new_block(emu);
+ /*inserto el nuevo registro en el nuevo bloque y obtengo la clave del menor*/
+ clave = grabar_ordenado_en_bloque(emu,ptr,size,new_bloque,query.num_bloque, emu->tam_bloque-move_size,err);
+ /*actualizo el arbol con la nueva clave*/
+ emufs_b_plus_insertar(emu->indices, &query);
+ free(new_bloque);
+ free(bloque);
+ return 0;
+ }
+ }
+ return 0;