]> 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 d56f64b13f8de52f7e2c2137326f18e79180f90c..9d20655d6361ab94904086533a42b0aecff3b465 100644 (file)
@@ -2,19 +2,19 @@
  * Written by various people (I"ll look up the exact credits later)
  * Modified by Durk Talsma, July 1999 for use in FlightGear
  *
- * 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 library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Library 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
+ * This library 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.
+ * Library 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., 675 Mass Ave, Cambridge, MA 02139, USA.
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
  *
  **************************************************************************/
 
@@ -40,6 +40,9 @@
 #include <stdlib.h>
 #include <string.h>
 #include <limits.h>
+
+#include <simgear/structure/exception.hxx>
+
 #include "lowleveltime.h"
 
 
@@ -303,16 +306,11 @@ static void fgtzset_internal (int always, const char *tz)
     /* User specified the empty string; use UTC explicitly.  */
     tz = "Universal";
 
-#ifdef MACOS
-  /* 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)
@@ -331,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!
  
@@ -861,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;