]> ocean-lang.org Git - ocean/blobdiff - csrc/mdcode.mdc
oceani: simplify test in var_block_close.
[ocean] / csrc / mdcode.mdc
index e1498cea31ab05c22628861fc301c3af7d947bdb..cf6887dea25c316bab6bc6679ce2f8e2d622a046 100644 (file)
@@ -119,7 +119,6 @@ will "do the right thing".
        libmdcode.o : libmdcode.c mdcode.h
                $(CC) $(CFLAGS) -c libmdcode.c
 
-
 ### File: md2c.c
 
        #include <unistd.h>
@@ -162,8 +161,11 @@ the root.
 
 Finally we need to know if the `code_node` was recognised by being
 indented or not.  If it was, the client of this data will want to
-strip of the leading tab or 4 spaces.  Hence a `needs_strip` flag is
-needed.
+strip off the leading tab or 4 spaces.  Hence a `needs_strip` flag is
+needed.  This will be set to 8 if a tab is found and 4 if four spaces are found.
+This means the relative indent of text in the node
+is `node->indent - node->needs_strip`.
+The relative indent is needed for detecting indents in the overall file.
 
 ##### exported types
 
@@ -288,7 +290,13 @@ in a new node.
                n->code = txt;
                n->indent = 0;
                n->line_no = line_no;
-               n->needs_strip = needs_strip;
+               if (needs_strip) {
+                       if (txt.txt[0] == '\t')
+                               n->needs_strip = 8;
+                       else
+                               n->needs_strip = 4;
+               } else
+                       n->needs_strip = 0;
                n->next = NULL;
                n->child = NULL;
                if (where->last)
@@ -577,7 +585,6 @@ end of the code, we don't need to check for these blank lines.
                return c;
        }
 
-
        static char *take_code(char *pos, char *end, char *marker,
                               struct psection **table, struct text section,
                               int *line_nop)
@@ -774,7 +781,6 @@ error message - a `code_err_fn`.
 
        struct section *code_extract(char *pos, char *end, code_err_fn error);
 
-
 ## Using the library
 
 Now that we can extract code from a document and link it all together
@@ -883,7 +889,6 @@ And now we take a single file name, extract the code, and if there are
 no error we write out a file for each appropriate code section.  And
 we are done.
 
-
 ##### client includes
 
        #include <fcntl.h>