rust-changelog: start parsing changeset data
This patch makes `ChangelogRevisionData` do some coarse, line-level
splitting of the changeset data into manifest node, user, timestamp,
files list, and description. There are no (in-tree) users of these
functions yet, but I've added tests to prevent regressions. We'll
surely add callers at some point.
Differential Revision: https://phab.mercurial-scm.org/D12439
#!/usr/bin/env python3
#
# This is literally `cat` but in python, one char at a time.
#
# see sigpipe-remote.py for details.
import io
import os
import sys
if isinstance(sys.stdout.buffer, io.BufferedWriter):
print('SIGPIPE-WORKER: script need unbuffered output', file=sys.stderr)
sys.exit(255)
while True:
c = os.read(sys.stdin.fileno(), 1)
os.write(sys.stdout.fileno(), c)