cdck/branches/upstream/current.
# $RCSfile: ChangeLog,v $
# $Author: swaj $
-# $Revision: 1.4 $
+# $Revision: 1.5 $
Copyright by Alexey Semenoff (c) 2005-2006.
as published by the Free Software Foundation; either version 2
of the License, or (at your option) any later version.
+0.6.0
+ Signed char patch for arm, powerpc, and s390 was merged into main
+ source tree. More verbose information about ISO9660 disks.
+
0.5.2
A few cleanups as well as some typos were corrected.
# Define the identity of the package.
PACKAGE=cdck
- VERSION=0.5.2
+ VERSION=0.6.0
cat >>confdefs.h <<_ACEOF
dnl $RCSfile: configure.ac,v $
dnl $Author: swaj $
-dnl $Revision: 1.7 $
+dnl $Revision: 1.8 $
AC_INIT
AC_CANONICAL_SYSTEM
-AM_INIT_AUTOMAKE(cdck, 0.5.2)
+AM_INIT_AUTOMAKE(cdck, 0.6.0)
S_CFLAGS=${CFLAGS}
/*
* $RCSfile: cdck_main.cpp,v $
* $Author: swaj $
- * $Revision: 1.5 $
+ * $Revision: 1.6 $
*/
#ifdef HAVE_CONFIG_H
int main (int argc, char *argv[])
{
- char ch;
+ signed char ch;
char *program_name = (strchr(argv[0], '/') == NULL) ? argv[0] : (strrchr(argv[0], '/') + 1);
bool verbose = false;
#define STDC_HEADERS 1
/* Version number of package */
-#define VERSION "0.5.2"
+#define VERSION "0.6.0"
/* Number of bits in a file offset, on hosts where this is settable. */
#define _FILE_OFFSET_BITS 64
/*
* $RCSfile: lib_cdinfo.cpp,v $
* $Author: swaj $
- * $Revision: 1.3 $
+ * $Revision: 1.4 $
*/
/*
#include "lib_cdinfo.h"
#include "lib_main.h"
+static
+void cannibalize_buffer (char *buff)
+{
+ int len = strlen(buff);
+
+ if (!len)
+ return;
+
+ int i;
+ for (i=len-1; i>0; i--)
+ {
+ switch (buff[i]) {
+ case 0x20:
+ buff[i] = 0x0;
+ break;
+ default:
+ return;
+ }
+ }
+}
+
+void Ccdrom::read_creation_data (void)
+{
+ memset (buffer6, 0, 2048);
+ memset (sbuffer, 0, 256);
+ memset (sbuffer2, 0, 256);
+ memset (sbuffer3, 0, 256);
+
+ lseek (fd, 2048*16, SEEK_SET);
+ read (fd, buffer6, 2048);
+
+ memcpy (sbuffer, buffer6 + PUBLISHER_OFFSET, PUBLISHER_LEN);
+ memcpy (sbuffer2, buffer6 + PREPARER_OFFSET , PREPARER_LEN);
+ memcpy (sbuffer3, buffer6 + SOFTWARE_OFFSET, SOFTWARE_LEN);
+
+ cannibalize_buffer (sbuffer);
+ cannibalize_buffer (sbuffer2);
+ cannibalize_buffer (sbuffer3);
+}
+
void Ccdrom::read_super(int offset)
{
/* sector 16, super block */
memset(buffer4,0,2048);
lseek(fd,2048*(offset+17),SEEK_SET);
read(fd,buffer4,2048);
+ read_creation_data();
}
void Ccdrom::read_super5(int offset)
/*
* __END__
*/
+
+
+
+
+
+
/*
* $RCSfile: lib_cdinfo.h,v $
* $Author: swaj $
- * $Revision: 1.3 $
+ * $Revision: 1.4 $
*/
/*
#define VIDEOCDI 1024
+
+#define PUBLISHER_OFFSET 0x13e
+#define PUBLISHER_LEN 0x7f
+
+#define PREPARER_OFFSET 0x1be
+#define PREPARER_LEN 0x7f
+
+#define SOFTWARE_OFFSET 0x23e
+#define SOFTWARE_LEN 0xef
+
+
+
#endif /* __LIB_CDINFO_H_ */
/*
* $RCSfile: lib_main.cpp,v $
* $Author: swaj $
- * $Revision: 1.8 $
+ * $Revision: 1.10 $
*/
#ifdef HAVE_CONFIG_H
}
switch(fs & FS_MASK) {
+ case FS_ISO_HFS:
+#define PRINT_ISO9660 printf("iso9660: %i MB size, label '%.32s'\n", isofs_size/512,buffer+40);
+ PRINT_ISO9660;
+ break;
+
case FS_ISO_9660:
case FS_ISO_9660_INTERACTIVE:
- case FS_ISO_HFS:
- printf("iso9660: %i MB size, label >%.32s<\n",
- isofs_size/512,buffer+40);
+ PRINT_ISO9660;
+ if (strlen(sbuffer3)>1)
+ printf ("Creating software: '%.80s'\n", sbuffer3);
+
+ if (strlen(sbuffer)>1)
+ printf ("Publisher: '%.80s'\n", sbuffer);
+
+ if (strlen(sbuffer2)>1)
+ printf ("Preparer: '%.80s'\n", sbuffer2);
+
break;
}
/*
* $RCSfile: lib_main.h,v $
* $Author: swaj $
- * $Revision: 1.5 $
+ * $Revision: 1.6 $
*/
const char * Error(void);
int ReadTOC();
+
void EnableInfo(bool a_enable_info);
int OpenPlotFile (const char *plotfile = DEFAULT_PLOT_FILE);
void read_super3(int offset);
void read_super4(int offset);
void read_super5(int offset);
+
+ void read_creation_data (void);
+
+
int is_isofs(void);
int is_hs(void);
int is_cdi(void);
char buffer3[2048];
char buffer4[2048];
char buffer5[2048];
+ char buffer6[2048];
+
+ char sbuffer[256];
+ char sbuffer2[256];
+ char sbuffer3[256];
int isofs_size;
};