mirror of
https://git.lyx.org/repos/lyx.git
synced 2024-12-22 05:16:21 +00:00
* src/LaTeX.C (deplog): fix the regex to parse filenames in the log file
(fixes bug 3224) *src/support/filename.C: limit asserts to windows platform (fixes bug 3132) git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@17163 a592a061-630c-0410-9148-cb99ea01b6c8
This commit is contained in:
parent
5b79207f3d
commit
65b1b08a5c
12
src/LaTeX.C
12
src/LaTeX.C
@ -822,9 +822,11 @@ void LaTeX::deplog(DepTable & head)
|
||||
// Ok, the scanning of files here is not sufficient.
|
||||
// Sometimes files are named by "File: xxx" only
|
||||
// So I think we should use some regexps to find files instead.
|
||||
// "(\([^ ]+\)" should match the "(file " variant, note
|
||||
// that we can have several of these on one line.
|
||||
// "File: \([^ ]+\)" should match the "File: file" variant
|
||||
// "\(([^ ()]+\.+[^ ()]+)" should match the "(file.ext " variant,
|
||||
// note that we can have several of these on one line.
|
||||
// "File: ([^\.]+\.+[^ ]+).*" should match the "File: file.ext " variant.
|
||||
// FIXME: sometimes, LaTeX inserts linebreaks while outputting
|
||||
// file names. This case is not handled correctly (bug 1027).
|
||||
|
||||
string token;
|
||||
getline(ifs, token);
|
||||
@ -844,7 +846,9 @@ void LaTeX::deplog(DepTable & head)
|
||||
token = to_utf8(from_filesystem8bit(token));
|
||||
|
||||
if (regex_match(token, sub, reg1)) {
|
||||
static regex reg1_1("\\(([^()]+)");
|
||||
// search for strings in (...) that must not contain
|
||||
// a blank, but must contain a dot
|
||||
static regex reg1_1("\\(([^()]+\\.+[^ ()]+)");
|
||||
smatch what;
|
||||
string::const_iterator first = token.begin();
|
||||
string::const_iterator end = token.end();
|
||||
|
@ -45,7 +45,9 @@ FileName::FileName(string const & abs_filename)
|
||||
: name_(abs_filename)
|
||||
{
|
||||
BOOST_ASSERT(empty() || absolutePath(name_));
|
||||
#if defined(_WIN32)
|
||||
BOOST_ASSERT(!contains(name_, '\\'));
|
||||
#endif
|
||||
}
|
||||
|
||||
|
||||
@ -53,7 +55,9 @@ void FileName::set(string const & name)
|
||||
{
|
||||
name_ = name;
|
||||
BOOST_ASSERT(absolutePath(name_));
|
||||
#if defined(_WIN32)
|
||||
BOOST_ASSERT(!contains(name_, '\\'));
|
||||
#endif
|
||||
}
|
||||
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user