On Tue, Apr 6, 2010 at 10:08 AM, Ruediger Oertel <[email protected]> wrote:
> On Tuesday 06 April 2010 18:52:16 Dan Nicholson wrote:
>> On Tue, Apr 6, 2010 at 8:41 AM, Ruediger Oertel <[email protected]> wrote:
>> > On Tuesday 06 April 2010 16:25:53 Dan Nicholson wrote:
>> >> On Tue, Apr 6, 2010 at 6:45 AM, Dan Nicholson <[email protected]> wrote:
>> >> > On Mon, Apr 5, 2010 at 4:36 PM, Ruediger Oertel <[email protected]> wrote:
>> >> >> Hi,
>> >> >>
>> >> >> commit e1165632bdfbd720889ed1adf5f7ab338032c0ee
>> >> >> has added a call to xf86CheckBoolOption to Layout.c but this function 
>> >> >> (obviously)
>> >> >> does not end up in libxf86config since it's not in .../parser but in 
>> >> >> .../common/xf86Option.c
>> >> >>
>> >> >> so linking against libxf86config (if installed as possible via 
>> >> >> configure --enable-install-libxf86config)
>> >> >> will end up with: undefined symbol: xf86CheckBoolOption
>> >> >>
>> >> >> I just can't come up with a clean idea how to solve this ...
>> >> >
>> >> > I think the "cleanest" way would be to move a lot of xf86Option.c
>> >> > under parser/. It's really about parsing Options anyway, and half the
>> >> > implementations just wrap code from parser/Flags.c. So, moving
>> >> > xf86Opt.h and xf86Option.c under parser/ would seem to be the easiest.
>> >> >
>> >> > Another alternative is to move the action of automatically adding the
>> >> > InputDevices under the ServerLayout to xf86Config.c like the video
>> >> > config. It's a little cleaner to put it together immediately during
>> >> > the parsing, but you could assemble it later.
>> >>
>> >> Another option is just to do a local hack in parser/Layout.c to
>> >> emulate xf86CheckBoolOption. Many of the necessary components are
>> >> already under parser/.
>> >
>> > could it be as simple as this ?
>> >
>> > --- hw/xfree86/parser/Layout.c
>> > +++ hw/xfree86/parser/Layout.c
>> > @@ -449,7 +449,10 @@
>> >     /* add all AutoServerLayout devices to the server layout */
>> >     while (input)
>> >     {
>> > -       if (xf86CheckBoolOption(input->inp_option_lst, "AutoServerLayout", 
>> > FALSE))
>> > +       Bool asl_value = FALSE;
>> > +       char *s = xf86findOptionValue(input->inp_option_lst 
>> > ,"AutoServerLayout");
>> > +       Bool asl_found = xf86getBoolValue(&asl_value, s);
>> > +       if (asl_found == TRUE && asl_value == TRUE)
>> >        {
>> >            XF86ConfInputrefPtr iref = layout->lay_input_lst;
>>
>> Yeah, that looks right. A comment explaining why CheckBoolOption is
>> not being used would be nice. Long term, it might be better to move
>> xf86Option.c under parser anyway since there's really no reason to
>> keep that API out of the parser. I had to refactor xf86getBoolValue
>> into parser/ when creating InputClass for this same reason and I can
>> see the situation coming up again.
>
> well, I already found the next one: using xstrtokenize which comes from 
> $topdir/os ...
> I'll come back when I have a complete list.

You could add os/libos.la to libxf86config_a_LIBADD since it's a
convenience library.

--
Dan
_______________________________________________
[email protected]: X.Org development
Archives: http://lists.x.org/archives/xorg-devel
Info: http://lists.x.org/mailman/listinfo/xorg-devel

Reply via email to