>From 4e303a75b421e9fd1b1edabe7f00c0a15a13e108 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?"Rodolfo=20Garc=C3=ADa=20Pe=C3=B1as=20(kix)"?= <[email protected]>
Date: Fri, 20 Jul 2012 00:58:12 +0200
Subject: [PATCH] menuparser.c code clean

This patch do this changes:

1. Change (add/remove) blank lines
2. Join some if's in only one
3. Change c++ comments to c comments (// -> /* */)
4. Add / remove curly brackets if needed
5. Change spaces (add/remove) & set correct indentation
---
 WINGs/menuparser.c |  216 +++++++++++++++++++++++++++++++---------------------
 1 file changed, 131 insertions(+), 85 deletions(-)

diff --git a/WINGs/menuparser.c b/WINGs/menuparser.c
index 97c6728..27f0859 100644
--- a/WINGs/menuparser.c
+++ b/WINGs/menuparser.c
@@ -29,18 +29,20 @@
 #include "menuparser.h"
 
 static WMenuParser menu_parser_create_new(const char *file_name, void *file,
-                                                                               
const char *include_default_paths);
-static char *menu_parser_isolate_token(WMenuParser parser, WParserMacro 
*list_macros);
+                                         const char *include_default_paths);
+static char *menu_parser_isolate_token(WMenuParser parser,
+                                      WParserMacro *list_macros);
 static void menu_parser_get_directive(WMenuParser parser);
 static Bool menu_parser_include_file(WMenuParser parser);
-static void menu_parser_condition_ifmacro(WMenuParser parser, Bool 
check_exists);
+static void menu_parser_condition_ifmacro(WMenuParser parser,
+                                         Bool check_exists);
 static void menu_parser_condition_else(WMenuParser parser);
 static void menu_parser_condition_end(WMenuParser parser);
 
 
-/***** Constructor and Destructor for the Menu Parser object *****/
+/* Constructor and Destructor for the Menu Parser object */
 WMenuParser WMenuParserCreate(const char *file_name, void *file,
-                                                                               
const char *include_default_paths)
+                             const char *include_default_paths)
 {
        WMenuParser parser;
 
@@ -53,12 +55,12 @@ void WMenuParserDelete(WMenuParser parser)
 {
        if (parser->include_file) {
                /* Trick: the top parser's data are not wmalloc'd, we point on 
the
-                       provided data so we do not wfree it; however for 
include files
-                       we did wmalloc them.
-                       This code should not be used as the wfree is done when 
we reach
-                       the end of an include file; however this may not happen 
when an
-                       early exit occurs (typically when 'readMenuFile' does 
not find
-                       its expected command). */
+                * provided data so we do not wfree it; however for include 
files
+                * we did wmalloc them.
+                * This code should not be used as the wfree is done when we 
reach
+                * the end of an include file; however this may not happen when 
an
+                * early exit occurs (typically when 'readMenuFile' does not 
find
+                * its expected command). */
                fclose(parser->include_file->file_handle);
                wfree((char *) parser->include_file->file_name);
                WMenuParserDelete(parser->include_file);
@@ -71,11 +73,10 @@ void WMenuParserDelete(WMenuParser parser)
 }
 
 static WMenuParser menu_parser_create_new(const char *file_name, void *file,
-                                                                               
const char *include_default_paths)
+                                         const char *include_default_paths)
 {
-       WMenuParser parser;
+       WMenuParser parser = wmalloc(sizeof(*parser));
 
-       parser = wmalloc(sizeof(*parser));
        parser->include_default_paths = include_default_paths;
        parser->file_name = file_name;
        parser->file_handle = file;
@@ -84,7 +85,7 @@ static WMenuParser menu_parser_create_new(const char 
*file_name, void *file,
        return parser;
 }
 
-/***** To report helpfull messages to user *****/
+/* To report helpfull messages to user */
 const char *WMenuParserGetFilename(WMenuParser parser)
 {
        return parser->file_name;
@@ -102,23 +103,24 @@ void WMenuParserError(WMenuParser parser, const char 
*msg, ...)
        va_start(args, msg);
        vsnprintf(buf, sizeof(buf), msg, args);
        va_end(args);
-       __wmessage("WMenuParser", parser->file_name, parser->line_number, 
WMESSAGE_TYPE_WARNING, "%s", buf);
+       __wmessage("WMenuParser", parser->file_name, parser->line_number,
+                  WMESSAGE_TYPE_WARNING, "%s", buf);
 
        for (parent = parser->parent_file; parent != NULL; parent = 
parent->parent_file)
-               __wmessage("WMenuParser", parser->file_name, 
parser->line_number, WMESSAGE_TYPE_WARNING,
-                                         _("   included from file \"%s\" at 
line %d"),
-                                         parent->file_name, 
parent->line_number);
+               __wmessage("WMenuParser", parser->file_name, 
parser->line_number,
+                          WMESSAGE_TYPE_WARNING, _("   included from file 
\"%s\" at line %d"),
+                          parent->file_name, parent->line_number);
 }
 
-/***** Read one line from file and split content *****/
-/* The function returns False when the end of file is reached */
-Bool WMenuParserGetLine(WMenuParser top_parser, char **title, char **command, 
char **parameter, char **shortcut)
+/* Read one line from file and split content 
+ * The function returns False when the end of file is reached */
+Bool WMenuParserGetLine(WMenuParser top_parser, char **title, char **command,
+                       char **parameter, char **shortcut)
 {
        WMenuParser cur_parser;
        enum { GET_TITLE, GET_COMMAND, GET_PARAMETERS, GET_SHORTCUT } scanmode;
-       char *token;
-       char  lineparam[MAXLINE];
-       char *params = NULL;
+       char *token, *params = NULL;
+       char lineparam[MAXLINE];
 
        lineparam[0] = '\0';
        *title = NULL;
@@ -127,23 +129,23 @@ Bool WMenuParserGetLine(WMenuParser top_parser, char 
**title, char **command, ch
        *shortcut = NULL;
        scanmode = GET_TITLE;
 
- read_next_line_with_filechange:
+read_next_line_with_filechange:
        cur_parser = top_parser;
        while (cur_parser->include_file)
                cur_parser = cur_parser->include_file;
 
- read_next_line:
+read_next_line:
        if (fgets(cur_parser->line_buffer, sizeof(cur_parser->line_buffer), 
cur_parser->file_handle) == NULL) {
                if (cur_parser->cond.depth > 0) {
                        int i;
 
                        for (i = 0; i < cur_parser->cond.depth; i++)
                                WMenuParserError(cur_parser, _("missing #endif 
to match #%s at line %d"),
-                                                                         
cur_parser->cond.stack[i].name, cur_parser->cond.stack[i].line);
+                                                
cur_parser->cond.stack[i].name, cur_parser->cond.stack[i].line);
                }
 
+               /* Not inside an included file -> we have reached the end */
                if (cur_parser->parent_file == NULL)
-                       /* Not inside an included file -> we have reached the 
end */
                        return False;
 
                /* We have only reached the end of an included file -> go back 
to calling file */
@@ -154,6 +156,7 @@ Bool WMenuParserGetLine(WMenuParser top_parser, char 
**title, char **command, ch
                cur_parser->include_file = NULL;
                goto read_next_line_with_filechange;
        }
+
        cur_parser->line_number++;
        cur_parser->rd = cur_parser->line_buffer;
 
@@ -161,15 +164,17 @@ Bool WMenuParserGetLine(WMenuParser top_parser, char 
**title, char **command, ch
                if (!menu_parser_skip_spaces_and_comments(cur_parser)) {
                        /* We reached the end of line */
                        if (scanmode == GET_TITLE)
-                               goto read_next_line; // Empty line -> skip
+                               goto read_next_line;    /* Empty line -> skip */
                        else
-                               break; // Finished reading current line -> 
return it to caller
+                               break;                  /* Finished reading 
current line -> return it to caller */
                }
+
                if ((scanmode == GET_TITLE) && (*cur_parser->rd == '#')) {
                        cur_parser->rd++;
                        menu_parser_get_directive(cur_parser);
                        goto read_next_line_with_filechange;
                }
+
                if (cur_parser->cond.stack[0].skip)
                        goto read_next_line;
 
@@ -207,11 +212,12 @@ Bool WMenuParserGetLine(WMenuParser top_parser, char 
**title, char **command, ch
                                if (params == NULL) {
                                        params = lineparam;
                                } else {
-                                       if ((params - lineparam) < 
sizeof(lineparam)-1)
+                                       if ((params - lineparam) < 
sizeof(lineparam) - 1)
                                                *params++ = ' ';
                                }
+
                                src = token;
-                               while ((params - lineparam) < 
sizeof(lineparam)-1)
+                               while ((params - lineparam) < sizeof(lineparam) 
- 1)
                                        if ( (*params = *src++) == '\0')
                                                break;
                                        else
@@ -229,10 +235,13 @@ Bool WMenuParserGetLine(WMenuParser top_parser, char 
**title, char **command, ch
                eot = *src++;
                if ((eot == '"') || (eot == '\'')) {
                        dst = *title;
+
                        while (*src != '\0')
                                *dst++ = *src++;
+
                        if ((dst > *title) && (dst[-1] == eot))
                                dst--;
+
                        *dst = '\0';
                }
        }
@@ -253,13 +262,12 @@ Bool menu_parser_skip_spaces_and_comments(WMenuParser 
parser)
                while (isspace(*parser->rd))
                        parser->rd++;
 
-               if (*parser->rd == '\0')
-                       return False; // Found the end of current line
-
-               else if ((parser->rd[0] == '\\') &&
-                                       (parser->rd[1] == '\n') &&
-                                       (parser->rd[2] == '\0')) {
-                       // Means that the current line is expected to be 
continued on next line
+               if (*parser->rd == '\0') {
+                       return False; /* Found the end of current line */
+               } else if ((parser->rd[0] == '\\') &&
+                          (parser->rd[1] == '\n') &&
+                          (parser->rd[2] == '\0')) {
+                       /* Means that the current line is expected to be 
continued on next line */
                        if (fgets(parser->line_buffer, 
sizeof(parser->line_buffer), parser->file_handle) == NULL) {
                                WMenuParserError(parser, _("premature end of 
file while expecting a new line after '\\'") );
                                return False;
@@ -268,8 +276,9 @@ Bool menu_parser_skip_spaces_and_comments(WMenuParser 
parser)
                        parser->rd = parser->line_buffer;
 
                } else if (parser->rd[0] == '/') {
-                       if (parser->rd[1] == '/') // Single line C comment
-                               return False; // Won't find anything more on 
this line
+                       if (parser->rd[1] == '/')       /* Single line C 
comment */
+                               return False;           /* Won't find anything 
more on this line */
+
                        if (parser->rd[1] == '*') {
                                int start_line;
 
@@ -278,9 +287,9 @@ Bool menu_parser_skip_spaces_and_comments(WMenuParser 
parser)
                                for (;;) {
                                        /* Search end-of-comment marker */
                                        while (*parser->rd != '\0') {
-                                               if (parser->rd[0] == '*')
-                                                       if (parser->rd[1] == 
'/')
-                                                               goto 
found_end_of_comment;
+                                               if ((parser->rd[0] == '*') && 
(parser->rd[1] == '/'))
+                                                       goto 
found_end_of_comment;
+
                                                parser->rd++;
                                        }
 
@@ -289,46 +298,54 @@ Bool menu_parser_skip_spaces_and_comments(WMenuParser 
parser)
                                                WMenuParserError(parser, 
_("reached end of file while searching '*/' for comment started at line %d"), 
start_line);
                                                return False;
                                        }
+
                                        parser->line_number++;
                                        parser->rd = parser->line_buffer;
                                }
 
-                       found_end_of_comment:
-                               parser->rd += 2;  // Skip closing mark
-                               continue; // Because there may be spaces after 
the comment
+found_end_of_comment:
+                               parser->rd += 2;        /* Skip closing mark */
+                               continue;               /* Because there may be 
spaces after the comment */
                        }
-                       return True; // the '/' was not a comment, treat it as 
user data
-               } else
-                       return True; // Found some data
+
+                       return True;                    /* the '/' was not a 
comment, treat it as user data */
+               } else {
+                       return True;                    /* Found some data */
+               }
        }
 }
 
 /* read a token (non-spaces suite of characters)
-   the result os wmalloc's, so it needs to be free'd */
+ * the result os wmalloc's, so it needs to be free'd */
 static char *menu_parser_isolate_token(WMenuParser parser, WParserMacro 
*list_macros)
 {
-       char *start;
-       char *token;
+       char *start, *token;
        int limit = MAX_NESTED_MACROS;
 
        start = parser->rd;
- restart_token_split:
+restart_token_split:
 
        while (*parser->rd != '\0')
-               if (isspace(*parser->rd))
+               if (isspace(*parser->rd)) {
                        break;
-               else if ((parser->rd[0] == '/') &&
-                                       ((parser->rd[1] == '*') || 
(parser->rd[1] == '/')))
+
+               } else if ((parser->rd[0] == '/') &&
+                        ((parser->rd[1] == '*') || (parser->rd[1] == '/'))) {
                        break;
-               else if ((parser->rd[0] == '\\') && (parser->rd[1] == '\n'))
+
+               } else if ((parser->rd[0] == '\\') && (parser->rd[1] == '\n')) {
                        break;
-               else if ((*parser->rd == '"' ) || (*parser->rd == '\'')) {
+
+               } else if ((*parser->rd == '"' ) || (*parser->rd == '\'')) {
                        char eot = *parser->rd++;
+
                        while ((*parser->rd != '\0') && (*parser->rd != '\n'))
                                if (*parser->rd++ == eot)
                                        goto found_end_quote;
+
                        WMenuParserError(parser, _("missing closing quote or 
double-quote before end-of-line") );
-               found_end_quote:
+
+found_end_quote:
                        ;
                } else if (isnamechr(*parser->rd)) {
                        WParserMacro *macro;
@@ -343,30 +360,35 @@ static char *menu_parser_isolate_token(WMenuParser 
parser, WParserMacro *list_ma
                                char *expand_there;
 
                                /* Copy the chars before the macro to the 
beginning of the buffer to
-                                  leave as much room as possible for expansion 
*/
+                                * leave as much room as possible for expansion 
*/
                                expand_there = parser->line_buffer;
                                if (start != parser->line_buffer)
                                        while (start < start_macro)
                                                *expand_there++ = *start++;
+
                                start = parser->line_buffer;
 
                                /* Macro expansion will take care to keep the 
rest of the line after
-                                  the macro to the end of the line for future 
token extraction */
+                                * the macro to the end of the line for future 
token extraction */
                                menu_parser_expand_macro(parser, macro, 
expand_there,
-                                                                               
 sizeof(parser->line_buffer) - (start - parser->line_buffer) );
+                                                        
sizeof(parser->line_buffer) - (start - parser->line_buffer) );
 
                                /* Restart parsing to allow expansion of sub 
macro calls */
                                parser->rd = expand_there;
                                if (limit-- > 0)
                                        goto restart_token_split;
+
                                WMenuParserError(parser, _("too many nested 
macro expansion, breaking loop") );
+
                                while (isnamechr(*parser->rd))
                                        parser->rd++;
+
                                break;
                        }
-                       // else: the text was passed over so it will be counted 
in the token from 'start'
-               } else
+               /* else: the text was passed over so it will be counted in the 
token from 'start' */
+               } else {
                        parser->rd++;
+               }
 
        token = wmalloc(parser->rd - start + 1);
        strncpy(token, start, parser->rd - start);
@@ -375,7 +397,7 @@ static char *menu_parser_isolate_token(WMenuParser parser, 
WParserMacro *list_ma
        return token;
 }
 
-/***** Processing of special # directives *****/
+/* Processing of special # directives */
 static void menu_parser_get_directive(WMenuParser parser)
 {
        char *command;
@@ -383,15 +405,19 @@ static void menu_parser_get_directive(WMenuParser parser)
        /* Isolate the command */
        while (isspace(*parser->rd))
                parser->rd++;
+
        command = parser->rd;
        while (*parser->rd)
                if (isspace(*parser->rd)) {
                        *parser->rd++ = '\0';
                        break;
-               } else parser->rd++;
+               } else {
+                       parser->rd++;
+               }
 
        if (strcmp(command, "include") == 0) {
-               if (!menu_parser_include_file(parser)) return;
+               if (!menu_parser_include_file(parser))
+                       return;
 
        } else if (strcmp(command, "define") == 0) {
                menu_parser_define_macro(parser);
@@ -415,12 +441,12 @@ static void menu_parser_get_directive(WMenuParser parser)
 
        if (menu_parser_skip_spaces_and_comments(parser))
                WMenuParserError(parser, _("extra text after '#' command is 
ignored: \"%.16s...\""),
-                                                         parser->rd);
+                                parser->rd);
 }
 
 /* Extract the file name, search for it in known directories
-       and create a sub-parser to handle it.
-       Returns False if the file could not be found */
+ * and create a sub-parser to handle it.
+ * Returns False if the file could not be found */
 static Bool menu_parser_include_file(WMenuParser parser)
 {
        char buffer[MAXLINE];
@@ -432,25 +458,35 @@ static Bool menu_parser_include_file(WMenuParser parser)
                WMenuParserError(parser, _("no file name found for #include") );
                return False;
        }
+
        switch (*parser->rd++) {
-       case '<': eot = '>'; break;
-       case '"': eot = '"'; break;
+       case '<':
+               eot = '>';
+               break;
+       case '"':
+               eot = '"';
+               break;
        default:
                WMenuParserError(parser, _("file name must be enclosed in 
brackets or double-quotes for #define") );
                return False;
        }
+
        req_filename = parser->rd;
-       while (*parser->rd)
+       while (*parser->rd) {
                if (*parser->rd == eot) {
                        *parser->rd++ = '\0';
                        goto found_end_define_fname;
-               } else parser->rd++;
+               } else {
+                       parser->rd++;
+               }
+       }
+
        WMenuParserError(parser, _("missing closing '%c' in filename 
specification"), eot);
        return False;
- found_end_define_fname:
 
+found_end_define_fname:
        /* If we're inside a #if sequence, we abort now, but not sooner in
-               order to keep the syntax check */
+        * order to keep the syntax check */
        if (parser->cond.stack[0].skip)
                return False;
 
@@ -461,6 +497,7 @@ static Bool menu_parser_include_file(WMenuParser parser)
                count = 0;
                for (p = parser; p->parent_file; p = p->parent_file)
                        count++;
+
                if (count > MAX_NESTED_INCLUDES) {
                        WMenuParserError(parser, _("too many nested includes") 
);
                        return False;
@@ -476,7 +513,9 @@ static Bool menu_parser_include_file(WMenuParser parser)
                        int len;
 
                        len = p - parser->file_name + 1;
-                       if (len > sizeof(buffer) - 1) len = sizeof(buffer) - 1;
+                       if (len > sizeof(buffer) - 1)
+                               len = sizeof(buffer) - 1;
+
                        strncpy(buffer, parser->file_name, len);
                        strncpy(buffer+len, req_filename, sizeof(buffer) - len 
- 1);
                        buffer[sizeof(buffer) - 1] = '\0';
@@ -504,11 +543,13 @@ static Bool menu_parser_include_file(WMenuParser parser)
                                        }
                                        src++;
                                }
+
                                while ((*src != '\0') && (*src != ':')) {
                                        if (idx < sizeof(buffer) - 2)
                                                buffer[idx++] = *src;
                                        src++;
                                }
+
                                buffer[idx++] = '/';
                                for (p = req_filename; *p != '\0'; p++)
                                        if (idx < sizeof(buffer) - 1)
@@ -516,7 +557,8 @@ static Bool menu_parser_include_file(WMenuParser parser)
                                buffer[idx] = '\0';
 
                                fh = fopen(fullfilename, "rb");
-                               if (fh != NULL) goto found_valid_file;
+                               if (fh != NULL)
+                                       goto found_valid_file;
 
                                if (*src == ':')
                                        src++;
@@ -527,14 +569,14 @@ static Bool menu_parser_include_file(WMenuParser parser)
        }
 
        /* Found the file, make it our new source */
- found_valid_file:
+found_valid_file:
        parser->include_file = menu_parser_create_new(wstrdup(req_filename), 
fh, parser->include_default_paths);
        parser->include_file->parent_file = parser;
        return True;
 }
 
 /* Check wether a macro exists or not, and marks the parser to ignore the
-   following data accordingly */
+ * following data accordingly */
 static void menu_parser_condition_ifmacro(WMenuParser parser, Bool 
check_exists)
 {
        WParserMacro *macro;
@@ -557,18 +599,21 @@ static void menu_parser_condition_ifmacro(WMenuParser 
parser, Bool check_exists)
                WMenuParserError(parser, _("too many nested #if sequences") );
                return;
        }
+
        for (idx = parser->cond.depth - 1; idx >= 0; idx--)
                parser->cond.stack[idx + 1] = parser->cond.stack[idx];
+
        parser->cond.depth++;
 
-       if (parser->cond.stack[1].skip)
+       if (parser->cond.stack[1].skip) {
                parser->cond.stack[0].skip = True;
-       else {
+       } else {
                macro = menu_parser_find_macro(parser, macro_name);
                parser->cond.stack[0].skip =
                        ((check_exists)  && (macro == NULL)) ||
                        ((!check_exists) && (macro != NULL)) ;
        }
+
        strcpy(parser->cond.stack[0].name, cmd_name);
        parser->cond.stack[0].line = parser->line_number;
 }
@@ -580,8 +625,9 @@ static void menu_parser_condition_else(WMenuParser parser)
                WMenuParserError(parser, _("found #%s but have no matching 
#if"), "else" );
                return;
        }
+
+       /* The containing #if is false, so we continue skipping anyway */
        if ((parser->cond.depth > 1) && (parser->cond.stack[1].skip))
-               // The containing #if is false, so we continue skipping anyway
                parser->cond.stack[0].skip = True;
        else
                parser->cond.stack[0].skip = !parser->cond.stack[0].skip;
-- 
1.7.10.4

-- 
||// //\\// Rodolfo "kix" Garcia
||\\// //\\ http://www.kix.es/
>From 4e303a75b421e9fd1b1edabe7f00c0a15a13e108 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?"Rodolfo=20Garc=C3=ADa=20Pe=C3=B1as=20(kix)"?= <[email protected]>
Date: Fri, 20 Jul 2012 00:58:12 +0200
Subject: [PATCH] menuparser.c code clean

This patch do this changes:

1. Change (add/remove) blank lines
2. Join some if's in only one
3. Change c++ comments to c comments (// -> /* */)
4. Add / remove curly brackets if needed
5. Change spaces (add/remove) & set correct indentation
---
 WINGs/menuparser.c |  216 +++++++++++++++++++++++++++++++---------------------
 1 file changed, 131 insertions(+), 85 deletions(-)

diff --git a/WINGs/menuparser.c b/WINGs/menuparser.c
index 97c6728..27f0859 100644
--- a/WINGs/menuparser.c
+++ b/WINGs/menuparser.c
@@ -29,18 +29,20 @@
 #include "menuparser.h"
 
 static WMenuParser menu_parser_create_new(const char *file_name, void *file,
-										const char *include_default_paths);
-static char *menu_parser_isolate_token(WMenuParser parser, WParserMacro *list_macros);
+					  const char *include_default_paths);
+static char *menu_parser_isolate_token(WMenuParser parser,
+				       WParserMacro *list_macros);
 static void menu_parser_get_directive(WMenuParser parser);
 static Bool menu_parser_include_file(WMenuParser parser);
-static void menu_parser_condition_ifmacro(WMenuParser parser, Bool check_exists);
+static void menu_parser_condition_ifmacro(WMenuParser parser,
+					  Bool check_exists);
 static void menu_parser_condition_else(WMenuParser parser);
 static void menu_parser_condition_end(WMenuParser parser);
 
 
-/***** Constructor and Destructor for the Menu Parser object *****/
+/* Constructor and Destructor for the Menu Parser object */
 WMenuParser WMenuParserCreate(const char *file_name, void *file,
-										const char *include_default_paths)
+			      const char *include_default_paths)
 {
 	WMenuParser parser;
 
@@ -53,12 +55,12 @@ void WMenuParserDelete(WMenuParser parser)
 {
 	if (parser->include_file) {
 		/* Trick: the top parser's data are not wmalloc'd, we point on the
-			provided data so we do not wfree it; however for include files
-			we did wmalloc them.
-			This code should not be used as the wfree is done when we reach
-			the end of an include file; however this may not happen when an
-			early exit occurs (typically when 'readMenuFile' does not find
-			its expected command). */
+		 * provided data so we do not wfree it; however for include files
+		 * we did wmalloc them.
+		 * This code should not be used as the wfree is done when we reach
+		 * the end of an include file; however this may not happen when an
+		 * early exit occurs (typically when 'readMenuFile' does not find
+		 * its expected command). */
 		fclose(parser->include_file->file_handle);
 		wfree((char *) parser->include_file->file_name);
 		WMenuParserDelete(parser->include_file);
@@ -71,11 +73,10 @@ void WMenuParserDelete(WMenuParser parser)
 }
 
 static WMenuParser menu_parser_create_new(const char *file_name, void *file,
-										const char *include_default_paths)
+					  const char *include_default_paths)
 {
-	WMenuParser parser;
+	WMenuParser parser = wmalloc(sizeof(*parser));
 
-	parser = wmalloc(sizeof(*parser));
 	parser->include_default_paths = include_default_paths;
 	parser->file_name = file_name;
 	parser->file_handle = file;
@@ -84,7 +85,7 @@ static WMenuParser menu_parser_create_new(const char *file_name, void *file,
 	return parser;
 }
 
-/***** To report helpfull messages to user *****/
+/* To report helpfull messages to user */
 const char *WMenuParserGetFilename(WMenuParser parser)
 {
 	return parser->file_name;
@@ -102,23 +103,24 @@ void WMenuParserError(WMenuParser parser, const char *msg, ...)
 	va_start(args, msg);
 	vsnprintf(buf, sizeof(buf), msg, args);
 	va_end(args);
-	__wmessage("WMenuParser", parser->file_name, parser->line_number, WMESSAGE_TYPE_WARNING, "%s", buf);
+	__wmessage("WMenuParser", parser->file_name, parser->line_number,
+		   WMESSAGE_TYPE_WARNING, "%s", buf);
 
 	for (parent = parser->parent_file; parent != NULL; parent = parent->parent_file)
-		__wmessage("WMenuParser", parser->file_name, parser->line_number, WMESSAGE_TYPE_WARNING,
-					  _("   included from file \"%s\" at line %d"),
-					  parent->file_name, parent->line_number);
+		__wmessage("WMenuParser", parser->file_name, parser->line_number,
+			   WMESSAGE_TYPE_WARNING, _("   included from file \"%s\" at line %d"),
+			   parent->file_name, parent->line_number);
 }
 
-/***** Read one line from file and split content *****/
-/* The function returns False when the end of file is reached */
-Bool WMenuParserGetLine(WMenuParser top_parser, char **title, char **command, char **parameter, char **shortcut)
+/* Read one line from file and split content 
+ * The function returns False when the end of file is reached */
+Bool WMenuParserGetLine(WMenuParser top_parser, char **title, char **command,
+			char **parameter, char **shortcut)
 {
 	WMenuParser cur_parser;
 	enum { GET_TITLE, GET_COMMAND, GET_PARAMETERS, GET_SHORTCUT } scanmode;
-	char *token;
-	char  lineparam[MAXLINE];
-	char *params = NULL;
+	char *token, *params = NULL;
+	char lineparam[MAXLINE];
 
 	lineparam[0] = '\0';
 	*title = NULL;
@@ -127,23 +129,23 @@ Bool WMenuParserGetLine(WMenuParser top_parser, char **title, char **command, ch
 	*shortcut = NULL;
 	scanmode = GET_TITLE;
 
- read_next_line_with_filechange:
+read_next_line_with_filechange:
 	cur_parser = top_parser;
 	while (cur_parser->include_file)
 		cur_parser = cur_parser->include_file;
 
- read_next_line:
+read_next_line:
 	if (fgets(cur_parser->line_buffer, sizeof(cur_parser->line_buffer), cur_parser->file_handle) == NULL) {
 		if (cur_parser->cond.depth > 0) {
 			int i;
 
 			for (i = 0; i < cur_parser->cond.depth; i++)
 				WMenuParserError(cur_parser, _("missing #endif to match #%s at line %d"),
-									  cur_parser->cond.stack[i].name, cur_parser->cond.stack[i].line);
+						 cur_parser->cond.stack[i].name, cur_parser->cond.stack[i].line);
 		}
 
+		/* Not inside an included file -> we have reached the end */
 		if (cur_parser->parent_file == NULL)
-			/* Not inside an included file -> we have reached the end */
 			return False;
 
 		/* We have only reached the end of an included file -> go back to calling file */
@@ -154,6 +156,7 @@ Bool WMenuParserGetLine(WMenuParser top_parser, char **title, char **command, ch
 		cur_parser->include_file = NULL;
 		goto read_next_line_with_filechange;
 	}
+
 	cur_parser->line_number++;
 	cur_parser->rd = cur_parser->line_buffer;
 
@@ -161,15 +164,17 @@ Bool WMenuParserGetLine(WMenuParser top_parser, char **title, char **command, ch
 		if (!menu_parser_skip_spaces_and_comments(cur_parser)) {
 			/* We reached the end of line */
 			if (scanmode == GET_TITLE)
-				goto read_next_line; // Empty line -> skip
+				goto read_next_line;	/* Empty line -> skip */
 			else
-				break; // Finished reading current line -> return it to caller
+				break;			/* Finished reading current line -> return it to caller */
 		}
+
 		if ((scanmode == GET_TITLE) && (*cur_parser->rd == '#')) {
 			cur_parser->rd++;
 			menu_parser_get_directive(cur_parser);
 			goto read_next_line_with_filechange;
 		}
+
 		if (cur_parser->cond.stack[0].skip)
 			goto read_next_line;
 
@@ -207,11 +212,12 @@ Bool WMenuParserGetLine(WMenuParser top_parser, char **title, char **command, ch
 				if (params == NULL) {
 					params = lineparam;
 				} else {
-					if ((params - lineparam) < sizeof(lineparam)-1)
+					if ((params - lineparam) < sizeof(lineparam) - 1)
 						*params++ = ' ';
 				}
+
 				src = token;
-				while ((params - lineparam) < sizeof(lineparam)-1)
+				while ((params - lineparam) < sizeof(lineparam) - 1)
 					if ( (*params = *src++) == '\0')
 						break;
 					else
@@ -229,10 +235,13 @@ Bool WMenuParserGetLine(WMenuParser top_parser, char **title, char **command, ch
 		eot = *src++;
 		if ((eot == '"') || (eot == '\'')) {
 			dst = *title;
+
 			while (*src != '\0')
 				*dst++ = *src++;
+
 			if ((dst > *title) && (dst[-1] == eot))
 				dst--;
+
 			*dst = '\0';
 		}
 	}
@@ -253,13 +262,12 @@ Bool menu_parser_skip_spaces_and_comments(WMenuParser parser)
 		while (isspace(*parser->rd))
 			parser->rd++;
 
-		if (*parser->rd == '\0')
-			return False; // Found the end of current line
-
-		else if ((parser->rd[0] == '\\') &&
-					(parser->rd[1] == '\n') &&
-					(parser->rd[2] == '\0')) {
-			// Means that the current line is expected to be continued on next line
+		if (*parser->rd == '\0') {
+			return False; /* Found the end of current line */
+		} else if ((parser->rd[0] == '\\') &&
+			   (parser->rd[1] == '\n') &&
+			   (parser->rd[2] == '\0')) {
+			/* Means that the current line is expected to be continued on next line */
 			if (fgets(parser->line_buffer, sizeof(parser->line_buffer), parser->file_handle) == NULL) {
 				WMenuParserError(parser, _("premature end of file while expecting a new line after '\\'") );
 				return False;
@@ -268,8 +276,9 @@ Bool menu_parser_skip_spaces_and_comments(WMenuParser parser)
 			parser->rd = parser->line_buffer;
 
 		} else if (parser->rd[0] == '/') {
-			if (parser->rd[1] == '/') // Single line C comment
-				return False; // Won't find anything more on this line
+			if (parser->rd[1] == '/')	/* Single line C comment */
+				return False;		/* Won't find anything more on this line */
+
 			if (parser->rd[1] == '*') {
 				int start_line;
 
@@ -278,9 +287,9 @@ Bool menu_parser_skip_spaces_and_comments(WMenuParser parser)
 				for (;;) {
 					/* Search end-of-comment marker */
 					while (*parser->rd != '\0') {
-						if (parser->rd[0] == '*')
-							if (parser->rd[1] == '/')
-								goto found_end_of_comment;
+						if ((parser->rd[0] == '*') && (parser->rd[1] == '/'))
+							goto found_end_of_comment;
+
 						parser->rd++;
 					}
 
@@ -289,46 +298,54 @@ Bool menu_parser_skip_spaces_and_comments(WMenuParser parser)
 						WMenuParserError(parser, _("reached end of file while searching '*/' for comment started at line %d"), start_line);
 						return False;
 					}
+
 					parser->line_number++;
 					parser->rd = parser->line_buffer;
 				}
 
-			found_end_of_comment:
-				parser->rd += 2;  // Skip closing mark
-				continue; // Because there may be spaces after the comment
+found_end_of_comment:
+				parser->rd += 2;	/* Skip closing mark */
+				continue;		/* Because there may be spaces after the comment */
 			}
-			return True; // the '/' was not a comment, treat it as user data
-		} else
-			return True; // Found some data
+
+			return True;			/* the '/' was not a comment, treat it as user data */
+		} else {
+			return True;			/* Found some data */
+		}
 	}
 }
 
 /* read a token (non-spaces suite of characters)
-   the result os wmalloc's, so it needs to be free'd */
+ * the result os wmalloc's, so it needs to be free'd */
 static char *menu_parser_isolate_token(WMenuParser parser, WParserMacro *list_macros)
 {
-	char *start;
-	char *token;
+	char *start, *token;
 	int limit = MAX_NESTED_MACROS;
 
 	start = parser->rd;
- restart_token_split:
+restart_token_split:
 
 	while (*parser->rd != '\0')
-		if (isspace(*parser->rd))
+		if (isspace(*parser->rd)) {
 			break;
-		else if ((parser->rd[0] == '/') &&
-					((parser->rd[1] == '*') || (parser->rd[1] == '/')))
+
+		} else if ((parser->rd[0] == '/') &&
+			 ((parser->rd[1] == '*') || (parser->rd[1] == '/'))) {
 			break;
-		else if ((parser->rd[0] == '\\') && (parser->rd[1] == '\n'))
+
+		} else if ((parser->rd[0] == '\\') && (parser->rd[1] == '\n')) {
 			break;
-		else if ((*parser->rd == '"' ) || (*parser->rd == '\'')) {
+
+		} else if ((*parser->rd == '"' ) || (*parser->rd == '\'')) {
 			char eot = *parser->rd++;
+
 			while ((*parser->rd != '\0') && (*parser->rd != '\n'))
 				if (*parser->rd++ == eot)
 					goto found_end_quote;
+
 			WMenuParserError(parser, _("missing closing quote or double-quote before end-of-line") );
-		found_end_quote:
+
+found_end_quote:
 			;
 		} else if (isnamechr(*parser->rd)) {
 			WParserMacro *macro;
@@ -343,30 +360,35 @@ static char *menu_parser_isolate_token(WMenuParser parser, WParserMacro *list_ma
 				char *expand_there;
 
 				/* Copy the chars before the macro to the beginning of the buffer to
-				   leave as much room as possible for expansion */
+				 * leave as much room as possible for expansion */
 				expand_there = parser->line_buffer;
 				if (start != parser->line_buffer)
 					while (start < start_macro)
 						*expand_there++ = *start++;
+
 				start = parser->line_buffer;
 
 				/* Macro expansion will take care to keep the rest of the line after
-				   the macro to the end of the line for future token extraction */
+				 * the macro to the end of the line for future token extraction */
 				menu_parser_expand_macro(parser, macro, expand_there,
-										 sizeof(parser->line_buffer) - (start - parser->line_buffer) );
+							 sizeof(parser->line_buffer) - (start - parser->line_buffer) );
 
 				/* Restart parsing to allow expansion of sub macro calls */
 				parser->rd = expand_there;
 				if (limit-- > 0)
 					goto restart_token_split;
+
 				WMenuParserError(parser, _("too many nested macro expansion, breaking loop") );
+
 				while (isnamechr(*parser->rd))
 					parser->rd++;
+
 				break;
 			}
-			// else: the text was passed over so it will be counted in the token from 'start'
-		} else
+		/* else: the text was passed over so it will be counted in the token from 'start' */
+		} else {
 			parser->rd++;
+		}
 
 	token = wmalloc(parser->rd - start + 1);
 	strncpy(token, start, parser->rd - start);
@@ -375,7 +397,7 @@ static char *menu_parser_isolate_token(WMenuParser parser, WParserMacro *list_ma
 	return token;
 }
 
-/***** Processing of special # directives *****/
+/* Processing of special # directives */
 static void menu_parser_get_directive(WMenuParser parser)
 {
 	char *command;
@@ -383,15 +405,19 @@ static void menu_parser_get_directive(WMenuParser parser)
 	/* Isolate the command */
 	while (isspace(*parser->rd))
 		parser->rd++;
+
 	command = parser->rd;
 	while (*parser->rd)
 		if (isspace(*parser->rd)) {
 			*parser->rd++ = '\0';
 			break;
-		} else parser->rd++;
+		} else {
+			parser->rd++;
+		}
 
 	if (strcmp(command, "include") == 0) {
-		if (!menu_parser_include_file(parser)) return;
+		if (!menu_parser_include_file(parser))
+			return;
 
 	} else if (strcmp(command, "define") == 0) {
 		menu_parser_define_macro(parser);
@@ -415,12 +441,12 @@ static void menu_parser_get_directive(WMenuParser parser)
 
 	if (menu_parser_skip_spaces_and_comments(parser))
 		WMenuParserError(parser, _("extra text after '#' command is ignored: \"%.16s...\""),
-							  parser->rd);
+				 parser->rd);
 }
 
 /* Extract the file name, search for it in known directories
-	and create a sub-parser to handle it.
-	Returns False if the file could not be found */
+ * and create a sub-parser to handle it.
+ * Returns False if the file could not be found */
 static Bool menu_parser_include_file(WMenuParser parser)
 {
 	char buffer[MAXLINE];
@@ -432,25 +458,35 @@ static Bool menu_parser_include_file(WMenuParser parser)
 		WMenuParserError(parser, _("no file name found for #include") );
 		return False;
 	}
+
 	switch (*parser->rd++) {
-	case '<': eot = '>'; break;
-	case '"': eot = '"'; break;
+	case '<':
+		eot = '>';
+		break;
+	case '"':
+		eot = '"';
+		break;
 	default:
 		WMenuParserError(parser, _("file name must be enclosed in brackets or double-quotes for #define") );
 		return False;
 	}
+
 	req_filename = parser->rd;
-	while (*parser->rd)
+	while (*parser->rd) {
 		if (*parser->rd == eot) {
 			*parser->rd++ = '\0';
 			goto found_end_define_fname;
-		} else parser->rd++;
+		} else {
+			parser->rd++;
+		}
+	}
+
 	WMenuParserError(parser, _("missing closing '%c' in filename specification"), eot);
 	return False;
- found_end_define_fname:
 
+found_end_define_fname:
 	/* If we're inside a #if sequence, we abort now, but not sooner in
-		order to keep the syntax check */
+	 * order to keep the syntax check */
 	if (parser->cond.stack[0].skip)
 		return False;
 
@@ -461,6 +497,7 @@ static Bool menu_parser_include_file(WMenuParser parser)
 		count = 0;
 		for (p = parser; p->parent_file; p = p->parent_file)
 			count++;
+
 		if (count > MAX_NESTED_INCLUDES) {
 			WMenuParserError(parser, _("too many nested includes") );
 			return False;
@@ -476,7 +513,9 @@ static Bool menu_parser_include_file(WMenuParser parser)
 			int len;
 
 			len = p - parser->file_name + 1;
-			if (len > sizeof(buffer) - 1) len = sizeof(buffer) - 1;
+			if (len > sizeof(buffer) - 1)
+				len = sizeof(buffer) - 1;
+
 			strncpy(buffer, parser->file_name, len);
 			strncpy(buffer+len, req_filename, sizeof(buffer) - len - 1);
 			buffer[sizeof(buffer) - 1] = '\0';
@@ -504,11 +543,13 @@ static Bool menu_parser_include_file(WMenuParser parser)
 					}
 					src++;
 				}
+
 				while ((*src != '\0') && (*src != ':')) {
 					if (idx < sizeof(buffer) - 2)
 						buffer[idx++] = *src;
 					src++;
 				}
+
 				buffer[idx++] = '/';
 				for (p = req_filename; *p != '\0'; p++)
 					if (idx < sizeof(buffer) - 1)
@@ -516,7 +557,8 @@ static Bool menu_parser_include_file(WMenuParser parser)
 				buffer[idx] = '\0';
 
 				fh = fopen(fullfilename, "rb");
-				if (fh != NULL) goto found_valid_file;
+				if (fh != NULL)
+					goto found_valid_file;
 
 				if (*src == ':')
 					src++;
@@ -527,14 +569,14 @@ static Bool menu_parser_include_file(WMenuParser parser)
 	}
 
 	/* Found the file, make it our new source */
- found_valid_file:
+found_valid_file:
 	parser->include_file = menu_parser_create_new(wstrdup(req_filename), fh, parser->include_default_paths);
 	parser->include_file->parent_file = parser;
 	return True;
 }
 
 /* Check wether a macro exists or not, and marks the parser to ignore the
-   following data accordingly */
+ * following data accordingly */
 static void menu_parser_condition_ifmacro(WMenuParser parser, Bool check_exists)
 {
 	WParserMacro *macro;
@@ -557,18 +599,21 @@ static void menu_parser_condition_ifmacro(WMenuParser parser, Bool check_exists)
 		WMenuParserError(parser, _("too many nested #if sequences") );
 		return;
 	}
+
 	for (idx = parser->cond.depth - 1; idx >= 0; idx--)
 		parser->cond.stack[idx + 1] = parser->cond.stack[idx];
+
 	parser->cond.depth++;
 
-	if (parser->cond.stack[1].skip)
+	if (parser->cond.stack[1].skip) {
 		parser->cond.stack[0].skip = True;
-	else {
+	} else {
 		macro = menu_parser_find_macro(parser, macro_name);
 		parser->cond.stack[0].skip =
 			((check_exists)  && (macro == NULL)) ||
 			((!check_exists) && (macro != NULL)) ;
 	}
+
 	strcpy(parser->cond.stack[0].name, cmd_name);
 	parser->cond.stack[0].line = parser->line_number;
 }
@@ -580,8 +625,9 @@ static void menu_parser_condition_else(WMenuParser parser)
 		WMenuParserError(parser, _("found #%s but have no matching #if"), "else" );
 		return;
 	}
+
+	/* The containing #if is false, so we continue skipping anyway */
 	if ((parser->cond.depth > 1) && (parser->cond.stack[1].skip))
-		// The containing #if is false, so we continue skipping anyway
 		parser->cond.stack[0].skip = True;
 	else
 		parser->cond.stack[0].skip = !parser->cond.stack[0].skip;
-- 
1.7.10.4

Reply via email to