From 9db0c9553faa5053de30c124b0d5e540ce533e94 Mon Sep 17 00:00:00 2001 From: NaitLee <naitlee@disroot.org> Date: Sun, 16 Feb 2025 13:10:11 +0800 Subject: [PATCH] fix(noto-cjk-font): use neat cvar expansion in alias Signed-off-by: NaitLee <naitlee@disroot.org> --- data/font-notosanscjk.pk3dir/font-cjk.cfg | 96 ++++------------------- data/font-notosanscjk.pk3dir/make-cfg.sh | 49 ------------ 2 files changed, 17 insertions(+), 128 deletions(-) delete mode 100755 data/font-notosanscjk.pk3dir/make-cfg.sh diff --git a/data/font-notosanscjk.pk3dir/font-cjk.cfg b/data/font-notosanscjk.pk3dir/font-cjk.cfg index f7eb3fb2..61497dab 100644 --- a/data/font-notosanscjk.pk3dir/font-cjk.cfg +++ b/data/font-notosanscjk.pk3dir/font-cjk.cfg @@ -1,92 +1,30 @@ -// generated by make-cfg.sh, do not edit - // run before execing font cfg files (e.g. font-xolonium.cfg) and after switching language // pick a correct cjk font variant by locale as a cvar $font_cjk // medium weight fits the game well -set _font_cjk_weight Medium +set font_cjk_weight Medium // jp as default variant for non-cjk languages -set _font_cjk_variant jp - -alias _font_cjk_variant_ast _font_cjk_variant jp -alias _font_cjk_variant_id_ID _font_cjk_variant jp -alias _font_cjk_variant_de _font_cjk_variant jp -alias _font_cjk_variant_de_CH _font_cjk_variant jp -alias _font_cjk_variant_en _font_cjk_variant jp -alias _font_cjk_variant_en_AU _font_cjk_variant jp -alias _font_cjk_variant_en_GB _font_cjk_variant jp -alias _font_cjk_variant_es _font_cjk_variant jp -alias _font_cjk_variant_fr _font_cjk_variant jp -alias _font_cjk_variant_gl _font_cjk_variant jp -alias _font_cjk_variant_ga _font_cjk_variant jp -alias _font_cjk_variant_it _font_cjk_variant jp -alias _font_cjk_variant_la _font_cjk_variant jp -alias _font_cjk_variant_hu _font_cjk_variant jp -alias _font_cjk_variant_nl _font_cjk_variant jp -alias _font_cjk_variant_pl _font_cjk_variant jp -alias _font_cjk_variant_pt _font_cjk_variant jp -alias _font_cjk_variant_pt_BR _font_cjk_variant jp -alias _font_cjk_variant_ro _font_cjk_variant jp -alias _font_cjk_variant_fi _font_cjk_variant jp -alias _font_cjk_variant_sv _font_cjk_variant jp -alias _font_cjk_variant_tr _font_cjk_variant jp -alias _font_cjk_variant_cs _font_cjk_variant jp -alias _font_cjk_variant_el _font_cjk_variant jp -alias _font_cjk_variant_be _font_cjk_variant jp -alias _font_cjk_variant_bg _font_cjk_variant jp -alias _font_cjk_variant_ru _font_cjk_variant jp -alias _font_cjk_variant_sr _font_cjk_variant jp -alias _font_cjk_variant_uk _font_cjk_variant jp +set font_cjk_variant jp -// variant by cjk languages -alias _font_cjk_variant_zh_CN _font_cjk_variant sc -alias _font_cjk_variant_zh_HK _font_cjk_variant hk -alias _font_cjk_variant_zh_TW _font_cjk_variant tc -alias _font_cjk_variant_ja_JP _font_cjk_variant jp -alias _font_cjk_variant_ko _font_cjk_variant kr +set font_cjk_variant_ja_JP "set font_cjk_variant jp" +set font_cjk_variant_zh_CN "set font_cjk_variant sc" +set font_cjk_variant_zh_HK "set font_cjk_variant hk" +set font_cjk_variant_zh_TW "set font_cjk_variant tc" +set font_cjk_variant_ko "set font_cjk_variant kr" -// pick a variant by current language -_font_cjk_variant_${prvm_language} +// https://gitlab.com/xonotic/xonotic/-/merge_requests/119#note_2349746024 +// font_cjk_pickvariant executes the command defined in font_cjk_variant_${prvm_language} +// it doesn't error if font_cjk_variant_${prvm_language} doesn't exist +"alias" font_cjk_pickvariant "$${font_cjk_variant_${prvm_language} ?}" +font_cjk_pickvariant // use this cvar in loadfont commands -set font_cjk fonts/NotoSansCJK${_font_cjk_variant}-${_font_cjk_weight}.otf +set font_cjk fonts/NotoSansCJK${font_cjk_variant}-${font_cjk_weight}.otf // clean up -unset _font_cjk_variant -unset _font_cjk_weight +// you may manually unset font_cjk after use +unalias font_cjk_pickvariant +unset font_cjk_variant +unset font_cjk_weight -unalias _font_cjk_variant_ast -unalias _font_cjk_variant_id_ID -unalias _font_cjk_variant_de -unalias _font_cjk_variant_de_CH -unalias _font_cjk_variant_en -unalias _font_cjk_variant_en_AU -unalias _font_cjk_variant_en_GB -unalias _font_cjk_variant_es -unalias _font_cjk_variant_fr -unalias _font_cjk_variant_gl -unalias _font_cjk_variant_ga -unalias _font_cjk_variant_it -unalias _font_cjk_variant_la -unalias _font_cjk_variant_hu -unalias _font_cjk_variant_nl -unalias _font_cjk_variant_pl -unalias _font_cjk_variant_pt -unalias _font_cjk_variant_pt_BR -unalias _font_cjk_variant_ro -unalias _font_cjk_variant_fi -unalias _font_cjk_variant_sv -unalias _font_cjk_variant_tr -unalias _font_cjk_variant_cs -unalias _font_cjk_variant_el -unalias _font_cjk_variant_be -unalias _font_cjk_variant_bg -unalias _font_cjk_variant_ru -unalias _font_cjk_variant_sr -unalias _font_cjk_variant_uk -unalias _font_cjk_variant_zh_CN -unalias _font_cjk_variant_zh_HK -unalias _font_cjk_variant_zh_TW -unalias _font_cjk_variant_ja_JP -unalias _font_cjk_variant_ko diff --git a/data/font-notosanscjk.pk3dir/make-cfg.sh b/data/font-notosanscjk.pk3dir/make-cfg.sh deleted file mode 100755 index fe30710d..00000000 --- a/data/font-notosanscjk.pk3dir/make-cfg.sh +++ /dev/null @@ -1,49 +0,0 @@ -#!/bin/env bash -cfg="font-cjk.cfg" -languages=$(awk '{ if (substr($1, 1, 2) != "zh" && substr($1, 1, 2) != "ja" && substr($1, 1, 2) != "ko") print $1 }' <"../xonotic-data.pk3dir/languages.txt") - -printf "" >"$cfg" - -cat >>"$cfg" <<EOF -// generated by make-cfg.sh, do not edit - -// run before execing font cfg files (e.g. font-xolonium.cfg) and after switching language -// pick a correct cjk font variant by locale as a cvar \$font_cjk - -// medium weight fits the game well -set _font_cjk_weight Medium - -// jp as default variant for non-cjk languages -set _font_cjk_variant jp - -EOF - -for lang in $languages; do - echo "alias _font_cjk_variant_${lang} _font_cjk_variant jp" >>"$cfg" -done - -cat >>"$cfg" <<EOF - -// variant by cjk languages -alias _font_cjk_variant_zh_CN _font_cjk_variant sc -alias _font_cjk_variant_zh_HK _font_cjk_variant hk -alias _font_cjk_variant_zh_TW _font_cjk_variant tc -alias _font_cjk_variant_ja_JP _font_cjk_variant jp -alias _font_cjk_variant_ko _font_cjk_variant kr - -// pick a variant by current language -_font_cjk_variant_\${prvm_language} - -// use this cvar in loadfont commands -set font_cjk fonts/NotoSansCJK\${_font_cjk_variant}-\${_font_cjk_weight}.otf - -// clean up -unset _font_cjk_variant -unset _font_cjk_weight - -EOF - -for lang in $languages zh_CN zh_HK zh_TW ja_JP ko; do - echo "unalias _font_cjk_variant_${lang}" >>"$cfg" -done - -- 2.39.5