diff options
| author | Jules Aguillon | 2024-09-10 22:43:05 +0200 |
|---|---|---|
| committer | Jules Aguillon | 2024-09-10 22:43:05 +0200 |
| commit | e734d1d0e240e19c978c5ce26d171277fe3cb85a (patch) | |
| tree | da92d256179343cc38036a12abe3c3426beb29eb /srcs/compose/compile.py | |
| parent | c57ae83bfa2141edf637075696043cb98068684b (diff) | |
| download | unexpected-keyboard-e734d1d0e240e19c978c5ce26d171277fe3cb85a.tar.gz unexpected-keyboard-e734d1d0e240e19c978c5ce26d171277fe3cb85a.zip | |
compose: Allow c-style comments in json files
Useful to manager growing the collection of sequences.
Diffstat (limited to 'srcs/compose/compile.py')
| -rw-r--r-- | srcs/compose/compile.py | 9 |
1 files changed, 8 insertions, 1 deletions
diff --git a/srcs/compose/compile.py b/srcs/compose/compile.py index fe4fe9f..e49196b 100644 --- a/srcs/compose/compile.py +++ b/srcs/compose/compile.py @@ -90,10 +90,17 @@ def parse_sequences_file_xkb(fname, xkb_char_extra_names): seqs.append(s) return seqs +# Basic support for comments in json files. Reads a file +def strip_cstyle_comments(inp): + def strip_line(line): + i = line.find("//") + return line[:i] + "\n" if i >= 0 else line + return "".join(map(strip_line, inp)) + # Parse from a json file containing a dictionary sequence → result string. def parse_sequences_file_json(fname): with open(fname, "r") as inp: - seqs = json.load(inp) + seqs = json.loads(strip_cstyle_comments(inp)) return list(seqs.items()) # Format of the sequences file is determined by its extension |
