From 2838542adee375e4537f951d8c9d7a64a3e1c8c7 Mon Sep 17 00:00:00 2001 From: Charlie Marsh Date: Wed, 28 Feb 2024 22:00:23 -0500 Subject: [PATCH] Avoid truncating EXTERNALLY-MANAGED error message (#2073) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit ## Summary This is still imperfect, since the INI parser seems to strip empty lines, but at least the content is preserved. Closes https://github.com/astral-sh/uv/issues/2061. ## Test Plan ![Screenshot 2024-02-28 at 9 48 24 PM](https://github.com/astral-sh/uv/assets/1309177/66224e94-0500-4634-83cb-33981443b8a3) --- crates/uv-interpreter/src/interpreter.rs | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/crates/uv-interpreter/src/interpreter.rs b/crates/uv-interpreter/src/interpreter.rs index 2b7086b8a..3f0d16ad6 100644 --- a/crates/uv-interpreter/src/interpreter.rs +++ b/crates/uv-interpreter/src/interpreter.rs @@ -279,13 +279,16 @@ impl Interpreter { return None; }; - let Ok(mut ini) = Ini::new_cs().read(contents) else { + let mut ini = Ini::new_cs(); + ini.set_multiline(true); + + let Ok(mut sections) = ini.read(contents) else { // If a file exists but is not a valid INI file, we assume the environment is // externally managed. return Some(ExternallyManaged::default()); }; - let Some(section) = ini.get_mut("externally-managed") else { + let Some(section) = sections.get_mut("externally-managed") else { // If the file exists but does not contain an "externally-managed" section, we assume // the environment is externally managed. return Some(ExternallyManaged::default());