API cleanup, be less strict with file name arguments.
diff --git a/lib/zip_rename.c b/lib/zip_rename.c
index ea2e676..41f63b9 100644
--- a/lib/zip_rename.c
+++ b/lib/zip_rename.c
@@ -1,6 +1,6 @@
/*
zip_rename.c -- rename file in zip archive
- Copyright (C) 1999-2009 Dieter Baron and Thomas Klausner
+ Copyright (C) 1999-2012 Dieter Baron and Thomas Klausner
This file is part of libzip, a library to manipulate ZIP archives.
The authors can be contacted at <libzip@nih.at>
@@ -42,29 +42,5 @@
ZIP_EXTERN int
zip_rename(struct zip *za, zip_uint64_t idx, const char *name)
{
- const char *old_name;
- int old_is_dir, new_is_dir;
-
- if (idx >= za->nentry || name == NULL || strlen(name) > ZIP_UINT16_MAX) {
- _zip_error_set(&za->error, ZIP_ER_INVAL, 0);
- return -1;
- }
-
- if (ZIP_IS_RDONLY(za)) {
- _zip_error_set(&za->error, ZIP_ER_RDONLY, 0);
- return -1;
- }
-
- if ((old_name=zip_get_name(za, idx, 0)) == NULL)
- return -1;
-
- new_is_dir = (name[strlen(name)-1] == '/');
- old_is_dir = (old_name[strlen(old_name)-1] == '/');
-
- if (new_is_dir != old_is_dir) {
- _zip_error_set(&za->error, ZIP_ER_INVAL, 0);
- return -1;
- }
-
- return _zip_set_name(za, idx, name);
+ return zip_file_rename(za, idx, name, 0);
}