Hello community,

here is the log from the commit of package cdrtools for openSUSE:Factory 
checked in at 2015-02-23 13:24:31
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/cdrtools (Old)
 and      /work/SRC/openSUSE:Factory/.cdrtools.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "cdrtools"

Changes:
--------
--- /work/SRC/openSUSE:Factory/cdrtools/cdrtools.changes        2015-01-15 
15:58:19.000000000 +0100
+++ /work/SRC/openSUSE:Factory/.cdrtools.new/cdrtools.changes   2015-02-23 
13:24:32.000000000 +0100
@@ -1,0 +2,6 @@
+Thu Feb 19 20:32:14 UTC 2015 - [email protected]
+
+- Update to new upstream release 3.01~a27
+* dlopen emulation for certain platforms
+
+-------------------------------------------------------------------
--- /work/SRC/openSUSE:Factory/cdrtools/schily-libs.changes     2015-01-09 
20:49:55.000000000 +0100
+++ /work/SRC/openSUSE:Factory/.cdrtools.new/schily-libs.changes        
2015-02-23 13:24:32.000000000 +0100
@@ -1,0 +2,21 @@
+Thu Feb 19 20:32:14 UTC 2015 - [email protected]
+
+- Update to new upstream release 3.01~a27
+* dlopen emulation for certain platforms
+
+-------------------------------------------------------------------
+Fri Jan  9 20:29:24 UTC 2015 - [email protected]
+
+- Update to new upstream release 3.01~a26
+* Add the HELIOS UNICODE mapping code. This needs to be done at
+  UCS-2 level for Joliet and UDF (instead of UTF-8) and only for
+  Rock Ridge (in case of a UTF-8 based target locale) using UTF-8
+  based translations.
+* Make the Apple extensions work again with "mkisofs -find"
+
+-------------------------------------------------------------------
+Thu Dec  4 12:49:13 UTC 2014 - [email protected]
+
+- run permission handling code unconditionally. bnc#899718
+
+-------------------------------------------------------------------
@@ -7 +28 @@
-- Reenable missing capability support
+- Reenable missing capability support [bnc#899718]

Old:
----
  cdrtools-3.01a26.tar.bz2

New:
----
  cdrtools-3.01a27.tar.bz2

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Other differences:
------------------
++++++ cdrtools.spec ++++++
--- /var/tmp/diff_new_pack.5FfUwa/_old  2015-02-23 13:24:33.000000000 +0100
+++ /var/tmp/diff_new_pack.5FfUwa/_new  2015-02-23 13:24:33.000000000 +0100
@@ -17,16 +17,16 @@
 
 
 Name:           cdrtools
-Version:        3.01~a26
+Version:        3.01~a27
 Release:        0
-# Upstream confirms that 3.01a26 is intended to sort before 3.01
+# Upstream confirms that 3.01a27 is intended to sort before 3.01
 %define sversion 3.01
 Summary:        Tools for recording CD/DVD/BluRay media
 License:        CDDL-1.0 and GPL-2.0 and GPL-2.0+ and BSD-2-Clause and 
BSD-3-Clause and HPND and ISC
 Group:          Productivity/Multimedia/CD/Record
 Url:            http://cdrtools.sourceforge.net/private/cdrecord.html
 
-Source:         http://downloads.sf.net/cdrtools/cdrtools-3.01a26.tar.bz2
+Source:         http://downloads.sf.net/cdrtools/cdrtools-3.01a27.tar.bz2
 Source1:        cdrecord.easy
 Source2:        cdrecord.secure
 Source3:        cdrecord.paranoid

++++++ schily-libs.spec ++++++
--- /var/tmp/diff_new_pack.5FfUwa/_old  2015-02-23 13:24:33.000000000 +0100
+++ /var/tmp/diff_new_pack.5FfUwa/_new  2015-02-23 13:24:33.000000000 +0100
@@ -17,7 +17,7 @@
 
 
 Name:           schily-libs
-Version:        3.01~a26
+Version:        3.01~a27
 Release:        0
 %define sversion 3.01
 Summary:        A collection of libraries to support cdrtools
@@ -25,7 +25,7 @@
 Group:          Development/Libraries/C and C++
 Url:            http://cdrtools.sourceforge.net/private/cdrecord.html
 
-Source:         http://downloads.sf.net/cdrtools/cdrtools-3.01a26.tar.bz2
+Source:         http://downloads.sf.net/cdrtools/cdrtools-3.01a27.tar.bz2
 Source7:        pre_checkin.sh
 Patch1:         gcc48wa.diff
 BuildRoot:      %{_tmppath}/%{name}-%{version}-build

++++++ cdrtools-3.01a26.tar.bz2 -> cdrtools-3.01a27.tar.bz2 ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/cdrtools-3.01/AN-3.01a27 new/cdrtools-3.01/AN-3.01a27
--- old/cdrtools-3.01/AN-3.01a27        1970-01-01 01:00:00.000000000 +0100
+++ new/cdrtools-3.01/AN-3.01a27        2015-01-28 15:03:52.000000000 +0100
@@ -0,0 +1,174 @@
+***************** Important news ****************************
+
+For the 'Slottable Source Plugin Module' SSPM Features read README.SSPM
+
+***************** Please Test *********************************
+
+NEW features of cdrtools-3.01a27:
+
+This is the first localization step for cdrtools. All programs now (hopefully)
+call gettext() for all strings that need localization.
+
+-      The next step will include dgettext() calls for the libraries.
+
+-      The following step will include the extracted strings
+
+-      The last step will include German translations and install support
+       for the resulting binary message object files.
+
+----------> Please test and report compilation problems! <---------
+
+***** NOTE: As mentioned since 2004, frontends to cdrtools should *****
+*****          call all programs from cdrtools in the "C" locale *****
+*****          by e.g. calling: LC_ALL=C cdrecord ....           *****
+*****          unless these frontends support localized strings  *****
+*****          used by the cdrtools with NLS support.            *****
+
+This version compiles on Win-DOS using the Microsoft compiler cl.exe but
+warning: due to missing POSIX compliance with basic features (e.g. stat()
+does not return inode numbers), there are many problems with the resulting
+code and thus it is recommended to better use a POSIX layer on top of 
+WIN-DOS.
+
+               *** WARNING        ***
+               *** Need new smake ***
+
+       *** Due to the fact that schily-2014-04-03 introduced to use new macro
+       *** expansions and a related bug fix in smake, you need a new smake
+       *** to compile this source. To ensure this, get a recent "schily"
+       *** tarball from http://sourceforge.net/projects/schilytools/files/
+       *** and call:
+
+       cd ./psmake
+       ./MAKE-all
+       cd ..
+       psmake/smake
+       psmake/smake install
+
+       The new smake version mentioned above is smake-1.2.4.
+
+       Now you have a new smake that is able to compile this source.
+
+       Note that the major makefile restructuring introduced in
+       schily-2014-04-03 is now more than am month ago and thus seems
+       to work without problems.
+
+       WARNING: the new version of the isoinfo program makes use of the 
+               *at() series of functions that have been introduced by Sun
+               in August 2001 and added to POSIX.1-2008. For older platforms,
+               libschily now includes emulations for these functions but
+               these emulations have not yet been tested thouroughly.
+               Please report problems!
+
+
+All:
+
+-      include/schily//dlfcn.h now includes a #define HAVE_LOADABLE_LIBS
+       in case we compile on a system that implements runtime loadable
+       libraries and that libschily implements an adoption for this
+       local method to the POSIX dlopen()/dlsym()/dlclose(). This is currently
+       true for Solaris (and similar) that implement dlopen()/dlsym()/dlclose()
+       natively and for HP-UX and Win-DOS.
+
+Libschily:
+
+
+Libparanoia (Ported/enhanced by J�rg Schilling, originated by Monty 
[email protected]):
+
+Libedc (Optimized by J�rg Schilling, originated by Heiko Ei�feldt 
[email protected]):
+
+
+Libcdrdeflt:
+
+Libdeflt:
+
+Libfind:
+
+Libfile:
+
+Libhfs_iso:
+
+
+Libmdigest:
+
+Libsiconv:
+
+
+Libscg:
+
+
+Libscgcmd:
+
+Libmdigest:
+
+Rscsi:
+
+Cdrecord:
+
+Cdda2wav (Maintained/enhanced by J�rg Schilling, originated by Heiko Ei�feldt 
[email protected]):
+
+Readcd:
+
+Scgcheck:
+
+Scgskeleton:
+
+Btcflash:
+
+Mkisofs (Maintained/enhanced by J�rg Schilling since 1997, originated by Eric 
Youngdale):
+
+-      The mkisofs program isoinfo no longer tries to print Rock Ridge
+       attribute data for ISO images that do not have correct RR data.
+
+-      The mkisofs program isovfy no longer tries to print Rock Ridge
+       attribute data for ISO images that do not have correct RR data.
+
+-      The mkisofs program isodump no longer tries to print Rock Ridge
+       attribute data for ISO images that do not have correct RR data.
+
+       This is a result from trying to use these programs on the
+       plan9 CD image.
+
+
+
+       HELIOS TODO:
+
+       -       Add the HELIOS UNICODE mapping code. This needs to be done 
+               at UCS-2 level for Joliet and UDF (instead of UTF-8) and only
+               for Rock Ridge (in case of a UTF-8 based target locale) using
+               UTF-8 based translations.
+
+       -       Make the Apple extensions work again with "mkisofs -find"
+
+TODO:
+
+       -       read Joliet filenames with multi-session if no TRANS.TBL
+               or RR is present. I am looking for a volunteer for this task!
+
+               Note that this can never be 100% correct as there is no relation
+               between the names on the master (UNIX) filesystem, the ISO-9660
+               names and the Joliet names. Only the Rock Ridge names are
+               untranslated with respect to the original files on the
+               master (UNIX) filesystem.
+
+       -       add libecc/edc for CDI and similar.
+
+
+CYGWIN NT-4.0 NOTES:
+
+To compile on Cygwin32, get Cygwin and install it.
+For more information read README.win32
+
+The files are located on:
+
+http://sourceforge.net/projects/cdrtools/files/alpha/ ...
+
+NOTE:  These tar archives are 100% POSIX compatible. GNU tar may get some
+       minor trouble. If you like a 100% POSIX compliant tar, get star from
+       http://sourceforge.net/projects/s-tar/files/ of from the schily-*
+       tarball at: http://sourceforge.net/projects/schilytools/files/
+
+WARNING: Do not use 'winzip' to extract the tar file!
+       Winzip cannot extract symbolic links correctly.
+
+Joerg
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/cdrtools-3.01/cdrecord/version.h 
new/cdrtools-3.01/cdrecord/version.h
--- old/cdrtools-3.01/cdrecord/version.h        2015-01-01 15:17:56.000000000 
+0100
+++ new/cdrtools-3.01/cdrecord/version.h        2015-01-27 20:41:51.000000000 
+0100
@@ -1,6 +1,6 @@
-/* @(#)version.h       1.80 15/01/01 Copyright 2007-2015 J. Schilling */
+/* @(#)version.h       1.81 15/01/27 Copyright 2007-2015 J. Schilling */
 
 /*
  * The version for cdrtools programs
  */
-#define        VERSION "3.01a26"
+#define        VERSION "3.01a27"
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/cdrtools-3.01/include/schily/dlfcn.h 
new/cdrtools-3.01/include/schily/dlfcn.h
--- old/cdrtools-3.01/include/schily/dlfcn.h    2009-06-14 15:03:56.000000000 
+0200
+++ new/cdrtools-3.01/include/schily/dlfcn.h    2015-01-04 15:48:22.000000000 
+0100
@@ -1,4 +1,4 @@
-/* @(#)dlfcn.h 1.2 09/06/14 Copyright 2009 J. Schilling */
+/* @(#)dlfcn.h 1.3 15/01/04 Copyright 2009 J. Schilling */
 /*
  *     Abstraction from dlfcn.h
  *
@@ -11,6 +11,8 @@
  * with the License.
  *
  * See the file CDDL.Schily.txt in this distribution for details.
+ * A copy of the CDDL is also available via the Internet at
+ * http://www.opensource.org/licenses/cddl1.txt
  *
  * When distributing Covered Code, include this CDDL HEADER in each
  * file and include the License file CDDL.Schily.txt from this distribution.
@@ -41,6 +43,18 @@
 #endif
 #endif
 
+#if defined(HAVE_DLOPEN) && defined(HAVE_DLCLOSE)              /* POSIX */
+#define        HAVE_LOADABLE_LIBS
+#endif
+
+#if !defined(HAVE_LOADABLE_LIBS) && defined(HAVE_SHL_LOAD)     /* HP-UX */
+#define        HAVE_LOADABLE_LIBS
+#endif
+
+#if !defined(HAVE_LOADABLE_LIBS) && defined(HAVE_LOADLIBRARY)  /* Win-DOS */
+#define        HAVE_LOADABLE_LIBS
+#endif
+
 /*
  * dlopen() modes
  */
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/cdrtools-3.01/mkisofs/diag/isodump.c 
new/cdrtools-3.01/mkisofs/diag/isodump.c
--- old/cdrtools-3.01/mkisofs/diag/isodump.c    2012-12-02 21:55:23.000000000 
+0100
+++ new/cdrtools-3.01/mkisofs/diag/isodump.c    2015-01-27 23:06:40.000000000 
+0100
@@ -1,8 +1,8 @@
-/* @(#)isodump.c       1.47 12/12/02 joerg */
+/* @(#)isodump.c       1.48 15/01/27 joerg */
 #include <schily/mconfig.h>
 #ifndef lint
 static UConst char sccsid[] =
-       "@(#)isodump.c  1.47 12/12/02 joerg";
+       "@(#)isodump.c  1.48 15/01/27 joerg";
 #endif
 /*
  * File isodump.c - dump iso9660 directory information.
@@ -11,7 +11,7 @@
  * Written by Eric Youngdale (1993).
  *
  * Copyright 1993 Yggdrasil Computing, Incorporated
- * Copyright (c) 1999-2012 J. Schilling
+ * Copyright (c) 1999-2015 J. Schilling
  *
  * This program is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License version 2
@@ -70,12 +70,15 @@
 #define        ISO_BLOCKS(X)   (((X) / SECTOR_SIZE) + (((X)%SECTOR_SIZE)?1:0))
 
 #define        infile  in_image
-FILE   *infile = NULL;
-BOOL   ignerr = FALSE;
-off_t  file_addr;
-unsigned char buffer[2048];
-unsigned char search[64];
-int blocksize;
+EXPORT FILE    *infile = NULL;
+EXPORT BOOL    ignerr = FALSE;
+LOCAL off_t    file_addr;
+LOCAL int      su_version;
+LOCAL int      rr_version;
+LOCAL int      use_rock = TRUE;
+LOCAL unsigned char buffer[2048];
+LOCAL unsigned char search[64];
+LOCAL int blocksize;
 
 #define        PAGE    sizeof (buffer)
 
@@ -89,7 +92,7 @@
 LOCAL void     crsr2           __PR((int row, int col));
 LOCAL int      parse_rr        __PR((unsigned char * pnt, int len, int 
cont_flag));
 LOCAL void     find_rr         __PR((struct iso_directory_record * idr, Uchar 
**pntp, int *lenp));
-LOCAL void     dump_rr         __PR((struct iso_directory_record * idr));
+LOCAL int      dump_rr         __PR((struct iso_directory_record * idr));
 LOCAL void     showblock       __PR((int flag));
 LOCAL int      getbyte         __PR((void));
 LOCAL void     usage           __PR((int excode));
@@ -297,16 +300,20 @@
                }
 
                if (strncmp((char *)pnt, "ER", 2) == 0) {               /* ER */
+                       flag2 |= RR_FLAG_ER;                            /* ER 
record */
                        int     lid = pnt[4] & 0xFF;                    /* Len 
ID  */
                        int     ldes = pnt[5] & 0xFF;                   /* Len 
des */
                        int     lsrc = pnt[6] & 0xFF;                   /* Len 
src */
                        int     xver = pnt[7] & 0xFF;                   /* X 
vers  */
 
+                       rr_version = xver;
                        
printf(_("=[len_id=%d,len_des=%d,len_src=%d,ext_ver=%d,id=\"%.*s\"]"),
                                lid, ldes, lsrc, xver, lid, &pnt[8]);
 
                }
                if (strncmp((char *)pnt, "SP", 2) == 0) {               /* SUSP 
*/
+                       flag2 |= RR_FLAG_SP;                            /* SUSP 
record */
+                       su_version = pnt[3] & 0xff;
                        printf(_("=[skip=%d]"), pnt[6] & 0xFF);         /* SUSP 
skip off */
 
                }
@@ -428,7 +435,7 @@
        *lenp = len;
 }
 
-LOCAL void
+LOCAL int
 dump_rr(idr)
        struct iso_directory_record *idr;
 {
@@ -436,7 +443,7 @@
        unsigned char   *pnt;
 
        find_rr(idr, &pnt, &len);
-       parse_rr(pnt, len, 0);
+       return (parse_rr(pnt, len, 0));
 }
 
 
@@ -479,7 +486,8 @@
                                for (j = 0; j < (int)idr->name_len[0]; j++) 
printf("%c", idr->name[j]);
                                for (j = 0; j < (14 - (int)idr->name_len[0]); 
j++) printf(" ");
                        }
-                       dump_rr(idr);
+                       if (use_rock)
+                               dump_rr(idr);
                        printf("\n");
                        i += buffer[i];
                        if (i > 2048 - offsetof(struct iso_directory_record, 
name[0]))
@@ -579,7 +587,7 @@
        if (help)
                usage(0);
        if (prvers) {
-               printf(_("isodump %s (%s-%s-%s) Copyright (C) 1993-1999 %s (C) 
1999-2012 %s\n"),
+               printf(_("isodump %s (%s-%s-%s) Copyright (C) 1993-1999 %s (C) 
1999-2015 %s\n"),
                                        VERSION,
                                        HOST_CPU, HOST_VENDOR, HOST_OS,
                                        _("Eric Youngdale"),
@@ -644,6 +652,18 @@
        file_addr = (off_t)isonum_733(idr->extent);
        file_addr = file_addr * blocksize;
 
+#ifdef USE_SCG
+       readsecs(file_addr / 2048, buffer, ISO_BLOCKS(sizeof (buffer)));
+#else
+       lseek(fileno(infile), file_addr, SEEK_SET);
+       read(fileno(infile), buffer, sizeof (buffer));
+#endif
+       i = dump_rr((struct iso_directory_record *) buffer);
+       if (i == 0 ||
+           (i & (RR_FLAG_SP | RR_FLAG_ER)) == 0 || su_version < 1 || 
rr_version < 1) {
+               use_rock = FALSE;
+       }
+
 /* Now setup the keyboard for single character input. */
 #ifdef USE_V7_TTY
        if (ioctl(STDIN_FILENO, TIOCGETP, &savetty) == -1) {
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/cdrtools-3.01/mkisofs/diag/isoinfo.c 
new/cdrtools-3.01/mkisofs/diag/isoinfo.c
--- old/cdrtools-3.01/mkisofs/diag/isoinfo.c    2014-05-04 15:51:35.000000000 
+0200
+++ new/cdrtools-3.01/mkisofs/diag/isoinfo.c    2015-01-27 23:06:39.000000000 
+0100
@@ -1,8 +1,8 @@
-/* @(#)isoinfo.c       1.92 14/05/04 joerg */
+/* @(#)isoinfo.c       1.93 15/01/27 joerg */
 #include <schily/mconfig.h>
 #ifndef        lint
 static UConst char sccsid[] =
-       "@(#)isoinfo.c  1.92 14/05/04 joerg";
+       "@(#)isoinfo.c  1.93 15/01/27 joerg";
 #endif
 /*
  * File isodump.c - dump iso9660 directory information.
@@ -11,7 +11,7 @@
  * Written by Eric Youngdale (1993).
  *
  * Copyright 1993 Yggdrasil Computing, Incorporated
- * Copyright (c) 1999-2014 J. Schilling
+ * Copyright (c) 1999-2015 J. Schilling
  *
  * This program is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License version 2
@@ -1358,7 +1358,7 @@
        if (help)
                usage(0);
        if (prvers) {
-               printf(_("isoinfo %s (%s-%s-%s) Copyright (C) 1993-1999 %s (C) 
1999-2014 %s\n"),
+               printf(_("isoinfo %s (%s-%s-%s) Copyright (C) 1993-1999 %s (C) 
1999-2015 %s\n"),
                                        VERSION,
                                        HOST_CPU, HOST_VENDOR, HOST_OS,
                                        _("Eric Youngdale"),
@@ -1596,11 +1596,11 @@
        lseek(fileno(infile), ((off_t)(extent - sector_offset)) <<11, SEEK_SET);
        read(fileno(infile), buffer, sizeof (buffer));
 #endif
-       if ((c = dump_rr((struct iso_directory_record *) buffer)) != 0) {
-               if ((c & (RR_FLAG_SP | RR_FLAG_ER)) == 0 || su_version < 1 || 
rr_version < 1) {
-                       if (!debug)
-                               use_rock = FALSE;
-               }
+       c = dump_rr((struct iso_directory_record *) buffer);
+       if (c == 0 ||
+           (c & (RR_FLAG_SP | RR_FLAG_ER)) == 0 || su_version < 1 || 
rr_version < 1) {
+               if (!debug)
+                       use_rock = FALSE;
        }
        if (do_pvd) {
                /*
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/cdrtools-3.01/mkisofs/diag/isovfy.c 
new/cdrtools-3.01/mkisofs/diag/isovfy.c
--- old/cdrtools-3.01/mkisofs/diag/isovfy.c     2012-12-02 21:55:24.000000000 
+0100
+++ new/cdrtools-3.01/mkisofs/diag/isovfy.c     2015-01-27 23:09:34.000000000 
+0100
@@ -1,8 +1,8 @@
-/* @(#)isovfy.c        1.45 12/12/02 joerg */
+/* @(#)isovfy.c        1.46 15/01/27 joerg */
 #include <schily/mconfig.h>
 #ifndef lint
 static UConst char sccsid[] =
-       "@(#)isovfy.c   1.45 12/12/02 joerg";
+       "@(#)isovfy.c   1.46 15/01/27 joerg";
 #endif
 /*
  * File isovfy.c - verify consistency of iso9660 filesystem.
@@ -11,7 +11,7 @@
  * Written by Eric Youngdale (1993).
  *
  * Copyright 1993 Yggdrasil Computing, Incorporated
- * Copyright (c) 1999-2012 J. Schilling
+ * Copyright (c) 1999-2015 J. Schilling
  *
  * This program is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License version 2
@@ -70,9 +70,13 @@
 #define        ISO_BLOCKS(X)   (((X) / SECTOR_SIZE) + (((X)%SECTOR_SIZE)?1:0))
 
 #define        infile  in_image
-FILE *infile = NULL;
-BOOL ignerr = FALSE;
-int blocksize;
+EXPORT FILE *infile = NULL;
+EXPORT BOOL ignerr = FALSE;
+LOCAL int      su_version;
+LOCAL int      rr_version;
+LOCAL int      aa_version;
+LOCAL int      use_rock = TRUE;
+LOCAL int      blocksize;
 
 #define        PAGE    sizeof (buffer)
 
@@ -226,6 +230,20 @@
                if (strncmp((char *)pnt, "RE", 2) == 0) flag2 |= RR_FLAG_RE;
                if (strncmp((char *)pnt, "TF", 2) == 0) flag2 |= RR_FLAG_TF;
 
+               if (strncmp((char *)pnt, "SP", 2) == 0) {
+                       flag2 |= RR_FLAG_SP;                                    
/* SUSP record */
+                       su_version = pnt[3] & 0xff;
+               }
+               if (strncmp((char *)pnt, "AA", 2) == 0) {                       
/* Neither SUSP nor RR */
+                       flag2 |= RR_FLAG_AA;                                    
/* Apple Signature record */
+                       aa_version = pnt[3] & 0xff;
+               }
+               if (strncmp((char *)pnt, "ER", 2) == 0) {
+                       flag2 |= RR_FLAG_ER;                                    
/* ER record */
+                       rr_version = pnt[7] & 0xff;                             
/* Ext Version */
+/*                     strlcpy(er_id, (char *)&pnt[8], (pnt[4] & 0xFF) + 1);*/
+               }
+
                if (strncmp((char *)pnt, "CE", 2) == 0) {
                        cont_extent = (off_t)isonum_733((char *)pnt+4);
                        cont_offset = isonum_733((char *)pnt+12);
@@ -363,8 +381,7 @@
 
        rr_goof = 0;
        find_rr(idr, &pnt, &len);
-       parse_rr(pnt, len, 0);
-       return (rr_goof);
+       return (parse_rr(pnt, len, 0));
 }
 
 
@@ -446,8 +463,12 @@
                                sprintf(&lbuffer[iline], ".             ");
                                iline += strlen(lbuffer + iline);
                                rflag = 0;
+#ifdef Eric_seems_to_be_wrong
                                if (orig_file_addr != 
(off_t)(isonum_733(idr->extent) +
                                                        isonum_711((char *) 
idr->ext_attr_length))) {
+#else
+                               if (orig_file_addr != 
(off_t)isonum_733(idr->extent)) {
+#endif
                                        sprintf(&lbuffer[iline], _("***** 
Directory has null extent."));
                                        goof++;
                                        iline += strlen(lbuffer + iline);
@@ -461,8 +482,12 @@
                                sprintf(&lbuffer[iline], "..            ");
                                iline += strlen(lbuffer + iline);
                                rflag = 0;
+#ifdef Eric_seems_to_be_wrong
                                if (parent_file_addr != 
(off_t)(isonum_733(idr->extent) +
                                                        isonum_711((char *) 
idr->ext_attr_length))) {
+#else
+                               if (parent_file_addr != 
(off_t)isonum_733(idr->extent)) {
+#endif
                                        sprintf(&lbuffer[iline], _("***** 
Directory has null extent."));
                                        goof++;
                                        iline += strlen(lbuffer + iline);
@@ -524,7 +549,10 @@
                                iline += strlen(lbuffer + iline);
                        }
 
-                       goof += dump_rr(idr);
+                       if (use_rock) {
+                               dump_rr(idr);
+                               goof += rr_goof;
+                       }
                        sprintf(&lbuffer[iline], "\n");
                        iline += strlen(lbuffer + iline);
 
@@ -542,9 +570,15 @@
 
 
                        if (rflag && (idr->flags[0] & 2))
+#ifdef Eric_seems_to_be_wrong
                                check_tree((off_t)(isonum_733(idr->extent) + 
isonum_711((char *)idr->ext_attr_length)) * blocksize,
                                                isonum_733(idr->size),
                                                orig_file_addr * blocksize);
+#else
+                               check_tree((off_t)isonum_733(idr->extent) * 
blocksize,
+                                               isonum_733(idr->size),
+                                               orig_file_addr * blocksize);
+#endif
                        i += buffer[i];
                        i1++;
                        if (i > 2048 - offsetof(struct iso_directory_record, 
name[0]))
@@ -675,6 +709,7 @@
 {
        int     cac;
        char    * const *cav;
+       int     c;
        char    *opts = "help,h,version,ignore-error,i*,dev*";
        BOOL    help = FALSE;
        BOOL    prvers = FALSE;
@@ -690,6 +725,7 @@
        int     typel_extent;
        int     typem_extent;
        int     path_table_size;
+       char    buffer[2048];
 
        save_args(argc, argv);
 
@@ -721,7 +757,7 @@
        if (help)
                usage(0);
        if (prvers) {
-               printf(_("isovfy %s (%s-%s-%s) Copyright (C) 1993-1999 %s (C) 
1999-2012 %s\n"),
+               printf(_("isovfy %s (%s-%s-%s) Copyright (C) 1993-1999 %s (C) 
1999-2015 %s\n"),
                                        VERSION,
                                        HOST_CPU, HOST_VENDOR, HOST_OS,
                                        _("Eric Youngdale"),
@@ -785,9 +821,25 @@
                blocksize = 2048;
        }
 
+#ifdef Eric_seems_to_be_wrong
        file_addr = (off_t)isonum_733(idr->extent) + isonum_711((char 
*)idr->ext_attr_length);
+#else
+       file_addr = (off_t)isonum_733(idr->extent);
+#endif
        file_size = isonum_733(idr->size);
 
+#ifdef USE_SCG
+       readsecs(file_addr, buffer, ISO_BLOCKS(sizeof (buffer)));
+#else
+       lseek(fileno(infile), file_addr * blocksize, SEEK_SET);
+       read(fileno(infile), buffer, sizeof (buffer));
+#endif
+       c = dump_rr((struct iso_directory_record *) buffer);
+       if (c == 0 ||
+           (c & (RR_FLAG_SP | RR_FLAG_ER)) == 0 || su_version < 1 || 
rr_version < 1) {
+               use_rock = FALSE;
+       }
+
        if (sizeof (file_addr) > sizeof (long)) {
                printf(_("Root at extent %llx, %d bytes\n"), (Llong)file_addr, 
file_size);
        } else {

-- 
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to