diff --git a/src/compton.c b/src/compton.c index dd45bac..0af2b82 100644 --- a/src/compton.c +++ b/src/compton.c @@ -3812,6 +3812,8 @@ get_cfg(session_t *ps, int argc, char *const *argv, bool first_pass) { // Parse commandline arguments. Range checking will be done later. + const char *deprecation_message = "has been removed. If you encounter problems " + "without this feature, please feel free to open a bug report."; optind = 1; while (-1 != (o = getopt_long(argc, argv, shortopts, longopts, &longopt_idx))) { @@ -3956,7 +3958,7 @@ get_cfg(session_t *ps, int argc, char *const *argv, bool first_pass) { break; P_CASEBOOL(291, glx_no_stencil); case 292: - printf_errf("(): --glx-copy-from-front is deprecated"); + printf_errf("(): --glx-copy-from-front %s", deprecation_message); break; P_CASELONG(293, benchmark); case 294: @@ -3964,7 +3966,7 @@ get_cfg(session_t *ps, int argc, char *const *argv, bool first_pass) { ps->o.benchmark_wid = strtol(optarg, NULL, 0); break; case 295: - printf_errf("(): --glx-use-copysubbuffermesa is deprecated"); + printf_errf("(): --glx-use-copysubbuffermesa %s", deprecation_message); break; case 296: // --blur-background-exclude diff --git a/src/config_libconfig.c b/src/config_libconfig.c index b4329d4..6ab0666 100644 --- a/src/config_libconfig.c +++ b/src/config_libconfig.c @@ -14,27 +14,17 @@ /** * Wrapper of libconfig's config_lookup_int. * - * To convert int value config_lookup_bool - * returns to bool. - */ -static inline void -lcfg_lookup_bool(const config_t *config, const char *path, - bool *value) { - int ival; - - if (config_lookup_bool(config, path, &ival)) - *value = ival; -} - -/** - * Wrapper of libconfig's config_lookup_int. - * - * To deal with the different value types config_lookup_int - * returns in libconfig-1.3 and libconfig-1.4. + * So it takes a pointer to bool. */ static inline int -lcfg_lookup_int(const config_t *config, const char *path, int *value) { - return config_lookup_int(config, path, value); +lcfg_lookup_bool(const config_t *config, const char *path, bool *value) { + int ival; + + int ret = config_lookup_bool(config, path, &ival); + if (ret) + *value = ival; + + return ret; } /** @@ -172,6 +162,7 @@ parse_config(session_t *ps, struct options_tmp *pcfgtmp) { FILE *f; config_t cfg; int ival = 0; + bool bval; double dval = 0.0; // libconfig manages string memory itself, so no need to manually free // anything @@ -224,7 +215,7 @@ parse_config(session_t *ps, struct options_tmp *pcfgtmp) { // right now. It will be done later // -D (fade_delta) - if (lcfg_lookup_int(&cfg, "fade-delta", &ival)) + if (config_lookup_int(&cfg, "fade-delta", &ival)) ps->o.fade_delta = ival; // -I (fade_in_step) if (config_lookup_float(&cfg, "fade-in-step", &dval)) @@ -233,13 +224,13 @@ parse_config(session_t *ps, struct options_tmp *pcfgtmp) { if (config_lookup_float(&cfg, "fade-out-step", &dval)) ps->o.fade_out_step = normalize_d(dval) * OPAQUE; // -r (shadow_radius) - lcfg_lookup_int(&cfg, "shadow-radius", &ps->o.shadow_radius); + config_lookup_int(&cfg, "shadow-radius", &ps->o.shadow_radius); // -o (shadow_opacity) config_lookup_float(&cfg, "shadow-opacity", &ps->o.shadow_opacity); // -l (shadow_offset_x) - lcfg_lookup_int(&cfg, "shadow-offset-x", &ps->o.shadow_offset_x); + config_lookup_int(&cfg, "shadow-offset-x", &ps->o.shadow_offset_x); // -t (shadow_offset_y) - lcfg_lookup_int(&cfg, "shadow-offset-y", &ps->o.shadow_offset_y); + config_lookup_int(&cfg, "shadow-offset-y", &ps->o.shadow_offset_y); // -i (inactive_opacity) if (config_lookup_float(&cfg, "inactive-opacity", &dval)) ps->o.inactive_opacity = normalize_d(dval) * OPAQUE; @@ -297,7 +288,7 @@ parse_config(session_t *ps, struct options_tmp *pcfgtmp) { lcfg_lookup_bool(&cfg, "detect-client-opacity", &ps->o.detect_client_opacity); // --refresh-rate - lcfg_lookup_int(&cfg, "refresh-rate", &ps->o.refresh_rate); + config_lookup_int(&cfg, "refresh-rate", &ps->o.refresh_rate); // --vsync if (config_lookup_string(&cfg, "vsync", &sval) && !parse_vsync(ps, sval)) exit(1); @@ -319,7 +310,7 @@ parse_config(session_t *ps, struct options_tmp *pcfgtmp) { lcfg_lookup_bool(&cfg, "unredir-if-possible", &ps->o.unredir_if_possible); // --unredir-if-possible-delay - if (lcfg_lookup_int(&cfg, "unredir-if-possible-delay", &ival)) + if (config_lookup_int(&cfg, "unredir-if-possible-delay", &ival)) ps->o.unredir_if_possible_delay = ival; // --inactive-dim-fixed lcfg_lookup_bool(&cfg, "inactive-dim-fixed", &ps->o.inactive_dim_fixed); @@ -355,7 +346,7 @@ parse_config(session_t *ps, struct options_tmp *pcfgtmp) { && !parse_conv_kern_lst(ps, sval, ps->o.blur_kerns, MAX_BLUR_PASS)) exit(1); // --resize-damage - lcfg_lookup_int(&cfg, "resize-damage", &ps->o.resize_damage); + config_lookup_int(&cfg, "resize-damage", &ps->o.resize_damage); // --glx-no-stencil lcfg_lookup_bool(&cfg, "glx-no-stencil", &ps->o.glx_no_stencil); // --glx-no-rebind-pixmap @@ -370,6 +361,18 @@ parse_config(session_t *ps, struct options_tmp *pcfgtmp) { lcfg_lookup_bool(&cfg, "xrender-sync", &ps->o.xrender_sync); // --xrender-sync-fence lcfg_lookup_bool(&cfg, "xrender-sync-fence", &ps->o.xrender_sync_fence); + + if (lcfg_lookup_bool(&cfg, "clear-shadow", &bval)) + printf_errf("(): \"clear-shadow\" is removed as an option, and is always" + " enabled now. Consider removing it from your config file"); + + const char *deprecation_message = "has been removed. If you encounter problems " + "without this feature, please feel free to open a bug report."; + if (lcfg_lookup_bool(&cfg, "glx-use-copysubbuffermesa", &bval) && bval) + printf_errf("(): \"glx-use-copysubbuffermesa\" %s", deprecation_message); + if (lcfg_lookup_bool(&cfg, "glx-copy-from-front", &bval) && bval) + printf_errf("(): \"glx-copy-from-front\" %s", deprecation_message); + // Wintype settings for (wintype_t i = 0; i < NUM_WINTYPES; ++i) {