X-Git-Url: https://ocean-lang.org/code/?a=blobdiff_plain;f=csrc%2Fmdcode.mdc;h=cf6887dea25c316bab6bc6679ce2f8e2d622a046;hb=50d5f6884a6c99e771b4907a03062955e7edbab5;hp=e1498cea31ab05c22628861fc301c3af7d947bdb;hpb=5190fd3edaacdf904e88837a41cbe4e213910a16;p=ocean diff --git a/csrc/mdcode.mdc b/csrc/mdcode.mdc index e1498ce..cf6887d 100644 --- a/csrc/mdcode.mdc +++ b/csrc/mdcode.mdc @@ -119,7 +119,6 @@ will "do the right thing". libmdcode.o : libmdcode.c mdcode.h $(CC) $(CFLAGS) -c libmdcode.c - ### File: md2c.c #include @@ -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