Author: colossus Date: 2006-07-27 07:28:39 +0000 (Thu, 27 Jul 2006) New Revision: 22529
Modified: xarchiver/trunk/configure.in.in xarchiver/trunk/src/callbacks.c xarchiver/trunk/src/callbacks.h xarchiver/trunk/src/iso.c Log: Modified configure.in.in to allow the support to 64bit during compilation. Added some further iso info in the iso properties window. Modified: xarchiver/trunk/configure.in.in =================================================================== --- xarchiver/trunk/configure.in.in 2006-07-26 12:25:23 UTC (rev 22528) +++ xarchiver/trunk/configure.in.in 2006-07-27 07:28:39 UTC (rev 22529) @@ -61,6 +61,7 @@ dnl *** Work-around system-specific limitations *** dnl *********************************************** AC_SYS_LARGEFILE() +CPPFLAGS="$CPPFLAGS -D_FILE_OFFSET_BITS=64 -D_LARGE_FILES" dnl ********************************** dnl *** Check for standard headers *** Modified: xarchiver/trunk/src/callbacks.c =================================================================== --- xarchiver/trunk/src/callbacks.c 2006-07-26 12:25:23 UTC (rev 22528) +++ xarchiver/trunk/src/callbacks.c 2006-07-27 07:28:39 UTC (rev 22529) @@ -29,6 +29,7 @@ extern GList *ArchiveType; extern GList *ArchiveSuffix; extern gboolean cli; +struct iso_primary_descriptor ipd; #ifndef HAVE_STRCASESTR /* @@ -810,8 +811,22 @@ gboolean isISO ( FILE *ptr ) { - if ( DetectImage(ptr) > 0 ) + int offset_image; + if ((offset_image = DetectImage(ptr)) > 0 ) + { + fseek ( ptr , offset_image, SEEK_SET ); + fread ( &ipd, 1, sizeof(ipd), ptr ); + ipd.system_id[31] = '\0'; + ipd.volume_id[31] = '\0'; + ipd.copyright_file_id[36] = '\0'; + ipd.abstract_file_id[36] = '\0'; + ipd.bibliographic_file_id[36] = '\0'; + ipd.volume_set_id[127] = '\0'; + ipd.publisher_id[127] = '\0'; + ipd.preparer_id[127] = '\0'; + ipd.application_id[127] = '\0'; return TRUE; + } else return FALSE; } @@ -1276,6 +1291,13 @@ g_free (text); /* Image type */ gtk_entry_set_text ( GTK_ENTRY (image_type_entry),archive->tmp); + /* System ID */ + gtk_entry_set_text ( GTK_ENTRY (system_id_entry),ipd.system_id); + /* Volume ID */ + gtk_entry_set_text ( GTK_ENTRY (volume_id_entry),ipd.volume_id); + /* Application ID */ + gtk_entry_set_text ( GTK_ENTRY (application_entry),ipd.application_id); + gtk_widget_show (iso_properties_win); } Modified: xarchiver/trunk/src/callbacks.h =================================================================== --- xarchiver/trunk/src/callbacks.h 2006-07-26 12:25:23 UTC (rev 22528) +++ xarchiver/trunk/src/callbacks.h 2006-07-27 07:28:39 UTC (rev 22529) @@ -22,6 +22,8 @@ #define _GNU_SOURCE #include <string.h> +#define ISODCL(from, to) (to - from + 1) + #include <gtk/gtk.h> #include <gdk/gdkkeysyms.h> #include <errno.h> Modified: xarchiver/trunk/src/iso.c =================================================================== --- xarchiver/trunk/src/iso.c 2006-07-26 12:25:23 UTC (rev 22528) +++ xarchiver/trunk/src/iso.c 2006-07-27 07:28:39 UTC (rev 22529) @@ -564,9 +564,7 @@ if ((fsource = fopen (source, "r")) == NULL) return FALSE; - - fdest = fopen (dest, "w"); - if (fdest == NULL) + if ((fdest = fopen (dest, "w")) == NULL) { //gchar *msg = g_strdup_printf (_("Can't write file \"%s\":"), dest); response = ShowGtkMessageDialog (GTK_WINDOW (MainWindow),GTK_DIALOG_MODAL,GTK_MESSAGE_ERROR,GTK_BUTTONS_OK,_("Can't write file:"),g_strerror(errno) ); @@ -617,11 +615,11 @@ iso_stream = fopen ( archive->path ,"r" ); - lseek(fileno(iso_stream),(16 + toc_offset) <<11, 0); + lseek (fileno(iso_stream),DetectImage(iso_stream), 0); read(fileno(iso_stream), &ipd, sizeof(ipd)); idr = (struct iso_directory_record *) &ipd.root_directory_record; extent = iso_733((unsigned char *)idr->extent); - lseek(fileno(iso_stream),((off_t)(extent - sector_offset)) <<11, SEEK_SET); + lseek (fileno(iso_stream),((off_t)(extent - sector_offset)) <<11, SEEK_SET); read(fileno(iso_stream), buffer, sizeof (buffer)); idr_rr = (struct iso_directory_record *) buffer; @@ -762,6 +760,7 @@ if (memcmp ("\x01\x43\x44\x30\x30\x31\x01\x00", buf, 8)) { fseek (iso, 0L, SEEK_SET); + fread ( &ipd, 1, sizeof(ipd), iso ); fread (buf, sizeof (char), 12, iso); if (!memcmp ("\x00\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x00", buf, 12)) { _______________________________________________ Xfce4-commits mailing list Xfce4-commits@xfce.org http://foo-projects.org/mailman/listinfo/xfce4-commits