Quick followup on this problem.

The function "cmsOpenIOhandlerFromStream" now includes the line:
"iohandler -> ReportedSize = cmsfilelength(Stream);"

Unfortunately, the "cmsfilelength" function resets the file|stream position:
---
long int CMSEXPORT cmsfilelength(FILE* f)
{
  long int n;

  if (fseek(f, 0, SEEK_END) != 0) {
    return -1;
  }
  n = ftell(f);
  fseek(f, 0, SEEK_SET); // file position reset here

  return n;
}
---

So I temporarily changed this function to:
---
long int CMSEXPORT cmsfilelength(FILE* f)
{
  long int p , n;
  p = ftell(f); // register current file position

  if (fseek(f, 0, SEEK_END) != 0) {
    return -1;
  }
  n = ftell(f);
  fseek(f, p, SEEK_SET); // file position restored

  return n;
}
---

Hope this helps...

Best regards,
Auke Nauta





------------------------------------------------------------------------------
The Next 800 Companies to Lead America's Growth: New Video Whitepaper
David G. Thomson, author of the best-selling book "Blueprint to a 
Billion" shares his insights and actions to help propel your 
business during the next growth cycle. Listen Now!
http://p.sf.net/sfu/SAP-dev2dev
_______________________________________________
Lcms-user mailing list
Lcms-user@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/lcms-user

Reply via email to