[PATCH 1/2] xinput: factorize atom parsing in its own function
Peter Hutterer
peter.hutterer at who-t.net
Sun Apr 19 18:34:03 PDT 2009
On Thu, Apr 16, 2009 at 06:55:46PM +0200, Julien Cristau wrote:
> ---
> src/property.c | 71 +++++++++++++++++--------------------------------------
> 1 files changed, 22 insertions(+), 49 deletions(-)
>
> diff --git a/src/property.c b/src/property.c
> index 6729929..31a0346 100644
> --- a/src/property.c
> +++ b/src/property.c
> @@ -34,6 +34,23 @@
>
> #include "xinput.h"
>
> +static Atom parse_atom(Display *dpy, char *name) {
> + Bool is_atom = True;
> + int i;
> +
> + for (i = 0; name[i] != '\0'; i++) {
> + if (!isdigit(name[i])) {
> + is_atom = False;
> + break;
> + }
> + }
> +
> + if (is_atom)
> + return atoi(name);
> + else
> + return XInternAtom(dpy, name, False);
> +}
> +
> static void
> print_property(Display *dpy, XDevice* dev, Atom property)
> {
> @@ -171,7 +188,6 @@ set_int_prop(Display *dpy, int argc, char** argv, char* n, char *desc)
> Atom prop;
> char *name;
> int i;
> - Bool is_atom = True;
> char *data;
> int format, nelements = 0;
>
> @@ -197,17 +213,7 @@ set_int_prop(Display *dpy, int argc, char** argv, char* n, char *desc)
>
> name = argv[1];
>
> - for(i = 0; i < strlen(name); i++) {
> - if (!isdigit(name[i])) {
> - is_atom = False;
> - break;
> - }
> - }
> -
> - if (!is_atom)
> - prop = XInternAtom(dpy, name, False);
> - else
> - prop = atoi(name);
> + prop = parse_atom(dpy, name);
>
> nelements = argc - 3;
> format = atoi(argv[2]);
> @@ -250,7 +256,6 @@ set_float_prop(Display *dpy, int argc, char** argv, char* n, char *desc)
> Atom prop, float_atom;
> char *name;
> int i;
> - Bool is_atom = True;
> float *data;
> int nelements = 0;
> char* endptr;
> @@ -277,17 +282,7 @@ set_float_prop(Display *dpy, int argc, char** argv, char* n, char *desc)
>
> name = argv[1];
>
> - for(i = 0; i < strlen(name); i++) {
> - if (!isdigit(name[i])) {
> - is_atom = False;
> - break;
> - }
> - }
> -
> - if (!is_atom)
> - prop = XInternAtom(dpy, name, False);
> - else
> - prop = atoi(name);
> + prop = parse_atom(dpy, name);
>
> nelements = argc - 2;
>
> @@ -375,8 +370,6 @@ int delete_prop(Display *dpy, int argc, char** argv, char* n, char *desc)
> XDevice *dev;
> XDeviceInfo *info;
> char *name;
> - int i;
> - Bool is_atom = True;
> Atom prop;
>
> info = find_device_info(dpy, argv[0], False);
> @@ -395,17 +388,7 @@ int delete_prop(Display *dpy, int argc, char** argv, char* n, char *desc)
>
> name = argv[1];
>
> - for(i = 0; i < strlen(name); i++) {
> - if (!isdigit(name[i])) {
> - is_atom = False;
> - break;
> - }
> - }
> -
> - if (!is_atom)
> - prop = XInternAtom(dpy, name, False);
> - else
> - prop = atoi(name);
> + prop = parse_atom(dpy, name);
>
> XDeleteDeviceProperty(dpy, dev, prop);
>
> @@ -421,7 +404,7 @@ set_atom_prop(Display *dpy, int argc, char** argv, char* n, char *desc)
> Atom prop;
> char *name;
> int i, j;
> - Bool is_atom = True;
> + Bool is_atom;
> Atom *data;
> int nelements = 0;
>
> @@ -447,17 +430,7 @@ set_atom_prop(Display *dpy, int argc, char** argv, char* n, char *desc)
>
> name = argv[1];
>
> - for(i = 0; i < strlen(name); i++) {
> - if (!isdigit(name[i])) {
> - is_atom = False;
> - break;
> - }
> - }
> -
> - if (!is_atom)
> - prop = XInternAtom(dpy, name, False);
> - else
> - prop = atoi(name);
> + prop = parse_atom(dpy, name);
>
> nelements = argc - 2;
> data = calloc(nelements, sizeof(Atom));
> --
> 1.6.2.3
Pushed, thanks.
Cheers,
Peter
More information about the xorg-devel
mailing list