return converted;
}
+/**
+ * Launch nagbar to indicate errors in the configuration file.
+ */
+void start_config_error_nagbar(const char *configpath, bool has_errors) {
+ char *editaction, *pageraction;
+ sasprintf(&editaction, "i3-sensible-editor \"%s\" && i3-msg reload\n", configpath);
+ sasprintf(&pageraction, "i3-sensible-pager \"%s\"\n", errorfilename);
+ char *argv[] = {
+ NULL, /* will be replaced by the executable path */
+ "-f",
+ (config.font.pattern ? config.font.pattern : "fixed"),
+ "-t",
+ (has_errors ? "error" : "warning"),
+ "-m",
+ (has_errors ? "You have an error in your i3 config file!" : "Your config is outdated. Please fix the warnings to make sure everything works."),
+ "-b",
+ "edit config",
+ editaction,
+ (errorfilename ? "-b" : NULL),
+ (has_errors ? "show errors" : "show warnings"),
+ pageraction,
+ NULL};
+
+ start_nagbar(&config_error_nagbar_pid, argv);
+ free(editaction);
+ free(pageraction);
+}
+
/*
* Parses the given file by first replacing the variables, then calling
* parse_config and possibly launching i3-nagbar.
if (version == 3)
ELOG("Please convert your configfile first, then fix any remaining errors (see above).\n");
- char *editaction,
- *pageraction;
- sasprintf(&editaction, "i3-sensible-editor \"%s\" && i3-msg reload\n", f);
- sasprintf(&pageraction, "i3-sensible-pager \"%s\"\n", errorfilename);
- char *argv[] = {
- NULL, /* will be replaced by the executable path */
- "-f",
- (config.font.pattern ? config.font.pattern : "fixed"),
- "-t",
- (context->has_errors ? "error" : "warning"),
- "-m",
- (context->has_errors ? "You have an error in your i3 config file!" : "Your config is outdated. Please fix the warnings to make sure everything works."),
- "-b",
- "edit config",
- editaction,
- (errorfilename ? "-b" : NULL),
- (context->has_errors ? "show errors" : "show warnings"),
- pageraction,
- NULL};
-
- start_nagbar(&config_error_nagbar_pid, argv);
- free(editaction);
- free(pageraction);
+ start_config_error_nagbar(f, context->has_errors);
}
bool has_errors = context->has_errors;