diff --git a/hmml_to_html/hmml_to_html.c b/hmml_to_html/hmml_to_html.c index 7713775..916b2df 100644 --- a/hmml_to_html/hmml_to_html.c +++ b/hmml_to_html/hmml_to_html.c @@ -1,6 +1,6 @@ #if 0 ctime -begin ${0%.*}.ctm -gcc -g -Wall -fsanitize=address -std=c99 $0 -o ${0%.*} hmml.a +gcc -g -Wall -fsanitize=address -std=c99 -pipe $0 -o ${0%.*} hmml.a ctime -end ${0%.*}.ctm exit #endif @@ -179,6 +179,7 @@ CopyStringNoFormat(char *Dest, char *String) *Dest++ = *String++; ++Length; } + *Dest = '\0'; return Length; } @@ -2431,7 +2432,7 @@ HMML.metadata.project); (TemplatePtr+2 - TemplateBuffer < TemplateSize && TemplatePtr[2] == '-')) { char *CommentStart = &OutputPtr[-1]; - while(TemplatePtr - TemplateBuffer < TemplateSize && *TemplatePtr != '>') + while(TemplatePtr - TemplateBuffer < TemplateSize) { if(*TemplatePtr == '_') { @@ -2445,11 +2446,16 @@ HMML.metadata.project); FoundHeader = TRUE; OutputPtr = CommentStart; OutputPtr += CopyStringNoFormat(OutputPtr, Header.Location); - while(TemplatePtr - TemplateBuffer < TemplateSize && *TemplatePtr != '>') + while(TemplatePtr - TemplateBuffer < TemplateSize) { + if(TemplatePtr[0] == '>' && TemplatePtr[-1] == '-' && TemplatePtr[-2] == '-') + { + break; + } ++TemplatePtr; } ++TemplatePtr; + break; } else if(!(StringsDifferT(TitleTag, TemplatePtr, '\0'))) { @@ -2466,11 +2472,16 @@ HMML.metadata.project); FoundTitle = TRUE; OutputPtr = CommentStart; OutputPtr += CopyStringNoFormat(OutputPtr, Title.Location); - while(TemplatePtr - TemplateBuffer < TemplateSize && *TemplatePtr != '>') + while(TemplatePtr - TemplateBuffer < TemplateSize) { + if(TemplatePtr[0] == '>' && TemplatePtr[-1] == '-' && TemplatePtr[-2] == '-') + { + break; + } ++TemplatePtr; } ++TemplatePtr; + break; } else if(!(StringsDifferT(PlayerTag, TemplatePtr, '\0'))) { @@ -2482,11 +2493,16 @@ HMML.metadata.project); FoundPlayer = TRUE; OutputPtr = CommentStart; OutputPtr += CopyStringNoFormat(OutputPtr, Player.Location); - while(TemplatePtr - TemplateBuffer < TemplateSize && *TemplatePtr != '>') + while(TemplatePtr - TemplateBuffer < TemplateSize) { + if(TemplatePtr[0] == '>' && TemplatePtr[-1] == '-' && TemplatePtr[-2] == '-') + { + break; + } ++TemplatePtr; } ++TemplatePtr; + break; } else if(!(StringsDifferT(ScriptTag, TemplatePtr, '\0'))) { @@ -2498,11 +2514,16 @@ HMML.metadata.project); FoundScript = TRUE; OutputPtr = CommentStart; OutputPtr += CopyStringNoFormat(OutputPtr, Script.Location); - while(TemplatePtr - TemplateBuffer < TemplateSize && *TemplatePtr != '>') + while(TemplatePtr - TemplateBuffer < TemplateSize) { + if(TemplatePtr[0] == '>' && TemplatePtr[-1] == '-' && TemplatePtr[-2] == '-') + { + break; + } ++TemplatePtr; } ++TemplatePtr; + break; } } *OutputPtr++ = *TemplatePtr++;