docs: def process_input(self, data, input_prompt, lineno):
          """Process data block for INPUT token."""
          decorator, input, rest = data
          image_file = None
          image_directive = None
          #print 'INPUT:', data  # dbg
          is_verbatim = decorator=='@verbatim' or self.is_verbatim
          is_doctest = decorator=='@doctest' or self.is_doctest
          is_suppress = decorator=='@suppress' or self.is_suppress
          is_okexcept = decorator=='@okexcept' or self.is_okexcept
          is_savefig = decorator is not None and \
                       decorator.startswith('@savefig')
  
          input_lines = input.split('\n')
  
          self.datacontent = data
  
          continuation = '   %s:'%''.join(['.']*(len(str(lineno))+2))
  
          if is_savefig:
              image_file, image_directive = self.process_image(decorator)
  
          ret = []
          is_semicolon = False
          store_history = True
  
          for i, line in enumerate(input_lines):
              if line.endswith(';'):
                  is_semicolon = True
              if is_semicolon or is_suppress:
                  store_history = False
  
              if i==0:
                  # process the first input line
                  if is_verbatim:
                      self.process_input_line('')
                      self.IP.execution_count += 1 # increment it anyway
                  else:
                      # only submit the line in non-verbatim mode
                      self.process_input_line(line, store_history=store_history)
                  formatted_line = '%s %s'%(input_prompt, line)
              else:
                  # process a continuation line
                  if not is_verbatim:
                      self.process_input_line(line, store_history=store_history)
  
                  formatted_line = '%s%s'%(continuation, line)
  
              if not is_suppress:
                  ret.append(formatted_line)
  
          if not is_suppress:
              if len(rest.strip()):
                  if is_verbatim:
                      # the "rest" is the standard output of the
                      # input, which needs to be added in
                      # verbatim mode
                      ret.append(rest)
  
          self.cout.seek(0)
          output = self.cout.read()
          if not is_suppress and not is_semicolon:
              ret.append(output.decode('utf-8'))
  
          if not is_okexcept and "Traceback" in output:
              sys.stdout.write(output)
  
          self.cout.truncate(0)
          return (ret, input_lines, output, is_doctest, image_file,
                      image_directive)