lorid

convert chordpro to pdf
git clone git://git.relim.de/lorid.git
Log | Files | Refs | README | LICENSE

commit 95d0641f560ac7c9d85870d25b1618ba7ff83dbc
parent 256bf5225a6d2b502cee6773996de24951ebfa9c
Author: nibo <nibo@relim.de>
Date:   Sat,  3 Aug 2024 15:38:45 +0200

Start working on annotations

Diffstat:
Mchordpro.c | 11+++++++++++
Mchordpro.h | 1+
Mtodo | 1+
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