Update TODOs/FIXMEs and note outstanding API issues.

--HG--
branch : HEAD
diff --git a/TODO b/TODO
index 605f867..9e3d785 100644
--- a/TODO
+++ b/TODO
@@ -28,23 +28,23 @@
   . read/set ASCII file flag
 - [test] rename deleted (fails)
 - [test] rename file to dir/ and vice versa (fails)
+------------------------------------------------ API issues
+* character encoding in file names and comments
+* pop source from stack (needed to handle failures in zip_close)
+* parameters for compression/crypt implementations
+  ZIP_CM_DEFLATE/ZIP_CM_BZIP2: compression level
+  			       memlevel?
+* compression/crypt implementations: how to set error code on failure
 ------------------------------------------------ API ideas
 struct zip *zip_open_encrypted(const char *path, int flags,
                                const char *password, int *errorp);
-void zip_set_default_password(struct zip *archive, const char *password);
-(NULL for unsetting)
 
-struct zip_file *zip_fopen_encrypted(struct zip *archive,
-                                     const char *fname, int flags,
-                                     const char *password);
-struct zip_file *zip_fopen_index_encrypted(struct zip *archive,
-                                           int index, int flags,
-                                           const char *password);
-
-int zip_set_encryption(struct zip *archive, int idx, int method,
-                       const char *password);
-void zip_set_archive_encryption(struct zip *archive, int encryption_method,
-                                const char *password);
+int zip_set_compression(struct zip *archive, zip_uint64_t idx,
+    			zip_uint64_t method);
+int zip_set_encryption(struct zip *archive, zip_uint64_t idx,
+    		       zip_uint16_t method, const char *password);
+void zip_set_archive_encryption(struct zip *archive,
+     				zip_uint16_t method, const char *password);
 
 struct zip_source *zip_source_writable(struct zip *archive);
 zip_source_write(struct zip_source *, const void *data, size_t len);
diff --git a/lib/zip_source_crc.c b/lib/zip_source_crc.c
index 0b0634c..dddd75e 100644
--- a/lib/zip_source_crc.c
+++ b/lib/zip_source_crc.c
@@ -120,7 +120,8 @@
 	    st = (struct zip_stat *)data;
 
 	    if (ctx->eof) {
-		/* XXX: error if mismatch with what src provided? */
+		/* XXX: Set comp_size, comp_method, encryption_method?
+		        After all, this only works for uncompressed data. */
 		st->size = ctx->size;
 		st->crc = ctx->crc;
 		st->valid |= ZIP_STAT_SIZE|ZIP_STAT_CRC;