From 6869e97bb214c32fb2734fcce71761edfb78b1ee Mon Sep 17 00:00:00 2001 From: rocky Date: Thu, 28 Oct 2004 11:13:40 +0000 Subject: [PATCH] configure.ac: Add --disable-joliet and disable joliet if iconv is not around iso9660_fs.c: Setting string length on of UCBE wrong? test/*: add joliet regression test. --- configure.ac | 40 ++++-- lib/MSWindows/win32_ioctl.c | 240 +++++++++++++++++++++++++++++++----- lib/iso9660_fs.c | 16 +-- test/Makefile.am | 4 +- test/check_common_fn.in | 7 +- test/check_iso.sh.in | 18 ++- test/joliet-nojoliet.right | 23 ++++ test/joliet.iso | Bin 0 -> 405504 bytes test/joliet.right | 23 ++++ 9 files changed, 316 insertions(+), 55 deletions(-) create mode 100644 test/joliet-nojoliet.right create mode 100644 test/joliet.iso create mode 100644 test/joliet.right diff --git a/configure.ac b/configure.ac index 67f5b1b8..26fcf7a8 100644 --- a/configure.ac +++ b/configure.ac @@ -19,7 +19,7 @@ define(RELEASE_NUM, 71) define(CDIO_VERSION_STR, 0.$1cvs) AC_PREREQ(2.52) -AC_REVISION([$Id: configure.ac,v 1.101 2004/10/26 09:00:11 rocky Exp $])dnl +AC_REVISION([$Id: configure.ac,v 1.102 2004/10/28 11:13:40 rocky Exp $])dnl AC_INIT(libcdio, CDIO_VERSION_STR(RELEASE_NUM)) AC_CONFIG_SRCDIR(src/cd-info.c) AM_INIT_AUTOMAKE @@ -48,6 +48,12 @@ AC_ARG_WITH(versioned_libs, [ --without-versioned-libs build versioned library symbols (enabled by default if you have GNU ld)], enable_versioned_libs="${withval}", enable_versioned_libs=yes) +AC_ARG_WITH(cd_info, +[ --without-cd-info build program cd-info (enabled by default)], +enable_cd_info="${withval}", enable_cd_info=yes) + + + dnl Checks for programs. AC_PROG_CC @@ -203,7 +209,7 @@ if test "x$enable_versioned_libs" = "xyes" ; then else # Do we have GNU ld? We need that too. if test "$with_gnu_ld" != yes; then - AC_MSG_WARN(I don't see GNU ld. I'm going to assume --without-versioned-libs) + AC_MSG_WARN([I don't see GNU ld. I'm going to assume --without-versioned-libs]) enable_versioned_libs='no' fi fi @@ -293,8 +299,8 @@ int has_timeout=sizeof(test.timeout);], cd_drivers="${cd_drivers}, FreeBSD " ;; *) - AC_MSG_WARN(Don't have OS CD-reading support for ${host_os}...) - AC_MSG_WARN(Will use generic support.) + AC_MSG_WARN([Don't have OS CD-reading support for ${host_os}...]) + AC_MSG_WARN([Will use generic support.]) ;; esac AC_SUBST(LINUX_CDROM_TIMEOUT) @@ -306,8 +312,6 @@ AC_SUBST(HAVE_LINUX_CDROM) AC_SUBST(HAVE_SOLARIS_CDROM) AC_SUBST(HAVE_WIN32_CDROM) -AM_ICONV - LIBCDIO_SOURCE_PATH="`pwd`" AC_DEFINE_UNQUOTED(LICDIO_SOURCE_PATH, "$LIBCDIO_SOURCE_PATH", [Full path to libcdio top_sourcedir.]) @@ -321,6 +325,28 @@ AC_CHECK_MEMBER([struct tm.tm_gmtoff], , [#include ]) +if test x$enable_joliet = x; then +AC_ARG_ENABLE(joliet, + [ --disable-joliet don't include Joliet extension support], + enable_joliet=no, + enable_joliet=yes) +fi +if test x$enable_joliet = xyes; then + AM_ICONV + AC_DEFINE(HAVE_JOLIET, [], + [Define this if you want ISO-9660 Joliet extension support. + You must have also libiconv installed to get Joliet extension support.]) + if test "$am_cv_func_iconv" = yes ; then + HAVE_JOLIET=yes + else + HAVE_JOLIET=no + AC_MSG_WARN([You must have iconv installed to get Joliet extension support.]) + fi +fi + +AC_SUBST(HAVE_JOLIET) + + if test x$enable_cddb = x; then AC_ARG_ENABLE(cddb, [ --disable-cddb don't include CDDB lookups in cd_info], @@ -332,7 +358,7 @@ if test x$enable_cddb = xyes; then HAVE_CDDB=yes AC_DEFINE(HAVE_CDDB, [], [Define this if you have libcddb installed]) ], - [AC_MSG_WARN(new enough libcddb not found. CDDB access disabled. Get libcddb from http://libcddb.sourceforge.net) + [AC_MSG_WARN([new enough libcddb not found. CDDB access disabled. Get libcddb from http://libcddb.sourceforge.net]) HAVE_CDDB=no]) AC_CHECK_LIB(socket, connect) AC_CHECK_FUNC(gethostbyname, , AC_CHECK_LIB(nsl, gethostbyname)) diff --git a/lib/MSWindows/win32_ioctl.c b/lib/MSWindows/win32_ioctl.c index db1250be..3f0f56e7 100644 --- a/lib/MSWindows/win32_ioctl.c +++ b/lib/MSWindows/win32_ioctl.c @@ -1,5 +1,5 @@ /* - $Id: win32_ioctl.c,v 1.37 2004/08/29 02:31:34 rocky Exp $ + $Id: win32_ioctl.c,v 1.38 2004/10/28 11:13:40 rocky Exp $ Copyright (C) 2004 Rocky Bernstein @@ -26,26 +26,36 @@ # include "config.h" #endif -static const char _rcsid[] = "$Id: win32_ioctl.c,v 1.37 2004/08/29 02:31:34 rocky Exp $"; - -#include -#include -#include "cdio_assert.h" +static const char _rcsid[] = "$Id: win32_ioctl.c,v 1.38 2004/10/28 11:13:40 rocky Exp $"; #ifdef HAVE_WIN32_CDROM +#ifdef WIN32 #include +#endif + +#if defined (_XBOX) || defined (WIN32) +#include "inttypes.h" +#include "NtScsi.h" +#include "undocumented.h" +#else #include #include #include +#endif #include #include /* offsetof() macro */ #include #include #include + +#include +#include +#include "cdio_assert.h" #include #include "cdtext_private.h" +#include "cdio/logging.h" /* Win32 DeviceIoControl specifics */ /***** FIXME: #include ntddcdrm.h from Wine, but probably need to @@ -92,6 +102,28 @@ typedef struct _CDROM_TOC { TRACK_DATA TrackData[CDIO_CD_MAX_TRACKS+1]; } CDROM_TOC, *PCDROM_TOC; +typedef struct _TRACK_DATA_FULL { + UCHAR SessionNumber; + UCHAR Control : 4; + UCHAR Adr : 4; + UCHAR TNO; + UCHAR POINT; /* Tracknumber (of session?) or lead-out/in (0xA0, 0xA1, 0xA2) */ + UCHAR Min; /* Only valid if disctype is CDDA ? */ + UCHAR Sec; /* Only valid if disctype is CDDA ? */ + UCHAR Frame; /* Only valid if disctype is CDDA ? */ + UCHAR Zero; /* Always zero */ + UCHAR PMIN; /* start min, if POINT is a track; if lead-out/in 0xA0: First Track */ + UCHAR PSEC; + UCHAR PFRAME; +} TRACK_DATA_FULL, *PTRACK_DATA_FULL; + +typedef struct _CDROM_TOC_FULL { + UCHAR Length[2]; + UCHAR FirstSession; + UCHAR LastSession; + TRACK_DATA_FULL TrackData[CDIO_CD_MAX_TRACKS+3]; +} CDROM_TOC_FULL, *PCDROM_TOC_FULL; + typedef enum _TRACK_MODE_TYPE { YellowMode2, XAForm2, @@ -182,9 +214,14 @@ run_scsi_cmd_win32ioctl( const void *p_user_data, if(! success) { char *psz_msg = NULL; long int i_err = GetLastError(); +#ifdef _XBOX + psz_msg=(char *)LocalAlloc(LMEM_ZEROINIT, 255); + sprintf(psz_msg, "run_scsi_cmd_win32ioctl: error %d\n", i_err); +#else FormatMessage(FORMAT_MESSAGE_ALLOCATE_BUFFER | FORMAT_MESSAGE_FROM_SYSTEM, NULL, i_err, MAKELANGID(LANG_NEUTRAL, SUBLANG_DEFAULT), (LPSTR) psz_msg, 0, NULL); +#endif cdio_info("Error: %s", psz_msg); LocalFree(psz_msg); return 1; @@ -290,7 +327,11 @@ get_discmode_win32ioctl (_img_private_t *p_env) const char * is_cdrom_win32ioctl(const char c_drive_letter) { - +#ifdef _XBOX + char sz_win32_drive_full[] = "\\\\.\\X:"; + sz_win32_drive_full[4] = c_drive_letter; + return strdup(sz_win32_drive_full); +#else UINT uDriveType; char sz_win32_drive[4]; @@ -311,6 +352,7 @@ is_cdrom_win32ioctl(const char c_drive_letter) cdio_debug("Drive %c is not a CD-ROM", c_drive_letter); return NULL; } +#endif } /*! @@ -336,11 +378,14 @@ read_audio_sectors_win32ioctl (_img_private_t *env, void *data, lsn_t lsn, &dwBytesReturned, NULL ) == 0 ) { char *psz_msg = NULL; DWORD dw = GetLastError(); - +#ifdef _XBOX + psz_msg=(char *)LocalAlloc(LMEM_ZEROINIT, 255); + sprintf(psz_msg, "read_audio_sectors_win32ioctl: error %d\n", dw); +#else FormatMessage(FORMAT_MESSAGE_ALLOCATE_BUFFER | FORMAT_MESSAGE_FROM_SYSTEM, NULL, dw, MAKELANGID(LANG_NEUTRAL, SUBLANG_DEFAULT), (LPSTR) psz_msg, 0, NULL); - +#endif cdio_info("Error reading audio-mode %lu\n%s)", (long unsigned int) lsn, psz_msg); LocalFree(psz_msg); @@ -406,9 +451,9 @@ read_mode1_sector_win32ioctl (const _img_private_t *env, void *data, if ( 0 != ret) return ret; memcpy (data, - buf + CDIO_CD_SYNC_SIZE+CDIO_CD_HEADER_SIZE, - b_form2 ? M2RAW_SECTOR_SIZE: CDIO_CD_FRAMESIZE); - + buf + CDIO_CD_SYNC_SIZE+CDIO_CD_HEADER_SIZE, + b_form2 ? M2RAW_SECTOR_SIZE: CDIO_CD_FRAMESIZE); + return 0; } @@ -419,13 +464,25 @@ read_mode1_sector_win32ioctl (const _img_private_t *env, void *data, bool init_win32ioctl (_img_private_t *env) { - char psz_win32_drive[7]; - unsigned int len=strlen(env->gen.source_name); +#ifdef WIN32 OSVERSIONINFO ov; +#endif + +#ifdef _XBOX + ANSI_STRING filename; + OBJECT_ATTRIBUTES attributes; + IO_STATUS_BLOCK status; + HANDLE hDevice; + NTSTATUS error; +#else + unsigned int len=strlen(env->gen.source_name); + char psz_win32_drive[7]; DWORD dw_access_flags; +#endif cdio_debug("using winNT/2K/XP ioctl layer"); - + +#ifdef WIN32 memset(&ov,0,sizeof(OSVERSIONINFO)); ov.dwOSVersionInfoSize=sizeof(OSVERSIONINFO); GetVersionEx(&ov); @@ -434,10 +491,34 @@ init_win32ioctl (_img_private_t *env) (ov.dwMajorVersion>4)) dw_access_flags = GENERIC_READ|GENERIC_WRITE; /* add gen write on W2k/XP */ else dw_access_flags = GENERIC_READ; - - if (cdio_is_device_win32(env->gen.source_name)) { - sprintf( psz_win32_drive, "\\\\.\\%c:", env->gen.source_name[len-2] ); +#endif + + if (cdio_is_device_win32(env->gen.source_name)) + { +#ifdef _XBOX + // Use XBOX cdrom, no matter what drive letter is given. + RtlInitAnsiString(&filename,"\\Device\\Cdrom0"); + InitializeObjectAttributes(&attributes, &filename, OBJ_CASE_INSENSITIVE, + NULL); + error = NtCreateFile( &hDevice, + GENERIC_READ |SYNCHRONIZE | FILE_READ_ATTRIBUTES, + &attributes, + &status, + NULL, + 0, + FILE_SHARE_READ, + FILE_OPEN, + FILE_NON_DIRECTORY_FILE + | FILE_SYNCHRONOUS_IO_NONALERT ); + if (!NT_SUCCESS(error)) + { + return false; + } + env->h_device_handle = hDevice; +#else + sprintf( psz_win32_drive, "\\\\.\\%c:", env->gen.source_name[len-2] ); + env->h_device_handle = CreateFile( psz_win32_drive, dw_access_flags, FILE_SHARE_READ | FILE_SHARE_WRITE, @@ -445,19 +526,22 @@ init_win32ioctl (_img_private_t *env) OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, NULL ); + if( env->h_device_handle == INVALID_HANDLE_VALUE ) - { - /* No good. try toggle write. */ - dw_access_flags ^= GENERIC_WRITE; - env->h_device_handle = CreateFile( psz_win32_drive, - dw_access_flags, - FILE_SHARE_READ, - NULL, - OPEN_EXISTING, - FILE_ATTRIBUTE_NORMAL, - NULL ); - return (env->h_device_handle == NULL) ? false : true; - } + { + /* No good. try toggle write. */ + dw_access_flags ^= GENERIC_WRITE; + env->h_device_handle = CreateFile( psz_win32_drive, + dw_access_flags, + FILE_SHARE_READ, + NULL, + OPEN_EXISTING, + FILE_ATTRIBUTE_NORMAL, + NULL ); + if (env->h_device_handle == NULL) + return false; + } +#endif env->b_ioctl_init = true; return true; } @@ -471,20 +555,106 @@ init_win32ioctl (_img_private_t *env) bool read_toc_win32ioctl (_img_private_t *p_env) { + scsi_mmc_cdb_t cdb = {{0, }}; + CDROM_TOC_FULL cdrom_toc_full; + CDROM_TOC cdrom_toc; + DWORD dwBytesReturned; + int i_status, i, i_track_format, test; + + if ( ! p_env ) + return false; + + /* Read full TOC, (not supported on DVD media) */ + + /* Operation code */ + CDIO_MMC_SET_COMMAND(cdb.field, CDIO_MMC_GPCMD_READ_TOC); + + cdb.field[1] = 0x00; + + /* Format */ + cdb.field[2] = CDIO_MMC_READTOC_FMT_FULTOC; + + memset(&cdrom_toc_full, 0, sizeof(cdrom_toc_full)); + + /* Setup to read header, to get length of data */ + CDIO_MMC_SET_READ_LENGTH16(cdb.field, sizeof(cdrom_toc_full)); + + i_status = run_scsi_cmd_win32ioctl (p_env, 1000*60*3, + scsi_mmc_get_cmd_len(cdb.field[0]), + &cdb, SCSI_MMC_DATA_READ, + sizeof(cdrom_toc_full), &cdrom_toc_full); + + if (i_status == 0) { + cdio_info ("READTOC failed\n"); + return false; + } else { + test=0; + for( i = 0 ; i <= CDIO_CD_MAX_TRACKS+3; i++ ) { + + if (cdrom_toc_full.TrackData[i].POINT == 0xA0) { /* First track number */ + p_env->gen.i_first_track = cdrom_toc_full.TrackData[i].PMIN; + i_track_format = cdrom_toc_full.TrackData[i].PSEC; + test|=0x01; + } + + if (cdrom_toc_full.TrackData[i].POINT == 0xA1) { /* Last track number */ + p_env->gen.i_tracks = cdrom_toc_full.TrackData[i].PMIN - p_env->gen.i_first_track + 1; + test|=0x02; + } + + if (cdrom_toc_full.TrackData[i].POINT == 0xA2) { /* Start position of the lead out */ + p_env->tocent[ p_env->gen.i_tracks ].start_lsn = cdio_msf3_to_lba( + cdrom_toc_full.TrackData[i].PMIN, + cdrom_toc_full.TrackData[i].PSEC, + cdrom_toc_full.TrackData[i].PFRAME ); + p_env->tocent[ p_env->gen.i_tracks ].Control = cdrom_toc_full.TrackData[i].Control; + p_env->tocent[ p_env->gen.i_tracks ].Format = i_track_format; + test|=0x04; + } + + if (cdrom_toc_full.TrackData[i].POINT > 0 && cdrom_toc_full.TrackData[i].POINT <= p_env->gen.i_tracks) { + p_env->tocent[ cdrom_toc_full.TrackData[i].POINT - 1 ].start_lsn = cdio_msf3_to_lba( + cdrom_toc_full.TrackData[i].PMIN, + cdrom_toc_full.TrackData[i].PSEC, + cdrom_toc_full.TrackData[i].PFRAME ); + p_env->tocent[ cdrom_toc_full.TrackData[i].POINT - 1 ].Control = cdrom_toc_full.TrackData[i].Control; + p_env->tocent[ cdrom_toc_full.TrackData[i].POINT - 1 ].Format = i_track_format; + + cdio_debug("p_sectors: %i, %lu", i, + (unsigned long int) (p_env->tocent[i].start_lsn)); + + if (cdrom_toc_full.TrackData[i].POINT == p_env->gen.i_tracks) + test|=0x08; + } + + if (test == 0x0F) + break; + + } + if (test == 0x0F) + { + p_env->gen.toc_init = true; + return true; + } + } + + /* No full TOC available */ + /* read the normal TOC as fallback */ - DWORD dwBytesReturned; - CDROM_TOC cdrom_toc; - int i; - if( DeviceIoControl( p_env->h_device_handle, IOCTL_CDROM_READ_TOC, NULL, 0, &cdrom_toc, sizeof(CDROM_TOC), &dwBytesReturned, NULL ) == 0 ) { char *psz_msg = NULL; long int i_err = GetLastError(); +#ifdef _XBOX + psz_msg=(char *)LocalAlloc(LMEM_ZEROINIT, 255); + sprintf(psz_msg, "read_toc_win32ioctl: error %d\n", i_err); +#else FormatMessage(FORMAT_MESSAGE_ALLOCATE_BUFFER | FORMAT_MESSAGE_FROM_SYSTEM, NULL, i_err, MAKELANGID(LANG_NEUTRAL, SUBLANG_DEFAULT), (LPSTR) psz_msg, 0, NULL); +#endif if (psz_msg) { cdio_warn("could not read TOC (%ld): %s", i_err, psz_msg); LocalFree(psz_msg); @@ -509,6 +679,7 @@ read_toc_win32ioctl (_img_private_t *p_env) } p_env->gen.toc_init = true; return true; + } /*! @@ -551,6 +722,7 @@ get_track_format_win32ioctl(const _img_private_t *env, track_t i_track) /* This is pretty much copied from the "badly broken" cdrom_count_tracks in linux/cdrom.c. */ + if (env->tocent[i_track - env->gen.i_first_track].Control & 0x04) { if (env->tocent[i_track - env->gen.i_first_track].Format == 0x10) return TRACK_FORMAT_CDI; diff --git a/lib/iso9660_fs.c b/lib/iso9660_fs.c index f00730e8..ffbe3d71 100644 --- a/lib/iso9660_fs.c +++ b/lib/iso9660_fs.c @@ -1,5 +1,5 @@ /* - $Id: iso9660_fs.c,v 1.35 2004/10/26 10:00:27 rocky Exp $ + $Id: iso9660_fs.c,v 1.36 2004/10/28 11:13:40 rocky Exp $ Copyright (C) 2001 Herbert Valerio Riedel Copyright (C) 2003, 2004 Rocky Bernstein @@ -49,7 +49,7 @@ #include -static const char _rcsid[] = "$Id: iso9660_fs.c,v 1.35 2004/10/26 10:00:27 rocky Exp $"; +static const char _rcsid[] = "$Id: iso9660_fs.c,v 1.36 2004/10/28 11:13:40 rocky Exp $"; /* Implementation of iso9660_t type */ struct _iso9660 { @@ -140,14 +140,15 @@ check_pvd (const iso9660_pvd_t *p_pvd) } static bool -ucs2be_to_locale(char *psz_ucs2be, size_t i_inlen, +ucs2be_to_locale(ICONV_CONST char *psz_ucs2be, size_t i_inlen, char **p_psz_out, size_t i_outlen) { iconv_t ic = iconv_open(nl_langinfo(CODESET), "UCS-2BE"); int rc; char *psz_buf = NULL; char *psz_buf2; - int i_outlen_save = i_outlen; + int i_outlen_max = i_outlen; + int i_outlen_actual; if (-1 == (size_t) ic) { cdio_info("Failed to get conversion table for locale, trying ASCII"); @@ -170,9 +171,10 @@ ucs2be_to_locale(char *psz_ucs2be, size_t i_inlen, /* conversion failed */ goto error; } - *p_psz_out = malloc(i_outlen_save + 1); - memcpy(*p_psz_out, psz_buf, i_outlen_save); - *(*p_psz_out + i_outlen_save) = '\0'; + i_outlen_actual = i_outlen_max - i_outlen; + *p_psz_out = malloc(i_outlen_actual + 1); + memcpy(*p_psz_out, psz_buf, i_outlen_actual); + *(*p_psz_out + i_outlen_actual) = '\0'; free(psz_buf); return true; error: diff --git a/test/Makefile.am b/test/Makefile.am index 89f31163..fdbaab0b 100644 --- a/test/Makefile.am +++ b/test/Makefile.am @@ -1,4 +1,4 @@ -# $Id: Makefile.am,v 1.31 2004/10/26 08:32:29 rocky Exp $ +# $Id: Makefile.am,v 1.32 2004/10/28 11:13:40 rocky Exp $ # # Copyright (C) 2003, 2004 Rocky Bernstein # @@ -59,7 +59,7 @@ check_DATA = vcd_demo.right \ bad-mode1.toc bad-msf-1.toc bad-msf-2.toc bad-msf-3.toc \ bad-cat1.cue bad-cat2.cue bad-cat3.cue \ bad-cat1.toc bad-cat2.toc bad-cat3.toc \ - copying.iso copying.right + copying.iso copying.right joliet.iso EXTRA_DIST = $(check_SCRIPTS) $(check_DATA) \ check_common_fn check_cue.sh.in check_nrg.sh.in check_iso.sh.in diff --git a/test/check_common_fn.in b/test/check_common_fn.in index c33b104c..4241e427 100755 --- a/test/check_common_fn.in +++ b/test/check_common_fn.in @@ -1,4 +1,4 @@ -# $Id: check_common_fn.in,v 1.8 2004/05/06 12:05:49 rocky Exp $ +# $Id: check_common_fn.in,v 1.9 2004/10/28 11:13:40 rocky Exp $ # # Copyright (C) 2003, 2004 Rocky Bernstein # @@ -94,7 +94,8 @@ test_iso_info() { return 1 fi - if ${ISO_INFO} --no-header ${opts} >${outfile} 2>&1 ; then + cmdline="${ISO_INFO} --no-header ${opts}" + if $cmdline >${outfile} 2>&1 ; then if test "/usr/bin/diff" != no; then if @DIFF@ @DIFF_OPTS@ ${outfile} ${rightfile} ; then rm -f $outfile @@ -108,7 +109,7 @@ test_iso_info() { return 77 fi else - echo "$0 failed running: ${ISO_INFO} ${opts}" + echo "$0 failed running: $cmdline" return 2 fi diff --git a/test/check_iso.sh.in b/test/check_iso.sh.in index 3ef509f9..cb65d612 100644 --- a/test/check_iso.sh.in +++ b/test/check_iso.sh.in @@ -1,5 +1,5 @@ #!/bin/sh -#$Id: check_iso.sh.in,v 1.3 2004/05/07 02:15:52 rocky Exp $ +#$Id: check_iso.sh.in,v 1.4 2004/10/28 11:13:40 rocky Exp $ if test -z $srcdir ; then srcdir=`pwd` @@ -17,13 +17,27 @@ fname=copying opts="--quiet ${srcdir}/${fname}.iso --iso9660 " test_iso_info "$opts" ${fname}.dump ${srcdir}/${fname}.right RC=$? -check_result $RC 'iso-info test 1' "iso-info $opts" +check_result $RC 'iso-info basic test' "iso-info $opts" opts="--image ${srcdir}/${fname}.iso --extract $fname " test_iso_read "$opts" ${fname} ${srcdir}/../COPYING RC=$? check_result $RC 'iso-read test 1' "iso-read $opts" +if test -n "@HAVE_JOLIET@" ; then + BASE=`basename $0 .sh` + fname=joliet + opts="--quiet ${srcdir}/${fname}.iso --iso9660 " + test_iso_info "$opts" ${fname}-nojoliet.dump ${srcdir}/${fname}.right + RC=$? + check_result $RC 'iso-info Joliet test' "$cmdline" + opts="--quiet ${srcdir}/${fname}.iso --iso9660 --no-joliet " + test_iso_info "$opts" ${fname}-nojoliet.dump \ + ${srcdir}/${fname}-nojoliet.right + RC=$? + check_result $RC 'iso-info --no-joliet test' "$cmdline" +fi + exit $RC #;;; Local Variables: *** diff --git a/test/joliet-nojoliet.right b/test/joliet-nojoliet.right new file mode 100644 index 00000000..6128af6a --- /dev/null +++ b/test/joliet-nojoliet.right @@ -0,0 +1,23 @@ +This is free software; see the source for copying conditions. +There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A +PARTICULAR PURPOSE. +__________________________________ +ISO-9660 Information +/: + Oct 22 2004 18:44 . + Oct 22 2004 18:44 .. + Oct 22 2004 18:44 libcdio + +/LIBCDIO/: + Oct 22 2004 18:44 . + Oct 22 2004 18:44 .. + Mar 12 2004 02:18 copying + Jun 26 2004 06:01 readme + Aug 12 2004 05:22 readme.libcdio + Oct 22 2004 18:44 test + +/LIBCDIO/TEST/: + Oct 22 2004 18:44 . + Oct 22 2004 18:44 .. + Jul 25 2004 05:52 isofs_m1.cue + diff --git a/test/joliet.iso b/test/joliet.iso new file mode 100644 index 0000000000000000000000000000000000000000..000710609b2cd434d3ac2f9e0d08776559201b46 GIT binary patch literal 405504 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 literal 0 HcmV?d00001 diff --git a/test/joliet.right b/test/joliet.right new file mode 100644 index 00000000..71844c8e --- /dev/null +++ b/test/joliet.right @@ -0,0 +1,23 @@ +This is free software; see the source for copying conditions. +There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A +PARTICULAR PURPOSE. +__________________________________ +ISO-9660 Information +/: + Oct 22 2004 18:44 . + Oct 22 2004 18:44 .. + Oct 22 2004 18:44 libcdio + +/libcdio/: + Oct 22 2004 18:44 . + Oct 22 2004 18:44 .. + Mar 12 2004 02:18 COPYING + Jun 26 2004 06:01 README + Aug 12 2004 05:22 README.libcdio + Oct 22 2004 18:44 test + +/libcdio/test/: + Oct 22 2004 18:44 . + Oct 22 2004 18:44 .. + Jul 25 2004 05:52 isofs-m1.cue +