]> git.llucax.com Git - z.facultad/75.06/emufs.git/blobdiff - emufs/emufs.c
* Se agregan compactar facturas y notas (notas no estoy seguro de tener
[z.facultad/75.06/emufs.git] / emufs / emufs.c
index 9f60c377cf38eece06c032052582e90f269101a5..9a0344176e83b62669a5cdb0afb4ed5b01ca88fa 100644 (file)
@@ -142,16 +142,12 @@ EMUFS *emufs_crear(const char *filename, EMUFS_Tipo tipo, EMUFS_BLOCK_SIZE tam_b
        switch (tipo) {
 
                case T1:
        switch (tipo) {
 
                case T1:
-                       /* Inicializa archivo (punteros a funciones, chequeos, etc). */
-                       if (emufs_tipo1_inicializar(efs)) {
-                               /* TODO ERROR */
-                               free(efs->nombre);
-                               free(efs);
-                               return NULL;
-                       }
+                       /* Asigna punteros a funciones. */
+                       /* TODO verificar que el tamaño de bloque sea como mínimo del
+                        * tamaño de la cabecera de un registro + N */
+                       emufs_tipo1_inicializar(efs);
 
 
-                       /* Guarda cabeceras propias.
-                        * FIXME esto me gustaria que vaya a inicializar() */
+                       /* Guarda cabeceras propias. */
                        fwrite(&tam_bloque, sizeof(EMUFS_BLOCK_SIZE), 1, fp);
 
                        break;
                        fwrite(&tam_bloque, sizeof(EMUFS_BLOCK_SIZE), 1, fp);
 
                        break;
@@ -170,6 +166,7 @@ EMUFS *emufs_crear(const char *filename, EMUFS_Tipo tipo, EMUFS_BLOCK_SIZE tam_b
                        efs->borrar_registro = emufs_tipo3_borrar_registro;
                        efs->leer_estadisticas = emufs_tipo3_leer_estadisticas;
                        efs->modificar_registro = emufs_tipo3_modificar_registro;
                        efs->borrar_registro = emufs_tipo3_borrar_registro;
                        efs->leer_estadisticas = emufs_tipo3_leer_estadisticas;
                        efs->modificar_registro = emufs_tipo3_modificar_registro;
+                       efs->compactar = emufs_tipo3_compactar;
                        /* Guarda cabeceras propias. */
                        fwrite(&tam_bloque, sizeof(EMUFS_BLOCK_SIZE), 1, fp);
                        fwrite(&tam_reg, sizeof(EMUFS_REG_SIZE), 1, fp);                        
                        /* Guarda cabeceras propias. */
                        fwrite(&tam_bloque, sizeof(EMUFS_BLOCK_SIZE), 1, fp);
                        fwrite(&tam_reg, sizeof(EMUFS_REG_SIZE), 1, fp);                        
@@ -244,6 +241,7 @@ EMUFS *emufs_abrir(const char *filename)
                        efs->borrar_registro = emufs_tipo3_borrar_registro;
                        efs->leer_estadisticas = emufs_tipo3_leer_estadisticas;
                        efs->modificar_registro = emufs_tipo3_modificar_registro;
                        efs->borrar_registro = emufs_tipo3_borrar_registro;
                        efs->leer_estadisticas = emufs_tipo3_leer_estadisticas;
                        efs->modificar_registro = emufs_tipo3_modificar_registro;
+                       efs->compactar = emufs_tipo3_compactar;
                        break;
        }
 
                        break;
        }