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