aboutsummaryrefslogtreecommitdiff
path: root/src/cue
diff options
context:
space:
mode:
authorMax Kellermann <max@duempel.org>2009-12-16 17:27:52 +0100
committerMax Kellermann <max@duempel.org>2009-12-16 17:27:52 +0100
commit67c41033c189f1efccdc4e40a7916c2ad46e40a6 (patch)
tree4301cc4cc19a7d91938b7488d963145fa29ede7d /src/cue
parent59534b92d22b2bd42c3c222e00c2e5563402aeb0 (diff)
cue_tag: merged code into cue_tag_merge()
Diffstat (limited to 'src/cue')
-rw-r--r--src/cue/cue_tag.c40
1 files changed, 18 insertions, 22 deletions
diff --git a/src/cue/cue_tag.c b/src/cue/cue_tag.c
index 15cf0015..70f7fc76 100644
--- a/src/cue/cue_tag.c
+++ b/src/cue/cue_tag.c
@@ -155,6 +155,22 @@ cue_tag_track(struct Cdtext *cdtext, struct Rem *rem)
return tag;
}
+static struct tag *
+cue_tag_merge(struct tag *a, struct tag *b)
+{
+ if (a != NULL && b != NULL) {
+ struct tag *merge_tag = tag_merge(a, b);
+ tag_free(a);
+ tag_free(b);
+ return merge_tag;
+ } else if (a != NULL)
+ return a;
+ else if (b != NULL)
+ return b;
+ else
+ return NULL;
+}
+
struct tag *
cue_tag_file(FILE *fp, unsigned tnum)
{
@@ -179,17 +195,7 @@ cue_tag_file(FILE *fp, unsigned tnum)
cd_delete(cd);
- if (cd_tag != NULL && track_tag != NULL) {
- struct tag *merge_tag = tag_merge(cd_tag, track_tag);
- tag_free(cd_tag);
- tag_free(track_tag);
- return merge_tag;
- } else if (cd_tag != NULL)
- return cd_tag;
- else if (track_tag != NULL)
- return track_tag;
- else
- return NULL;
+ return cue_tag_merge(cd_tag, track_tag);
}
struct tag *
@@ -216,15 +222,5 @@ cue_tag_string(const char *str, unsigned tnum)
cd_delete(cd);
- if (cd_tag != NULL && track_tag != NULL) {
- struct tag *merge_tag = tag_merge(cd_tag, track_tag);
- tag_free(cd_tag);
- tag_free(track_tag);
- return merge_tag;
- } else if (cd_tag != NULL)
- return cd_tag;
- else if (track_tag != NULL)
- return track_tag;
- else
- return NULL;
+ return cue_tag_merge(cd_tag, track_tag);
}