summaryrefslogtreecommitdiff
path: root/src/modules
diff options
context:
space:
mode:
authorVito Caputo <vcaputo@pengaru.com>2023-08-30 21:03:25 -0700
committerVito Caputo <vcaputo@pengaru.com>2023-08-30 21:45:13 -0700
commit0a024f3565723551000243abfc34861d10a162a0 (patch)
treef3f7346d8b8f6a11329b863b48b983c853c33237 /src/modules
parent81b1fb8bf15425293f588346cab401416a7f754c (diff)
modules/pixmap: handle baking errors in pixmap_setup()
More setup_func conversion to returning the failed setting on errors during res_setup baking.
Diffstat (limited to 'src/modules')
-rw-r--r--src/modules/pixbounce/pixbounce.c44
1 files changed, 21 insertions, 23 deletions
diff --git a/src/modules/pixbounce/pixbounce.c b/src/modules/pixbounce/pixbounce.c
index 6fac758..e927e76 100644
--- a/src/modules/pixbounce/pixbounce.c
+++ b/src/modules/pixbounce/pixbounce.c
@@ -331,7 +331,7 @@ til_module_t pixbounce_module = {
int pixbounce_setup(const til_settings_t *settings, til_setting_t **res_setting, const til_setting_desc_t **res_desc, til_setup_t **res_setup)
{
- const char *pixmap_size;
+ til_setting_t *pixmap_size;
const char *pixmap_size_values[] = {
"0",
"0.2",
@@ -341,7 +341,7 @@ int pixbounce_setup(const til_settings_t *settings, til_setting_t **res_setting,
"1",
NULL
};
- const char *pixmap;
+ til_setting_t *pixmap;
const char *pixmap_values[] = {
"smiley",
"crosshairs",
@@ -355,7 +355,7 @@ int pixbounce_setup(const til_settings_t *settings, til_setting_t **res_setting,
int r;
- r = til_settings_get_and_describe_value(settings,
+ r = til_settings_get_and_describe_setting(settings,
&(til_setting_spec_t){
.name = "Pixmap size",
.key = "pixmap_size",
@@ -370,7 +370,7 @@ int pixbounce_setup(const til_settings_t *settings, til_setting_t **res_setting,
if (r)
return r;
- r = til_settings_get_and_describe_value(settings,
+ r = til_settings_get_and_describe_setting(settings,
&(til_setting_spec_t){
.name = "Pixmap",
.key = "pixmap",
@@ -392,27 +392,25 @@ int pixbounce_setup(const til_settings_t *settings, til_setting_t **res_setting,
if (!setup)
return -ENOMEM;
- sscanf(pixmap_size, "%f", &setup->pixmap_size);
+ if (sscanf(pixmap_size->value, "%f", &setup->pixmap_size) != 1)
+ return til_setup_free_with_failed_setting_ret_err(&setup->til_setup, pixmap_size, res_setting, -EINVAL);
- if (!strcasecmp(pixmap, "smiley")) {
+ if (!strcasecmp(pixmap->value, "smiley"))
setup->pixmap = PIXBOUNCE_PIXMAP_SMILEY;
- } else if (!strcasecmp(pixmap, "crosshairs")) {
- setup->pixmap = PIXBOUNCE_PIXMAP_CROSSHAIRS;
- } else if (!strcasecmp(pixmap, "no")) {
- setup->pixmap = PIXBOUNCE_PIXMAP_NO;
- } else if (!strcasecmp(pixmap, "circles")) {
- setup->pixmap = PIXBOUNCE_PIXMAP_CIRCLES;
- } else if (!strcasecmp(pixmap, "qr_til")) {
- setup->pixmap = PIXBOUNCE_PIXMAP_QR_TIL;
- } else if (!strcasecmp(pixmap, "ignignokt")) {
- setup->pixmap = PIXBOUNCE_PIXMAP_IGNIGNOKT;
- } else if (!strcasecmp(pixmap, "err")) {
- setup->pixmap = PIXBOUNCE_PIXMAP_ERR;
- } else {
- til_setup_free(&setup->til_setup);
-
- return -EINVAL;
- }
+ else if (!strcasecmp(pixmap->value, "crosshairs"))
+ setup->pixmap = PIXBOUNCE_PIXMAP_CROSSHAIRS;
+ else if (!strcasecmp(pixmap->value, "no"))
+ setup->pixmap = PIXBOUNCE_PIXMAP_NO;
+ else if (!strcasecmp(pixmap->value, "circles"))
+ setup->pixmap = PIXBOUNCE_PIXMAP_CIRCLES;
+ else if (!strcasecmp(pixmap->value, "qr_til"))
+ setup->pixmap = PIXBOUNCE_PIXMAP_QR_TIL;
+ else if (!strcasecmp(pixmap->value, "ignignokt"))
+ setup->pixmap = PIXBOUNCE_PIXMAP_IGNIGNOKT;
+ else if (!strcasecmp(pixmap->value, "err"))
+ setup->pixmap = PIXBOUNCE_PIXMAP_ERR;
+ else
+ return til_setup_free_with_failed_setting_ret_err(&setup->til_setup, pixmap, res_setting, -EINVAL);
*res_setup = &setup->til_setup;
}
© All Rights Reserved