diff options
author | Jerry DeLisle <jvdelisle@gcc.gnu.org> | 2014-05-18 02:29:27 +0000 |
---|---|---|
committer | Jerry DeLisle <jvdelisle@gcc.gnu.org> | 2014-05-18 02:29:27 +0000 |
commit | d428be77b67871c71638355985061dca1ff06acb (patch) | |
tree | 0ba97cc9c85f611d67cbc29703a41e51264adaad /libgfortran/io/io.h | |
parent | ef61de094e058fbb13793e3bd64037bc8718ee1b (diff) | |
download | gcc-d428be77b67871c71638355985061dca1ff06acb.zip gcc-d428be77b67871c71638355985061dca1ff06acb.tar.gz gcc-d428be77b67871c71638355985061dca1ff06acb.tar.bz2 |
re PR libfortran/52539 (I/O: Wrong result for UTF-8/UCS-4 list-directed and namelist read and nml write)
2014-05-17 Jerry DeLisle <jvdelisle@gcc.gnu>
PR libfortran/52539
* io/io.h (gfc_unit): New function pointers *next_char_fn_ptr
and *push_char_fn_ptr.
*io/list_read.c (next_char): Create macro with this name to call
the new function pointer. Split the original next_char function
into three new functions. (next_char_default, next_char_internal,
next_char_utf8): New functions. (push_char): Create macro with
this name to call new function pointer. Split the original
push_char into three new functions. (push_char_default,
push_char_internal, push_char4): New functions. (set_workers):
New function to initilize the function pointers depending on the
type of IO to be performed. (list_formatted_read_scalar): Use
set_workers function. (finish_list_read): Likewise.
(namelist_read): Likewise.
(nml_get_obj_data): Use push_char_default.
From-SVN: r210574
Diffstat (limited to 'libgfortran/io/io.h')
-rw-r--r-- | libgfortran/io/io.h | 4 |
1 files changed, 4 insertions, 0 deletions
diff --git a/libgfortran/io/io.h b/libgfortran/io/io.h index 3481c83..4e71d49 100644 --- a/libgfortran/io/io.h +++ b/libgfortran/io/io.h @@ -575,6 +575,10 @@ typedef struct gfc_unit /* Formatting buffer. */ struct fbuf *fbuf; + + /* Function pointer, points to list_read worker functions. */ + int (*next_char_fn_ptr) (st_parameter_dt *); + void (*push_char_fn_ptr) (st_parameter_dt *, int); } gfc_unit; |