]> git.ipfire.org Git - thirdparty/Python/cpython.git/commitdiff
gh-90095: Ignore empty lines and comments in `.pdbrc` (#116834)
authorTian Gao <gaogaotiantian@hotmail.com>
Fri, 15 Mar 2024 09:36:04 +0000 (02:36 -0700)
committerGitHub <noreply@github.com>
Fri, 15 Mar 2024 09:36:04 +0000 (09:36 +0000)
Doc/library/pdb.rst
Lib/pdb.py
Lib/test/test_pdb.py
Misc/NEWS.d/next/Library/2024-03-14-20-59-28.gh-issue-90095.7UaJ1U.rst [new file with mode: 0644]

index 1cfca0cf68a946bf19b0fa2020270e4dda633ef2..ac3007f70c3534dddc1a4b52b201af0a6865c0be 100644 (file)
@@ -288,7 +288,8 @@ There are three preset *convenience variables*:
 
 If a file :file:`.pdbrc` exists in the user's home directory or in the current
 directory, it is read with ``'utf-8'`` encoding and executed as if it had been
-typed at the debugger prompt.  This is particularly useful for aliases.  If both
+typed at the debugger prompt, with the exception that empty lines and lines
+starting with ``#`` are ignored.  This is particularly useful for aliases.  If both
 files exist, the one in the home directory is read first and aliases defined there
 can be overridden by the local file.
 
index f4d19386703de0397d8f6e1a20a2369655ee9d09..88ea900e63f42b6657088feeacb237f0b80f7db5 100755 (executable)
@@ -364,7 +364,10 @@ class Pdb(bdb.Bdb, cmd.Cmd):
             )
 
         if self.rcLines:
-            self.cmdqueue = self.rcLines
+            self.cmdqueue = [
+                line for line in self.rcLines
+                if line.strip() and not line.strip().startswith("#")
+            ]
             self.rcLines = []
 
     # Override Bdb methods
index 44728542787423ebf00b73a44ea325c33802decb..69691e930562bc74e1e61e11fc994d94e2508ef2 100644 (file)
@@ -2933,8 +2933,27 @@ def bœr():
         """)
 
         stdout, stderr = self.run_pdb_script(script, 'q\n', pdbrc=pdbrc, remove_home=True)
+        self.assertNotIn("SyntaxError", stdout)
         self.assertIn("a+8=9", stdout)
 
+    def test_pdbrc_empty_line(self):
+        """Test that empty lines in .pdbrc are ignored."""
+
+        script = textwrap.dedent("""
+            a = 1
+            b = 2
+            c = 3
+        """)
+
+        pdbrc = textwrap.dedent("""
+            n
+
+        """)
+
+        stdout, stderr = self.run_pdb_script(script, 'q\n', pdbrc=pdbrc, remove_home=True)
+        self.assertIn("b = 2", stdout)
+        self.assertNotIn("c = 3", stdout)
+
     def test_pdbrc_alias(self):
         script = textwrap.dedent("""
             class A:
diff --git a/Misc/NEWS.d/next/Library/2024-03-14-20-59-28.gh-issue-90095.7UaJ1U.rst b/Misc/NEWS.d/next/Library/2024-03-14-20-59-28.gh-issue-90095.7UaJ1U.rst
new file mode 100644 (file)
index 0000000..b7024c7
--- /dev/null
@@ -0,0 +1 @@
+Ignore empty lines and comments in ``.pdbrc``