cmark

My personal build of CMark ✏️

config.h.in (1408B)

 1 #ifndef CMARK_CONFIG_H
 2 #define CMARK_CONFIG_H
 3 
 4 #ifdef __cplusplus
 5 extern "C" {
 6 #endif
 7 
 8 #cmakedefine HAVE_STDBOOL_H
 9 
10 #ifdef HAVE_STDBOOL_H
11   #include <stdbool.h>
12 #elif !defined(__cplusplus)
13   typedef char bool;
14 #endif
15 
16 #cmakedefine HAVE___BUILTIN_EXPECT
17 
18 #cmakedefine HAVE___ATTRIBUTE__
19 
20 #ifdef HAVE___ATTRIBUTE__
21   #define CMARK_ATTRIBUTE(list) __attribute__ (list)
22 #else
23   #define CMARK_ATTRIBUTE(list)
24 #endif
25 
26 #ifndef CMARK_INLINE
27   #if defined(_MSC_VER) && !defined(__cplusplus)
28     #define CMARK_INLINE __inline
29   #else
30     #define CMARK_INLINE inline
31   #endif
32 #endif
33 
34 /* snprintf and vsnprintf fallbacks for MSVC before 2015,
35    due to Valentin Milea http://stackoverflow.com/questions/2915672/
36 */
37 
38 #if defined(_MSC_VER) && _MSC_VER < 1900
39 
40 #include <stdio.h>
41 #include <stdarg.h>
42 
43 #define snprintf c99_snprintf
44 #define vsnprintf c99_vsnprintf
45 
46 CMARK_INLINE int c99_vsnprintf(char *outBuf, size_t size, const char *format, va_list ap)
47 {
48     int count = -1;
49 
50     if (size != 0)
51         count = _vsnprintf_s(outBuf, size, _TRUNCATE, format, ap);
52     if (count == -1)
53         count = _vscprintf(format, ap);
54 
55     return count;
56 }
57 
58 CMARK_INLINE int c99_snprintf(char *outBuf, size_t size, const char *format, ...)
59 {
60     int count;
61     va_list ap;
62 
63     va_start(ap, format);
64     count = c99_vsnprintf(outBuf, size, format, ap);
65     va_end(ap);
66 
67     return count;
68 }
69 
70 #endif
71 
72 #ifdef __cplusplus
73 }
74 #endif
75 
76 #endif