|
| 1 | +#include "xdo_cmd.h" |
| 2 | + |
| 3 | +int cmd_getwindowclassname(context_t *context) { |
| 4 | + char *cmd = context->argv[0]; |
| 5 | + |
| 6 | + int c; |
| 7 | + static struct option longopts[] = { |
| 8 | + { "help", no_argument, NULL, 'h' }, |
| 9 | + { 0, 0, 0, 0 }, |
| 10 | + }; |
| 11 | + static const char *usage = |
| 12 | + "Usage: %s [window=%1]\n" |
| 13 | + HELP_SEE_WINDOW_STACK; |
| 14 | + int option_index; |
| 15 | + |
| 16 | + while ((c = getopt_long_only(context->argc, context->argv, "+h", |
| 17 | + longopts, &option_index)) != -1) { |
| 18 | + switch (c) { |
| 19 | + case 'h': |
| 20 | + printf(usage, cmd); |
| 21 | + consume_args(context, context->argc); |
| 22 | + return EXIT_SUCCESS; |
| 23 | + break; |
| 24 | + default: |
| 25 | + fprintf(stderr, usage, cmd); |
| 26 | + return EXIT_FAILURE; |
| 27 | + } |
| 28 | + } |
| 29 | + |
| 30 | + consume_args(context, optind); |
| 31 | + |
| 32 | + const char *window_arg = "%1"; |
| 33 | + if (!window_get_arg(context, 0, 0, &window_arg)) { |
| 34 | + fprintf(stderr, usage, cmd); |
| 35 | + return EXIT_FAILURE; |
| 36 | + } |
| 37 | + |
| 38 | + unsigned char *name; |
| 39 | + |
| 40 | + window_each(context, window_arg, { |
| 41 | + xdo_get_window_classname(context->xdo, window, &name); |
| 42 | + xdotool_output(context, "%s", name); |
| 43 | + XFree(name); |
| 44 | + }); /* window_each(...) */ |
| 45 | + return EXIT_SUCCESS; |
| 46 | +} |
| 47 | + |
0 commit comments