commit 95d0641f560ac7c9d85870d25b1618ba7ff83dbc
parent 256bf5225a6d2b502cee6773996de24951ebfa9c
Author: nibo <nibo@relim.de>
Date: Sat, 3 Aug 2024 15:38:45 +0200
Start working on annotations
Diffstat:
3 files changed, 13 insertions(+), 0 deletions(-)
diff --git a/chordpro.c b/chordpro.c
@@ -79,6 +79,8 @@ static const char *the_state(enum State state)
return "STATE_DIRECTIVE_VALUE";
case STATE_CHORD:
return "STATE_CHORD";
+ case STATE_ANNOTATION:
+ return "STATE_ANNOTATION";
case STATE_MARKUP_TAG_BEGIN:
return "STATE_MARKUP_TAG_BEGIN";
case STATE_MARKUP_TAG_END:
@@ -1760,6 +1762,7 @@ struct ChoSong **cho_songs_parse(FILE *fp, struct Config *config)
char chord[15];
char tag_begin[6];
char tag_end[6];
+ char annotation[512];
enum State state = STATE_LYRICS;
enum State return_to_state;
unsigned int line_number = 1;
@@ -2149,9 +2152,17 @@ struct ChoSong **cho_songs_parse(FILE *fp, struct Config *config)
state = STATE_LYRICS;
break;
}
+ if (prev_buf == '[' && buf == '*') {
+ state = STATE_ANNOTATION;
+ break;
+ }
chord[ch] = buf;
ch++;
break;
+ case STATE_ANNOTATION:
+ if (buf == ']') {
+ }
+ break;
case STATE_MARKUP_TAG_BEGIN:
MARKUP_TAG_BEGIN:
if (buf == '>') {
diff --git a/chordpro.h b/chordpro.h
@@ -96,6 +96,7 @@ enum State {
STATE_DIRECTIVE_NAME,
STATE_DIRECTIVE_VALUE,
STATE_CHORD,
+ STATE_ANNOTATION,
STATE_MARKUP_TAG_BEGIN,
STATE_MARKUP_TAG_END,
STATE_MARKUP_TAG,
diff --git a/todo b/todo
@@ -17,3 +17,4 @@ introduce parse errors
metadata items need a style
font, size, colour directives
new_song directive
+continue line if it ends with a backslash