Does what it says on the box. Some drivers need to duplicate option lists from the original device to ensure that devices created by the driver (driver-internal hotplugging) have the same list of options as the original device.
Signed-off-by: Peter Hutterer <[email protected]> --- hw/xfree86/common/xf86Opt.h | 1 + hw/xfree86/common/xf86Option.c | 19 +++++++++++++++++++ 2 files changed, 20 insertions(+), 0 deletions(-) diff --git a/hw/xfree86/common/xf86Opt.h b/hw/xfree86/common/xf86Opt.h index d75d3bf..9453f2a 100644 --- a/hw/xfree86/common/xf86Opt.h +++ b/hw/xfree86/common/xf86Opt.h @@ -84,6 +84,7 @@ extern _X_EXPORT pointer xf86NewOption(char *name, char *value ); extern _X_EXPORT pointer xf86NextOption(pointer list ); extern _X_EXPORT pointer xf86OptionListCreate(const char **options, int count, int used); extern _X_EXPORT pointer xf86OptionListMerge(pointer head, pointer tail); +extern _X_EXPORT pointer xf86OptionListDuplicate(pointer list); extern _X_EXPORT void xf86OptionListFree(pointer opt); extern _X_EXPORT char *xf86OptionName(pointer opt); extern _X_EXPORT char *xf86OptionValue(pointer opt); diff --git a/hw/xfree86/common/xf86Option.c b/hw/xfree86/common/xf86Option.c index 7ca2fdd..2ed6d6f 100644 --- a/hw/xfree86/common/xf86Option.c +++ b/hw/xfree86/common/xf86Option.c @@ -136,6 +136,25 @@ xf86CollectInputOptions(InputInfoPtr pInfo, const char **defaultOpts) } } +/** + * Duplicate the option list passed in. The returned pointer will be a newly + * allocated option list and must be freed by the caller. + */ +pointer +xf86OptionListDuplicate(pointer options) +{ + pointer o = NULL; + + while (options) + { + o = xf86AddNewOption(o, xf86OptionName(options), xf86OptionValue(options)); + options = xf86NextOption(options); + } + + return o; +} + + /* Created for new XInput stuff -- essentially extensions to the parser */ static int -- 1.7.2.3 _______________________________________________ [email protected]: X.Org development Archives: http://lists.x.org/archives/xorg-devel Info: http://lists.x.org/mailman/listinfo/xorg-devel
