summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorKevin Wojniak <kainjow@kainjow.com>2015-08-10 09:45:59 -0700
committerKevin Wojniak <kainjow@kainjow.com>2015-08-10 09:46:49 -0700
commit7baf9297f4f2e368c7c91ac76e16e88902987ec6 (patch)
treecaed64a23fd6b35d8e8d1070575e751b6f033b90 /src
parenta541e39f69cfa75422fbe70c59c2ac40fbdbe1d7 (diff)
Fix MSVC inline errors when cmark is included in other sources that don't have the same set of disabled warnings
Diffstat (limited to 'src')
-rw-r--r--src/buffer.h6
-rw-r--r--src/chunk.h20
-rw-r--r--src/config.h.in8
3 files changed, 21 insertions, 13 deletions
diff --git a/src/buffer.h b/src/buffer.h
index e99db72..88b79f3 100644
--- a/src/buffer.h
+++ b/src/buffer.h
@@ -48,7 +48,7 @@ unsigned char *cmark_strbuf_detach(cmark_strbuf *buf);
void cmark_strbuf_copy_cstr(char *data, bufsize_t datasize,
const cmark_strbuf *buf);
-static inline const char *cmark_strbuf_cstr(const cmark_strbuf *buf) {
+CMARK_INLINE const char *cmark_strbuf_cstr(const cmark_strbuf *buf) {
return (char *)buf->ptr;
}
@@ -75,14 +75,14 @@ void cmark_strbuf_unescape(cmark_strbuf *s);
/* Print error and abort. */
void cmark_strbuf_overflow_err(void);
-static inline bufsize_t cmark_strbuf_check_bufsize(size_t size) {
+CMARK_INLINE bufsize_t cmark_strbuf_check_bufsize(size_t size) {
if (size > BUFSIZE_MAX) {
cmark_strbuf_overflow_err();
}
return (bufsize_t)size;
}
-static inline bufsize_t cmark_strbuf_safe_strlen(const char *str) {
+CMARK_INLINE bufsize_t cmark_strbuf_safe_strlen(const char *str) {
return cmark_strbuf_check_bufsize(strlen(str));
}
diff --git a/src/chunk.h b/src/chunk.h
index db1bf0d..90cf568 100644
--- a/src/chunk.h
+++ b/src/chunk.h
@@ -16,7 +16,7 @@ typedef struct {
bufsize_t alloc; // also implies a NULL-terminated string
} cmark_chunk;
-static inline void cmark_chunk_free(cmark_chunk *c) {
+CMARK_INLINE void cmark_chunk_free(cmark_chunk *c) {
if (c->alloc)
free(c->data);
@@ -25,7 +25,7 @@ static inline void cmark_chunk_free(cmark_chunk *c) {
c->len = 0;
}
-static inline void cmark_chunk_ltrim(cmark_chunk *c) {
+CMARK_INLINE void cmark_chunk_ltrim(cmark_chunk *c) {
assert(!c->alloc);
while (c->len && cmark_isspace(c->data[0])) {
@@ -34,7 +34,7 @@ static inline void cmark_chunk_ltrim(cmark_chunk *c) {
}
}
-static inline void cmark_chunk_rtrim(cmark_chunk *c) {
+CMARK_INLINE void cmark_chunk_rtrim(cmark_chunk *c) {
while (c->len > 0) {
if (!cmark_isspace(c->data[c->len - 1]))
break;
@@ -43,19 +43,19 @@ static inline void cmark_chunk_rtrim(cmark_chunk *c) {
}
}
-static inline void cmark_chunk_trim(cmark_chunk *c) {
+CMARK_INLINE void cmark_chunk_trim(cmark_chunk *c) {
cmark_chunk_ltrim(c);
cmark_chunk_rtrim(c);
}
-static inline bufsize_t cmark_chunk_strchr(cmark_chunk *ch, int c,
+CMARK_INLINE bufsize_t cmark_chunk_strchr(cmark_chunk *ch, int c,
bufsize_t offset) {
const unsigned char *p =
(unsigned char *)memchr(ch->data + offset, c, ch->len - offset);
return p ? (bufsize_t)(p - ch->data) : ch->len;
}
-static inline const char *cmark_chunk_to_cstr(cmark_chunk *c) {
+CMARK_INLINE const char *cmark_chunk_to_cstr(cmark_chunk *c) {
unsigned char *str;
if (c->alloc) {
@@ -74,7 +74,7 @@ static inline const char *cmark_chunk_to_cstr(cmark_chunk *c) {
return (char *)str;
}
-static inline void cmark_chunk_set_cstr(cmark_chunk *c, const char *str) {
+CMARK_INLINE void cmark_chunk_set_cstr(cmark_chunk *c, const char *str) {
if (c->alloc) {
free(c->data);
}
@@ -90,19 +90,19 @@ static inline void cmark_chunk_set_cstr(cmark_chunk *c, const char *str) {
}
}
-static inline cmark_chunk cmark_chunk_literal(const char *data) {
+CMARK_INLINE cmark_chunk cmark_chunk_literal(const char *data) {
bufsize_t len = data ? cmark_strbuf_safe_strlen(data) : 0;
cmark_chunk c = {(unsigned char *)data, len, 0};
return c;
}
-static inline cmark_chunk cmark_chunk_dup(const cmark_chunk *ch, bufsize_t pos,
+CMARK_INLINE cmark_chunk cmark_chunk_dup(const cmark_chunk *ch, bufsize_t pos,
bufsize_t len) {
cmark_chunk c = {ch->data + pos, len, 0};
return c;
}
-static inline cmark_chunk cmark_chunk_buf_detach(cmark_strbuf *buf) {
+CMARK_INLINE cmark_chunk cmark_chunk_buf_detach(cmark_strbuf *buf) {
cmark_chunk c;
c.len = buf->size;
diff --git a/src/config.h.in b/src/config.h.in
index 5294bc9..a392111 100644
--- a/src/config.h.in
+++ b/src/config.h.in
@@ -15,3 +15,11 @@
#else
#define CMARK_ATTRIBUTE(list)
#endif
+
+#ifndef CMARK_INLINE
+ #ifdef _MSC_VER
+ #define CMARK_INLINE __inline
+ #else
+ #define CMARK_INLINE static inline
+ #endif
+#endif