INDICE_DATO dato;
int err = 0; /* para almacenar código de error */
- /*block_id = emufs_idx_buscar_registro(efs, reg_id);
- if (block_id == EMUFS_NOT_FOUND) {
- PERR("Registro no encontrado");
- return EMUFS_NOT_FOUND;
- }*/
- dato = efs->indices->existe_entrada(efs->indices, k);
- block_id = dato.bloque; /*emufs_idx_buscar_registro(emu, ID);*/
- reg_id = dato.id;
+ if (efs->indices != NULL) {
+ dato = efs->indices->existe_entrada(efs->indices, k);
+ block_id = dato.bloque; /*emufs_idx_buscar_registro(emu, ID);*/
+ reg_id = dato.id;
+ } else {
+ reg_id = k.i_clave;
+ block_id = emufs_idx_buscar_registro(efs, reg_id);
+ if (block_id == EMUFS_NOT_FOUND) {
+ PERR("Registro no encontrado");
+ return EMUFS_NOT_FOUND;
+ }
+ }
if (reg_id == -1) return EMUFS_NOT_FOUND;
return block_id;
}
-EMUFS_REG_ID emufs_tipo1_modificar_registro(EMUFS* efs, EMUFS_REG_ID id,
+EMUFS_REG_ID emufs_tipo1_modificar_registro(EMUFS* efs, CLAVE k,
void *data, EMUFS_REG_SIZE size, int* err)
{
-/* emufs_tipo1_borrar_registro(efs, id);*/
+ emufs_tipo1_borrar_registro(efs, k);
return emufs_tipo1_grabar_registro(efs, data, size, err);
}