[LyX/master] Handle biblatex error on wrong bbl file (#13360)

Juergen Spitzmueller spitz at lyx.org
Sat Sep 5 13:10:39 UTC 2026


commit 723093895f8cf874e2be7b5bc6839af2c6f3f902
Author: Juergen Spitzmueller <spitz at lyx.org>
Date:   Sat Sep 5 15:09:45 2026 +0200

    Handle biblatex error on wrong bbl file (#13360)
---
 src/LaTeX.cpp | 14 ++++++++++++++
 1 file changed, 14 insertions(+)

diff --git a/src/LaTeX.cpp b/src/LaTeX.cpp
index 5ad6e6ebf6..efade08c6f 100644
--- a/src/LaTeX.cpp
+++ b/src/LaTeX.cpp
@@ -406,6 +406,14 @@ int LaTeX::run(TeXErrors & terr)
 		int ex_code = startscript();
 		if (ex_code == Systemcall::KILLED || ex_code == Systemcall::TIMEOUT)
 			return ex_code;
+		if (scanres & ERROR_RERUN) {
+			// If we have a ERROR_RERUN clear the errors
+			// and reset exit_code in case it resolves on rerun.
+			// This might happen after a faulty blg file that
+			// has been corrected after the biber run (#13360).
+			terr.clearErrors();
+			exit_code = ex_code;
+		}
 		scanres = scanLogFile(terr);
 
 		// update the depedencies
@@ -1036,6 +1044,7 @@ int LaTeX::scanLogFile(TeXErrors & terr)
 	static regex const undef_ref(".*Reference `(.+)\\' on page.*");
 	static regex const minted_data("\\\\openout[0-9]+.*=.*`(.+)(..).*data\\.minted'\\.");
 	static regex const minted_highlight("\\(\\./.*highlight\\.minted");
+	static regex const biblatex_bbl_error("Package biblatex Error: File '.*\\.bbl' not created by biblatex\\.");
 	// Flag for 'File ended while scanning' message.
 	// We need to wait for subsequent processing.
 	string wait_for_error;
@@ -1325,6 +1334,11 @@ int LaTeX::scanLogFile(TeXErrors & terr)
 				    || contains(desc,
 					"Package babel Error: Unknown language"))
 					retval |= ERROR_RERUN;
+				if (regex_match(desc, sub, biblatex_bbl_error))
+					// A bbl file npt produced with biblatex
+					// has been found by biblatex (see #13360)
+					// Simple rerun will generate the correct one.
+					retval |= ERROR_RERUN;
 				// get the line number:
 				int line = 0;
 				sscanf(tmp.c_str(), "l.%d", &line);


More information about the lyx-cvs mailing list