scripts/makeheader: Minor improvements

Use `pathlib` for proper path handling.
master
Pierre Le Marre 2023-09-28 07:18:51 +02:00 committed by Wismill
parent 9d15c6a7a1
commit 9c2f0fdbed
1 changed files with 12 additions and 10 deletions

View File

@ -1,7 +1,8 @@
#!/usr/bin/env python
#!/usr/bin/env python3
from __future__ import print_function
import re
import os
from pathlib import Path
# Expected format:
# #define XF86XK_FooBar 0x1234 /* some optional comment */
@ -49,14 +50,14 @@ def make_keysym_entry(m: re.Match[str]) -> str:
return f"""{define} XKB_KEY_{prefix}{name}{spacing}{value_str}"""
prefix = os.environ.get("X11_HEADERS_PREFIX", "/usr")
HEADERS = [
prefix + "/include/X11/keysymdef.h",
prefix + "/include/X11/XF86keysym.h",
prefix + "/include/X11/Sunkeysym.h",
prefix + "/include/X11/DECkeysym.h",
prefix + "/include/X11/HPkeysym.h",
]
prefix = Path(os.environ.get("X11_HEADERS_PREFIX", "/usr"))
HEADERS = (
prefix / "include/X11/keysymdef.h",
prefix / "include/X11/XF86keysym.h",
prefix / "include/X11/Sunkeysym.h",
prefix / "include/X11/DECkeysym.h",
prefix / "include/X11/HPkeysym.h",
)
print(
"""#ifndef _XKBCOMMON_KEYSYMS_H
@ -72,8 +73,9 @@ print(
#define XKB_KEY_NoSymbol 0x000000 /* Special KeySym */
"""
)
for path in HEADERS:
with open(path) as header:
with path.open("rt", encoding="utf-8") as header:
for line in header:
if "#ifdef" in line or "#ifndef" in line or "#endif" in line:
continue