]> git.sesse.net Git - vlc/commitdiff
Zip: use !/ as separator instead of |
authorJean-Philippe Andre <jpeg@via.ecp.fr>
Tue, 19 May 2009 15:45:09 +0000 (23:45 +0800)
committerJean-Philippe Andre <jpeg@via.ecp.fr>
Tue, 19 May 2009 16:10:10 +0000 (00:10 +0800)
As advised on the forum, !/ is the standard separator for JAR protocol.

modules/access/zip/zip.h
modules/access/zip/zipaccess.c

index d52f8d5208172675d7dca0a8eb9bc86281c28c60..a6d7b62fcdbb5b0a58ff33e93aa817f3c57d7a2c 100644 (file)
@@ -42,8 +42,8 @@
 
 #define ZIP_FILENAME_LEN 512
 #define ZIP_BUFFER_LEN 32768
-#define ZIP_SEP      "|"
-#define ZIP_SEP_CHAR '|'
+#define ZIP_SEP      "!/"
+#define ZIP_SEP_LEN  2
 
 
 /** **************************************************************************
index 1c5d67873dd66edeb58cb69333dba744ace924e5..6f04d919df52c4cd0d11578328def27cbc86183b 100644 (file)
@@ -22,7 +22,7 @@
  *****************************************************************************/
 
 /** @todo:
- * - implement crypto (using url zip://user:password@path-to-archive|file
+ * - implement crypto (using url zip://user:password@path-to-archive!/file)
  * - read files in zip with long name (use unz_file_info.size_filename)
  * - multi-volume archive support ?
  */
@@ -112,9 +112,12 @@ int AccessOpen( vlc_object_t *p_this )
 
     /* Split the MRL */
     psz_path = strdup( p_access->psz_path );
-    psz_sep = strchr( psz_path, ZIP_SEP_CHAR );
+    psz_sep = strstr( psz_path, ZIP_SEP );
     if( !psz_sep )
+    {
+        msg_Dbg( p_access, "path does not contain separator " ZIP_SEP );
         return VLC_EGENERIC;
+    }
 
     *psz_sep = '\0';
     psz_pathToZip = unescapeXml( psz_path );
@@ -125,10 +128,10 @@ int AccessOpen( vlc_object_t *p_this )
                  psz_path );
         psz_pathToZip = strdup( psz_path );
     }
-    p_sys->psz_fileInzip = unescapeXml( psz_sep + 1 );
+    p_sys->psz_fileInzip = unescapeXml( psz_sep + ZIP_SEP_LEN );
     if( !p_sys->psz_fileInzip )
     {
-        p_sys->psz_fileInzip = strdup( psz_sep + 1 );
+        p_sys->psz_fileInzip = strdup( psz_sep + ZIP_SEP_LEN );
     }
 
     /* Define IO functions */