code: def _split_line(self,data_list,line_num,text):
          
          # if blank line or context separator, just add it to the output list
          if not line_num:
              data_list.append((line_num,text))
              return
  
          # if line text doesn't need wrapping, just add it to the output list
          size = len(text)
          max = self._wrapcolumn
          if (size <= max) or ((size -(text.count('\0')*3)) <= max):
              data_list.append((line_num,text))
              return
  
          # scan text looking for the wrap point, keeping track if the wrap
          # point is inside markers
          i = 0
          n = 0
          mark = ''
          while n < max and i < size:
              if text[i] == '\0':
                  i += 1
                  mark = text[i]
                  i += 1
              elif text[i] == '\1':
                  i += 1
                  mark = ''
              else:
                  i += 1
                  n += 1
  
          # wrap point is inside text, break it up into separate lines
          line1 = text[:i]
          line2 = text[i:]
  
          # if wrap point is inside markers, place end marker at end of first
          # line and start marker at beginning of second line because each
          # line will have its own table tag markup around it.
          if mark:
              line1 = line1 + '\1'
              line2 = '\0' + mark + line2
  
          # tack on first line onto the output list
          data_list.append((line_num,line1))
  
          # use this routine again to wrap the remaining text
          self._split_line(data_list,'>',line2)
docs: Builds list of text lines by splitting text lines at wrap point
  
          This function will determine if the input text line needs to be
          wrapped (split) into separate lines.  If so, the first wrap point
          will be determined and the first line appended to the output
          text line list.  This function is used recursively to handle
          the second part of the split line to further split it.