View Issue Details

IDProjectCategoryView StatusLast Update
0001997ScribusOS-PPCOSXpublic2006-11-08 17:04
Reporterjuh Assigned Toavox  
PrioritynormalSeveritycrashReproducibilityalways
Status closedResolutionfixed 
PlatformMacintosOS OSXOS Version10.4
Product Version1.3 
Fixed in Version1.3.2cvs 
Summary0001997: Scribus crashes when looking for ICC profile
DescriptionScribus crashes while trying to import an image (tried with png, tif and jpeg) into an empty document.

Loading a 1.2 file with images works, and importing images into this old 1.2 file works too.
Additional InformationKonsole tells me:
lcms: Error 0012288; File '(null)' not found
TagsNo tags attached.
Patch

Relationships

related to 0002015 closedavox This issue lists all known regressions of the Aqua port compared with the 13 Linux version 

Activities

avox

2005-05-26 20:33

updater   ~0004794

The errormessage hints at LCMS not being able to read an ICC file.

The following patch checks every ICC file for a magic number before it is read, otherwise ignores the file.
Also allows to access ICC profiles without fileextension on Mac.

2005-05-26 20:34

 

cms-readprofile.diff (1,812 bytes)   
Index: scribus/scribus.cpp
===================================================================
RCS file: /cvs/Scribus/scribus/scribus.cpp,v
retrieving revision 1.228.2.331
diff -u -p -r1.228.2.331 scribus.cpp
--- scribus/scribus.cpp	25 May 2005 22:00:13 -0000	1.228.2.331
+++ scribus/scribus.cpp	26 May 2005 21:50:55 -0000
@@ -9314,7 +9387,7 @@ void ScribusApp::initCMS()
 void ScribusApp::GetCMSProfilesDir(QString pfad)
 {
 #ifdef HAVE_CMS
-	QDir d(pfad, "*.*", QDir::Name, QDir::Files | QDir::NoSymLinks);
+	QDir d(pfad, "*", QDir::Name, QDir::Files | QDir::Readable | QDir::Dirs | QDir::NoSymLinks);
 	if ((d.exists()) && (d.count() != 0))
 	{
 		QString nam = "";
@@ -9323,10 +9396,29 @@ void ScribusApp::GetCMSProfilesDir(QStri
 
 		for (uint dc = 0; dc < d.count(); ++dc)
 		{
-			QFileInfo fi(pfad + d[dc]);
+			QFileInfo fi(pfad + "/" + d[dc]);
+			if (fi.isDir() && d[dc][0] != '.')
+			{
+				qDebug(QString("GetCMSProfiles: recursing into %2: %1").arg(fi.filePath()).arg(nam));
+				GetCMSProfilesDir(fi.filePath()+"/");
+				continue;
+			}
+#ifdef QT_MAC
+			QFile f(fi.filePath());
+			QByteArray bb(40);
+			if (!f.open(IO_ReadOnly)) {
+				qDebug(QString("couldn't open %1 as ICC").arg(fi.filePath()));
+				continue;
+			}
+			f.readBlock(bb.data(), 40);
+			f.close();
+			if (bb[36] == 'a' && bb[37] == 'c' && bb[38] == 's' && bb[39] == 'p')
+#else
 			QString ext = fi.extension(false).lower();
 			if ((ext == "icm") || (ext == "icc"))
+#endif
 			{
+				qDebug(QString("GetCMSProfiles: reading profile %1").arg(fi.filePath()));
 				hIn = cmsOpenProfileFromFile(pfad + d[dc], "r");
 				if (hIn == NULL)
 					continue;
@@ -9360,6 +9452,7 @@ void ScribusApp::GetCMSProfilesDir(QStri
 		}
 	}
 #endif
+		qDebug("GetCMSProfile: done");
 }
 
 void ScribusApp::RecalcColors(QProgressBar *dia)
cms-readprofile.diff (1,812 bytes)   

Issue History

Date Modified Username Field Change
2005-05-16 13:36 juh New Issue
2005-05-16 17:31 plinnell Assigned To => avox
2005-05-16 17:31 plinnell Status new => assigned
2005-05-26 18:45 mhanski Relationship added related to 0002015
2005-05-26 20:33 avox Note Added: 0004794
2005-05-26 20:34 avox File Added: cms-readprofile.diff
2005-06-06 11:48 cbradney Category Default => MacOSX
2005-10-03 19:39 avox Status assigned => resolved
2005-10-03 19:39 avox OS => OSX
2005-10-03 19:39 avox OS Version => 10.4
2005-10-03 19:39 avox Platform => Macintos
2005-10-03 19:39 avox Build => aqua-prealpha
2005-10-03 19:39 avox Fixed in Version => 1.3.2cvs
2005-10-03 19:39 avox Summary Scribus native Aqua Build on Tiger Mac OS X 1.4 => Scribus crashes when looking for ICC profile
2005-10-10 22:41 avox Status resolved => closed
2006-11-08 17:03 avox Status closed => resolved
2006-11-08 17:03 avox Resolution open => fixed
2006-11-08 17:03 avox Status resolved => closed
2014-10-08 18:38 Kunda Category PPCOSX => OS-PPCOSX