Skip to content

Commit

Permalink
Support CRLF (aka \r\n) in footnotes
Browse files Browse the repository at this point in the history
  • Loading branch information
bdolman committed Nov 9, 2012
1 parent db63847 commit 511d6e9
Showing 1 changed file with 15 additions and 6 deletions.
21 changes: 15 additions & 6 deletions src/markdown.c
Original file line number Diff line number Diff line change
Expand Up @@ -2445,7 +2445,7 @@ is_footnote(const uint8_t *data, size_t beg, size_t end, size_t *last, struct fo
while (i < end && data[i] == ' ') i++;
if (i < end && (data[i] == '\n' || data[i] == '\r')) {
i++;
if (i < end && data[i] == '\r' && data[i - 1] == '\n') i++;
if (i < end && data[i] == '\n' && data[i - 1] == '\r') i++;
}
while (i < end && data[i] == ' ') i++;
if (i >= end || data[i] == '\n' || data[i] == '\r') return 0;
Expand All @@ -2457,14 +2457,15 @@ is_footnote(const uint8_t *data, size_t beg, size_t end, size_t *last, struct fo

/* process lines similiar to a list item */
while (i < end) {
i++;

while (i < end && data[i - 1] != '\n')
i++;

while (i < end && data[i] != '\n' && data[i] != '\r') i++;

/* process an empty line */
if (is_empty(data + start, i - start)) {
in_empty = 1;
if (i < end && (data[i] == '\n' || data[i] == '\r')) {
i++;
if (i < end && data[i] == '\n' && data[i - 1] == '\r') i++;
}
start = i;
continue;
}
Expand All @@ -2488,6 +2489,14 @@ is_footnote(const uint8_t *data, size_t beg, size_t end, size_t *last, struct fo

/* adding the line into the content buffer */
bufput(contents, data + start + ind, i - start - ind);
/* add carriage return */
if (i < end) {
bufput(contents, "\n", 1);
if (i < end && (data[i] == '\n' || data[i] == '\r')) {
i++;
if (i < end && data[i] == '\n' && data[i - 1] == '\r') i++;
}
}
start = i;
}

Expand Down

0 comments on commit 511d6e9

Please sign in to comment.