From ed9b3f73897665d3bf15ad0ee41a2608e2f3fe5b Mon Sep 17 00:00:00 2001 From: Thomas Voss Date: Sun, 13 Nov 2022 09:22:03 +0100 Subject: Rename main.c to lux.c --- Makefile | 2 +- lux.c | 129 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ main.c | 129 --------------------------------------------------------------- 3 files changed, 130 insertions(+), 130 deletions(-) create mode 100644 lux.c delete mode 100644 main.c diff --git a/Makefile b/Makefile index 1bd9017..4c5a416 100644 --- a/Makefile +++ b/Makefile @@ -13,7 +13,7 @@ MANDIR = ${DPREFIX}/share/man target = lux all: ${target} -${target}: main.c +${target}: ${target}.c ${CC} ${CFLAGS} ${LDFLAGS} -o $@ $< install: diff --git a/lux.c b/lux.c new file mode 100644 index 0000000..f6fc33a --- /dev/null +++ b/lux.c @@ -0,0 +1,129 @@ +/* + * BSD Zero Clause License + * + * Copyright (c) 2022 Thomas Voss + * + * Permission to use, copy, modify, and/or distribute this software for any + * purpose with or without fee is hereby granted. + * + * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH + * REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY + * AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, + * INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM + * LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR + * OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR + * PERFORMANCE OF THIS SOFTWARE. + */ + +#define _POSIX_C_SOURCE 2 + +#include +#include +#include +#include + +#include + +#define die(...) err(EXIT_FAILURE, __VA_ARGS__); +#define diex(...) errx(EXIT_FAILURE, __VA_ARGS__); + +static int parseint(char *); +static double parsedouble(char *); +static void usage(char *); + +int +main(int argc, char **argv) +{ + int br, max, opt; + double pr; + lux_t disp; + + luxinit(&disp); + if (argc == 1) + goto Gflag; + else while ((opt = getopt(argc, argv, ":d:D:gGi:I:s:S:")) != -1) { + switch (opt) { + case 'g': + if ((br = luxget(&disp)) == -1) + die("luxget"); + printf("%d\n", br); + break; + case 'G': +Gflag: + if ((pr = luxgetp(&disp)) == -1) + die("luxgetp"); + printf("%f\n", pr); + break; + case 'd': + case 'i': + case 's': + br = parseint(optarg); + if (opt == 'd') + br = -br; + if (opt != 's') { + int tmp = luxget(&disp); + if (tmp == -1) + die("luxget"); + br += luxget(&disp); + } + if (br > (max = luxmax(&disp))) + br = max; + else if (br < 0) + br = 0; + if (luxset(&disp, br) == -1) + die("luxset"); + break; + case 'D': + case 'I': + case 'S': + pr = parsedouble(optarg); + if (opt == 'D') + pr = -pr; + if (opt != 'S') { + double tmp = luxgetp(&disp); + if (tmp == -1) + die("luxgetp"); + pr += luxgetp(&disp); + } + if (pr > 100) + pr = 100; + else if (pr < 0) + pr = 0; + if (luxsetp(&disp, pr) == -1) + die("luxset"); + break; + default: + usage(argv[0]); + } + } + + luxfree(&disp); + return EXIT_SUCCESS; +} + +int +parseint(char *s) +{ + char *endptr; + long n = strtol(optarg, &endptr, 0); + if (*s != '\0' && *endptr == '\0') + return (int) n; + diex("parseint: invalid integer '%s'", s); +} + +double +parsedouble(char *s) +{ + char *endptr; + double n = strtod(optarg, &endptr); + if (*s != '\0' && *endptr == '\0') + return n; + diex("parsedouble: invalid double '%s'", s); +} + +void +usage(char *s) +{ + fprintf(stderr, "Usage: %s [-gG | -dDiIsS val]\n", s); + exit(EXIT_FAILURE); +} diff --git a/main.c b/main.c deleted file mode 100644 index f6fc33a..0000000 --- a/main.c +++ /dev/null @@ -1,129 +0,0 @@ -/* - * BSD Zero Clause License - * - * Copyright (c) 2022 Thomas Voss - * - * Permission to use, copy, modify, and/or distribute this software for any - * purpose with or without fee is hereby granted. - * - * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH - * REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY - * AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, - * INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM - * LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR - * OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR - * PERFORMANCE OF THIS SOFTWARE. - */ - -#define _POSIX_C_SOURCE 2 - -#include -#include -#include -#include - -#include - -#define die(...) err(EXIT_FAILURE, __VA_ARGS__); -#define diex(...) errx(EXIT_FAILURE, __VA_ARGS__); - -static int parseint(char *); -static double parsedouble(char *); -static void usage(char *); - -int -main(int argc, char **argv) -{ - int br, max, opt; - double pr; - lux_t disp; - - luxinit(&disp); - if (argc == 1) - goto Gflag; - else while ((opt = getopt(argc, argv, ":d:D:gGi:I:s:S:")) != -1) { - switch (opt) { - case 'g': - if ((br = luxget(&disp)) == -1) - die("luxget"); - printf("%d\n", br); - break; - case 'G': -Gflag: - if ((pr = luxgetp(&disp)) == -1) - die("luxgetp"); - printf("%f\n", pr); - break; - case 'd': - case 'i': - case 's': - br = parseint(optarg); - if (opt == 'd') - br = -br; - if (opt != 's') { - int tmp = luxget(&disp); - if (tmp == -1) - die("luxget"); - br += luxget(&disp); - } - if (br > (max = luxmax(&disp))) - br = max; - else if (br < 0) - br = 0; - if (luxset(&disp, br) == -1) - die("luxset"); - break; - case 'D': - case 'I': - case 'S': - pr = parsedouble(optarg); - if (opt == 'D') - pr = -pr; - if (opt != 'S') { - double tmp = luxgetp(&disp); - if (tmp == -1) - die("luxgetp"); - pr += luxgetp(&disp); - } - if (pr > 100) - pr = 100; - else if (pr < 0) - pr = 0; - if (luxsetp(&disp, pr) == -1) - die("luxset"); - break; - default: - usage(argv[0]); - } - } - - luxfree(&disp); - return EXIT_SUCCESS; -} - -int -parseint(char *s) -{ - char *endptr; - long n = strtol(optarg, &endptr, 0); - if (*s != '\0' && *endptr == '\0') - return (int) n; - diex("parseint: invalid integer '%s'", s); -} - -double -parsedouble(char *s) -{ - char *endptr; - double n = strtod(optarg, &endptr); - if (*s != '\0' && *endptr == '\0') - return n; - diex("parsedouble: invalid double '%s'", s); -} - -void -usage(char *s) -{ - fprintf(stderr, "Usage: %s [-gG | -dDiIsS val]\n", s); - exit(EXIT_FAILURE); -} -- cgit v1.2.3