diff options
Diffstat (limited to 'libgfortran/io/io.h')
-rw-r--r-- | libgfortran/io/io.h | 27 |
1 files changed, 27 insertions, 0 deletions
diff --git a/libgfortran/io/io.h b/libgfortran/io/io.h index 1e0d092..a75177f 100644 --- a/libgfortran/io/io.h +++ b/libgfortran/io/io.h @@ -32,6 +32,17 @@ see the files COPYING3 and COPYING.RUNTIME respectively. If not, see #include <gthr.h> + +/* POSIX 2008 specifies that the extended locale stuff is found in + locale.h, but some systems have them in xlocale.h. */ + +#include <locale.h> + +#ifdef HAVE_XLOCALE_H +#include <xlocale.h> +#endif + + /* Forward declarations. */ struct st_parameter_dt; typedef struct stream stream; @@ -40,6 +51,19 @@ struct format_data; typedef struct fnode fnode; struct gfc_unit; +#ifdef HAVE_NEWLOCALE +/* We have POSIX 2008 extended locale stuff. */ +extern locale_t c_locale; +internal_proto(c_locale); +#else +extern char* old_locale; +internal_proto(old_locale); +extern int old_locale_ctr; +internal_proto(old_locale_ctr); +extern __gthread_mutex_t old_locale_lock; +internal_proto(old_locale_lock); +#endif + /* Macros for testing what kinds of I/O we are doing. */ @@ -450,6 +474,9 @@ typedef struct st_parameter_dt char *line_buffer; struct format_data *fmt; namelist_info *ionml; +#ifdef HAVE_NEWLOCALE + locale_t old_locale; +#endif /* Current position within the look-ahead line buffer. */ int line_buffer_pos; /* Storage area for values except for strings. Must be |