Call ZIP_SOURCE_SUPPORTS when creating a source, only call supported commands.
diff --git a/lib/zip_source_supports.c b/lib/zip_source_supports.c
index 13f4caf..3c100fb 100644
--- a/lib/zip_source_supports.c
+++ b/lib/zip_source_supports.c
@@ -40,15 +40,7 @@
 zip_int64_t
 zip_source_supports(zip_source_t *src)
 {
-    zip_int64_t ret;
-    
-    ret = _zip_source_call(src, NULL , 0, ZIP_SOURCE_SUPPORTS);
-    
-    if (ret < 0) {
-        ret = zip_source_make_command_bitmap(ZIP_SOURCE_OPEN, ZIP_SOURCE_READ, ZIP_SOURCE_CLOSE, ZIP_SOURCE_STAT, ZIP_SOURCE_ERROR, ZIP_SOURCE_FREE, -1);
-    }
-    
-    return ret;
+    return src->supports;
 }
 
 
@@ -58,7 +50,7 @@
     zip_int64_t bitmap;
     va_list ap;
     
-    bitmap = 1<<cmd0;
+    bitmap = ZIP_SOURCE_MAKE_COMMAND_BITMASK(cmd0);
     
     
     
@@ -68,7 +60,7 @@
         if (cmd < 0) {
             break;
         }
-        bitmap |= 1<<cmd;
+        bitmap |= ZIP_SOURCE_MAKE_COMMAND_BITMASK(cmd);
     }
     va_end(ap);