summaryrefslogtreecommitdiff
path: root/src/shared/kbd-util.c
Commit message (Collapse)AuthorAgeFilesLines
* nulstr-util: Declare NULSTR_FOREACH() iterator inlineDaan De Meyer2022-11-111-2/+0
|
* kbd-util: port from nftw() to recurse_dir()Lennart Poettering2021-10-071-51/+80
|
* shared/kbd-util: simplify suffix strippingZbigniew Jędrzejewski-Szmek2021-03-041-10/+5
| | | | It only came to me now that this can be prettified.
* localed: refuse to set a keymap which is not installedZbigniew Jędrzejewski-Szmek2021-03-041-0/+29
| | | | | | | | | | | | | | | | | | | In https://bugzilla.redhat.com/show_bug.cgi?id=1933873 a keymap was set without the package that provides it being installed (it2 is in kbd-legacy, which is not installed by default). Setting a non-installed keymap is problematic, because it results in nasty failures afterward (*). So let's to the same as e.g. for locale data, and refuse a setting if the definition doesn't exists in the filesystem. The implementation using nftw() is not the most efficient, but I think it's OK in this case. This is definitely not in any kind of hot path, and I prefer not to duplicate the filename manipulation logic in a second function. (*) If the keymap is not found, vconsole-setup.service will fail. dracut-cmdline-ask.service has Requires=vconsole-setup.service, so it will also fail, and this breaks boot. dracut-cmdline-ask.service having a hard dependency is appropriate though: we sadly don't display what the keymap is, and with a wrong keymap, any attempts to enter a password are likely to fail.
* shared/kbd-util: return error on resource errorsZbigniew Jędrzejewski-Szmek2021-03-041-2/+8
| | | | I guess we should still not fail on failure to access a directory and such.
* shared/kbd-util: fix return value confusion with nftw()Zbigniew Jędrzejewski-Szmek2021-03-041-23/+19
| | | | | | | | | | | | | | We would return a real error sometimes from the callback, and FTW_STOP other times. Because of FTW_ACTIONRETVAL, everything except FTW_STOP would be ignored. I don't think using FTW_ACTIONRETVAL is useful. nftw() can only be used meaningfully with errno. Even if we return a proper value ourselves from the callback, it will be propagated as a return value from nftw(), but there is no way to distinguish this from a value generated by nftw() itself, which is -1/-EPERM on error. So let's set errno ourselves so the caller can at least look at that. The code still ignores all errors.
* Move basic/kbd-util to shared/Zbigniew Jędrzejewski-Szmek2021-03-041-0/+108
It is (or should be used) in localectl, localed, and a few other places, no reason to keep it in basic/.