* 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.
*
**************************************************************************/
#include <stdlib.h>
#include <string.h>
#include <limits.h>
+
+#include <simgear/structure/exception.hxx>
+
#include "lowleveltime.h"
/* 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)
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!
// }
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;