Subject: sed --debug option prints the contents of the hold space after running the 'g' command

From: Zachary Santer <[email-masked]>
Date: Sun, 8 Oct 2023 12:30:57 -0400

The 'g' command "[r]eplace[s] the contents of the pattern space with
the contents of the hold space." Outputting the contents of the hold
space then gives you the contents of the pattern space, but it still
doesn't make a lot of sense to do. It's not the hold space that was
updated. It's the pattern space.

$ seq 3 | sed --binary --regexp-extended --debug --expression='x; g; h'
SED PROGRAM:
  x
  g
  h
INPUT:   'STDIN' line 1
PATTERN: 1
COMMAND: x
PATTERN:
HOLD:    1
COMMAND: g
HOLD:    1
COMMAND: h
HOLD:    1
END-OF-CYCLE:
1
INPUT:   'STDIN' line 2
PATTERN: 2
COMMAND: x
PATTERN: 1
HOLD:    2
COMMAND: g
HOLD:    2
COMMAND: h
HOLD:    2
END-OF-CYCLE:
2
INPUT:   'STDIN' line 3
PATTERN: 3
COMMAND: x
PATTERN: 2
HOLD:    3
COMMAND: g
HOLD:    3
COMMAND: h
HOLD:    3
END-OF-CYCLE:
3

'x' updates both pattern and hold spaces, and you get the contents of
both in the debugging output. 'h' updates the hold space, and you get
the contents of the hold space in the debugging output. 'g' updates
the pattern space, and you get the contents of the hold space in the
debugging output.

$ sed --version
sed (GNU sed) 4.9
[...]
$ pacman --query sed
sed 4.9-1

Being run in MSYS2 MINGW64 terminal on Windows 10.

Thanks,
Zack