From 673e154dfef6aef827b86ea177c211269358b282 Mon Sep 17 00:00:00 2001 From: Damien George Date: Fri, 12 Apr 2019 11:34:52 +1000 Subject: [PATCH] py/makedefs: Use io.open with utf-8 encoding when processing source. In case (user) source code contains utf-8 encoded data and the default locale is not utf-8. See #4592. --- py/makemoduledefs.py | 3 ++- py/makeqstrdefs.py | 3 ++- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/py/makemoduledefs.py b/py/makemoduledefs.py index 18d327f002..f17b0e38df 100644 --- a/py/makemoduledefs.py +++ b/py/makemoduledefs.py @@ -8,6 +8,7 @@ from __future__ import print_function import re +import io import os import argparse @@ -49,7 +50,7 @@ def find_module_registrations(c_file): # No c file to match the object file, skip return set() - with open(c_file) as c_file_obj: + with io.open(c_file, encoding='utf-8') as c_file_obj: return set(re.findall(pattern, c_file_obj.read())) diff --git a/py/makeqstrdefs.py b/py/makeqstrdefs.py index 176440136d..457bdeef65 100644 --- a/py/makeqstrdefs.py +++ b/py/makeqstrdefs.py @@ -9,6 +9,7 @@ from __future__ import print_function import re import sys +import io import os # Blacklist of qstrings that are specially handled in further @@ -108,7 +109,7 @@ if __name__ == "__main__": pass if args.command == "split": - with open(args.input_filename) as infile: + with io.open(args.input_filename, encoding='utf-8') as infile: process_file(infile) if args.command == "cat":