compiles even more better and all

--HG--
branch : HEAD
diff --git a/lib/Makefile.am b/lib/Makefile.am
index 460c6a5..7dd4522 100644
--- a/lib/Makefile.am
+++ b/lib/Makefile.am
@@ -2,13 +2,16 @@
 noinst_HEADERS=zip.h \
 	zipint.h
 
+SUBDIRS=. tests
+
 libzip_a_SOURCES=zip_open.c zip_close.c zip_err_str.c zip_name_locate.c \
 	zip_fopen.c zip_fopen_index.c zip_fclose.c zip_fread.c \
 	zip_add.c zip_replace.c zip_add_zip.c zip_replace_zip.c \
 	zip_add_data.c zip_replace_data.c zip_add_file.c zip_replace_file.c \
 	zip_delete.c zip_unchange.c zip_rename.c \
 	zip_new.c zip_free.c zip_new_entry.c zip_free_entry.c \
-	zip_new_meta.c zip_free_meta.c zip_merge_meta.c zip_unchange_data.c
+	zip_new_meta.c zip_free_meta.c zip_merge_meta.c zip_unchange_data.c \
+	zip_set_name.c
 
 BUILT_SOURCES=zip_err_str.c
 
diff --git a/lib/zip_free_entry.c b/lib/zip_free_entry.c
index 597b17e..d9e8dc6 100644
--- a/lib/zip_free_entry.c
+++ b/lib/zip_free_entry.c
@@ -2,7 +2,7 @@
 #include "zip.h"
 
 int
-_zip_entry_free(struct zip_entry *ze)
+_zip_free_entry(struct zip_entry *ze)
 {
     int ret;
     
diff --git a/lib/zip_free_meta.c b/lib/zip_free_meta.c
index 07ad428..9083df6 100644
--- a/lib/zip_free_meta.c
+++ b/lib/zip_free_meta.c
@@ -2,7 +2,7 @@
 #include "zip.h"
 
 void
-zip_meta_free(struct zip_meta *meta)
+zip_free_meta(struct zip_meta *meta)
 {
     if (!meta)
 	return;
diff --git a/lib/zip_set_name.c b/lib/zip_set_name.c
index 715d321..e4d9118 100644
--- a/lib/zip_set_name.c
+++ b/lib/zip_set_name.c
@@ -1,3 +1,5 @@
+#include <stdlib.h>
+#include <string.h>
 #include "zip.h"
 #include "zipint.h"
 
@@ -18,12 +20,12 @@
 	    free(zf->entry[idx].fn);
 	zf->entry[idx].fn = strdup(name);
 	if (zf->entry[idx].fn) {
-	    /* XXX: fn is NULL; very bad */
+	    zf->entry[idx].fn = zf->entry[idx].fn_old;
+	    zf->entry[idx].fn_old = NULL;
 	    zip_err = ZERR_MEMORY;
 	    return -1;
 	}
-	zf->entry[idx].fnlen = strlen(name);
     }
 
-    return idx;
+    return 0;
 }