]> git.wincent.com - wikitext.git/commitdiff
Define and use TRUE and FALSE macros
authorWincent Colaiuta <win@wincent.com>
Fri, 8 May 2009 13:28:24 +0000 (15:28 +0200)
committerWincent Colaiuta <win@wincent.com>
Fri, 8 May 2009 13:28:24 +0000 (15:28 +0200)
This should be slightly more readable and less error-prone.

Signed-off-by: Wincent Colaiuta <win@wincent.com>
ext/parser.c

index 32c977680527d69cda7856c4793294f917b784f8..d28ade20595916d3f9687734f1a9330f5b769323 100644 (file)
 
 #define IN(type) ary_includes(parser->scope, type)
 
 
 #define IN(type) ary_includes(parser->scope, type)
 
+#ifndef TRUE
+#define TRUE 1
+#else
+#warning TRUE macro already defined
+#endif
+
+#ifndef FALSE
+#define FALSE 0
+#else
+#warning FALSE macro already defined
+#endif
+
 // poor man's object orientation in C:
 // instead of parsing around multiple parameters between functions in the parser
 // we pack everything into a struct and pass around only a pointer to that
 // poor man's object orientation in C:
 // instead of parsing around multiple parameters between functions in the parser
 // we pack everything into a struct and pass around only a pointer to that
@@ -45,9 +57,9 @@ typedef struct
     ary_t   *scope;                 // stack for tracking scope
     ary_t   *line;                  // stack for tracking scope as implied by current line
     ary_t   *line_buffer;           // stack for tracking raw tokens (not scope) on current line
     ary_t   *scope;                 // stack for tracking scope
     ary_t   *line;                  // stack for tracking scope as implied by current line
     ary_t   *line_buffer;           // stack for tracking raw tokens (not scope) on current line
-    int     pending_crlf;           // boolean (1/true or 0/false)
-    int     autolink;               // boolean (1/true or 0/false)
-    int     space_to_underscore;    // boolean (1/true or 0/false)
+    int     pending_crlf;           // boolean
+    int     autolink;               // boolean
+    int     space_to_underscore;    // boolean
     str_t   *line_ending;
     int     base_indent;            // controlled by the :indent option to Wikitext::Parser#parse
     int     current_indent;         // fluctuates according to currently nested structures
     str_t   *line_ending;
     int     base_indent;            // controlled by the :indent option to Wikitext::Parser#parse
     int     current_indent;         // fluctuates according to currently nested structures
@@ -519,7 +531,7 @@ void _Wikitext_start_para_if_necessary(parser_t *parser)
             // PRE blocks can have pending CRLF too (helps us avoid emitting the trailing newline)
             rb_str_cat(parser->output, parser->line_ending->ptr, parser->line_ending->len);
     }
             // PRE blocks can have pending CRLF too (helps us avoid emitting the trailing newline)
             rb_str_cat(parser->output, parser->line_ending->ptr, parser->line_ending->len);
     }
-    parser->pending_crlf = 0; // false
+    parser->pending_crlf = FALSE;
 }
 
 void _Wikitext_emit_pending_crlf_if_necessary(parser_t *parser)
 }
 
 void _Wikitext_emit_pending_crlf_if_necessary(parser_t *parser)
@@ -527,7 +539,7 @@ void _Wikitext_emit_pending_crlf_if_necessary(parser_t *parser)
     if (parser->pending_crlf)
     {
         rb_str_cat(parser->output, parser->line_ending->ptr, parser->line_ending->len);
     if (parser->pending_crlf)
     {
         rb_str_cat(parser->output, parser->line_ending->ptr, parser->line_ending->len);
-        parser->pending_crlf = 0; // false
+        parser->pending_crlf = FALSE;
     }
 }
 
     }
 }
 
@@ -854,7 +866,7 @@ VALUE Wikitext_parser_encode_link_target(VALUE self, VALUE in)
 {
     parser_t parser;
     parser.link_target              = in;
 {
     parser_t parser;
     parser.link_target              = in;
-    parser.space_to_underscore      = 0; // false
+    parser.space_to_underscore      = FALSE;
     _Wikitext_parser_encode_link_target(&parser);
     return parser.link_target;
 }
     _Wikitext_parser_encode_link_target(&parser);
     return parser.link_target;
 }
@@ -864,25 +876,25 @@ VALUE Wikitext_parser_encode_special_link_target(VALUE self, VALUE in)
 {
     parser_t parser;
     parser.link_target              = in;
 {
     parser_t parser;
     parser.link_target              = in;
-    parser.space_to_underscore      = 0; // false
+    parser.space_to_underscore      = FALSE;
     _Wikitext_parser_encode_link_target(&parser);
     return parser.link_target;
 }
 
     _Wikitext_parser_encode_link_target(&parser);
     return parser.link_target;
 }
 
-// returns 1 (true) if supplied string is blank (nil, empty, or all whitespace)
-// returns 0 (false) otherwise
+// returns 1 (TRUE) if supplied string is blank (nil, empty, or all whitespace)
+// returns 0 (FALSE) otherwise
 int _Wikitext_blank(VALUE str)
 {
     if (NIL_P(str) || RSTRING_LEN(str) == 0)
 int _Wikitext_blank(VALUE str)
 {
     if (NIL_P(str) || RSTRING_LEN(str) == 0)
-        return 1;
+        return TRUE;
     for (char *ptr = RSTRING_PTR(str),
         *end = RSTRING_PTR(str) + RSTRING_LEN(str);
         ptr < end; ptr++)
     {
         if (*ptr != ' ')
     for (char *ptr = RSTRING_PTR(str),
         *end = RSTRING_PTR(str) + RSTRING_LEN(str);
         ptr < end; ptr++)
     {
         if (*ptr != ' ')
-            return 0;
+            return FALSE;
     }
     }
-    return 1;
+    return TRUE;
 }
 
 void _Wikitext_rollback_failed_internal_link(parser_t *parser)
 }
 
 void _Wikitext_rollback_failed_internal_link(parser_t *parser)
@@ -1065,9 +1077,9 @@ VALUE Wikitext_parser_parse(int argc, VALUE *argv, VALUE self)
     GC_WRAP_ARY(parser->line, line_gc);
     parser->line_buffer             = ary_new();
     GC_WRAP_ARY(parser->line_buffer, line_buffer_gc);
     GC_WRAP_ARY(parser->line, line_gc);
     parser->line_buffer             = ary_new();
     GC_WRAP_ARY(parser->line_buffer, line_buffer_gc);
-    parser->pending_crlf            = 0; // false
-    parser->autolink                = rb_iv_get(self, "@autolink") == Qtrue ? 1 : 0;
-    parser->space_to_underscore     = rb_iv_get(self, "@space_to_underscore") == Qtrue ? 1 : 0;
+    parser->pending_crlf            = FALSE;
+    parser->autolink                = rb_iv_get(self, "@autolink") == Qtrue ? TRUE : FALSE;
+    parser->space_to_underscore     = rb_iv_get(self, "@space_to_underscore") == Qtrue ? TRUE : FALSE;
     parser->line_ending             = str_new_from_string(line_ending);
     GC_WRAP_STR(parser->line_ending, line_ending_gc);
     parser->base_indent             = base_indent;
     parser->line_ending             = str_new_from_string(line_ending);
     GC_WRAP_STR(parser->line_ending, line_ending_gc);
     parser->base_indent             = base_indent;
@@ -1162,7 +1174,7 @@ VALUE Wikitext_parser_parse(int argc, VALUE *argv, VALUE self)
 
                 if (!IN(PRE))
                 {
 
                 if (!IN(PRE))
                 {
-                    parser->pending_crlf = 0; // false
+                    parser->pending_crlf = FALSE;
                     _Wikitext_pop_from_stack_up_to(parser, Qnil, BLOCKQUOTE, Qfalse);
                     _Wikitext_indent(parser);
                     rb_str_cat(parser->output, pre_start, sizeof(pre_start) - 1);
                     _Wikitext_pop_from_stack_up_to(parser, Qnil, BLOCKQUOTE, Qfalse);
                     _Wikitext_indent(parser);
                     rb_str_cat(parser->output, pre_start, sizeof(pre_start) - 1);
@@ -2449,7 +2461,7 @@ VALUE Wikitext_parser_parse(int argc, VALUE *argv, VALUE self)
 
             case CRLF:
                 i = parser->pending_crlf;
 
             case CRLF:
                 i = parser->pending_crlf;
-                parser->pending_crlf = 0; // false
+                parser->pending_crlf = FALSE;
                 _Wikitext_rollback_failed_link(parser); // if any
                 if (IN(NO_WIKI_START) || IN(PRE_START))
                 {
                 _Wikitext_rollback_failed_link(parser); // if any
                 if (IN(NO_WIKI_START) || IN(PRE_START))
                 {
@@ -2484,14 +2496,14 @@ VALUE Wikitext_parser_parse(int argc, VALUE *argv, VALUE self)
                             _Wikitext_pop_from_stack_up_to(parser, parser->output, PRE, Qtrue);
                         else
                             // potentially will emit
                             _Wikitext_pop_from_stack_up_to(parser, parser->output, PRE, Qtrue);
                         else
                             // potentially will emit
-                            parser->pending_crlf = 1; // true;
+                            parser->pending_crlf = TRUE;
 
                         continue; // jump back to top of loop to handle token grabbed via lookahead
                     }
                 }
                 else
                 {
 
                         continue; // jump back to top of loop to handle token grabbed via lookahead
                     }
                 }
                 else
                 {
-                    parser->pending_crlf = 1; // true
+                    parser->pending_crlf = TRUE;
 
                     // count number of BLOCKQUOTE tokens in line buffer (can be zero) and pop back to that level
                     // as a side effect, this handles any open span-level elements and unclosed blocks
 
                     // count number of BLOCKQUOTE tokens in line buffer (can be zero) and pop back to that level
                     // as a side effect, this handles any open span-level elements and unclosed blocks
@@ -2501,7 +2513,7 @@ VALUE Wikitext_parser_parse(int argc, VALUE *argv, VALUE self)
                     {
                         if (parser->scope->count > 0 && ary_entry(parser->scope, -1) == LI)
                         {
                     {
                         if (parser->scope->count > 0 && ary_entry(parser->scope, -1) == LI)
                         {
-                            parser->pending_crlf = 0; // false
+                            parser->pending_crlf = FALSE;
                             break;
                         }
 
                             break;
                         }
 
@@ -2514,7 +2526,7 @@ VALUE Wikitext_parser_parse(int argc, VALUE *argv, VALUE self)
                             if (NO_ITEM(ary_entry(parser->line_buffer, -2)) ||
                                 (ary_entry(parser->line_buffer, -2) == BLOCKQUOTE && !IN(BLOCKQUOTE_START)))
                                 // paragraph break
                             if (NO_ITEM(ary_entry(parser->line_buffer, -2)) ||
                                 (ary_entry(parser->line_buffer, -2) == BLOCKQUOTE && !IN(BLOCKQUOTE_START)))
                                 // paragraph break
-                                parser->pending_crlf = 0; // false
+                                parser->pending_crlf = FALSE;
                             else
                                 // not a paragraph break!
                                 continue;
                             else
                                 // not a paragraph break!
                                 continue;