From 5d5f21bfc5911f9f80b3e24871287ac58db9543f Mon Sep 17 00:00:00 2001 From: Max Kellermann Date: Thu, 5 Sep 2013 18:34:12 +0200 Subject: [PATCH] Tag: compile-time initialisation of ignore_tag_items Move to TagSettings.c and use C99 initializers. --- Makefile.am | 2 +- src/DatabaseSave.cxx | 2 +- src/Main.cxx | 2 -- src/TagPrint.cxx | 2 +- src/tag/Tag.cxx | 10 +-------- src/tag/Tag.hxx | 6 ------ src/tag/TagConfig.cxx | 2 +- src/tag/TagSettings.c | 25 ++++++++++++++++++++++ src/tag/{TagInternal.hxx => TagSettings.h} | 6 ++++-- test/DumpDatabase.cxx | 2 -- 10 files changed, 34 insertions(+), 25 deletions(-) create mode 100644 src/tag/TagSettings.c rename src/tag/{TagInternal.hxx => TagSettings.h} (92%) diff --git a/Makefile.am b/Makefile.am index 0c5a5b373..b775b9d40 100644 --- a/Makefile.am +++ b/Makefile.am @@ -426,7 +426,7 @@ libtag_a_SOURCES =\ src/tag/Tag.cxx src/tag/Tag.hxx \ src/tag/TagItem.hxx \ src/tag/TagHandler.cxx src/tag/TagHandler.hxx \ - src/tag/TagInternal.hxx \ + src/tag/TagSettings.c src/tag/TagSettings.h \ src/tag/TagConfig.cxx src/tag/TagConfig.hxx \ src/tag/TagNames.c \ src/tag/TagString.cxx src/tag/TagString.hxx \ diff --git a/src/DatabaseSave.cxx b/src/DatabaseSave.cxx index 100c9220e..780c404f3 100644 --- a/src/DatabaseSave.cxx +++ b/src/DatabaseSave.cxx @@ -26,7 +26,7 @@ #include "Song.hxx" #include "TextFile.hxx" #include "tag/Tag.hxx" -#include "tag/TagInternal.hxx" +#include "tag/TagSettings.h" #include "fs/Path.hxx" #include "util/Error.hxx" diff --git a/src/Main.cxx b/src/Main.cxx index 9ded73be5..a1138a908 100644 --- a/src/Main.cxx +++ b/src/Main.cxx @@ -38,7 +38,6 @@ #include "Partition.hxx" #include "Volume.hxx" #include "OutputAll.hxx" -#include "tag/Tag.hxx" #include "tag/TagConfig.hxx" #include "replay_gain_config.h" #include "Idle.hxx" @@ -376,7 +375,6 @@ int mpd_main(int argc, char *argv[]) } stats_global_init(); - tag_lib_init(); TagLoadConfig(); if (!log_init(options.verbose, options.log_stderr, error)) { diff --git a/src/TagPrint.cxx b/src/TagPrint.cxx index 3285d63db..e3c2c8c9e 100644 --- a/src/TagPrint.cxx +++ b/src/TagPrint.cxx @@ -20,7 +20,7 @@ #include "config.h" #include "TagPrint.hxx" #include "tag/Tag.hxx" -#include "tag/TagInternal.hxx" +#include "tag/TagSettings.h" #include "Song.hxx" #include "Client.hxx" diff --git a/src/tag/Tag.cxx b/src/tag/Tag.cxx index d0e44862d..24f3ea1e9 100644 --- a/src/tag/Tag.cxx +++ b/src/tag/Tag.cxx @@ -19,9 +19,9 @@ #include "config.h" #include "Tag.hxx" -#include "TagInternal.hxx" #include "TagPool.hxx" #include "TagString.hxx" +#include "TagSettings.h" #include #include @@ -40,8 +40,6 @@ static struct { TagItem *items[BULK_MAX]; } bulk; -bool ignore_tag_items[TAG_NUM_OF_ITEM_TYPES]; - enum tag_type tag_name_parse(const char *name) { @@ -78,12 +76,6 @@ items_size(const Tag &tag) return tag.num_items * sizeof(TagItem *); } -void tag_lib_init(void) -{ - /* ignore comments by default */ - ignore_tag_items[TAG_COMMENT] = true; -} - void Tag::Clear() { diff --git a/src/tag/Tag.hxx b/src/tag/Tag.hxx index fc9ad0bbb..bfbebe671 100644 --- a/src/tag/Tag.hxx +++ b/src/tag/Tag.hxx @@ -186,10 +186,4 @@ tag_name_parse(const char *name); enum tag_type tag_name_parse_i(const char *name); -/** - * Initializes the tag library. - */ -void -tag_lib_init(); - #endif diff --git a/src/tag/TagConfig.cxx b/src/tag/TagConfig.cxx index 22f7a64fa..9e47cd05b 100644 --- a/src/tag/TagConfig.cxx +++ b/src/tag/TagConfig.cxx @@ -19,7 +19,7 @@ #include "config.h" #include "TagConfig.hxx" -#include "TagInternal.hxx" +#include "TagSettings.h" #include "Tag.hxx" #include "ConfigGlobal.hxx" #include "ConfigOption.hxx" diff --git a/src/tag/TagSettings.c b/src/tag/TagSettings.c new file mode 100644 index 000000000..eb2db2ba5 --- /dev/null +++ b/src/tag/TagSettings.c @@ -0,0 +1,25 @@ +/* + * Copyright (C) 2003-2013 The Music Player Daemon Project + * http://www.musicpd.org + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License along + * with this program; if not, write to the Free Software Foundation, Inc., + * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. + */ + +#include "TagSettings.h" + +bool ignore_tag_items[TAG_NUM_OF_ITEM_TYPES] = { + /* ignore comments by default */ + [TAG_COMMENT] = true, +}; diff --git a/src/tag/TagInternal.hxx b/src/tag/TagSettings.h similarity index 92% rename from src/tag/TagInternal.hxx rename to src/tag/TagSettings.h index 8172d1319..245de2df5 100644 --- a/src/tag/TagInternal.hxx +++ b/src/tag/TagSettings.h @@ -17,11 +17,13 @@ * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. */ -#ifndef MPD_TAG_INTERNAL_HXX -#define MPD_TAG_INTERNAL_HXX +#ifndef MPD_TAG_SETTINGS_H +#define MPD_TAG_SETTINGS_H #include "TagType.h" +#include + extern bool ignore_tag_items[TAG_NUM_OF_ITEM_TYPES]; #endif diff --git a/test/DumpDatabase.cxx b/test/DumpDatabase.cxx index f9deabba5..9179c7e05 100644 --- a/test/DumpDatabase.cxx +++ b/test/DumpDatabase.cxx @@ -26,7 +26,6 @@ #include "PlaylistVector.hxx" #include "ConfigGlobal.hxx" #include "ConfigData.hxx" -#include "tag/Tag.hxx" #include "tag/TagConfig.hxx" #include "fs/Path.hxx" #include "util/Error.hxx" @@ -105,7 +104,6 @@ main(int argc, char **argv) return EXIT_FAILURE; } - tag_lib_init(); TagLoadConfig(); /* do it */