[PATCH] xfree86: add xf86OptionListDuplicate()

Fernando Carrijo fcarrijo.lists at gmail.com
Mon Sep 13 03:57:12 PDT 2010


Peter Hutterer <peter.hutterer at who-t.net> wrote:

> 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.

This patch looks straight and sane to me.

Reviewed-by: Fernando Carrijo <fcarrijo at freedesktop.org>

> Signed-off-by: Peter Hutterer <peter.hutterer at who-t.net>
> ---
>  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
> _______________________________________________
> xorg-devel at lists.x.org: X.Org development
> Archives: http://lists.x.org/archives/xorg-devel
> Info: http://lists.x.org/mailman/listinfo/xorg-devel


More information about the xorg-devel mailing list