On Mon, Sep 14, 2009 at 18:28:27 -0300, Rogério Brito wrote:
> OK, now that I just sent the workaround in the earlier message, I dug in
> a little further.
>
> The problem seems to be related to the embedded awk script in the
> configure script of the package.
>
> In its stock version, when fed with my x configuration file, it prints
> nothing.
I have an xorg.conf, and get this output from the script:
XKBMODEL="pc104"
layout_priority=medium
XKBLAYOUT="dvorak"
This is the relevant section of xorg.conf:
Section "InputDevice"
Identifier "Generic Keyboard"
Driver "kbd"
Option "CoreKeyboard"
Option "XkbRules" "xfree86"
Option "XkbModel" "pc104"
Option "XkbLayout" "dvorak"
EndSection
> When I change
>
> ,----
> | bin {
> | $0 = tolower($0);
> | sub("#.*","")
> | xkb = "";
> | }
> `----
...
I don't have any line starting with "bin". I've attached the awk script
I see on my system (I copied the awk_expr literal to a new script and
executed 'echo "$awk_expr" > FILE').
> The script does not understand when the section containing the keyboard
> has finished and, thus, it also gets the settings for the mouse and
> interprets them as the settings for the keyboard also (which is not
> always the right thing).
I don't see this behaviour, despite also having a mouse InputDevice
section with options after the keyboard section.
-- Michael
{
$0 = tolower($0);
sub("#.*","")
xkb = "";
}
/^[ \t]*section[ \t]+"inputdevice"/,/^[ \t]*endsection/ {
if ($1 == "option") {
if ($2 == "\"xkbmodel\"") {
xkb = "XKBMODEL";
} else if ($2 == "\"xkblayout\"") {
xkb = "XKBLAYOUT";
print "layout_priority=medium";
} else if ($2 == "\"xkbvariant\"") {
xkb = "XKBVARIANT";
} else if ($2 == "\"xkboptions\"") {
xkb = "XKBOPTIONS";
}
$1 = "";
$2 = "";
}
}
xkb != "" && /^[ \t]*\"[^"]+\"[ \t]*$/ {
sub("^[ \t]*\"", "");
sub("\".*", "");
gsub("[ \t]", "");
if ($1 !~ /[()]/) {
print xkb "=\"" $0 "\"";
} else {
if (xkb == "XKBLAYOUT" && $1 ~ /^[^()]+\([^()]+\)$/) {
split($1, s, /[()]/);
print "XKBLAYOUT=" s[1];
print "XKBVARIANT=" s[2];
}
}
}
Attachment:
signature.asc
Description: Digital signature