Handle escaping of manufacturer/product strings (#18194)

master
Ryan 2022-08-29 04:35:17 +10:00 committed by GitHub
parent ac33b7b0b3
commit 3adaf6a46a
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
5 changed files with 6 additions and 2 deletions

View File

@ -1,5 +1,6 @@
{ {
"keyboard_name": "shisaku", "keyboard_name": "shisaku",
"manufacturer": "ADPenrose",
"url": "https://github.com/ADPenrose/shisaku_keeb", "url": "https://github.com/ADPenrose/shisaku_keeb",
"maintainer": "ADPenrose", "maintainer": "ADPenrose",
"usb": { "usb": {

View File

@ -1,5 +1,6 @@
{ {
"keyboard_name": "KBIC65", "keyboard_name": "KBIC65",
"manufacturer": "b-karl",
"url": "https://karlb.eu/kbic65/", "url": "https://karlb.eu/kbic65/",
"maintainer": "b-karl", "maintainer": "b-karl",
"diode_direction": "ROW2COL", "diode_direction": "ROW2COL",

View File

@ -1,5 +1,6 @@
{ {
"keyboard_name": "BAMFK-4", "keyboard_name": "BAMFK-4",
"manufacturer": "Keebio",
"url": "https://keeb.io", "url": "https://keeb.io",
"maintainer": "nooges", "maintainer": "nooges",
"usb": { "usb": {

View File

@ -117,9 +117,10 @@ def generate_config_items(kb_info_json, config_h_lines):
config_h_lines.append(f'# define {key} {value}') config_h_lines.append(f'# define {key} {value}')
config_h_lines.append(f'#endif // {key}') config_h_lines.append(f'#endif // {key}')
elif key_type == 'str': elif key_type == 'str':
escaped_str = config_value.replace('\\', '\\\\').replace('"', '\\"')
config_h_lines.append('') config_h_lines.append('')
config_h_lines.append(f'#ifndef {config_key}') config_h_lines.append(f'#ifndef {config_key}')
config_h_lines.append(f'# define {config_key} "{config_value}"') config_h_lines.append(f'# define {config_key} "{escaped_str}"')
config_h_lines.append(f'#endif // {config_key}') config_h_lines.append(f'#endif // {config_key}')
elif key_type == 'bcd_version': elif key_type == 'bcd_version':
(major, minor, revision) = config_value.split('.') (major, minor, revision) = config_value.split('.')

View File

@ -479,7 +479,7 @@ def _config_to_json(key_type, config_value):
return int(config_value) return int(config_value)
elif key_type == 'str': elif key_type == 'str':
return config_value.strip('"') return config_value.strip('"').replace('\\"', '"').replace('\\\\', '\\')
elif key_type == 'bcd_version': elif key_type == 'bcd_version':
major = int(config_value[2:4]) major = int(config_value[2:4])