X-Git-Url: https://git.sur5r.net/?a=blobdiff_plain;f=include%2Fconfig_parser.h;h=009538f2d40625d31ba19976aeab2e4d88a63a8f;hb=e4d2b385529847b926a716731be4a8c22ed79007;hp=0daf8118ec75ebbd85ce92245180d86ff6d0d102;hpb=2bf7793d4d241efca25c452b5c8a5897b2a29da3;p=i3%2Fi3 diff --git a/include/config_parser.h b/include/config_parser.h index 0daf8118..009538f2 100644 --- a/include/config_parser.h +++ b/include/config_parser.h @@ -2,22 +2,27 @@ * vim:ts=4:sw=4:expandtab * * i3 - an improved dynamic tiling window manager - * © 2009-2012 Michael Stapelberg and contributors (see also: LICENSE) + * © 2009 Michael Stapelberg and contributors (see also: LICENSE) * * config_parser.h: config parser-related definitions * */ -#ifndef I3_CONFIG_PARSER_H -#define I3_CONFIG_PARSER_H +#pragma once + +#include #include -/* - * The result of a parse_config call. Currently unused, but the JSON output - * will be useful in the future when we implement a config parsing IPC command. +SLIST_HEAD(variables_head, Variable); +extern pid_t config_error_nagbar_pid; + +/** + * An intermediate reprsentation of the result of a parse_config call. + * Currently unused, but the JSON output will be useful in the future when we + * implement a config parsing IPC command. * */ -struct ConfigResult { +struct ConfigResultIR { /* The JSON generator to append a reply to. */ yajl_gen json_gen; @@ -27,6 +32,19 @@ struct ConfigResult { int next_state; }; -struct ConfigResult *parse_config(const char *input, struct context *context); +struct ConfigResultIR *parse_config(const char *input, struct context *context); + +/** + * launch nagbar to indicate errors in the configuration file. + */ +void start_config_error_nagbar(const char *configpath, bool has_errors); -#endif +/** + * Parses the given file by first replacing the variables, then calling + * parse_config and launching i3-nagbar if use_nagbar is true. + * + * The return value is a boolean indicating whether there were errors during + * parsing. + * + */ +bool parse_file(const char *f, bool use_nagbar);