set_target_properties(libMultiMarkdown PROPERTIES XCODE_ATTRIBUTE_ONLY_ACTIVE_ARCH "NO")
set_target_properties(multimarkdown PROPERTIES XCODE_ATTRIBUTE_ONLY_ACTIVE_ARCH "NO")
-# Use C99
-set_property(TARGET libMultiMarkdown PROPERTY C_STANDARD 99)
-set_property(TARGET multimarkdown PROPERTY C_STANDARD 99)
+# Use C11
+set_property(TARGET libMultiMarkdown PROPERTY C_STANDARD 11)
+set_property(TARGET multimarkdown PROPERTY C_STANDARD 11)
# ==========================
char * mmd_version(void);
+// Read file into memory
+DString * scan_file(const char * fname);
+
+/// MMD Engine is used for storing configuration information for MMD parser
+typedef struct stack stack;
+
+/// Recursively transclude source text, given a search directory.
+/// Track files to prevent infinite recursive loops
+void mmd_transclude_source(DString * source, const char * search_path, const char * source_path, short format, struct stack * parsed, struct stack * manifest);
+
+
/// Token types for parse tree
enum token_types {
DOC_START_TOKEN = 0, //!< DOC_START_TOKEN must be type 0
/// Recursively transclude source text, given a search directory.
/// Track files to prevent infinite recursive loops
-void transclude_source(DString * source, const char * search_path, const char * source_path, short format, stack * parsed, stack * manifest) {
+void mmd_transclude_source(DString * source, const char * search_path, const char * source_path, short format, stack * parsed, stack * manifest) {
DString * file_path;
DString * buffer;
char * source_filename;
split_path_file(&new_search_path, &source_filename, file_path->str);
- transclude_source(buffer, search_folder, new_search_path, format, parse_stack, manifest);
+ mmd_transclude_source(buffer, search_folder, new_search_path, format, parse_stack, manifest);
free(new_search_path);
free(source_filename);
/// Recursively transclude source text, given a search directory.
/// Track files to prevent infinite recursive loops
-void transclude_source(DString * source, const char * search_path, const char * source_path, short format, stack * parsed, stack * manifest);
+void mmd_transclude_source(DString * source, const char * search_path, const char * source_path, short format, stack * parsed, stack * manifest);
#endif
#include "i18n.h"
#include "libMultiMarkdown.h"
#include "token.h"
-#include "transclude.h"
#include "uuid.h"
#include "version.h"
DString * stdin_buffer() {
- /* Read from stdin and return a GString *
+ /* Read from stdin and return a DString *
`buffer` will need to be freed elsewhere */
char chunk[kBUFFERSIZE];
if (extensions & EXT_TRANSCLUDE) {
- transclude_source(buffer, folder, "", format, NULL, NULL);
+ mmd_transclude_source(buffer, folder, "", format, NULL, NULL);
// Don't free folder -- owned by dirname
}
// Perform transclusion(s)
char * folder = dirname((char *) a_file->filename[0]);
- transclude_source(buffer, folder, "", format, NULL, NULL);
+ mmd_transclude_source(buffer, folder, "", format, NULL, NULL);
// Don't free folder -- owned by dirname
}