always decode input strings to unicode
assume that encoding is UTF-8 if getpreferred- encoding failed
This commit is contained in:
		
							parent
							
								
									a9e25ce434
								
							
						
					
					
						commit
						def6fbe56d
					
				
					 1 changed files with 7 additions and 9 deletions
				
			
		|  | @ -42,8 +42,11 @@ from common import i18n | ||||||
| 
 | 
 | ||||||
| _ = i18n._ | _ = i18n._ | ||||||
| i18n.init() | i18n.init() | ||||||
| 
 | try: | ||||||
| PREFERRED_ENCODING = locale.getpreferredencoding() | 	PREFERRED_ENCODING = locale.getpreferredencoding() | ||||||
|  | except: | ||||||
|  | 	sys.exc_clear() | ||||||
|  | 	PREFERRED_ENCODING = 'UTF-8' | ||||||
| 
 | 
 | ||||||
| def send_error(error_message): | def send_error(error_message): | ||||||
| 	'''Writes error message to stderr and exits''' | 	'''Writes error message to stderr and exits''' | ||||||
|  | @ -411,16 +414,11 @@ class GajimRemote: | ||||||
| 	def call_remote_method(self): | 	def call_remote_method(self): | ||||||
| 		''' calls self.method with arguments from sys.argv[2:] ''' | 		''' calls self.method with arguments from sys.argv[2:] ''' | ||||||
| 		args = sys.argv[2:] | 		args = sys.argv[2:] | ||||||
| 		if _version[1] <= 50: | 		args = [i.decode(PREFERRED_ENCODING) for i in sys.argv[2:]] | ||||||
| 			# make console arguments unicode |  | ||||||
| 			args = [i.decode(PREFERRED_ENCODING) for i in sys.argv[2:]] |  | ||||||
| 		if _version[1] >= 41: | 		if _version[1] >= 41: | ||||||
| 			args = [dbus.String(i) for i in args] | 			args = [dbus.String(i) for i in args] | ||||||
| 		else: | 		else: | ||||||
| 			try: | 			args = [i.encode('UTF-8') for i in sys.argv[2:]] | ||||||
| 				args = [i.encode('utf-8') for i in args] |  | ||||||
| 			except: |  | ||||||
| 				pass |  | ||||||
| 		try: | 		try: | ||||||
| 			res = self.method(*args) | 			res = self.method(*args) | ||||||
| 			return res | 			return res | ||||||
|  |  | ||||||
		Loading…
	
	Add table
		
		Reference in a new issue