Am Mittwoch, 15. März 2006 19:00 schrieb Michael Gerz:
> Hi Georg,
>
> pdflatex works now. I had to truncate the filenames to 140 characters.
> Please see attachment.
>
> Could you please commit? I have no svn access.
I changed the comment slightly to make the reason for the value 140 clear.
The attached goes into trunk now.
Is it also OK for 1.4?
Georg
Index: src/support/ChangeLog
===================================================================
--- src/support/ChangeLog (Revision 13382)
+++ src/support/ChangeLog (Arbeitskopie)
@@ -1,3 +1,8 @@
+2006-03-15 Georg Baum <[EMAIL PROTECTED]>
+
+ * filename.C (mangledFilename): truncate filename to 140 characters
+ for MiKTeX's pdflatex
+
2006-03-07 Georg Baum <[EMAIL PROTECTED]>
* debugstream.h: fix nullstream.hpp location for boost 1.33.0
Index: src/support/filename.C
===================================================================
--- src/support/filename.C (Revision 13382)
+++ src/support/filename.C (Arbeitskopie)
@@ -104,21 +104,25 @@ string const FileName::mangledFilename(s
// This string contains about 50 chars-worth of other data,
// leaving us, say, 160 characters for the file name itself.
// (Erring on the side of caution.)
- string::size_type max_length = 160;
+ // Other experiments show that MiKTeX's pdflatex compiler is even
+ // more picky. A maximum length of 140 has been proven to work.
+ string::size_type max_length = 140;
if (dir.size() - 1 < max_length) {
- // If dir.size() > max_length, all bets are off anyway.
// "+ 1" for the directory separator.
max_length -= dir.size() + 1;
-
- // If the mangled file name is too long, hack it to fit.
- // We know we're guaranteed to have a unique file name because
- // of the counter.
- if (mname.size() > max_length) {
- int const half = (int(max_length) / 2) - 2;
- if (half > 0) {
- mname = mname.substr(0, half) + "___" +
- mname.substr(mname.size() - half);
- }
+ }
+ // If dir.size() > max_length, all bets are off for YAP anyway.
+ // We truncate the filename nevertheless because of MiKTeX's
+ // pdflatex compiler.
+
+ // If the mangled file name is too long, hack it to fit.
+ // We know we're guaranteed to have a unique file name because
+ // of the counter.
+ if (mname.size() > max_length) {
+ int const half = (int(max_length) / 2) - 2;
+ if (half > 0) {
+ mname = mname.substr(0, half) + "___" +
+ mname.substr(mname.size() - half);
}
}