diff --git a/MakeAM.sh b/MakeAM.sh index e09c928f..00d35848 100755 --- a/MakeAM.sh +++ b/MakeAM.sh @@ -2,10 +2,12 @@ rm Makefile.am; echo " #+----------------------------------------------------------------------------+ #| Description: Magic Set Editor - Program to make Magic (tm) cards | -#| Copyright: (C) 2001 - 2007 Twan van Laarhoven | +#| Copyright: (C) 2001 - 2008 Twan van Laarhoven and \"coppro\" | #| License: GNU General Public License 2 or later (see file COPYING) | #+----------------------------------------------------------------------------+ +# This file is generated by MakeAM.sh. DO NOT EDIT! + # This flag allows us to use subdirectories: AUTOMAKE_OPTIONS = subdir-objects @@ -17,4 +19,4 @@ magicseteditor_SOURCES = # The script used to generate is MakeAM.sh " > Makefile.am; -find . -name *.cpp | sed "s/\./magicseteditor_SOURCES += ./" >> Makefile.am; \ No newline at end of file +find . -name *.cpp | sed "s/\./magicseteditor_SOURCES += ./" >> Makefile.am; diff --git a/Makefile.am b/Makefile.am index f12f58d4..6539c18b 100644 --- a/Makefile.am +++ b/Makefile.am @@ -1,10 +1,12 @@ #+----------------------------------------------------------------------------+ #| Description: Magic Set Editor - Program to make Magic (tm) cards | -#| Copyright: (C) 2001 - 2007 Twan van Laarhoven | +#| Copyright: (C) 2001 - 2008 Twan van Laarhoven and "coppro" | #| License: GNU General Public License 2 or later (see file COPYING) | #+----------------------------------------------------------------------------+ +# This file is generated by MakeAM.sh. DO NOT EDIT! + # This flag allows us to use subdirectories: AUTOMAKE_OPTIONS = subdir-objects @@ -171,4 +173,7 @@ magicseteditor_SOURCES += ./src/gui/drop_down_list.cpp magicseteditor_SOURCES += ./src/gui/auto_replace_window.cpp magicseteditor_SOURCES += ./src/gui/packages_window.cpp magicseteditor_SOURCES += ./src/gui/html_export_window.cpp +magicseteditor_SOURCES += ./src/cli/win32_cli_wrapper.cpp +magicseteditor_SOURCES += ./src/cli/cli_main.cpp +magicseteditor_SOURCES += ./src/cli/text_io_handler.cpp magicseteditor_SOURCES += ./src/code_template.cpp diff --git a/Makefile.in b/Makefile.in index 8d64b6cd..c0a7fa05 100644 --- a/Makefile.in +++ b/Makefile.in @@ -16,10 +16,12 @@ #+----------------------------------------------------------------------------+ #| Description: Magic Set Editor - Program to make Magic (tm) cards | -#| Copyright: (C) 2001 - 2007 Twan van Laarhoven | +#| Copyright: (C) 2001 - 2008 Twan van Laarhoven and "coppro" | #| License: GNU General Public License 2 or later (see file COPYING) | #+----------------------------------------------------------------------------+ +# This file is generated by MakeAM.sh. DO NOT EDIT! + VPATH = @srcdir@ pkgdatadir = $(datadir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ @@ -193,6 +195,9 @@ am_magicseteditor_OBJECTS = ./src/util/version.$(OBJEXT) \ ./src/gui/auto_replace_window.$(OBJEXT) \ ./src/gui/packages_window.$(OBJEXT) \ ./src/gui/html_export_window.$(OBJEXT) \ + ./src/cli/win32_cli_wrapper.$(OBJEXT) \ + ./src/cli/cli_main.$(OBJEXT) \ + ./src/cli/text_io_handler.$(OBJEXT) \ ./src/code_template.$(OBJEXT) magicseteditor_OBJECTS = $(am_magicseteditor_OBJECTS) magicseteditor_LDADD = $(LDADD) @@ -417,7 +422,8 @@ magicseteditor_SOURCES = ./src/util/version.cpp \ ./src/gui/package_update_list.cpp ./src/gui/about_window.cpp \ ./src/gui/drop_down_list.cpp ./src/gui/auto_replace_window.cpp \ ./src/gui/packages_window.cpp ./src/gui/html_export_window.cpp \ - ./src/code_template.cpp + ./src/cli/win32_cli_wrapper.cpp ./src/cli/cli_main.cpp \ + ./src/cli/text_io_handler.cpp ./src/code_template.cpp all: all-am .SUFFIXES: @@ -961,6 +967,18 @@ src/gui/control/$(DEPDIR)/$(am__dirstamp): src/gui/$(DEPDIR)/$(am__dirstamp) ./src/gui/html_export_window.$(OBJEXT): src/gui/$(am__dirstamp) \ src/gui/$(DEPDIR)/$(am__dirstamp) +src/cli/$(am__dirstamp): + @$(MKDIR_P) ./src/cli + @: > src/cli/$(am__dirstamp) +src/cli/$(DEPDIR)/$(am__dirstamp): + @$(MKDIR_P) ./src/cli/$(DEPDIR) + @: > src/cli/$(DEPDIR)/$(am__dirstamp) +./src/cli/win32_cli_wrapper.$(OBJEXT): src/cli/$(am__dirstamp) \ + src/cli/$(DEPDIR)/$(am__dirstamp) +./src/cli/cli_main.$(OBJEXT): src/cli/$(am__dirstamp) \ + src/cli/$(DEPDIR)/$(am__dirstamp) +./src/cli/text_io_handler.$(OBJEXT): src/cli/$(am__dirstamp) \ + src/cli/$(DEPDIR)/$(am__dirstamp) ./src/code_template.$(OBJEXT): src/$(am__dirstamp) \ src/$(DEPDIR)/$(am__dirstamp) magicseteditor$(EXEEXT): $(magicseteditor_OBJECTS) $(magicseteditor_DEPENDENCIES) @@ -969,6 +987,9 @@ magicseteditor$(EXEEXT): $(magicseteditor_OBJECTS) $(magicseteditor_DEPENDENCIES mostlyclean-compile: -rm -f *.$(OBJEXT) + -rm -f ./src/cli/cli_main.$(OBJEXT) + -rm -f ./src/cli/text_io_handler.$(OBJEXT) + -rm -f ./src/cli/win32_cli_wrapper.$(OBJEXT) -rm -f ./src/code_template.$(OBJEXT) -rm -f ./src/data/action/keyword.$(OBJEXT) -rm -f ./src/data/action/set.$(OBJEXT) @@ -1132,6 +1153,9 @@ distclean-compile: @AMDEP_TRUE@@am__include@ @am__quote@./src/$(DEPDIR)/code_template.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./src/$(DEPDIR)/main.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./src/cli/$(DEPDIR)/cli_main.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./src/cli/$(DEPDIR)/text_io_handler.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./src/cli/$(DEPDIR)/win32_cli_wrapper.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./src/data/$(DEPDIR)/card.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./src/data/$(DEPDIR)/export_template.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./src/data/$(DEPDIR)/field.Po@am__quote@ @@ -1511,6 +1535,8 @@ distclean-generic: -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) -rm -f src/$(DEPDIR)/$(am__dirstamp) -rm -f src/$(am__dirstamp) + -rm -f src/cli/$(DEPDIR)/$(am__dirstamp) + -rm -f src/cli/$(am__dirstamp) -rm -f src/data/$(DEPDIR)/$(am__dirstamp) -rm -f src/data/$(am__dirstamp) -rm -f src/data/action/$(DEPDIR)/$(am__dirstamp) @@ -1557,7 +1583,7 @@ clean-am: clean-binPROGRAMS clean-generic mostlyclean-am distclean: distclean-am -rm -f $(am__CONFIG_DISTCLEAN_FILES) - -rm -rf ./src/$(DEPDIR) ./src/data/$(DEPDIR) ./src/data/action/$(DEPDIR) ./src/data/field/$(DEPDIR) ./src/data/format/$(DEPDIR) ./src/gfx/$(DEPDIR) ./src/gui/$(DEPDIR) ./src/gui/control/$(DEPDIR) ./src/gui/set/$(DEPDIR) ./src/gui/symbol/$(DEPDIR) ./src/gui/value/$(DEPDIR) ./src/render/card/$(DEPDIR) ./src/render/symbol/$(DEPDIR) ./src/render/text/$(DEPDIR) ./src/render/value/$(DEPDIR) ./src/script/$(DEPDIR) ./src/script/functions/$(DEPDIR) ./src/util/$(DEPDIR) ./src/util/io/$(DEPDIR) + -rm -rf ./src/$(DEPDIR) ./src/cli/$(DEPDIR) ./src/data/$(DEPDIR) ./src/data/action/$(DEPDIR) ./src/data/field/$(DEPDIR) ./src/data/format/$(DEPDIR) ./src/gfx/$(DEPDIR) ./src/gui/$(DEPDIR) ./src/gui/control/$(DEPDIR) ./src/gui/set/$(DEPDIR) ./src/gui/symbol/$(DEPDIR) ./src/gui/value/$(DEPDIR) ./src/render/card/$(DEPDIR) ./src/render/symbol/$(DEPDIR) ./src/render/text/$(DEPDIR) ./src/render/value/$(DEPDIR) ./src/script/$(DEPDIR) ./src/script/functions/$(DEPDIR) ./src/util/$(DEPDIR) ./src/util/io/$(DEPDIR) -rm -f Makefile distclean-am: clean-am distclean-compile distclean-generic \ distclean-hdr distclean-tags @@ -1593,7 +1619,7 @@ installcheck-am: maintainer-clean: maintainer-clean-am -rm -f $(am__CONFIG_DISTCLEAN_FILES) -rm -rf $(top_srcdir)/autom4te.cache - -rm -rf ./src/$(DEPDIR) ./src/data/$(DEPDIR) ./src/data/action/$(DEPDIR) ./src/data/field/$(DEPDIR) ./src/data/format/$(DEPDIR) ./src/gfx/$(DEPDIR) ./src/gui/$(DEPDIR) ./src/gui/control/$(DEPDIR) ./src/gui/set/$(DEPDIR) ./src/gui/symbol/$(DEPDIR) ./src/gui/value/$(DEPDIR) ./src/render/card/$(DEPDIR) ./src/render/symbol/$(DEPDIR) ./src/render/text/$(DEPDIR) ./src/render/value/$(DEPDIR) ./src/script/$(DEPDIR) ./src/script/functions/$(DEPDIR) ./src/util/$(DEPDIR) ./src/util/io/$(DEPDIR) + -rm -rf ./src/$(DEPDIR) ./src/cli/$(DEPDIR) ./src/data/$(DEPDIR) ./src/data/action/$(DEPDIR) ./src/data/field/$(DEPDIR) ./src/data/format/$(DEPDIR) ./src/gfx/$(DEPDIR) ./src/gui/$(DEPDIR) ./src/gui/control/$(DEPDIR) ./src/gui/set/$(DEPDIR) ./src/gui/symbol/$(DEPDIR) ./src/gui/value/$(DEPDIR) ./src/render/card/$(DEPDIR) ./src/render/symbol/$(DEPDIR) ./src/render/text/$(DEPDIR) ./src/render/value/$(DEPDIR) ./src/script/$(DEPDIR) ./src/script/functions/$(DEPDIR) ./src/util/$(DEPDIR) ./src/util/io/$(DEPDIR) -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic diff --git a/configure b/configure index 6e91eb20..b20d1168 100755 --- a/configure +++ b/configure @@ -3021,7 +3021,8 @@ else fi - +# Do not pass -O2, because that causes failures for now. +CXXFLAGS=-g # Checks for libraries. # TODO: Check for boost diff --git a/configure.ac b/configure.ac index b008833a..0a0a9ca5 100644 --- a/configure.ac +++ b/configure.ac @@ -6,7 +6,7 @@ # Process this file with autoconf to produce a configure script. -AC_INIT(magicseteditor, 0.3.4, twanvl@users.sourceforge.net) +AC_INIT(magicseteditor, 0.3.7b, twanvl@users.sourceforge.net) AC_CONFIG_SRCDIR([src/main.cpp]) # TODO: Actually use the config header AC_CONFIG_HEADER([src/config.h]) @@ -15,7 +15,8 @@ AM_INIT_AUTOMAKE([-Wall foreign]) # Checks for programs. AC_PROG_CXX - +# Do not pass -O2, because that causes failures for now. +CXXFLAGS=-g # Checks for libraries. # TODO: Check for boost @@ -46,6 +47,48 @@ AC_FUNC_MALLOC AC_FUNC_SELECT_ARGTYPES AC_CHECK_FUNCS([floor memset pow select sqrt]) +AC_CACHE_CHECK([whether the compiler provides atomic builtins], [ap_cv_atomic_builtins], +[AC_TRY_RUN([ +int main() +{ + unsigned long val = 1010, tmp, *mem = &val; + + if (__sync_fetch_and_add(&val, 1010) != 1010 || val != 2020) + return 1; + + tmp = val; + + if (__sync_fetch_and_sub(mem, 1010) != tmp || val != 1010) + return 1; + + if (__sync_sub_and_fetch(&val, 1010) != 0 || val != 0) + return 1; + + tmp = 3030; + + if (__sync_val_compare_and_swap(mem, 0, tmp) != 0 || val != tmp) + return 1; + + if (__sync_lock_test_and_set(&val, 4040) != 3030) + return 1; + + mem = &tmp; + + if (__sync_val_compare_and_swap(&mem, &tmp, &val) != &tmp) + return 1; + + __sync_synchronize(); + + if (mem != &val) + return 1; + + return 0; +}], [ap_cv_atomic_builtins=yes], [ap_cv_atomic_builtins=no], [ap_cv_atomic_builtins=no])]) + +if test "$ap_cv_atomic_builtins" = "yes"; then + AC_DEFINE(HAVE_GCC_ATOMIC_BUILTINS, 1, [Define if compiler provides atomic builtins]) +fi + AC_OUTPUT([ Makefile ]) diff --git a/src/data/field/package_choice.cpp b/src/data/field/package_choice.cpp index a1d1a54d..318997cc 100644 --- a/src/data/field/package_choice.cpp +++ b/src/data/field/package_choice.cpp @@ -51,7 +51,7 @@ IMPLEMENT_REFLECTION(PackageChoiceStyle) { String PackageChoiceValue::toString() const { PackagedP pack = getPackage(); - if (pack) return pack->short_name; + if (pack.get()) return pack->short_name; else return _(""); } diff --git a/src/gui/set/window.cpp b/src/gui/set/window.cpp index f51da468..72b0baa8 100644 --- a/src/gui/set/window.cpp +++ b/src/gui/set/window.cpp @@ -255,8 +255,8 @@ void SetWindow::setControlStatusText(wxWindow* control, const String& text) { } } control_status_texts.push_back(make_pair(control,text)); - control->Connect(wxEVT_ENTER_WINDOW,(wxObjectEventFunction)(wxEventFunction)(wxMouseEventFunction)onControlEnter,nullptr,this); - control->Connect(wxEVT_LEAVE_WINDOW,(wxObjectEventFunction)(wxEventFunction)(wxMouseEventFunction)onControlLeave,nullptr,this); + control->Connect(wxEVT_ENTER_WINDOW,wxMouseEventHandler(SetWindow::onControlEnter),nullptr,this); + control->Connect(wxEVT_LEAVE_WINDOW,wxMouseEventHandler(SetWindow::onControlLeave),nullptr,this); } void SetWindow::onControlEnter(wxMouseEvent& ev) { for (size_t i = 0 ; i < control_status_texts.size() ; ++i) { diff --git a/src/util/atomic.hpp b/src/util/atomic.hpp index 99d5edda..4838555c 100644 --- a/src/util/atomic.hpp +++ b/src/util/atomic.hpp @@ -54,7 +54,7 @@ #define HAVE_FAST_ATOMIC // ----------------------------------------------------------------------------- : AtomicInt : GCC -#elif defined(__GNUC__) && defined(__i486) +#elif defined(__GNUC__) && defined(HAVE_GCC_ATOMIC_BUILTINS) /// An integer which is equivalent to an AtomicInt, but which doesn't support attomic operations typedef unsigned int AtomicIntEquiv; diff --git a/tools/linux-installer/README b/tools/linux-installer/README index 9f930ba3..61b7ea45 100644 --- a/tools/linux-installer/README +++ b/tools/linux-installer/README @@ -1,10 +1,21 @@ -In order to use Magic Set Editor, you need to have libraries for wxGTK version 2.8. This can be acquired from the Ubuntu package libwxgtk2.8-0. +In order to use Magic Set Editor, you need to have libraries for wxGTK version 2 +.8. This can be acquired from the Ubuntu package libwxgtk2.8-0. -To install Magic Set Editor, please extract this tarball if you haven't already, and then run the install script as root. -Unfortunately, Magic Set Editor currently requires that it be installed to /usr/local/share/magicseteditor. -If, after Magic Set Editor is installed, it complains about being unable to find data in a certain path, then your system -is slightly different, and should be installed to that directory, minus the "/data". This can be done by modifying the install script. -After the install script is run and loading is confirmed, you may delete all the contents of this tarball if you wish. +To install Magic Set Editor, please extract this tarball if you haven't already, +and then run the install script as root. Unfortunately, Magic Set Editor +currently requires that it be installed to /usr/local/share/magicseteditor. If, +after Magic Set Editor is installed, it complains about being unable to find +data in a certain path, then your system is slightly different, and should be +installed to that directory, minus the "/data". This can be done by setting the +MSE_INSTALL_DIR environment variable. After the install script is run and +loading is confirmed, you may delete all the contents of this tarball if you +wish. -Magic Set Editor stores data only in the primary installation directory, a symlink to the executable at /usr/local/bin, and in ~/.magicseteditor. -If you need to uninstall, removing these directories should completely purge your system. +Magic Set Editor stores data only in the primary installation directory, a +symlink to the executable at /usr/local/bin, and in ~/.magicseteditor. +If you need to uninstall, removing these directories should completely +purge your system. + +The installation directory of MSE is specified by the MSE_INSTALL_DIR +environment variable, and the destination of the executable symlink is set with +MSE_EXEC_SYMLINK. \ No newline at end of file diff --git a/tools/linux-installer/install b/tools/linux-installer/install index e10fcaaf..f0227cf1 100755 --- a/tools/linux-installer/install +++ b/tools/linux-installer/install @@ -9,15 +9,23 @@ # If executed as any other user, it will fail. case $UID in - 0) - INSTALL_DIR='/usr/local/share/magicseteditor/'; - EXEC_SYMLINK='/usr/local/bin/magicseteditor';; - *) - echo "Unfortunately, our installer system currently does not support installation except as root. -This is because the program currently requires a specific data directory. -Our apologies." && exit;; + 0) + INSTALL_DIR='/usr/local/share/magicseteditor/'; + EXEC_SYMLINK='/usr/local/bin/magicseteditor';; + *) + echo +"Unfortunately, our installer system currently does not support installation +except as root. This is because the program currently requires a specific data +directory. Our apologies." && exit;; esac +if [ \"$MSE_INSTALL_DIR\" != "" ] then + INSTALL_DIR=$MSE_INSTALL_DIR +fi +if [ \"$MSE_EXEC_SYMLINK\" != "" ] then + INSTALL_DIR=$MSE_EXEC_SYMLINK +fi + echo "Magic Set Editor version $VERSION Installer Script. Magic Set Editor will be installed to $INSTALL_DIR. @@ -28,10 +36,10 @@ Is this correct [y/N]? "; read -n 1 CONFIRM; case $CONFIRM in - [yY]) - :;; - *) - exit;; + [yY]) + :;; + *) + exit;; esac; echo "Installing...";