Skip to content

Commit 5eb90c3

Browse files
authored
Merge pull request #89 from fhgffy/fix-cli-pointer-file-whitespace
Preserve trailing member-name spaces in pointer files
2 parents 439f0ed + 709d2ee commit 5eb90c3

2 files changed

Lines changed: 13 additions & 1 deletion

File tree

‎bin/jsonpointer‎

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -55,7 +55,8 @@ def parse_pointer(args):
5555
if args.pointer is not None:
5656
ptr = args.pointer
5757
else:
58-
ptr = args.pointer_file.read().strip()
58+
# 2026-10-11: Trim file line endings without changing member names.
59+
ptr = args.pointer_file.read().rstrip("\r\n")
5960

6061
elif args.POINTER is not None:
6162
ptr = args.POINTER

‎tests.py‎

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -514,6 +514,17 @@ def test_pointer_file(self):
514514
self.assertEqual(proc.returncode, 0, proc.stderr)
515515
self.assertEqual(proc.stdout, self.A_OUT + self.B_OUT)
516516

517+
# 2026-10-11: A pointer file's trailing spaces are part of its member name.
518+
def test_pointer_file_preserves_member_whitespace(self):
519+
self._write('space.json', '{"a ": "expected", "a": "wrong"}')
520+
for newline in ('', '\n', '\r\n'):
521+
with self.subTest(newline=newline):
522+
with open(os.path.join(self.dir, 'space.txt'), 'w', newline='') as f:
523+
f.write('/a ' + newline)
524+
proc = self._run('-f', 'space.txt', 'space.json')
525+
self.assertEqual(proc.returncode, 0, proc.stderr)
526+
self.assertEqual(proc.stdout, '"expected"\n')
527+
517528
def test_pointer_file_single_file(self):
518529
proc = self._run('-f', 'ptr.txt', 'a.json')
519530
self.assertEqual(proc.returncode, 0, proc.stderr)

0 commit comments

Comments
 (0)