]> granicus.if.org Git - multimarkdown/commitdiff
UPDATED: Update char.c
authorFletcher T. Penney <fletcher@fletcherpenney.net>
Mon, 4 Feb 2019 00:17:55 +0000 (19:17 -0500)
committerFletcher T. Penney <fletcher@fletcherpenney.net>
Mon, 4 Feb 2019 00:17:55 +0000 (19:17 -0500)
Sources/libMultiMarkdown/char.c
Sources/libMultiMarkdown/char.h
Sources/libMultiMarkdown/char_lookup.c

index 286cf6f471ae1641a7d4c8572568967a31c40995..213ca0a65e34bb285f62c6e8c00791b49d7f0b05 100644 (file)
@@ -14,7 +14,7 @@
 
 /*
 
-       Copyright © 2016 - 2017 Fletcher T. Penney.
+       Copyright © 2016 - 2019 Fletcher T. Penney.
 
 
        The `MultiMarkdown 6` project is released under the MIT License..
@@ -61,7 +61,7 @@
 static unsigned char smart_char_type[256] = {
        16,  0,  0,  0,  0,  0,  0,  0,  0,  1, 16,  0,  0, 16,  0,  0,
        0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
-       1,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,  2,
+       1,  2,  2,  2,  2,  2,  2, 34,  2,  2,  2,  2,  2, 34,  2,  2,
        8,  8,  8,  8,  8,  8,  8,  8,  8,  8,  2,  2,  2,  2,  2,  2,
        2,  4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  4,
        4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  4,  2,  2,  2,  2,  2,
@@ -74,7 +74,7 @@ static unsigned char smart_char_type[256] = {
        0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
        0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
        0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
-       0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0
+       0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
 };
 
 
@@ -86,6 +86,8 @@ static int CHAR_WHITESPACE_OR_LINE_ENDING = CHAR_WHITESPACE | CHAR_LINE_ENDING;
 
 static int CHAR_WHITESPACE_OR_LINE_ENDING_OR_PUNCTUATION = CHAR_WHITESPACE | CHAR_LINE_ENDING | CHAR_PUNCTUATION;
 
+static int CHAR_ALPHA_OR_INTRAWORD = CHAR_ALPHA | CHAR_INTRAWORD;
+
 
 // Is character whitespace?
 int char_is_whitespace(char c) {
@@ -140,6 +142,11 @@ int char_is_alphanumeric(char c) {
        return smart_char_type[(unsigned char) c] & CHAR_ALPHANUMERIC;
 }
 
+// Is character a valid intraword character?
+int char_is_intraword(char c) {
+       return smart_char_type[(unsigned char) c] & CHAR_ALPHA_OR_INTRAWORD;
+}
+
 // Is character either whitespace or line ending?
 int char_is_whitespace_or_line_ending(char c) {
        return smart_char_type[(unsigned char) c] & CHAR_WHITESPACE_OR_LINE_ENDING;
index ffae4513b9a0afab1d8e9a19132da7148695aa01..006ac1ce72974960f8fd6b843e3f36ac35fa2019 100644 (file)
@@ -14,7 +14,7 @@
 
 /*
 
-       Copyright © 2016 - 2017 Fletcher T. Penney.
+       Copyright © 2016 - 2019 Fletcher T. Penney.
 
 
        The `MultiMarkdown 6` project is released under the MIT License..
@@ -67,6 +67,7 @@ enum char_types {
        CHAR_ALPHA                              = 1 << 2,       //!< a-zA-Z
        CHAR_DIGIT                              = 1 << 3,       //!< 0-9
        CHAR_LINE_ENDING                = 1 << 4,       //!< \n,\r,\0
+       CHAR_INTRAWORD                  = 1 << 5,       //!< Punctuation that might be inside a word -'
 };
 
 
@@ -91,6 +92,9 @@ int char_is_digit(char c);
 // Is character alphanumeric?
 int char_is_alphanumeric(char c);
 
+// Is character a valid intraword character?
+int char_is_intraword(char c);
+
 // Is character either whitespace or line ending?
 int char_is_whitespace_or_line_ending(char c);
 
index 952954485ce0907fdc1da159a4c9161995fbb1f2..90348ea79f96e30645a0913dea4767c698a81ab0 100644 (file)
@@ -14,7 +14,7 @@
 
 /*
 
-       Copyright © 2016 - 2017 Fletcher T. Penney.
+       Copyright © 2016 - 2019 Fletcher T. Penney.
 
 
        The `MultiMarkdown 6` project is released under the MIT License..
@@ -64,6 +64,7 @@
 #define alpha(x)               table[x] |= CHAR_ALPHA
 #define digit(x)               table[x] |= CHAR_DIGIT
 #define line_ending(x) table[x] |= CHAR_LINE_ENDING
+#define intraword(x)   table[x] |= CHAR_INTRAWORD
 
 #define USE_EXTENDED_ASCII_disabled 1
 
@@ -112,6 +113,10 @@ int main( int argc, char ** argv ) {
        punctuation('|');
 
 
+       // Define intra-word punctuation
+       intraword('\'');
+       intraword('-');
+
        // Define whitespace
        whitespace(' ');
        whitespace('\t');