Daniel Sahlberg wrote on Sun, Mar 07, 2021 at 19:34:15 +0100:
> I'm attaching v4 where I blatantly stole Danielsh's script to read the hash
> file
> (
> http://mail-archives.apache.org/mod_mbox/subversion-dev/202102.mbox/%[email protected]%3e
> )
> +++ contrib/client-side/store-plaintext-password.py (working copy)
> @@ -0,0 +1,184 @@
> +def _read_one_datum(fd, letter):
> + """\
> + Read a 'K <length>\\n<key>\\n' or 'V <length>\\n<value>\\n' block from
> + an svn_hash_write2()-format FD.
> +
> + LETTER identifies the first letter, as a bytes object.
> + """
> + assert letter in {b'K', b'V'}
> +
> + # Read the letter and the space
> + if fd.read(1) != letter or fd.read(1) != b' ':
> + raise ...
This line simply raises a TypeError that's unrelated to the
business-logic-level problem. Make it more user-friendly?
I know I wrote that line, but I meant it as a placeholder. (Compare
r1869139.)
> + if line[-1:] != b'\n':
Aside: the colon here isn't redundant, as it would be if «line» were
a str:
>>> type(b'foo'[-1])
<class 'int'>
>>> type(b'foo'[-1:])
<class 'bytes'>
>>> type('foo'[-1])
<class 'str'>
>>> type('foo'[-1:])
<class 'str'>
Cheers,
Daniel