parameters: (self, curr_iter, list_info)
return_statement: return iter_start.get_offset()-1
docstring: Get the list end offset
docstring_summary: Get the list end offset
docstring_tokens: Get the list end offset
function: def get_multiline_list_element_end_offset(self, curr_iter, list_info):
          """Get the list end offset"""
          iter_start = curr_iter.copy()
          if iter_start.get_char() == cons.CHAR_NEWLINE:
              if not iter_start.forward_char():
                  # the end of buffer is also the list end
                  return iter_start.get_offset()
          else:
              if not self.char_iter_forward_to_newline(iter_start) or not iter_start.forward_char():
                  # the end of buffer is also the list end
                  return iter_start.get_offset()
          number_n_level = self.list_get_number_n_level(iter_start)
          #print number_n_level
          if number_n_level["num"] == None and number_n_level["level"] == list_info["level"]+1:
              # multiline indentation
              return self.get_multiline_list_element_end_offset(iter_start, list_info)
          return iter_start.get_offset()-1
function_tokens: def get_multiline_list_element_end_offset ( self , curr_iter , list_info ) : iter_start = curr_iter . copy ( ) if iter_start . get_char ( ) == cons . CHAR_NEWLINE : if not iter_start . forward_char ( ) : # the end of buffer is also the list end return iter_start . get_offset ( ) else : if not self . char_iter_forward_to_newline ( iter_start ) or not iter_start . forward_char ( ) : # the end of buffer is also the list end return iter_start . get_offset ( ) number_n_level = self . list_get_number_n_level ( iter_start ) #print number_n_level if number_n_level [ "num" ] == None and number_n_level [ "level" ] == list_info [ "level" ] + 1 : # multiline indentation return self . get_multiline_list_element_end_offset ( iter_start , list_info ) return iter_start . get_offset ( ) - 1