]> git.mxchange.org Git - simgear.git/blobdiff - simgear/timing/lowleveltime.cxx
Merge branch 'next' of git://gitorious.org/fg/simgear into next
[simgear.git] / simgear / timing / lowleveltime.cxx
index ec3cf98844e16c46227a72054376683f497cbf81..9d20655d6361ab94904086533a42b0aecff3b465 100644 (file)
  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
  * Library General Public License for more details.
  *
- * You should have received a copy of the GNU Library General Public
- * License along with this library; if not, write to the
- * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
- * Boston, MA  02111-1307, USA.
+ * 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.
  *
  **************************************************************************/
 
@@ -41,6 +40,9 @@
 #include <stdlib.h>
 #include <string.h>
 #include <limits.h>
+
+#include <simgear/structure/exception.hxx>
+
 #include "lowleveltime.h"
 
 
@@ -304,16 +306,11 @@ static void fgtzset_internal (int always, const char *tz)
     /* User specified the empty string; use UTC explicitly.  */
     tz = "Universal";
 
-#ifdef macintosh
-  /* as you well know, mac paths contain leading colon, this code
-     messes things up.... */
-#else
   /* A leading colon means "implementation defined syntax".
      We ignore the colon and always use the same algorithm:
      try a data file, and if none exists parse the 1003.1 syntax.  */
   if (tz && *tz == ':')
     ++tz;
-#endif
 
   /* Check whether the value changes since the last run.  */
   if (old_fgtz != NULL && tz != NULL && strcmp (tz, old_fgtz) == 0)
@@ -332,19 +329,18 @@ static void fgtzset_internal (int always, const char *tz)
   fgtzfile_read (tz);
   if (use_fgtzfile)
     return;
-  // The default behaviour of the originale tzset_internal (int always, char* tz) 
-  // function is to set up a default timezone, in any casetz file_read() fails
-  // Currently this leads to problems, because it modidifies the system timezone
+  // The default behaviour of the original tzset_internal (int always, char* tz) 
+  // function is to set up a default timezone, in any case file_read() fails
+  // Currently this leads to problems, because it modifies the system timezone
   // and not the local aircraft timezone, contained in FlightGear. I could adapt 
   // this in future versions of this code, but doubt whether this is what we really
-  // want. So right now, exit when timezone information reading failed. 
+  // want. So right now, throw an exception when timezone information reading failed. 
   // Guess I'll change that to something like 12 * (FG_LON / 180.0)
   // 
   // For now, I'll leave it like this.
   else
   {
-    printf ("Timezone reading failed\n");
-    exit(1);
+    throw sg_exception("Timezone reading failed");
   }
   // this emacs "comment out" function is cool!
  
@@ -862,8 +858,12 @@ void fgtzfile_read (const char *file)
 //     }
 
   f = fopen (file, "rb");
-  if (f == NULL)
-    return;
+
+  if (f == NULL) {
+      perror( "fgtzfile_read(): " );
+      errno = 0;
+      return;
+  }
 
   if (fread ((void *) &tzhead, sizeof (tzhead), 1, f) != 1)
     goto lose;