} else {
/* Obtengo un ID libre para el registro y luego grabo en disco */
- n_IdReg = emufs_tipo2_get_id(efs);
+ n_IdReg = emufs_idx_get_new_id(efs, err);
n_RegOffset = n_WrtOffset;
fseek(f_data,n_RegOffset,0);
fclose(f_data);
/* Actualizo el espacio libre en el GAP donde puse el registro */
- emufs_fsc_actualizar(efs,n_WrtOffset,n_FreeSpace-n_FisicSize);
+ if ((n_FreeSpace-n_FisicSize) == 0) emufs_fsc_remove_gap(efs,n_RegOffset);
+ else emufs_fsc_actualizar_gap(efs,n_RegOffset,n_FreeSpace-n_FisicSize);
}
/* Finalmente, actualizamos el indice de registros (offsets) */
/**********************************************************************/
int emufs_tipo2_borrar_registro(EMUFS *efs, EMUFS_REG_ID n_IdReg)
{
- FILE *f_data;
- char name_f[255];
EMUFS_OFFSET n_RegOffset,n_RegSize;
/* Obtenemos el offset donde arranca el registro */