===================================== m_dictionary.f90 ===================================== 12,15c12,15 < private < integer :: number_of_items < type(buffer_t), dimension(MAX_ITEMS) :: key < type(buffer_t), dimension(MAX_ITEMS) :: value --- > private > integer :: number_of_items > type(buffer_t), dimension(MAX_ITEMS) :: key > type(buffer_t), dimension(MAX_ITEMS) :: value 43,44c43 < module procedure sax_get_value_qname < module procedure sax_get_value_i --- > module procedure sax_get_value 45a45 > private :: sax_get_value 76c76 < subroutine sax_get_value_qname(dict,key,value,status) --- > subroutine sax_get_value(dict,key,value,status) 94,111c94 < end subroutine sax_get_value_qname < < subroutine sax_get_value_i(dict,i,value,status) < type(dictionary_t), intent(in) :: dict < integer, intent(in) :: i < character(len=*), intent(out) :: value < integer, intent(out) :: status < < if (i <= dict%number_of_items) then < value = str(dict%value(i)) < status = 0 < else < value = "" < status = -1 < endif < < end subroutine sax_get_value_i < --- > end subroutine sax_get_value ===================================== m_xml_parser.f90 ===================================== 40,48c40,48 < character(len=*), intent(in) :: fname < integer, intent(out) :: iostat < type(xml_t), intent(out) :: fxml < integer, intent(in), optional :: record_size < < call open_file(fname,fxml%fb,iostat,record_size) < call init_fsm(fxml%fx) < fxml%path_mark = "" < --- > character(len=*), intent(in) :: fname > integer, intent(out) :: iostat > type(xml_t), intent(out) :: fxml > integer, intent(in), optional :: record_size > > call open_file(fname,fxml%fb,iostat,record_size) > call init_fsm(fxml%fx) > fxml%path_mark = "" > 53,58c53,58 < type(xml_t), intent(inout) :: fxml < < call rewind_file(fxml%fb) < call reset_fsm(fxml%fx) < fxml%path_mark = "" < --- > type(xml_t), intent(inout) :: fxml > > call rewind_file(fxml%fb) > call reset_fsm(fxml%fx) > fxml%path_mark = "" > 63c63 < type(xml_t), intent(inout) :: fxml --- > type(xml_t), intent(inout) :: fxml 65c65 < call mark_eof_file(fxml%fb) --- > call mark_eof_file(fxml%fb) 71,75c71,75 < type(xml_t), intent(inout) :: fxml < < call close_file_buffer(fxml%fb) < call reset_fsm(fxml%fx) ! just in case < fxml%path_mark = "" ! "" --- > type(xml_t), intent(inout) :: fxml > > call close_file_buffer(fxml%fb) > call reset_fsm(fxml%fx) ! just in case > fxml%path_mark = "" ! "" 81,86c81,86 < type(xml_t), intent(inout) :: fxml < integer, intent(out) :: iostat < < call sync_file(fxml%fb,iostat) < ! Do not reset fx: that's the whole point of synching. < --- > type(xml_t), intent(inout) :: fxml > integer, intent(out) :: iostat > > call sync_file(fxml%fb,iostat) > ! Do not reset fx: that's the whole point of synching. > 91,95c91,95 < type(xml_t), intent(in) :: fxml < logical :: res < < res = eof_file(fxml%fb) < --- > type(xml_t), intent(in) :: fxml > logical :: res > > res = eof_file(fxml%fb) > 101,103c101,105 < type(xml_t), intent(in) :: fxml < integer :: nc < nc = nchars_processed(fxml%fb) --- > type(xml_t), intent(in) :: fxml > integer :: nc > > nc = nchars_processed(fxml%fb) > 114c116 < cdata_section_handler, & --- > cdata_section_handler, & 117c119 < signal_handler, & --- > signal_handler, & 119,121c121 < empty_element_handler, & < start_document, & ! JW < end_document) ! JW --- > empty_element_handler) 136,137d135 < optional :: start_document ! JW < optional :: end_document ! JW 187,192d184 < subroutine start_document() ! JW < end subroutine start_document ! JW < < subroutine end_document() ! JW < end subroutine end_document ! JW < 209,210c201 < have_error_handler, have_signal_handler, & < have_start_document_handler, have_end_document_handler --- > have_error_handler, have_signal_handler 228,229d218 < have_start_document_handler = present(start_document) ! JW < have_end_document_handler = present(end_document) ! JW 239d227 < if (have_start_document_handler) call start_document() ! JW - no arguments 256d243 < if (have_end_document_handler) call end_document() !! JW - no arguments 466,470c453,457 < type(xml_t), intent(in) :: fxml < character(len=*), intent(out) :: path < < call get_elstack_signature(fxml%fx%element_stack,path) < --- > type(xml_t), intent(in) :: fxml > character(len=*), intent(out) :: path > > call get_elstack_signature(fxml%fx%element_stack,path) > 475,483c462,470 < ! < ! Marks the current path < ! < type(xml_t), intent(inout) :: fxml < character(len=*), intent(out) :: path < < call get_elstack_signature(fxml%fx%element_stack,fxml%path_mark) < path = fxml%path_mark < --- > ! > ! Marks the current path > ! > type(xml_t), intent(inout) :: fxml > character(len=*), intent(out) :: path > > call get_elstack_signature(fxml%fx%element_stack,fxml%path_mark) > path = fxml%path_mark > 488,495c475,482 < ! < ! Returns the currently markd path (or an empty string if there are no marks) < ! < type(xml_t), intent(in) :: fxml < character(len=*), intent(out) :: path < < path = fxml%path_mark < --- > ! > ! Returns the currently markd path (or an empty string if there are no marks) > ! > type(xml_t), intent(in) :: fxml > character(len=*), intent(out) :: path > > path = fxml%path_mark > 500,504c487,491 < type(xml_t), intent(in) :: fxml < character(len=*), intent(out) :: name < < name = char(fxml%fx%element_name) < --- > type(xml_t), intent(in) :: fxml > character(len=*), intent(out) :: name > > name = char(fxml%fx%element_name) > 508,512c495,499 < type(xml_t), intent(in) :: fxml < type(dictionary_t), intent(out) :: attributes < < attributes = fxml%fx%attributes < --- > type(xml_t), intent(in) :: fxml > type(dictionary_t), intent(out) :: attributes > > attributes = fxml%fx%attributes >