Jürgen Spitzmüller wrote: > I'm not good at regexes, but I tried to fix the assert by fixing the regex > that scans filenames in the logfile. > > By now, everything inside brackets has been passed as file name (which is > a lot). As soon as a LaTeX command with a backslash was passed, the > assertion triggered. > > I have added the following conditions that all seem valid to me: > > - backslash must not occur (are there some \string uses in filenames?)
I believe that this is wrong on windows. This does also explain why the crash does not occur on windows: os::internal_path converts the backslash to a slash. Maybe we simply need to disable the assert in FileName::FileName() on non-windows platforms? After all a backslash is valid in filenames on linux, and this check is only needed on windows to catch missing internal_path() calls. I don't know why nobody did have this idea earlier, after thinking about it it seems only natural. Of course that does not mean that the other changes are bad, they look good. > Furthermore, I have noticed that the regex always stops at line breaks, so > long file names that are broken accross lines are not parsed correctly. > This happens at least for the following regex: > static regex reg2("File: ([^ ]+).*"); > Any idea about this? See this bug: http://bugzilla.lyx.org/show_bug.cgi?id=1027 Not easy to solve. Georg