From a8e1fd6038f586a88c91e27dcff9ec0b22bf73f8 Mon Sep 17 00:00:00 2001 From: rocky Date: Sun, 20 Feb 2005 10:21:01 +0000 Subject: [PATCH] all: Add iso9660_get_rock_attr_str to get an ls-like mode string for rock ridge. {cd,iso}-info.c util.{c,h}: put common printing routine in util.c rock.h: add enum for NM flags iso9660.h: move mode_t typedef so it can be used in rock.h xa.{c,h}: small typos. test/*: in most cases better output. On VCD's however there there is a slight regression on displaying the filename someitmes. Will be addressed later. --- include/cdio/iso9660.h | 12 +-- include/cdio/rock.h | 50 +++++++++++- include/cdio/xa.h | 6 +- lib/iso9660/iso9660_fs.c | 21 ++--- lib/iso9660/libiso9660.sym | 1 + lib/iso9660/rock.c | 142 +++++++++++++++++++++++++++++----- lib/iso9660/xa.c | 8 +- src/Makefile.am | 6 +- src/cd-info.c | 38 ++++----- src/iso-info.c | 29 ++----- src/util.c | 43 +++++++++- src/util.h | 10 ++- test/copying.right | 6 +- test/isofs-m1.right | 14 ++-- test/joliet-nojoliet.right | 24 +++--- test/joliet.right | 24 +++--- test/monvoisin.right | 58 +++++++------- test/svcd_ogt_test_ntsc.right | 46 +++++------ test/svcdgs.right | 74 +++++++++--------- test/vcd_demo.right | 98 +++++++++++------------ test/videocd.right | 56 +++++++------- 21 files changed, 470 insertions(+), 296 deletions(-) diff --git a/include/cdio/iso9660.h b/include/cdio/iso9660.h index 3dc65d8f..b2167eaf 100644 --- a/include/cdio/iso9660.h +++ b/include/cdio/iso9660.h @@ -1,5 +1,5 @@ /* - $Id: iso9660.h,v 1.68 2005/02/19 11:47:05 rocky Exp $ + $Id: iso9660.h,v 1.69 2005/02/20 10:21:01 rocky Exp $ Copyright (C) 2000 Herbert Valerio Riedel Copyright (C) 2003, 2004, 2005 Rocky Bernstein @@ -258,6 +258,11 @@ typedef struct iso9660_ltime_s iso9660_ltime_t; typedef struct iso9660_dir_s iso9660_dir_t; typedef struct iso9660_stat_s iso9660_stat_t; +typedef uint32_t posix_mode_t; +typedef uint32_t posix_nlink_t; +typedef uint32_t posix_uid_t; +typedef uint32_t posix_gid_t; + #include /*! \brief Format of an ISO-9660 directory record @@ -511,11 +516,6 @@ typedef struct iso9660_svd_s iso9660_svd_t; PRAGMA_END_PACKED -typedef uint32_t posix_mode_t; -typedef uint32_t posix_nlink_t; -typedef uint32_t posix_uid_t; -typedef uint32_t posix_gid_t; - /*! \brief Unix stat-like version of iso9660_dir The iso9660_stat structure is not part of the ISO-9660 diff --git a/include/cdio/rock.h b/include/cdio/rock.h index 72c92b44..e2d8a710 100644 --- a/include/cdio/rock.h +++ b/include/cdio/rock.h @@ -1,5 +1,5 @@ /* - $Id: rock.h,v 1.2 2005/02/13 22:03:00 rocky Exp $ + $Id: rock.h,v 1.3 2005/02/20 10:21:01 rocky Exp $ Copyright (C) 2005 Rocky Bernstein @@ -147,6 +147,19 @@ typedef struct iso_rock_sl_s { } GNUC_PACKED iso_rock_sl_t ; /*! Alternate name. See Section 4.1.4 */ + +/*! These are the bits and their meanings for flags in the NM structure. */ +typedef enum { + ISO_ROCK_NM_CONTINUE = 1, + ISO_ROCK_NM_CURRENT = 2, + ISO_ROCK_NM_PARENT = 4, +} iso_rock_nm_flag_t; + +#define ISO_ROCK_NM_CONTINUE 1 +#define ISO_ROCK_NM_CURRENT 2 +#define ISO_ROCK_NM_PARENT 4 + + typedef struct iso_rock_nm_s { unsigned char flags; char name[EMPTY_ARRAY_SIZE]; @@ -229,6 +242,41 @@ int get_rock_ridge_filename(iso9660_dir_t * de, /*out*/ char * retname, int parse_rock_ridge_stat(iso9660_dir_t *de, /*out*/ iso9660_stat_t *p_stat); +/*! + Returns a string which interpreting the POSIX mode st_mode. + For example: + \verbatim + drwxrws--- + -rw---Sr-- + lrwxrwxrwx + \endverbatim + + A description of the characters in the string follows + The 1st character is either "d" if the entry is a directory, "l" is + a symbolic link or "-" if neither. + + The 2nd to 4th characters refer to permissions for a user while the + the 5th to 7th characters refer to permissions for a group while, and + the 8th to 10h characters refer to permissions for everyone. + + In each of these triplets the first character (2, 5, 8) is "r" if + the entry is allowed to be read. + + The second character of a triplet (3, 6, 9) is "w" if the entry is + allowed to be written. + + The third character of a triplet (4, 7, 10) is "x" if the entry is + executable but not user (for character 4) or group (for characters + 6) settable and "s" if the item has the corresponding user/group set. + + For a directory having an executable property on ("x" or "s") means + the directory is allowed to be listed or "searched". If the execute + property is not allowed for a group or user but the corresponding + group/user is set "S" indicates this. If none of these properties + holds the "-" indicates this. +*/ +const char *iso9660_get_rock_attr_str(posix_mode_t st_mode); + #endif /* __ISO_ROCK_H__ */ /* diff --git a/include/cdio/xa.h b/include/cdio/xa.h index 5ded143e..ece28b74 100644 --- a/include/cdio/xa.h +++ b/include/cdio/xa.h @@ -1,5 +1,5 @@ /* - $Id: xa.h,v 1.14 2005/02/13 00:20:05 rocky Exp $ + $Id: xa.h,v 1.15 2005/02/20 10:21:01 rocky Exp $ Copyright (C) 2000 Herbert Valerio Riedel Copyright (C) 2003, 2004, 2005 Rocky Bernstein @@ -139,7 +139,7 @@ typedef struct iso9660_xa_s /*! - Returns a string which interpreting the extended attribute xa_attr. + Returns a string interpreting the extended attribute xa_attr. For example: \verbatim d---1xrxrxr @@ -147,7 +147,7 @@ typedef struct iso9660_xa_s -a--1xrxrxr \endverbatim - A description of the characters in the string follows + A description of the characters in the string follows. The 1st character is either "d" if the entry is a directory, or "-" if not The 2nd character is either "a" if the entry is CDDA (audio), or "-" if not The 3rd character is either "i" if the entry is interleaved, or "-" if not diff --git a/lib/iso9660/iso9660_fs.c b/lib/iso9660/iso9660_fs.c index 54e6dd86..8d1ddb73 100644 --- a/lib/iso9660/iso9660_fs.c +++ b/lib/iso9660/iso9660_fs.c @@ -1,5 +1,5 @@ /* - $Id: iso9660_fs.c,v 1.20 2005/02/20 03:20:42 rocky Exp $ + $Id: iso9660_fs.c,v 1.21 2005/02/20 10:21:01 rocky Exp $ Copyright (C) 2001 Herbert Valerio Riedel Copyright (C) 2003, 2004, 2005 Rocky Bernstein @@ -52,7 +52,7 @@ #include -static const char _rcsid[] = "$Id: iso9660_fs.c,v 1.20 2005/02/20 03:20:42 rocky Exp $"; +static const char _rcsid[] = "$Id: iso9660_fs.c,v 1.21 2005/02/20 10:21:01 rocky Exp $"; /* Implementation of iso9660_t type */ struct _iso9660_s { @@ -794,7 +794,7 @@ _iso9660_dir_to_statbuf (iso9660_dir_t *p_iso9660_dir, bool_3way_t b_xa, uint8_t i_joliet_level) { uint8_t dir_len= iso9660_get_dir_len(p_iso9660_dir); - unsigned int i_fname; + iso711_t i_fname; unsigned int stat_len; iso9660_stat_t *p_stat; @@ -813,11 +813,7 @@ _iso9660_dir_to_statbuf (iso9660_dir_t *p_iso9660_dir, bool_3way_t b_xa, p_stat->secsize = _cdio_len2blocks (p_stat->size, ISO_BLOCKSIZE); p_stat->b_rock = dunno; /*FIXME should do based on mask */ - if ('\0' == p_iso9660_dir->filename[0] && 1 == i_fname) - strcpy (p_stat->filename, "."); - else if ('\1' == p_iso9660_dir->filename[0] && 1 == i_fname) - strcpy (p_stat->filename, ".."); - else { + { char rr_fname[256] = ""; int i_rr_fname = get_rock_ridge_filename(p_iso9660_dir, rr_fname, p_stat); @@ -827,7 +823,11 @@ _iso9660_dir_to_statbuf (iso9660_dir_t *p_iso9660_dir, bool_3way_t b_xa, strncpy(p_stat->filename, rr_fname, i_rr_fname+1); } else { #ifdef HAVE_JOLIET - if (i_joliet_level) { + if ('\0' == p_iso9660_dir->filename[0] && 1 == i_fname) + strcpy (p_stat->filename, "."); + else if ('\1' == p_iso9660_dir->filename[0] && 1 == i_fname) + strcpy (p_stat->filename, ".."); + else if (i_joliet_level) { int i_inlen = i_fname; int i_outlen = (i_inlen / 2); char *p_psz_out = NULL; @@ -835,9 +835,10 @@ _iso9660_dir_to_statbuf (iso9660_dir_t *p_iso9660_dir, bool_3way_t b_xa, i_outlen); strncpy(p_stat->filename, p_psz_out, i_fname); free(p_psz_out); - } else + } else { #endif /*HAVE_JOLIET*/ strncpy (p_stat->filename, p_iso9660_dir->filename, i_fname); + } } } diff --git a/lib/iso9660/libiso9660.sym b/lib/iso9660/libiso9660.sym index 6cea1a6b..e3a99a4e 100644 --- a/lib/iso9660/libiso9660.sym +++ b/lib/iso9660/libiso9660.sym @@ -21,6 +21,7 @@ iso9660_get_pvd_id iso9660_get_pvd_space_size iso9660_get_pvd_type iso9660_get_pvd_version +iso9660_get_rock_attr_str iso9660_get_root_lsn iso9660_get_system_id iso9660_get_volume_id diff --git a/lib/iso9660/rock.c b/lib/iso9660/rock.c index 0b27a364..4be03374 100644 --- a/lib/iso9660/rock.c +++ b/lib/iso9660/rock.c @@ -1,5 +1,5 @@ /* - $Id: rock.c,v 1.4 2005/02/18 01:31:08 rocky Exp $ + $Id: rock.c,v 1.5 2005/02/20 10:21:01 rocky Exp $ Copyright (C) 2005 Rocky Bernstein Adapted from GNU/Linux fs/isofs/rock.c (C) 1992, 1993 Eric Youngdale @@ -85,8 +85,8 @@ @return length of name field; 0: not found, -1: to be ignored */ int -get_rock_ridge_filename(iso9660_dir_t * de, /*out*/ char * psz_name, - iso9660_stat_t *p_stat) +get_rock_ridge_filename(iso9660_dir_t * p_iso9660_dir, + /*out*/ char * psz_name, iso9660_stat_t *p_stat) { int len; unsigned char *chr; @@ -97,7 +97,7 @@ get_rock_ridge_filename(iso9660_dir_t * de, /*out*/ char * psz_name, if (!p_stat || nope == p_stat->b_rock) return 0; *psz_name = 0; - SETUP_ROCK_RIDGE(de, chr, len); + SETUP_ROCK_RIDGE(p_iso9660_dir, chr, len); /* repeat:*/ { iso_extension_record_t * rr; @@ -114,20 +114,26 @@ get_rock_ridge_filename(iso9660_dir_t * de, /*out*/ char * psz_name, case SIG('S','P'): CHECK_SP(goto out); break; - case SIG('C','E'): + case SIG('C','E'): + { + iso711_t i_fname = from_711(p_iso9660_dir->filename_len); + if ('\0' == p_iso9660_dir->filename[0] && 1 == i_fname) + break; + if ('\1' == p_iso9660_dir->filename[0] && 1 == i_fname) + break; + } CHECK_CE; break; case SIG('N','M'): p_stat->b_rock = yep; if (truncate) break; - /* - * If the flags are 2 or 4, this indicates '.' or '..'. - * We don't want to do anything with this, because it - * screws up the code that calls us. We don't really - * care anyways, since we can just use the non-RR - * name. - */ - if (rr->u.NM.flags & 6) { + if (rr->u.NM.flags & ISO_ROCK_NM_PARENT) { + i_namelen = strlen(".."); + strcat(psz_name, ".."); + break; + } else if (rr->u.NM.flags & ISO_ROCK_NM_CURRENT) { + i_namelen = strlen("."); + strcat(psz_name, "."); break; } @@ -193,7 +199,7 @@ get_rock_ridge_filename(iso9660_dir_t * de, /*out*/ char * psz_name, } static int -parse_rock_ridge_stat_internal(iso9660_dir_t *de, +parse_rock_ridge_stat_internal(iso9660_dir_t *p_iso9660_dir, iso9660_stat_t *p_stat, int regard_xa) { int len; @@ -203,7 +209,7 @@ parse_rock_ridge_stat_internal(iso9660_dir_t *de, if (nope == p_stat->b_rock) return 0; - SETUP_ROCK_RIDGE(de, chr, len); + SETUP_ROCK_RIDGE(p_iso9660_dir, chr, len); if (regard_xa) { chr+=14; @@ -372,17 +378,117 @@ parse_rock_ridge_stat_internal(iso9660_dir_t *de, } int -parse_rock_ridge_stat(iso9660_dir_t *de, /*out*/ iso9660_stat_t *p_stat) +parse_rock_ridge_stat(iso9660_dir_t *p_iso9660_dir, + /*out*/ iso9660_stat_t *p_stat) { int result; if (!p_stat) return 0; - result = parse_rock_ridge_stat_internal(de, p_stat, 0); + result = parse_rock_ridge_stat_internal(p_iso9660_dir, p_stat, 0); /* if Rock-Ridge flag was reset and we didn't look for attributes * behind eventual XA attributes, have a look there */ if (0xFF == p_stat->s_rock_offset && nope != p_stat->b_rock) { - result = parse_rock_ridge_stat_internal(de, p_stat, 14); + result = parse_rock_ridge_stat_internal(p_iso9660_dir, p_stat, 14); } return result; } + +#define BUF_COUNT 16 +#define BUF_SIZE sizeof("drwxrwxrwx") + +/* Return a pointer to a internal free buffer */ +static char * +_getbuf (void) +{ + static char _buf[BUF_COUNT][BUF_SIZE]; + static int _i = -1; + + _i++; + _i %= BUF_COUNT; + + memset (_buf[_i], 0, BUF_SIZE); + + return _buf[_i]; +} + +/*! + Returns a string which interpreting the POSIX mode st_mode. + For example: + \verbatim + drwxrws--- + -rw-rw-r-- + lrwxrwxrwx + \endverbatim + + A description of the characters in the string follows + The 1st character is either "b" for a block device, + "c" for a character device, "d" if the entry is a directory, "l" for + a symbolic link, "p" for a pipe or FIFO, "s" for a "socket", + or "-" if none of the these. + + The 2nd to 4th characters refer to permissions for a user while the + the 5th to 7th characters refer to permissions for a group while, and + the 8th to 10h characters refer to permissions for everyone. + + In each of these triplets the first character (2, 5, 8) is "r" if + the entry is allowed to be read. + + The second character of a triplet (3, 6, 9) is "w" if the entry is + allowed to be written. + + The third character of a triplet (4, 7, 10) is "x" if the entry is + executable but not user (for character 4) or group (for characters + 6) settable and "s" if the item has the corresponding user/group set. + + For a directory having an executable property on ("x" or "s") means + the directory is allowed to be listed or "searched". If the execute + property is not allowed for a group or user but the corresponding + group/user is set "S" indicates this. If none of these properties + holds the "-" indicates this. +*/ +const char * +iso9660_get_rock_attr_str(posix_mode_t st_mode) +{ + char *result = _getbuf(); + + if (st_mode & ISO_ROCK_ISBLK) + result[ 0] = 'b'; + else if (st_mode & ISO_ROCK_ISDIR) + result[ 0] = 'd'; + else if (st_mode & ISO_ROCK_ISCHR) + result[ 0] = 'c'; + else if (st_mode & ISO_ROCK_ISLNK) + result[ 0] = 'l'; + else if (st_mode & ISO_ROCK_ISFIFO) + result[ 0] = 'p'; + else if (st_mode & ISO_ROCK_ISSOCK) + result[ 0] = 's'; + /* May eventually fill in others.. */ + else + result[ 0] = '-'; + + result[ 1] = (st_mode & ISO_ROCK_IRUSR) ? 'r' : '-'; + result[ 2] = (st_mode & ISO_ROCK_IWUSR) ? 'w' : '-'; + + if (st_mode & ISO_ROCK_ISUID) + result[ 3] = (st_mode & ISO_ROCK_IXUSR) ? 's' : 'S'; + else + result[ 3] = (st_mode & ISO_ROCK_IXUSR) ? 'x' : '-'; + + result[ 4] = (st_mode & ISO_ROCK_IRGRP) ? 'r' : '-'; + result[ 5] = (st_mode & ISO_ROCK_IWGRP) ? 'w' : '-'; + + if (st_mode & ISO_ROCK_ISGID) + result[ 6] = (st_mode & ISO_ROCK_IXGRP) ? 's' : 'S'; + else + result[ 6] = (st_mode & ISO_ROCK_IXGRP) ? 'x' : '-'; + + result[ 7] = (st_mode & ISO_ROCK_IROTH) ? 'r' : '-'; + result[ 8] = (st_mode & ISO_ROCK_IWOTH) ? 'w' : '-'; + result[ 9] = (st_mode & ISO_ROCK_IXOTH) ? 'x' : '-'; + + result[11] = '\0'; + + return result; +} diff --git a/lib/iso9660/xa.c b/lib/iso9660/xa.c index 49953c60..78a1ac8a 100644 --- a/lib/iso9660/xa.c +++ b/lib/iso9660/xa.c @@ -1,5 +1,5 @@ /* - $Id: xa.c,v 1.3 2005/02/12 18:24:21 rocky Exp $ + $Id: xa.c,v 1.4 2005/02/20 10:21:01 rocky Exp $ Copyright (C) 2000 Herbert Valerio Riedel Copyright (C) 2003, 2005 Rocky Bernstein @@ -42,12 +42,12 @@ const char ISO_XA_MARKER_STRING[] = {'C', 'D', '-', 'X', 'A', '0', '0', '1'}; /* Private headers */ #include "cdio_assert.h" -#define BUF_COUNT 16 -#define BUF_SIZE 80 - /* Variables to hold debugger-helping enumerations */ enum cdio_xa_enums; +#define BUF_COUNT 16 +#define BUF_SIZE 80 + /* Return a pointer to a internal free buffer */ static char * _getbuf (void) diff --git a/src/Makefile.am b/src/Makefile.am index 7de1533d..1c1a9333 100644 --- a/src/Makefile.am +++ b/src/Makefile.am @@ -1,4 +1,4 @@ -# $Id: Makefile.am,v 1.31 2005/01/06 11:55:09 rocky Exp $ +# $Id: Makefile.am,v 1.32 2005/02/20 10:21:01 rocky Exp $ # # Copyright (C) 2003, 2004, 2005 Rocky Bernstein # @@ -35,7 +35,7 @@ endif if BUILD_CD_DRIVE cd_drive_SOURCES = cd-drive.c util.c util.h -cd_drive_LDADD = $(LIBCDIO_LIBS) $(LIBPOPT_LIBS) $(LIBICONV) +cd_drive_LDADD = $(LIBISO9660_LIBS) $(LIBCDIO_LIBS) $(LIBPOPT_LIBS) $(LIBICONV) bin_cd_drive = cd-drive endif @@ -53,7 +53,7 @@ endif if BUILD_CD_READ cd_read_SOURCES = cd-read.c util.c util.h -cd_read_LDADD = $(LIBCDIO_LIBS) $(LIBPOPT_LIBS) $(LIBICONV) +cd_read_LDADD = $(LIBISO9660_LIBS) $(LIBCDIO_LIBS) $(LIBPOPT_LIBS) $(LIBICONV) bin_cd_read = cd-read endif diff --git a/src/cd-info.c b/src/cd-info.c index efc81ad1..0bb3718f 100644 --- a/src/cd-info.c +++ b/src/cd-info.c @@ -1,5 +1,5 @@ /* - $Id: cd-info.c,v 1.115 2005/02/19 11:43:05 rocky Exp $ + $Id: cd-info.c,v 1.116 2005/02/20 10:21:01 rocky Exp $ Copyright (C) 2003, 2004, 2005 Rocky Bernstein Copyright (C) 1996, 1997, 1998 Gerd Knorr @@ -92,6 +92,8 @@ struct arguments int silent; int no_header; int no_joliet; + int no_xa; + int no_rock_ridge; int print_iso9660; int list_drives; source_image_t source_image; @@ -239,6 +241,12 @@ parse_options (int argc, const char *argv[]) 0, "Don't use Joliet extensions"}, #endif /*HAVE_JOLIET*/ + {"no-rock-ridge", '\0', POPT_ARG_NONE, &opts.no_rock_ridge, + 0, "Don't use Rock-Ridge-extension information"}, + + {"no-xa", '\0', POPT_ARG_NONE, &opts.no_xa, + 0, "Don't use XA-extension information"}, + {"quiet", 'q', POPT_ARG_NONE, &opts.silent, 0, "Don't produce warning output" }, @@ -591,8 +599,6 @@ print_iso9660_recurse (CdIo_t *p_cdio, const char pathname[], char *psz_iso_name = p_statbuf->filename; char _fullname[4096] = { 0, }; char translated_name[MAX_ISONAME+1]; -#define DATESTR_SIZE 30 - char date_str[DATESTR_SIZE]; if (yep != p_statbuf->b_rock) { iso9660_name_translate_ext(psz_iso_name, translated_name, @@ -610,26 +616,8 @@ print_iso9660_recurse (CdIo_t *p_cdio, const char pathname[], && strcmp (psz_iso_name, "..")) _cdio_list_append (p_dirlist, strdup (_fullname)); - if (fs & CDIO_FS_ANAL_XA) { - printf ( " %c %s %d %d [fn %.2d] [LSN %6lu] ", - (p_statbuf->type == _STAT_DIR) ? 'd' : '-', - iso9660_get_xa_attr_str (p_statbuf->xa.attributes), - uint16_from_be (p_statbuf->xa.user_id), - uint16_from_be (p_statbuf->xa.group_id), - p_statbuf->xa.filenum, - (long unsigned int) p_statbuf->lsn); - - if (uint16_from_be(p_statbuf->xa.attributes) & XA_ATTR_MODE2FORM2) { - printf ("%9u (%9u)", - (unsigned int) p_statbuf->secsize * M2F2_SECTOR_SIZE, - (unsigned int) p_statbuf->size); - } else { - printf ("%9u", (unsigned int) p_statbuf->size); - } - } - strftime(date_str, DATESTR_SIZE, "%b %d %Y %H:%M ", &p_statbuf->tm); - printf (" %s %s\n", date_str, (yep != p_statbuf->b_rock) - ? translated_name : psz_iso_name); + print_fs_attrs(p_statbuf, opts.no_rock_ridge, fs & CDIO_FS_ANAL_XA, + translated_name, psz_iso_name); } _cdio_list_free (p_entlist, true); @@ -831,7 +819,9 @@ init(void) opts.silent = false; opts.list_drives = false; opts.no_header = false; - opts.no_joliet = false; + opts.no_joliet = 0; + opts.no_rock_ridge = 0; + opts.no_xa = 0; opts.no_device = 0; opts.no_disc_mode = 0; opts.debug_level = 0; diff --git a/src/iso-info.c b/src/iso-info.c index d132f30c..4d20fa19 100644 --- a/src/iso-info.c +++ b/src/iso-info.c @@ -1,5 +1,5 @@ /* - $Id: iso-info.c,v 1.24 2005/02/19 11:43:05 rocky Exp $ + $Id: iso-info.c,v 1.25 2005/02/20 10:21:01 rocky Exp $ Copyright (C) 2004, 2005 Rocky Bernstein @@ -202,8 +202,6 @@ print_iso9660_recurse (iso9660_t *p_iso, const char pathname[]) char *iso_name = p_statbuf->filename; char _fullname[4096] = { 0, }; char translated_name[MAX_ISONAME+1]; -#define DATESTR_SIZE 30 - char date_str[DATESTR_SIZE]; if (yep != p_statbuf->b_rock) { iso9660_name_translate_ext(iso_name, translated_name, i_joliet_level); @@ -214,7 +212,6 @@ print_iso9660_recurse (iso9660_t *p_iso, const char pathname[]) iso_name); } - strncat (_fullname, "/", sizeof (_fullname)); if (p_statbuf->type == _STAT_DIR @@ -223,26 +220,10 @@ print_iso9660_recurse (iso9660_t *p_iso, const char pathname[]) _cdio_list_append (dirlist, strdup (_fullname)); if (opts.print_iso9660) { - if (iso9660_ifs_is_xa(p_iso) && 0 == opts.no_xa) { - printf ( " %c %s %d %d [fn %.2d] [LSN %6lu] ", - (p_statbuf->type == _STAT_DIR) ? 'd' : '-', - iso9660_get_xa_attr_str (p_statbuf->xa.attributes), - uint16_from_be (p_statbuf->xa.user_id), - uint16_from_be (p_statbuf->xa.group_id), - p_statbuf->xa.filenum, - (long unsigned int) p_statbuf->lsn); - - if (uint16_from_be(p_statbuf->xa.attributes) & XA_ATTR_MODE2FORM2) { - printf ("%9u (%9u)", - (unsigned int) p_statbuf->secsize * M2F2_SECTOR_SIZE, - (unsigned int) p_statbuf->size); - } - } else { - printf ("%9u", (unsigned int) p_statbuf->size); - } - strftime(date_str, DATESTR_SIZE, "%b %d %Y %H:%M ", &p_statbuf->tm); - printf (" %s %s\n", date_str, - yep == p_statbuf->b_rock ? iso_name : translated_name); + print_fs_attrs(p_statbuf, + 0 == opts.no_rock_ridge, + iso9660_ifs_is_xa(p_iso) && 0 == opts.no_xa, + iso_name, translated_name); } else if ( strcmp (iso_name, ".") && strcmp (iso_name, "..")) printf("%9u %s%s\n", p_statbuf->size, pathname, diff --git a/src/util.c b/src/util.c index 99dcf84c..0ee77f73 100644 --- a/src/util.c +++ b/src/util.c @@ -1,5 +1,5 @@ /* - $Id: util.c,v 1.36 2005/02/09 01:31:10 rocky Exp $ + $Id: util.c,v 1.37 2005/02/20 10:21:01 rocky Exp $ Copyright (C) 2003, 2004, 2005 Rocky Bernstein @@ -22,6 +22,7 @@ #include "util.h" #include +#include cdio_log_handler_t gl_default_cdio_log_handler = NULL; char *source_name = NULL; @@ -450,3 +451,43 @@ report (FILE *stream, const char *psz_format, ...) va_end(args); } +/* Prints "ls"-like file attributes */ +void +print_fs_attrs(iso9660_stat_t *p_statbuf, bool b_rock, bool b_xa, + const char *psz_name_untranslated, + const char *psz_name_translated) +{ + char date_str[30]; + + if (yep == p_statbuf->b_rock && b_rock) { + printf ( " %s %d %d [LSN %6lu] ", + iso9660_get_rock_attr_str (p_statbuf->st_mode), + p_statbuf->st_uid, + p_statbuf->st_gid, + (long unsigned int) p_statbuf->lsn); + } else if (b_xa) { + printf ( " %s %d %d [fn %.2d] [LSN %6lu] ", + iso9660_get_xa_attr_str (p_statbuf->xa.attributes), + uint16_from_be (p_statbuf->xa.user_id), + uint16_from_be (p_statbuf->xa.group_id), + p_statbuf->xa.filenum, + (long unsigned int) p_statbuf->lsn); + + if (uint16_from_be(p_statbuf->xa.attributes) & XA_ATTR_MODE2FORM2) { + printf ("%9u (%9u)", + (unsigned int) p_statbuf->secsize * M2F2_SECTOR_SIZE, + (unsigned int) p_statbuf->size); + } else + printf ("%9u", (unsigned int) p_statbuf->size); + } else { + printf (" %c %9u", + (p_statbuf->type == _STAT_DIR) ? 'd' : '-', + (unsigned int) p_statbuf->size); + } + strftime(date_str, sizeof(date_str), "%b %d %Y %H:%M ", &p_statbuf->tm); + printf (" %s %s\n", date_str, + yep == p_statbuf->b_rock && b_rock + ? psz_name_untranslated : psz_name_translated); + +} + diff --git a/src/util.h b/src/util.h index 738a692d..ecb29cff 100644 --- a/src/util.h +++ b/src/util.h @@ -1,7 +1,7 @@ /* - $Id: util.h,v 1.10 2005/01/09 00:10:49 rocky Exp $ + $Id: util.h,v 1.11 2005/02/20 10:21:01 rocky Exp $ - Copyright (C) 2003, 2004 Rocky Bernstein + Copyright (C) 2003, 2004, 2005 Rocky Bernstein This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by @@ -30,6 +30,7 @@ #include #include #include +#include #ifdef HAVE_STDLIB_H #include #endif @@ -131,4 +132,9 @@ void print_drive_capabilities(cdio_drive_read_cap_t p_read_cap, it may not be desireable to send output to stdout and stderr. */ void report (FILE *stream, const char *psz_format, ...); +/* Prints "ls"-like file attributes */ +void print_fs_attrs(iso9660_stat_t *p_statbuf, bool b_rock, bool b_xa, + const char *psz_name_untranslated, + const char *psz_name_translated); + #endif /* UTIL_H */ diff --git a/test/copying.right b/test/copying.right index a672232d..482ff32d 100644 --- a/test/copying.right +++ b/test/copying.right @@ -4,7 +4,7 @@ PARTICULAR PURPOSE. __________________________________ ISO-9660 Information /: - 2048 Jan 10 2004 00:47 . - 2048 Jan 10 2004 00:47 .. - 17992 Jan 10 2004 00:47 copying + d 2048 Jan 10 2004 00:47 . + d 2048 Jan 10 2004 00:47 .. + - 17992 Jan 10 2004 00:47 copying diff --git a/test/isofs-m1.right b/test/isofs-m1.right index abd8fdac..c3461d6b 100644 --- a/test/isofs-m1.right +++ b/test/isofs-m1.right @@ -20,13 +20,13 @@ Volume : CDROM Volume Set : ISO9660 filesystem /: - Apr 20 2003 07:26 . - Apr 20 2003 07:26 .. - Jul 29 2002 08:39 COPYING - Apr 20 2003 12:18 doc + d 2048 Apr 20 2003 07:26 . + d 2048 Apr 20 2003 07:26 .. + - 17992 Jul 29 2002 08:39 COPYING + d 2048 Apr 20 2003 12:18 doc /doc/: - Apr 20 2003 12:18 . - Apr 20 2003 07:26 .. - Apr 20 2003 12:18 readme.txt + d 2048 Apr 20 2003 12:18 . + d 2048 Apr 20 2003 07:26 .. + - 648 Apr 20 2003 12:18 readme.txt diff --git a/test/joliet-nojoliet.right b/test/joliet-nojoliet.right index f30e9585..c74f5ff9 100644 --- a/test/joliet-nojoliet.right +++ b/test/joliet-nojoliet.right @@ -4,20 +4,20 @@ PARTICULAR PURPOSE. __________________________________ ISO-9660 Information /: - 2048 Oct 22 2004 18:44 . - 2048 Oct 22 2004 18:44 .. - 2048 Oct 22 2004 18:44 libcdio + d 2048 Oct 22 2004 18:44 . + d 2048 Oct 22 2004 18:44 .. + d 2048 Oct 22 2004 18:44 libcdio /libcdio/: - 2048 Oct 22 2004 18:44 . - 2048 Oct 22 2004 18:44 .. - 17992 Mar 12 2004 02:18 copying - 2156 Jun 26 2004 06:01 readme - 2849 Aug 12 2004 05:22 readme.libcdio - 2048 Oct 22 2004 18:44 test + d 2048 Oct 22 2004 18:44 . + d 2048 Oct 22 2004 18:44 .. + - 17992 Mar 12 2004 02:18 copying + - 2156 Jun 26 2004 06:01 readme + - 2849 Aug 12 2004 05:22 readme.libcdio + d 2048 Oct 22 2004 18:44 test /libcdio/test/: - 2048 Oct 22 2004 18:44 . - 2048 Oct 22 2004 18:44 .. - 74 Jul 25 2004 05:52 isofs_m1.cue + d 2048 Oct 22 2004 18:44 . + d 2048 Oct 22 2004 18:44 .. + - 74 Jul 25 2004 05:52 isofs_m1.cue diff --git a/test/joliet.right b/test/joliet.right index de537536..1d17d9a5 100644 --- a/test/joliet.right +++ b/test/joliet.right @@ -4,20 +4,20 @@ PARTICULAR PURPOSE. __________________________________ ISO-9660 Information /: - 2048 Oct 22 2004 18:44 . - 2048 Oct 22 2004 18:44 .. - 2048 Oct 22 2004 18:44 libcdio + d 2048 Oct 22 2004 18:44 . + d 2048 Oct 22 2004 18:44 .. + d 2048 Oct 22 2004 18:44 libcdio /libcdio/: - 2048 Oct 22 2004 18:44 . - 2048 Oct 22 2004 18:44 .. - 17992 Mar 12 2004 02:18 COPYING - 2156 Jun 26 2004 06:01 README - 2849 Aug 12 2004 05:22 README.libcdio - 2048 Oct 22 2004 18:44 test + d 2048 Oct 22 2004 18:44 . + d 2048 Oct 22 2004 18:44 .. + - 17992 Mar 12 2004 02:18 COPYING + - 2156 Jun 26 2004 06:01 README + - 2849 Aug 12 2004 05:22 README.libcdio + d 2048 Oct 22 2004 18:44 test /libcdio/test/: - 2048 Oct 22 2004 18:44 . - 2048 Oct 22 2004 18:44 .. - 74 Jul 25 2004 05:52 isofs-m1.cue + d 2048 Oct 22 2004 18:44 . + d 2048 Oct 22 2004 18:44 .. + - 74 Jul 25 2004 05:52 isofs-m1.cue diff --git a/test/monvoisin.right b/test/monvoisin.right index 4d655954..6c151c73 100644 --- a/test/monvoisin.right +++ b/test/monvoisin.right @@ -22,45 +22,45 @@ Volume : MONVOISIN Volume Set : ISO9660 filesystem /: - d d---1xrxrxr 0 0 [fn 00] [LSN 18] 2048 Dec 31 1969 23:59 . - d d---1xrxrxr 0 0 [fn 00] [LSN 18] 2048 Dec 31 1969 23:59 .. - d d---1xrxrxr 0 0 [fn 00] [LSN 19] 2048 Feb 19 2001 16:37 cdi - d d---1xrxrxr 0 0 [fn 00] [LSN 20] 2048 Feb 19 2001 16:37 ext - d d---1xrxrxr 0 0 [fn 00] [LSN 21] 2048 Feb 19 2001 16:37 mpegav - d d---1xrxrxr 0 0 [fn 00] [LSN 22] 2048 Feb 19 2001 16:37 segment - d d---1xrxrxr 0 0 [fn 00] [LSN 23] 2048 Feb 19 2001 16:37 vcd + d---1xrxrxr 0 0 [fn 00] [LSN 18] 2048 Dec 31 1969 23:59 . + d---1xrxrxr 0 0 [fn 00] [LSN 18] 2048 Dec 31 1969 23:59 .. + d---1xrxrxr 0 0 [fn 00] [LSN 19] 2048 Feb 19 2001 16:37 CDI + d---1xrxrxr 0 0 [fn 00] [LSN 20] 2048 Feb 19 2001 16:37 EXT + d---1xrxrxr 0 0 [fn 00] [LSN 21] 2048 Feb 19 2001 16:37 MPEGAV + d---1xrxrxr 0 0 [fn 00] [LSN 22] 2048 Feb 19 2001 16:37 SEGMENT + d---1xrxrxr 0 0 [fn 00] [LSN 23] 2048 Feb 19 2001 16:37 VCD /CDI/: - d d---1xrxrxr 0 0 [fn 00] [LSN 19] 2048 Dec 31 1969 23:59 . - d d---1xrxrxr 0 0 [fn 00] [LSN 18] 2048 Dec 31 1969 23:59 .. - - ---2-xrxrxr 0 0 [fn 01] [LSN 211] 1494332 ( 1315168) Feb 19 2001 16:37 cdi_imag.rtf - - ----1xrxrxr 0 0 [fn 01] [LSN 854] 13616 Feb 19 2001 16:37 cdi_text.fnt - - ----1xrxrxr 0 0 [fn 01] [LSN 861] 102400 Feb 19 2001 16:37 cdi_vcd.app - - ----1xrxrxr 0 0 [fn 01] [LSN 911] 279 Feb 19 2001 16:37 cdi_vcd.cfg + d---1xrxrxr 0 0 [fn 00] [LSN 19] 2048 Dec 31 1969 23:59 . + d---1xrxrxr 0 0 [fn 00] [LSN 18] 2048 Dec 31 1969 23:59 .. + ---2-xrxrxr 0 0 [fn 01] [LSN 211] 1494332 ( 1315168) Feb 19 2001 16:37 CDI_IMAG.RTF;1 + ----1xrxrxr 0 0 [fn 01] [LSN 854] 13616 Feb 19 2001 16:37 CDI_TEXT.FNT;1 + ----1xrxrxr 0 0 [fn 01] [LSN 861] 102400 Feb 19 2001 16:37 CDI_VCD.APP;1 + ----1xrxrxr 0 0 [fn 01] [LSN 911] 279 Feb 19 2001 16:37 CDI_VCD.CFG;1 /EXT/: - d d---1xrxrxr 0 0 [fn 00] [LSN 20] 2048 Dec 31 1969 23:59 . - d d---1xrxrxr 0 0 [fn 00] [LSN 18] 2048 Dec 31 1969 23:59 .. - - ----1xrxrxr 0 0 [fn 01] [LSN 912] 65536 Feb 19 2001 16:37 lot_x.vcd - - ----1xrxrxr 0 0 [fn 01] [LSN 944] 24 Feb 19 2001 16:37 psd_x.vcd - - ----1xrxrxr 0 0 [fn 01] [LSN 945] 114 Feb 19 2001 16:37 scandata.dat + d---1xrxrxr 0 0 [fn 00] [LSN 20] 2048 Dec 31 1969 23:59 . + d---1xrxrxr 0 0 [fn 00] [LSN 18] 2048 Dec 31 1969 23:59 .. + ----1xrxrxr 0 0 [fn 01] [LSN 912] 65536 Feb 19 2001 16:37 LOT_X.VCD;1 + ----1xrxrxr 0 0 [fn 01] [LSN 944] 24 Feb 19 2001 16:37 PSD_X.VCD;1 + ----1xrxrxr 0 0 [fn 01] [LSN 945] 114 Feb 19 2001 16:37 SCANDATA.DAT;1 /MPEGAV/: - d d---1xrxrxr 0 0 [fn 00] [LSN 21] 2048 Dec 31 1969 23:59 . - d d---1xrxrxr 0 0 [fn 00] [LSN 18] 2048 Dec 31 1969 23:59 .. - - ---2-xrxrxr 0 0 [fn 01] [LSN 1251] 3655652 ( 3221504) Feb 19 2001 16:37 avseq01.dat + d---1xrxrxr 0 0 [fn 00] [LSN 21] 2048 Dec 31 1969 23:59 . + d---1xrxrxr 0 0 [fn 00] [LSN 18] 2048 Dec 31 1969 23:59 .. + ---2-xrxrxr 0 0 [fn 01] [LSN 1251] 3655652 ( 3221504) Feb 19 2001 16:37 AVSEQ01.DAT;1 /SEGMENT/: - d d---1xrxrxr 0 0 [fn 00] [LSN 22] 2048 Dec 31 1969 23:59 . - d d---1xrxrxr 0 0 [fn 00] [LSN 18] 2048 Dec 31 1969 23:59 .. + d---1xrxrxr 0 0 [fn 00] [LSN 22] 2048 Dec 31 1969 23:59 . + d---1xrxrxr 0 0 [fn 00] [LSN 18] 2048 Dec 31 1969 23:59 .. /VCD/: - d d---1xrxrxr 0 0 [fn 00] [LSN 23] 2048 Dec 31 1969 23:59 . - d d---1xrxrxr 0 0 [fn 00] [LSN 18] 2048 Dec 31 1969 23:59 .. - - ----1xrxrxr 0 0 [fn 00] [LSN 151] 2048 Feb 19 2001 16:37 entries.vcd - - ----1xrxrxr 0 0 [fn 00] [LSN 150] 2048 Feb 19 2001 16:37 info.vcd - - ----1xrxrxr 0 0 [fn 00] [LSN 152] 65536 Feb 19 2001 16:37 lot.vcd - - ----1xrxrxr 0 0 [fn 00] [LSN 184] 24 Feb 19 2001 16:37 psd.vcd + d---1xrxrxr 0 0 [fn 00] [LSN 23] 2048 Dec 31 1969 23:59 . + d---1xrxrxr 0 0 [fn 00] [LSN 18] 2048 Dec 31 1969 23:59 .. + ----1xrxrxr 0 0 [fn 00] [LSN 151] 2048 Feb 19 2001 16:37 ENTRIES.VCD;1 + ----1xrxrxr 0 0 [fn 00] [LSN 150] 2048 Feb 19 2001 16:37 INFO.VCD;1 + ----1xrxrxr 0 0 [fn 00] [LSN 152] 65536 Feb 19 2001 16:37 LOT.VCD;1 + ----1xrxrxr 0 0 [fn 00] [LSN 184] 24 Feb 19 2001 16:37 PSD.VCD;1 XA sectors Video CD session #2 starts at track 2, LSN: 1251, ISO 9660 blocks: 1101 diff --git a/test/svcd_ogt_test_ntsc.right b/test/svcd_ogt_test_ntsc.right index 6d70f2c5..15db4334 100644 --- a/test/svcd_ogt_test_ntsc.right +++ b/test/svcd_ogt_test_ntsc.right @@ -21,37 +21,37 @@ Volume : SVCD_OGT_TEST_NTSC Volume Set : ISO9660 filesystem /: - d d---1xrxrxr 0 0 [fn 00] [LSN 18] 2048 Jul 14 1978 00:00 . - d d---1xrxrxr 0 0 [fn 00] [LSN 18] 2048 Jul 14 1978 00:00 .. - d d---1xrxrxr 0 0 [fn 00] [LSN 19] 2048 Jul 14 1978 00:00 ext - d d---1xrxrxr 0 0 [fn 00] [LSN 20] 2048 Jul 14 1978 00:00 mpeg2 - d d---1xrxrxr 0 0 [fn 00] [LSN 21] 2048 Jul 14 1978 00:00 segment - d d---1xrxrxr 0 0 [fn 00] [LSN 22] 2048 Jul 14 1978 00:00 svcd + d---1xrxrxr 0 0 [fn 00] [LSN 18] 2048 Jul 14 1978 00:00 . + d---1xrxrxr 0 0 [fn 00] [LSN 18] 2048 Jul 14 1978 00:00 .. + d---1xrxrxr 0 0 [fn 00] [LSN 19] 2048 Jul 14 1978 00:00 EXT + d---1xrxrxr 0 0 [fn 00] [LSN 20] 2048 Jul 14 1978 00:00 MPEG2 + d---1xrxrxr 0 0 [fn 00] [LSN 21] 2048 Jul 14 1978 00:00 SEGMENT + d---1xrxrxr 0 0 [fn 00] [LSN 22] 2048 Jul 14 1978 00:00 SVCD /EXT/: - d d---1xrxrxr 0 0 [fn 00] [LSN 19] 2048 Jul 14 1978 00:00 . - d d---1xrxrxr 0 0 [fn 00] [LSN 18] 2048 Jul 14 1978 00:00 .. - - ----1xrxrxr 0 0 [fn 00] [LSN 375] 201 Jul 14 1978 00:00 scandata.dat + d---1xrxrxr 0 0 [fn 00] [LSN 19] 2048 Jul 14 1978 00:00 . + d---1xrxrxr 0 0 [fn 00] [LSN 18] 2048 Jul 14 1978 00:00 .. + ----1xrxrxr 0 0 [fn 00] [LSN 375] 201 Jul 14 1978 00:00 SCANDATA.DAT;1 /MPEG2/: - d d---1xrxrxr 0 0 [fn 00] [LSN 20] 2048 Jul 14 1978 00:00 . - d d---1xrxrxr 0 0 [fn 00] [LSN 18] 2048 Jul 14 1978 00:00 .. - - ---2-xrxrxr 0 0 [fn 00] [LSN 526] 7971320 ( 7024640) Jul 14 1978 00:00 avseq01.mpg + d---1xrxrxr 0 0 [fn 00] [LSN 20] 2048 Jul 14 1978 00:00 . + d---1xrxrxr 0 0 [fn 00] [LSN 18] 2048 Jul 14 1978 00:00 .. + ---2-xrxrxr 0 0 [fn 00] [LSN 526] 7971320 ( 7024640) Jul 14 1978 00:00 AVSEQ01.MPG;1 /SEGMENT/: - d d---1xrxrxr 0 0 [fn 00] [LSN 21] 2048 Jul 14 1978 00:00 . - d d---1xrxrxr 0 0 [fn 00] [LSN 18] 2048 Jul 14 1978 00:00 .. - - ---2-xrxrxr 0 0 [fn 00] [LSN 225] 183596 ( 161792) Jul 14 1978 00:00 item0001.mpg + d---1xrxrxr 0 0 [fn 00] [LSN 21] 2048 Jul 14 1978 00:00 . + d---1xrxrxr 0 0 [fn 00] [LSN 18] 2048 Jul 14 1978 00:00 .. + ---2-xrxrxr 0 0 [fn 00] [LSN 225] 183596 ( 161792) Jul 14 1978 00:00 ITEM0001.MPG;1 /SVCD/: - d d---1xrxrxr 0 0 [fn 00] [LSN 22] 2048 Jul 14 1978 00:00 . - d d---1xrxrxr 0 0 [fn 00] [LSN 18] 2048 Jul 14 1978 00:00 .. - - ----1xrxrxr 0 0 [fn 00] [LSN 151] 2048 Jul 14 1978 00:00 entries.svd - - ----1xrxrxr 0 0 [fn 00] [LSN 150] 2048 Jul 14 1978 00:00 info.svd - - ----1xrxrxr 0 0 [fn 00] [LSN 152] 65536 Jul 14 1978 00:00 lot.svd - - ----1xrxrxr 0 0 [fn 00] [LSN 184] 40 Jul 14 1978 00:00 psd.svd - - ----1xrxrxr 0 0 [fn 00] [LSN 186] 190 Jul 14 1978 00:00 search.dat - - ----1xrxrxr 0 0 [fn 00] [LSN 185] 2048 Jul 14 1978 00:00 tracks.svd + d---1xrxrxr 0 0 [fn 00] [LSN 22] 2048 Jul 14 1978 00:00 . + d---1xrxrxr 0 0 [fn 00] [LSN 18] 2048 Jul 14 1978 00:00 .. + ----1xrxrxr 0 0 [fn 00] [LSN 151] 2048 Jul 14 1978 00:00 ENTRIES.SVD;1 + ----1xrxrxr 0 0 [fn 00] [LSN 150] 2048 Jul 14 1978 00:00 INFO.SVD;1 + ----1xrxrxr 0 0 [fn 00] [LSN 152] 65536 Jul 14 1978 00:00 LOT.SVD;1 + ----1xrxrxr 0 0 [fn 00] [LSN 184] 40 Jul 14 1978 00:00 PSD.SVD;1 + ----1xrxrxr 0 0 [fn 00] [LSN 186] 190 Jul 14 1978 00:00 SEARCH.DAT;1 + ----1xrxrxr 0 0 [fn 00] [LSN 185] 2048 Jul 14 1978 00:00 TRACKS.SVD;1 XA sectors Super Video CD (SVCD) or Chaoji Video CD (CVD) session #2 starts at track 2, LSN: 526, ISO 9660 blocks: 376 diff --git a/test/svcdgs.right b/test/svcdgs.right index ffa94fd3..ac65eeee 100644 --- a/test/svcdgs.right +++ b/test/svcdgs.right @@ -22,60 +22,60 @@ Volume : SVCD Volume Set : SVCD01 ISO9660 filesystem /: - d d---1xrxrxr 0 0 [fn 00] [LSN 20] 2048 Jan 06 2001 21:29 . - d d---1xrxrxr 0 0 [fn 00] [LSN 20] 2048 Jan 06 2001 21:29 .. - d d---1xrxrxr 0 0 [fn 00] [LSN 21] 2048 Jan 06 2001 21:29 autorun - d d---1xrxrxr 0 0 [fn 00] [LSN 22] 2048 Jan 06 2001 21:29 data - d d---1xrxrxr 0 0 [fn 00] [LSN 23] 2048 Jan 06 2001 21:29 ext - d d---1xrxrxr 0 0 [fn 00] [LSN 24] 2048 Jan 06 2001 21:29 mpegav - d d---1xrxrxr 0 0 [fn 00] [LSN 25] 2048 Jan 06 2001 21:29 segment - d d---1xrxrxr 0 0 [fn 00] [LSN 26] 2048 Jan 06 2001 21:29 svcd - d d---1xrxrxr 0 0 [fn 00] [LSN 27] 2048 Jan 06 2001 21:29 vmp + d---1xrxrxr 0 0 [fn 00] [LSN 20] 2048 Jan 06 2001 21:29 . + d---1xrxrxr 0 0 [fn 00] [LSN 20] 2048 Jan 06 2001 21:29 .. + d---1xrxrxr 0 0 [fn 00] [LSN 21] 2048 Jan 06 2001 21:29 AUTORUN + d---1xrxrxr 0 0 [fn 00] [LSN 22] 2048 Jan 06 2001 21:29 DATA + d---1xrxrxr 0 0 [fn 00] [LSN 23] 2048 Jan 06 2001 21:29 EXT + d---1xrxrxr 0 0 [fn 00] [LSN 24] 2048 Jan 06 2001 21:29 MPEGAV + d---1xrxrxr 0 0 [fn 00] [LSN 25] 2048 Jan 06 2001 21:29 SEGMENT + d---1xrxrxr 0 0 [fn 00] [LSN 26] 2048 Jan 06 2001 21:29 SVCD + d---1xrxrxr 0 0 [fn 00] [LSN 27] 2048 Jan 06 2001 21:29 VMP /AUTORUN/: - d d---1xrxrxr 0 0 [fn 00] [LSN 21] 2048 Jan 06 2001 21:29 . - d d---1xrxrxr 0 0 [fn 00] [LSN 20] 2048 Jan 06 2001 21:29 .. + d---1xrxrxr 0 0 [fn 00] [LSN 21] 2048 Jan 06 2001 21:29 . + d---1xrxrxr 0 0 [fn 00] [LSN 20] 2048 Jan 06 2001 21:29 .. /DATA/: - d d---1xrxrxr 0 0 [fn 00] [LSN 22] 2048 Jan 06 2001 21:29 . - d d---1xrxrxr 0 0 [fn 00] [LSN 20] 2048 Jan 06 2001 21:29 .. - d d---1xrxrxr 0 0 [fn 00] [LSN 300] 2048 Jan 06 2001 21:29 svcddata + d---1xrxrxr 0 0 [fn 00] [LSN 22] 2048 Jan 06 2001 21:29 . + d---1xrxrxr 0 0 [fn 00] [LSN 20] 2048 Jan 06 2001 21:29 .. + d---1xrxrxr 0 0 [fn 00] [LSN 300] 2048 Jan 06 2001 21:29 SVCDDATA /DATA/SVCDDATA/: - d d---1xrxrxr 0 0 [fn 00] [LSN 300] 2048 Jan 06 2001 21:29 . - d d---1xrxrxr 0 0 [fn 00] [LSN 22] 2048 Jan 06 2001 21:29 .. + d---1xrxrxr 0 0 [fn 00] [LSN 300] 2048 Jan 06 2001 21:29 . + d---1xrxrxr 0 0 [fn 00] [LSN 22] 2048 Jan 06 2001 21:29 .. /EXT/: - d d---1xrxrxr 0 0 [fn 00] [LSN 23] 2048 Jan 06 2001 21:29 . - d d---1xrxrxr 0 0 [fn 00] [LSN 20] 2048 Jan 06 2001 21:29 .. + d---1xrxrxr 0 0 [fn 00] [LSN 23] 2048 Jan 06 2001 21:29 . + d---1xrxrxr 0 0 [fn 00] [LSN 20] 2048 Jan 06 2001 21:29 .. /MPEGAV/: - d d---1xrxrxr 0 0 [fn 00] [LSN 24] 2048 Jan 06 2001 21:29 . - d d---1xrxrxr 0 0 [fn 00] [LSN 20] 2048 Jan 06 2001 21:29 .. - - ---2--r-r-r 0 0 [fn 01] [LSN 463] 13909140 ( 12257280) Jan 06 2001 21:29 avseq01.mpg + d---1xrxrxr 0 0 [fn 00] [LSN 24] 2048 Jan 06 2001 21:29 . + d---1xrxrxr 0 0 [fn 00] [LSN 20] 2048 Jan 06 2001 21:29 .. + ---2--r-r-r 0 0 [fn 01] [LSN 463] 13909140 ( 12257280) Jan 06 2001 21:29 AVSEQ01.MPG;1 /SEGMENT/: - d d---1xrxrxr 0 0 [fn 00] [LSN 25] 2048 Jan 06 2001 21:29 . - d d---1xrxrxr 0 0 [fn 00] [LSN 20] 2048 Jan 06 2001 21:29 .. + d---1xrxrxr 0 0 [fn 00] [LSN 25] 2048 Jan 06 2001 21:29 . + d---1xrxrxr 0 0 [fn 00] [LSN 20] 2048 Jan 06 2001 21:29 .. /SVCD/: - d d---1xrxrxr 0 0 [fn 00] [LSN 26] 2048 Jan 06 2001 21:29 . - d d---1xrxrxr 0 0 [fn 00] [LSN 20] 2048 Jan 06 2001 21:29 .. - - ----1xr-rxr 0 0 [fn 00] [LSN 151] 2048 Jan 06 2001 21:29 entries.svd - - ----1xr-rxr 0 0 [fn 00] [LSN 150] 2048 Jan 06 2001 21:29 info.svd - - ----1xr-rxr 0 0 [fn 00] [LSN 152] 65536 Jan 06 2001 21:29 lot.svd - - ----1xr-rxr 0 0 [fn 00] [LSN 184] 16 Jan 06 2001 21:29 psd.svd - - ----1xr-rxr 0 0 [fn 00] [LSN 188] 427 Jan 06 2001 21:29 search.dat - - ----1xr-rxr 0 0 [fn 00] [LSN 186] 4096 Jan 06 2001 21:29 spicontx.svd - - ----1xr-rxr 0 0 [fn 00] [LSN 185] 2048 Jan 06 2001 21:29 tracks.svd + d---1xrxrxr 0 0 [fn 00] [LSN 26] 2048 Jan 06 2001 21:29 . + d---1xrxrxr 0 0 [fn 00] [LSN 20] 2048 Jan 06 2001 21:29 .. + ----1xr-rxr 0 0 [fn 00] [LSN 151] 2048 Jan 06 2001 21:29 ENTRIES.SVD;1 + ----1xr-rxr 0 0 [fn 00] [LSN 150] 2048 Jan 06 2001 21:29 INFO.SVD;1 + ----1xr-rxr 0 0 [fn 00] [LSN 152] 65536 Jan 06 2001 21:29 LOT.SVD;1 + ----1xr-rxr 0 0 [fn 00] [LSN 184] 16 Jan 06 2001 21:29 PSD.SVD;1 + ----1xr-rxr 0 0 [fn 00] [LSN 188] 427 Jan 06 2001 21:29 SEARCH.DAT;1 + ----1xr-rxr 0 0 [fn 00] [LSN 186] 4096 Jan 06 2001 21:29 SPICONTX.SVD;1 + ----1xr-rxr 0 0 [fn 00] [LSN 185] 2048 Jan 06 2001 21:29 TRACKS.SVD;1 /VMP/: - d d---1xrxrxr 0 0 [fn 00] [LSN 27] 2048 Jan 06 2001 21:29 . - d d---1xrxrxr 0 0 [fn 00] [LSN 20] 2048 Jan 06 2001 21:29 .. - d d---1xrxrxr 0 0 [fn 00] [LSN 28] 2048 Jan 06 2001 21:29 svcdj + d---1xrxrxr 0 0 [fn 00] [LSN 27] 2048 Jan 06 2001 21:29 . + d---1xrxrxr 0 0 [fn 00] [LSN 20] 2048 Jan 06 2001 21:29 .. + d---1xrxrxr 0 0 [fn 00] [LSN 28] 2048 Jan 06 2001 21:29 SVCDJ /VMP/SVCDJ/: - d d---1xrxrxr 0 0 [fn 00] [LSN 28] 2048 Jan 06 2001 21:29 . - d d---1xrxrxr 0 0 [fn 00] [LSN 27] 2048 Jan 06 2001 21:29 .. + d---1xrxrxr 0 0 [fn 00] [LSN 28] 2048 Jan 06 2001 21:29 . + d---1xrxrxr 0 0 [fn 00] [LSN 27] 2048 Jan 06 2001 21:29 .. XA sectors Chaoji Video CD (CVD) diff --git a/test/vcd_demo.right b/test/vcd_demo.right index b9cad727..37790ed2 100644 --- a/test/vcd_demo.right +++ b/test/vcd_demo.right @@ -22,69 +22,69 @@ Volume : V0469 Volume Set : ISO9660 filesystem /: - d d---1xrxrxr 0 0 [fn 00] [LSN 18] 2048 Jul 14 1978 00:00 . - d d---1xrxrxr 0 0 [fn 00] [LSN 18] 2048 Jul 14 1978 00:00 .. - d d---1xrxrxr 0 0 [fn 00] [LSN 19] 2048 Jul 14 1978 00:00 ext - d d---1xrxrxr 0 0 [fn 00] [LSN 20] 2048 Jul 14 1978 00:00 mpegav - d d---1xrxrxr 0 0 [fn 00] [LSN 21] 2048 Jul 14 1978 00:00 segment - d d---1xrxrxr 0 0 [fn 00] [LSN 22] 2048 Jul 14 1978 00:00 sources - d d---1xrxrxr 0 0 [fn 00] [LSN 25] 2048 Jul 14 1978 00:00 vcd + d---1xrxrxr 0 0 [fn 00] [LSN 18] 2048 Jul 14 1978 00:00 . + d---1xrxrxr 0 0 [fn 00] [LSN 18] 2048 Jul 14 1978 00:00 .. + d---1xrxrxr 0 0 [fn 00] [LSN 19] 2048 Jul 14 1978 00:00 EXT + d---1xrxrxr 0 0 [fn 00] [LSN 20] 2048 Jul 14 1978 00:00 MPEGAV + d---1xrxrxr 0 0 [fn 00] [LSN 21] 2048 Jul 14 1978 00:00 SEGMENT + d---1xrxrxr 0 0 [fn 00] [LSN 22] 2048 Jul 14 1978 00:00 Sources + d---1xrxrxr 0 0 [fn 00] [LSN 25] 2048 Jul 14 1978 00:00 VCD /EXT/: - d d---1xrxrxr 0 0 [fn 00] [LSN 19] 2048 Jul 14 1978 00:00 . - d d---1xrxrxr 0 0 [fn 00] [LSN 18] 2048 Jul 14 1978 00:00 .. - - ----1xrxrxr 0 0 [fn 01] [LSN 375] 65536 Jul 14 1978 00:00 lot_x.vcd - - ----1xrxrxr 0 0 [fn 01] [LSN 407] 144 Jul 14 1978 00:00 psd_x.vcd + d---1xrxrxr 0 0 [fn 00] [LSN 19] 2048 Jul 14 1978 00:00 . + d---1xrxrxr 0 0 [fn 00] [LSN 18] 2048 Jul 14 1978 00:00 .. + ----1xrxrxr 0 0 [fn 01] [LSN 375] 65536 Jul 14 1978 00:00 LOT_X.VCD;1 + ----1xrxrxr 0 0 [fn 01] [LSN 407] 144 Jul 14 1978 00:00 PSD_X.VCD;1 /MPEGAV/: - d d---1xrxrxr 0 0 [fn 00] [LSN 20] 2048 Jul 14 1978 00:00 . - d d---1xrxrxr 0 0 [fn 00] [LSN 18] 2048 Jul 14 1978 00:00 .. - - ---2-xrxrxr 0 0 [fn 01] [LSN 1182] 904036 ( 796672) Jul 14 1978 00:00 avseq01.dat - - ---2-xrxrxr 0 0 [fn 02] [LSN 1721] 904036 ( 796672) Jul 14 1978 00:00 avseq02.dat + d---1xrxrxr 0 0 [fn 00] [LSN 20] 2048 Jul 14 1978 00:00 . + d---1xrxrxr 0 0 [fn 00] [LSN 18] 2048 Jul 14 1978 00:00 .. + ---2-xrxrxr 0 0 [fn 01] [LSN 1182] 904036 ( 796672) Jul 14 1978 00:00 AVSEQ01.DAT;1 + ---2-xrxrxr 0 0 [fn 02] [LSN 1721] 904036 ( 796672) Jul 14 1978 00:00 AVSEQ02.DAT;1 /SEGMENT/: - d d---1xrxrxr 0 0 [fn 00] [LSN 21] 2048 Jul 14 1978 00:00 . - d d---1xrxrxr 0 0 [fn 00] [LSN 18] 2048 Jul 14 1978 00:00 .. - - ---2-xrxrxr 0 0 [fn 01] [LSN 225] 220780 ( 194560) Jul 14 1978 00:00 item0001.dat + d---1xrxrxr 0 0 [fn 00] [LSN 21] 2048 Jul 14 1978 00:00 . + d---1xrxrxr 0 0 [fn 00] [LSN 18] 2048 Jul 14 1978 00:00 .. + ---2-xrxrxr 0 0 [fn 01] [LSN 225] 220780 ( 194560) Jul 14 1978 00:00 ITEM0001.DAT;1 /Sources/: - d d---1xrxrxr 0 0 [fn 00] [LSN 22] 2048 Jul 14 1978 00:00 . - d d---1xrxrxr 0 0 [fn 00] [LSN 18] 2048 Jul 14 1978 00:00 .. - d d---1xrxrxr 0 0 [fn 00] [LSN 23] 2048 Jul 14 1978 00:00 html - - ----1xrxrxr 0 0 [fn 01] [LSN 434] 842 Dec 11 2002 10:33 index.htm - - ----1xrxrxr 0 0 [fn 01] [LSN 435] 1216557 Jan 07 2003 18:01 menu.ppm - - ----1xrxrxr 0 0 [fn 01] [LSN 1030] 2793 Jan 07 2003 18:08 source.xml + d---1xrxrxr 0 0 [fn 00] [LSN 22] 2048 Jul 14 1978 00:00 . + d---1xrxrxr 0 0 [fn 00] [LSN 18] 2048 Jul 14 1978 00:00 .. + d---1xrxrxr 0 0 [fn 00] [LSN 23] 2048 Jul 14 1978 00:00 HTML + ----1xrxrxr 0 0 [fn 01] [LSN 434] 842 Dec 11 2002 10:33 index.htm;1 + ----1xrxrxr 0 0 [fn 01] [LSN 435] 1216557 Jan 07 2003 18:01 menu.ppm;1 + ----1xrxrxr 0 0 [fn 01] [LSN 1030] 2793 Jan 07 2003 18:08 source.xml;1 /Sources/HTML/: - d d---1xrxrxr 0 0 [fn 00] [LSN 23] 2048 Jul 14 1978 00:00 . - d d---1xrxrxr 0 0 [fn 00] [LSN 22] 2048 Jul 14 1978 00:00 .. - - ----1xrxrxr 0 0 [fn 01] [LSN 425] 1067 Jan 07 2003 17:51 0.xml - - ----1xrxrxr 0 0 [fn 01] [LSN 426] 1067 Jan 07 2003 17:51 1.xml - d d---1xrxrxr 0 0 [fn 00] [LSN 24] 2048 Jul 14 1978 00:00 img - - ----1xrxrxr 0 0 [fn 01] [LSN 427] 1327 Jan 07 2003 17:51 movies.css - - ----1xrxrxr 0 0 [fn 01] [LSN 428] 12024 Jan 07 2003 17:51 toc.xsl + d---1xrxrxr 0 0 [fn 00] [LSN 23] 2048 Jul 14 1978 00:00 . + d---1xrxrxr 0 0 [fn 00] [LSN 22] 2048 Jul 14 1978 00:00 .. + ----1xrxrxr 0 0 [fn 01] [LSN 425] 1067 Jan 07 2003 17:51 0.xml;1 + ----1xrxrxr 0 0 [fn 01] [LSN 426] 1067 Jan 07 2003 17:51 1.xml;1 + d---1xrxrxr 0 0 [fn 00] [LSN 24] 2048 Jul 14 1978 00:00 img + ----1xrxrxr 0 0 [fn 01] [LSN 427] 1327 Jan 07 2003 17:51 movies.css;1 + ----1xrxrxr 0 0 [fn 01] [LSN 428] 12024 Jan 07 2003 17:51 toc.xsl;1 /Sources/HTML/img/: - d d---1xrxrxr 0 0 [fn 00] [LSN 24] 2048 Jul 14 1978 00:00 . - d d---1xrxrxr 0 0 [fn 00] [LSN 23] 2048 Jul 14 1978 00:00 .. - - ----1xrxrxr 0 0 [fn 01] [LSN 408] 1999 Nov 13 2002 07:27 al.gif - - ----1xrxrxr 0 0 [fn 01] [LSN 409] 7626 Jan 07 2003 17:42 loeki_groep_01.gif - - ----1xrxrxr 0 0 [fn 01] [LSN 413] 9986 Jan 07 2003 17:42 loeki_groep_02.gif - - ----1xrxrxr 0 0 [fn 01] [LSN 418] 207 Nov 14 2002 19:33 a_left.gif - - ----1xrxrxr 0 0 [fn 01] [LSN 419] 207 Nov 14 2002 19:33 a_right.gif - - ----1xrxrxr 0 0 [fn 01] [LSN 420] 441 Nov 13 2002 10:54 animatie.gif - - ----1xrxrxr 0 0 [fn 01] [LSN 421] 250 Nov 14 2002 11:44 face_up2.gif - - ----1xrxrxr 0 0 [fn 01] [LSN 422] 259 Nov 13 2002 11:09 familie.gif - - ----1xrxrxr 0 0 [fn 01] [LSN 423] 1010 Nov 14 2002 11:52 goldstar2.gif - - ----1xrxrxr 0 0 [fn 01] [LSN 424] 1783 Nov 13 2002 07:15 vcd.gif + d---1xrxrxr 0 0 [fn 00] [LSN 24] 2048 Jul 14 1978 00:00 . + d---1xrxrxr 0 0 [fn 00] [LSN 23] 2048 Jul 14 1978 00:00 .. + ----1xrxrxr 0 0 [fn 01] [LSN 408] 1999 Nov 13 2002 07:27 AL.gif;1 + ----1xrxrxr 0 0 [fn 01] [LSN 409] 7626 Jan 07 2003 17:42 Loeki_Groep_01.gif;1 + ----1xrxrxr 0 0 [fn 01] [LSN 413] 9986 Jan 07 2003 17:42 Loeki_Groep_02.gif;1 + ----1xrxrxr 0 0 [fn 01] [LSN 418] 207 Nov 14 2002 19:33 a_left.gif;1 + ----1xrxrxr 0 0 [fn 01] [LSN 419] 207 Nov 14 2002 19:33 a_right.gif;1 + ----1xrxrxr 0 0 [fn 01] [LSN 420] 441 Nov 13 2002 10:54 animatie.gif;1 + ----1xrxrxr 0 0 [fn 01] [LSN 421] 250 Nov 14 2002 11:44 face_up2.gif;1 + ----1xrxrxr 0 0 [fn 01] [LSN 422] 259 Nov 13 2002 11:09 familie.gif;1 + ----1xrxrxr 0 0 [fn 01] [LSN 423] 1010 Nov 14 2002 11:52 goldstar2.gif;1 + ----1xrxrxr 0 0 [fn 01] [LSN 424] 1783 Nov 13 2002 07:15 vcd.gif;1 /VCD/: - d d---1xrxrxr 0 0 [fn 00] [LSN 25] 2048 Jul 14 1978 00:00 . - d d---1xrxrxr 0 0 [fn 00] [LSN 18] 2048 Jul 14 1978 00:00 .. - - ----1xrxrxr 0 0 [fn 00] [LSN 151] 2048 Jul 14 1978 00:00 entries.vcd - - ----1xrxrxr 0 0 [fn 00] [LSN 150] 2048 Jul 14 1978 00:00 info.vcd - - ----1xrxrxr 0 0 [fn 00] [LSN 152] 65536 Jul 14 1978 00:00 lot.vcd - - ----1xrxrxr 0 0 [fn 00] [LSN 184] 72 Jul 14 1978 00:00 psd.vcd + d---1xrxrxr 0 0 [fn 00] [LSN 25] 2048 Jul 14 1978 00:00 . + d---1xrxrxr 0 0 [fn 00] [LSN 18] 2048 Jul 14 1978 00:00 .. + ----1xrxrxr 0 0 [fn 00] [LSN 151] 2048 Jul 14 1978 00:00 ENTRIES.VCD;1 + ----1xrxrxr 0 0 [fn 00] [LSN 150] 2048 Jul 14 1978 00:00 INFO.VCD;1 + ----1xrxrxr 0 0 [fn 00] [LSN 152] 65536 Jul 14 1978 00:00 LOT.VCD;1 + ----1xrxrxr 0 0 [fn 00] [LSN 184] 72 Jul 14 1978 00:00 PSD.VCD;1 XA sectors Video CD session #2 starts at track 2, LSN: 1182, ISO 9660 blocks: 1032 diff --git a/test/videocd.right b/test/videocd.right index acf6c600..85d3b247 100644 --- a/test/videocd.right +++ b/test/videocd.right @@ -25,42 +25,42 @@ Volume : SVIDEOCD Volume Set : ISO9660 filesystem /: - d d---1xrxrxr 0 0 [fn 00] [LSN 18] 2048 Jul 14 1978 00:00 . - d d---1xrxrxr 0 0 [fn 00] [LSN 18] 2048 Jul 14 1978 00:00 .. - d d---1xrxrxr 0 0 [fn 00] [LSN 19] 2048 Jul 14 1978 00:00 ext - d d---1xrxrxr 0 0 [fn 00] [LSN 20] 2048 Jul 14 1978 00:00 mpeg2 - d d---1xrxrxr 0 0 [fn 00] [LSN 21] 2048 Jul 14 1978 00:00 segment - d d---1xrxrxr 0 0 [fn 00] [LSN 22] 2048 Jul 14 1978 00:00 svcd + d---1xrxrxr 0 0 [fn 00] [LSN 18] 2048 Jul 14 1978 00:00 . + d---1xrxrxr 0 0 [fn 00] [LSN 18] 2048 Jul 14 1978 00:00 .. + d---1xrxrxr 0 0 [fn 00] [LSN 19] 2048 Jul 14 1978 00:00 EXT + d---1xrxrxr 0 0 [fn 00] [LSN 20] 2048 Jul 14 1978 00:00 MPEG2 + d---1xrxrxr 0 0 [fn 00] [LSN 21] 2048 Jul 14 1978 00:00 SEGMENT + d---1xrxrxr 0 0 [fn 00] [LSN 22] 2048 Jul 14 1978 00:00 SVCD /EXT/: - d d---1xrxrxr 0 0 [fn 00] [LSN 19] 2048 Jul 14 1978 00:00 . - d d---1xrxrxr 0 0 [fn 00] [LSN 18] 2048 Jul 14 1978 00:00 .. - - ----1xrxrxr 0 0 [fn 00] [LSN 675] 78 Jul 14 1978 00:00 scandata.dat + d---1xrxrxr 0 0 [fn 00] [LSN 19] 2048 Jul 14 1978 00:00 . + d---1xrxrxr 0 0 [fn 00] [LSN 18] 2048 Jul 14 1978 00:00 .. + ----1xrxrxr 0 0 [fn 00] [LSN 675] 78 Jul 14 1978 00:00 SCANDATA.DAT;1 /MPEG2/: - d d---1xrxrxr 0 0 [fn 00] [LSN 20] 2048 Jul 14 1978 00:00 . - d d---1xrxrxr 0 0 [fn 00] [LSN 18] 2048 Jul 14 1978 00:00 .. - - ---2-xrxrxr 0 0 [fn 00] [LSN 826] 174300 ( 153600) Jul 14 1978 00:00 avseq01.mpg - - ---2-xrxrxr 0 0 [fn 00] [LSN 1051] 174300 ( 153600) Jul 14 1978 00:00 avseq02.mpg - - ---2-xrxrxr 0 0 [fn 00] [LSN 1276] 174300 ( 153600) Jul 14 1978 00:00 avseq03.mpg - - ---2-xrxrxr 0 0 [fn 00] [LSN 1501] 174300 ( 153600) Jul 14 1978 00:00 avseq04.mpg + d---1xrxrxr 0 0 [fn 00] [LSN 20] 2048 Jul 14 1978 00:00 . + d---1xrxrxr 0 0 [fn 00] [LSN 18] 2048 Jul 14 1978 00:00 .. + ---2-xrxrxr 0 0 [fn 00] [LSN 826] 174300 ( 153600) Jul 14 1978 00:00 AVSEQ01.MPG;1 + ---2-xrxrxr 0 0 [fn 00] [LSN 1051] 174300 ( 153600) Jul 14 1978 00:00 AVSEQ02.MPG;1 + ---2-xrxrxr 0 0 [fn 00] [LSN 1276] 174300 ( 153600) Jul 14 1978 00:00 AVSEQ03.MPG;1 + ---2-xrxrxr 0 0 [fn 00] [LSN 1501] 174300 ( 153600) Jul 14 1978 00:00 AVSEQ04.MPG;1 /SEGMENT/: - d d---1xrxrxr 0 0 [fn 00] [LSN 21] 2048 Jul 14 1978 00:00 . - d d---1xrxrxr 0 0 [fn 00] [LSN 18] 2048 Jul 14 1978 00:00 .. - - ---2-xrxrxr 0 0 [fn 00] [LSN 225] 65072 ( 57344) Jul 14 1978 00:00 item0001.mpg - - ---2-xrxrxr 0 0 [fn 00] [LSN 375] 65072 ( 57344) Jul 14 1978 00:00 item0002.mpg - - ---2-xrxrxr 0 0 [fn 00] [LSN 525] 65072 ( 57344) Jul 14 1978 00:00 item0003.mpg + d---1xrxrxr 0 0 [fn 00] [LSN 21] 2048 Jul 14 1978 00:00 . + d---1xrxrxr 0 0 [fn 00] [LSN 18] 2048 Jul 14 1978 00:00 .. + ---2-xrxrxr 0 0 [fn 00] [LSN 225] 65072 ( 57344) Jul 14 1978 00:00 ITEM0001.MPG;1 + ---2-xrxrxr 0 0 [fn 00] [LSN 375] 65072 ( 57344) Jul 14 1978 00:00 ITEM0002.MPG;1 + ---2-xrxrxr 0 0 [fn 00] [LSN 525] 65072 ( 57344) Jul 14 1978 00:00 ITEM0003.MPG;1 /SVCD/: - d d---1xrxrxr 0 0 [fn 00] [LSN 22] 2048 Jul 14 1978 00:00 . - d d---1xrxrxr 0 0 [fn 00] [LSN 18] 2048 Jul 14 1978 00:00 .. - - ----1xrxrxr 0 0 [fn 00] [LSN 151] 2048 Jul 14 1978 00:00 entries.svd - - ----1xrxrxr 0 0 [fn 00] [LSN 150] 2048 Jul 14 1978 00:00 info.svd - - ----1xrxrxr 0 0 [fn 00] [LSN 152] 65536 Jul 14 1978 00:00 lot.svd - - ----1xrxrxr 0 0 [fn 00] [LSN 184] 112 Jul 14 1978 00:00 psd.svd - - ----1xrxrxr 0 0 [fn 00] [LSN 186] 40 Jul 14 1978 00:00 search.dat - - ----1xrxrxr 0 0 [fn 00] [LSN 185] 2048 Jul 14 1978 00:00 tracks.svd + d---1xrxrxr 0 0 [fn 00] [LSN 22] 2048 Jul 14 1978 00:00 . + d---1xrxrxr 0 0 [fn 00] [LSN 18] 2048 Jul 14 1978 00:00 .. + ----1xrxrxr 0 0 [fn 00] [LSN 151] 2048 Jul 14 1978 00:00 ENTRIES.SVD;1 + ----1xrxrxr 0 0 [fn 00] [LSN 150] 2048 Jul 14 1978 00:00 INFO.SVD;1 + ----1xrxrxr 0 0 [fn 00] [LSN 152] 65536 Jul 14 1978 00:00 LOT.SVD;1 + ----1xrxrxr 0 0 [fn 00] [LSN 184] 112 Jul 14 1978 00:00 PSD.SVD;1 + ----1xrxrxr 0 0 [fn 00] [LSN 186] 40 Jul 14 1978 00:00 SEARCH.DAT;1 + ----1xrxrxr 0 0 [fn 00] [LSN 185] 2048 Jul 14 1978 00:00 TRACKS.SVD;1 XA sectors Super Video CD (SVCD) or Chaoji Video CD (CVD) session #2 starts at track 2, LSN: 826, ISO 9660 blocks: 676