[PATCH setup] Don't write garbage into the "extrakeys" user setting
Ken Brown
kbrown@cornell.edu
Tue Nov 28 12:58:00 GMT 2017
On 11/27/2017 9:14 PM, Ken Brown wrote:
> On 11/27/2017 5:19 PM, Ken Brown wrote:
>> On 11/27/2017 4:35 PM, Ken Brown wrote:
>>> The ExtraKeysSetting destructor called UserSettings::set() on a string
>>> that was terminated by LF instead of NUL. This led to garbage at the
>>> end of the "extrakeys" setting that was written into setup.rc. Fix
>>> this by replacing the final LF by NUL before calling set().
>>
>> Disregard this for now. I've just discovered some further issues
>> involving "extrakeys", and I'd like to fix them all at once.
>
> Here's an amusing fact: "extrakeys" has apparently been useless for many
> years, so that the '-u' option to setup cannot have worked. The reason
> is that '#' is a comment character in setup.rc, and the saved keys
> contain several of these. (Originally the saved keys were kept in a
> file /etc/setup/last-extrakeys, which did not contain comments, but this
> was changed in 2009 to use /etc/setup/setup.rc.)
>
> Here's an example from my own setup.rc after running 'setup -K ...':
>
> extrakeys
> Â Â Â Â (public-key (dsa (p
> #00DE8D7944FA1731C7D66C17E3928E1CD6D06092B4DD549B96773B24F4F8C0609912EB2158379F7F37DF4BF3F42BF4131DAD1AC27B998398B635147B605F5D5276F0BBF66ECA4583A474A578C82A08EDE6802A74B39EAC62BC7EA7DE5BE721E23A51EDFC68B32A5F8462C071AFDCEA11576F39AC5646F87CEB37A67FE7A2421787#)
> (q #00C2D926EC5053000FF6BAFFA16D39161F8DE16BDF#) (g
> #0095E00E78F13C69274EE7724F2ECA34556ABA6B04EA05C06546F8CD7553807F22EF125AFE01541F82C2AF661C7F7036EDB3A0CC1F8BBB8E5E4F9CF01C179702415B9D2875EDD5AECACF85A87850E71DB1F3BA88EAE1C053ECC35507295C953E8DCBE701CE9BB3DB6E2AE35193A1503695338C448AB532571999BB4BFFFCBC9F2E#)
> (y
> #6F06E2269F93DC76794E63B6C9B56FAF0E57193FA890197BFB6C93BC9FE91C226EBACA0538CE229617E43A15972078574D907479375D4D3CCEA62C0A7A4E1F8D4D02401232DDF86471CD2D18F47E0C0AF9F32A36D0A609972DA79A762AFDBBD9B66F3AC26F490CB526CF9005B7FE4FDF560268EF4ED3E3ED7D9030BB6157D4B8#)
> ) )
>
> [The part below "extrakeys" is all one line.]
>
> Everything after the first '#' is discarded, and "extrakeys" is
> effectively set to "(public-key (dsa (p ".
>
> Out of sheer laziness, I'd like to fix this by no longer treating '#' as
> a comment character. The only use of it I've seen is in site.cc to
> write a comment about dropped mirrors being saved, although there might
> be other uses that I've missed.
>
> If this is not acceptable, then I guess we have to use something like
> '\#' to escape '#', or else choose a different comment character.
Another possibility, which I think would require only minimal changes,
is to treat '#' as a comment character only if it's the first
non-whitespace character on a line.
Ken
More information about the Cygwin-apps
mailing list