mirror of
				https://github.com/neovim/neovim.git
				synced 2025-10-26 12:27:24 +00:00 
			
		
		
		
	 af23d17388
			
		
	
	af23d17388
	
	
	
		
			
			The new oldtest directory is in test/old/testdir. The reason for this is that many tests have hardcoded the parent directory name to be 'testdir'.
		
			
				
	
	
		
			70 lines
		
	
	
		
			1.9 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
			
		
		
	
	
			70 lines
		
	
	
		
			1.9 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
| #!/usr/bin/python
 | |
| # -*- coding: utf-8 -*-
 | |
| 
 | |
| # Test program for :make, :grep and :cgetfile.
 | |
| 
 | |
| from __future__ import print_function, unicode_literals
 | |
| import locale
 | |
| import io
 | |
| import sys
 | |
| 
 | |
| 
 | |
| def set_output_encoding(enc=None):
 | |
|     """Set the encoding of stdout and stderr
 | |
| 
 | |
|     arguments:
 | |
|       enc -- Encoding name.
 | |
|              If omitted, locale.getpreferredencoding() is used.
 | |
|     """
 | |
|     if enc is None:
 | |
|         enc = locale.getpreferredencoding()
 | |
| 
 | |
|     def get_text_writer(fo, **kwargs):
 | |
|         kw = dict(kwargs)
 | |
|         kw.setdefault('errors', 'backslashreplace')  # use \uXXXX style
 | |
|         kw.setdefault('closefd', False)
 | |
| 
 | |
|         if sys.version_info[0] < 3:
 | |
|             # Work around for Python 2.x
 | |
|             # New line conversion isn't needed here. Done in somewhere else.
 | |
|             writer = io.open(fo.fileno(), mode='w', newline='', **kw)
 | |
|             write = writer.write    # save the original write() function
 | |
|             enc = locale.getpreferredencoding()
 | |
| 
 | |
|             def convwrite(s):
 | |
|                 if isinstance(s, bytes):
 | |
|                     write(s.decode(enc))    # convert to unistr
 | |
|                 else:
 | |
|                     write(s)
 | |
|                 try:
 | |
|                     writer.flush()  # needed on Windows
 | |
|                 except IOError:
 | |
|                     pass
 | |
|             writer.write = convwrite
 | |
|         else:
 | |
|             writer = io.open(fo.fileno(), mode='w', **kw)
 | |
|         return writer
 | |
| 
 | |
|     sys.stdout = get_text_writer(sys.stdout, encoding=enc)
 | |
|     sys.stderr = get_text_writer(sys.stderr, encoding=enc)
 | |
| 
 | |
| 
 | |
| def main():
 | |
|     enc = 'utf-8'
 | |
|     if len(sys.argv) > 1:
 | |
|         enc = sys.argv[1]
 | |
|     set_output_encoding(enc)
 | |
| 
 | |
|     message_tbl = {
 | |
|             'utf-8': 'ÀÈÌÒÙ こんにちは 你好',
 | |
|             'latin1': 'ÀÈÌÒÙ',
 | |
|             'cp932': 'こんにちは',
 | |
|             'cp936': '你好',
 | |
|             }
 | |
| 
 | |
|     print('Xfoobar.c(10) : %s (%s)' % (message_tbl[enc], enc))
 | |
| 
 | |
| 
 | |
| if __name__ == "__main__":
 | |
|     main()
 |