mirror of
https://git.lyx.org/repos/lyx.git
synced 2024-12-11 16:31:09 +00:00
truncate too long filenames for pdflatex
git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@13384 a592a061-630c-0410-9148-cb99ea01b6c8
This commit is contained in:
parent
4b7512f767
commit
fb7b7b1c59
@ -1,3 +1,8 @@
|
|||||||
|
2006-03-15 Georg Baum <Georg.Baum@post.rwth-aachen.de>
|
||||||
|
|
||||||
|
* filename.C (mangledFilename): truncate filename to 140 characters
|
||||||
|
for MiKTeX's pdflatex
|
||||||
|
|
||||||
2006-03-07 Georg Baum <Georg.Baum@post.rwth-aachen.de>
|
2006-03-07 Georg Baum <Georg.Baum@post.rwth-aachen.de>
|
||||||
|
|
||||||
* debugstream.h: fix nullstream.hpp location for boost 1.33.0
|
* debugstream.h: fix nullstream.hpp location for boost 1.33.0
|
||||||
|
@ -104,21 +104,25 @@ string const FileName::mangledFilename(std::string const & dir) const
|
|||||||
// This string contains about 50 chars-worth of other data,
|
// This string contains about 50 chars-worth of other data,
|
||||||
// leaving us, say, 160 characters for the file name itself.
|
// leaving us, say, 160 characters for the file name itself.
|
||||||
// (Erring on the side of caution.)
|
// (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() - 1 < max_length) {
|
||||||
// If dir.size() > max_length, all bets are off anyway.
|
|
||||||
// "+ 1" for the directory separator.
|
// "+ 1" for the directory separator.
|
||||||
max_length -= dir.size() + 1;
|
max_length -= dir.size() + 1;
|
||||||
|
}
|
||||||
|
// 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.
|
// If the mangled file name is too long, hack it to fit.
|
||||||
// We know we're guaranteed to have a unique file name because
|
// We know we're guaranteed to have a unique file name because
|
||||||
// of the counter.
|
// of the counter.
|
||||||
if (mname.size() > max_length) {
|
if (mname.size() > max_length) {
|
||||||
int const half = (int(max_length) / 2) - 2;
|
int const half = (int(max_length) / 2) - 2;
|
||||||
if (half > 0) {
|
if (half > 0) {
|
||||||
mname = mname.substr(0, half) + "___" +
|
mname = mname.substr(0, half) + "___" +
|
||||||
mname.substr(mname.size() - half);
|
mname.substr(mname.size() - half);
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user