scripts/makeheader: Minor improvements Use `pathlib` for proper path handling.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48
diff --git a/scripts/makeheader b/scripts/makeheader
index f2738bd..05d2c81 100755
--- a/scripts/makeheader
+++ b/scripts/makeheader
@@ -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