Author: shadowmaster
Date: Wed Jul 30 22:57:13 2008
New Revision: 28275

URL: http://svn.gna.org/viewcvs/wesnoth?rev=28275&view=rev
Log:
* Got rid of nasty preprocessor hacks and renamed major and minor fields
* to vmajor and vminor just to be safe.

Modified:
    trunk/src/addon_management.cpp
    trunk/src/addon_management.hpp

Modified: trunk/src/addon_management.cpp
URL: 
http://svn.gna.org/viewcvs/wesnoth/trunk/src/addon_management.cpp?rev=28275&r1=28274&r2=28275&view=diff
==============================================================================
--- trunk/src/addon_management.cpp (original)
+++ trunk/src/addon_management.cpp Wed Jul 30 22:57:13 2008
@@ -924,14 +924,12 @@
        }
 }
 
-#if 1
-
 bool operator>(const addon_version_info& l, const addon_version_info& r)
 {
        if((!r.sane) || (!l.sane))
                throw addon_version_info_not_sane_exception();
 
-       return (l.major > r.major || (l.major == r.major && (l.minor > r.minor 
|| (l.minor == r.minor && l.revision > r.revision))));
+       return (l.vmajor > r.vmajor || (l.vmajor == r.vmajor && (l.vminor > 
r.vminor || (l.vminor == r.vminor && l.revision > r.revision))));
 }
 
 bool operator<(const addon_version_info& l, const addon_version_info& r)
@@ -939,7 +937,7 @@
        if((!r.sane) || (!l.sane))
                throw addon_version_info_not_sane_exception();
 
-       return (l.major < r.major || (l.major == r.major && (l.minor < r.minor 
|| (l.minor == r.minor && l.revision < r.revision))));
+       return (l.vmajor < r.vmajor || (l.vmajor == r.vmajor && (l.vminor < 
r.vminor || (l.vminor == r.vminor && l.revision < r.revision))));
 }
 
 bool operator>=(const addon_version_info& l, const addon_version_info& r)
@@ -964,33 +962,15 @@
                throw addon_version_info_not_sane_exception();
 
        std::ostringstream out;
-       out << major << '.' << minor << '.' << revision;
+       out << vmajor << '.' << vminor << '.' << revision;
        return out.str();
 }
 
-// FIXME: required to remove following compile-time errors regarding
-//        the addon_version_info constructors in GCC 4.2.1:
-//
-// error: class ‘addon_version_info’ does not have any field named 
‘gnu_dev_major
-// error: class ‘addon_version_info’ does not have any field named 
‘gnu_dev_minor
-//
-// This is because "major" and "minor" are defined as compatibility macros in
-// sys/sysmacros.h. I guess it is safe to just use this workaround instead of
-// renaming these fields, since the only ambiguous case seems to be in 
initializer
-// lists.
-//
-#ifdef major
-       #undef major
-#endif
-#ifdef minor
-       #undef minor
-#endif
-
 addon_version_info& addon_version_info::operator=(const addon_version_info& o)
 {
        if(this != &o) {
-               this->major = o.major;
-               this->minor = o.minor;
+               this->vmajor = o.vmajor;
+               this->vminor = o.vminor;
                this->revision = o.revision;
                // copy o's insanity too
                this->sane = o.sane;
@@ -999,7 +979,7 @@
 }
 
 addon_version_info::addon_version_info()
-       : major(0), minor(0), revision(0), sane(true)
+       : vmajor(0), vminor(0), revision(0), sane(true)
 {
 }
 
@@ -1008,31 +988,27 @@
        if(src_str.empty() != true) {
                const std::vector<std::string> components = 
utils::split(src_str, '.');
                if(components.size() != 3) {
-                       major = minor = revision = 0;
+                       vmajor = vminor = revision = 0;
                        sane = false;
                } else {
                        try {
-                               major    = 
lexical_cast<unsigned>(components[0]);
-                               minor    = 
lexical_cast<unsigned>(components[1]);
+                               vmajor    = 
lexical_cast<unsigned>(components[0]);
+                               vminor    = 
lexical_cast<unsigned>(components[1]);
                                revision = 
lexical_cast<unsigned>(components[2]);
                                sane     = true;
                        } catch(bad_lexical_cast const&)  {
-                               major = minor = revision = 0;
+                               vmajor = vminor = revision = 0;
                                sane = false;
                        }
                }
        } else {
-               major = minor = revision = 0;
+               vmajor = vminor = revision = 0;
                sane = false;
        }
 }
 
 addon_version_info::addon_version_info(const addon_version_info& src_struct)
-       : major(src_struct.major), minor(src_struct.minor),
+       : vmajor(src_struct.vmajor), vminor(src_struct.vminor),
          revision(src_struct.revision), sane(src_struct.sane)
 {
 }
-
-#endif
-
-

Modified: trunk/src/addon_management.hpp
URL: 
http://svn.gna.org/viewcvs/wesnoth/trunk/src/addon_management.hpp?rev=28275&r1=28274&r2=28275&view=diff
==============================================================================
--- trunk/src/addon_management.hpp (original)
+++ trunk/src/addon_management.hpp Wed Jul 30 22:57:13 2008
@@ -83,15 +83,15 @@
        //! constructing the object.
        operator bool() { return this->sane; }
        
-       unsigned major;         //!< Major (leading) version number.
-       unsigned minor;         //!< Minor (middle) version number.
-       unsigned revision;      //!< Revision (trailing) version number.
-       bool sane;                      //!< Sanity flag.
+       unsigned vmajor;                //!< Major (leading) version number.
+       unsigned vminor;                //!< Minor (middle) version number.
+       unsigned revision;              //!< Revision (trailing) version number.
+       bool sane;                              //!< Sanity flag.
 };
 
 //! Equality operator for addon_version_info.
 inline bool operator==(const addon_version_info& l, const addon_version_info& 
r) {
-       return(l.sane && r.sane && l.major == r.major && l.minor == r.minor &&
+       return(l.sane && r.sane && l.vmajor == r.vmajor && l.vminor == r.vminor 
&&
               l.revision == r.revision);
 }
 //! Inequality operator for addon_version_info.


_______________________________________________
Wesnoth-commits mailing list
[email protected]
https://mail.gna.org/listinfo/wesnoth-commits

Reply via email to