From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.lore.kernel.org (Postfix) with ESMTPS id 4E288C25B79 for ; Thu, 16 May 2024 19:32:46 +0000 (UTC) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1s7gpu-00029d-Ge; Thu, 16 May 2024 15:32:18 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1s7gpt-00025a-7Y for grub-devel@gnu.org; Thu, 16 May 2024 15:32:17 -0400 Received: from mail-ej1-x62b.google.com ([2a00:1450:4864:20::62b]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1s7gpr-0006dt-Ha for grub-devel@gnu.org; Thu, 16 May 2024 15:32:16 -0400 Received: by mail-ej1-x62b.google.com with SMTP id a640c23a62f3a-a599c55055dso355316066b.0 for ; Thu, 16 May 2024 12:32:14 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1715887933; x=1716492733; darn=gnu.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=5ahmP3uCk8Hc/yYPGAe5ImhG4rbYVdSmtDiVOBcEcDw=; b=Kv19rb0YHvSr9uZ5jssGIOLh7+UnGsYuu82sMF4WIro9/tC2blSHPTJGm6kp2g10hU zzc8+6fk3PSeWYePsKEkEStm0SBh6DRLwGc2upIYGGULYT+0bUdSCf8ya2uUSHsa9q2A 1zhhXsQyBkHqv2skBEm3rYpkZBezIlc6TAixWVAxf552YB9aK3uF72saK3q8Mw4N56+g oXj6KzcOuDoPyxl4ZaMv24c1r2OzH/3NYyS+Z/etvkxQnvzE2K4G0cO3z5nqMrIfWrTu 8oY9FsbnawVmH7t6tInHFcB3jB5e1MmPfrvOMggA9ZIHJ/Tw3I37WMFXP/Y/DUksTnhW UKTA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1715887933; x=1716492733; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=5ahmP3uCk8Hc/yYPGAe5ImhG4rbYVdSmtDiVOBcEcDw=; b=Wo//3+5HpOtqx2WKTorU39ihB/AyAk6DSavO3AUGGO3XO9pcvxS6H8e6yZRQGc+hS+ QfG/26UHIkwEsqGLh7RVpn4o9mR+U4QAIl45JnCsUOwJj1y5bc+Ce2fZxEKcxTWqfbmT ppUejRDNm2cKbWrdMF8ZDtrR38nYqltYVn+CfFewhfjEykCaEIklZ8u2eFbCQjNvUH5c bpKvfSlq0KOcfKMlflz0emh5+ItsTB81mX9A10C1m1sEI1VXiwWMfhZ91YrOQF8ObbiL bWQRD3wQ4hW2JOrhsF1P2Y3kABXEp/wFiBq11xBVEPeWuSckXQJ1cgJAD4QnkVKcEX6C JH5g== X-Gm-Message-State: AOJu0YyLx3BCasit4HCPORQbpmy7YUCTlfPdCpVkhnUL+ZQidvM/7UkG sZyNIZXVX0ke360CVdKhracYyEuCEKdSaqaOyCVPzkUdLPRTu5uD7ExVDksJ X-Google-Smtp-Source: AGHT+IFXSp/4hBfwyWTlwdmnW1tkuRdIca2UPf91j9z9mssrs+oQCYzmoDyJtiUt+L9RJ+uKIKnnMQ== X-Received: by 2002:a17:907:7711:b0:a5c:dd3f:9151 with SMTP id a640c23a62f3a-a5cdd3f933cmr292452066b.35.1715887932895; Thu, 16 May 2024 12:32:12 -0700 (PDT) Received: from localhost ([5.253.206.60]) by smtp.gmail.com with ESMTPSA id a640c23a62f3a-a5a17891fe4sm1013206766b.55.2024.05.16.12.32.12 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 16 May 2024 12:32:12 -0700 (PDT) From: Vladimir Serbinenko To: grub-devel@gnu.org Cc: Vladimir Serbinenko Subject: [PATCH 3/3] Improve font fallback scanning and validation for gfxterm Date: Thu, 16 May 2024 22:31:53 +0300 Message-Id: <20240516193153.4595-3-phcoder@gmail.com> X-Mailer: git-send-email 2.39.2 In-Reply-To: <20240516193153.4595-1-phcoder@gmail.com> References: <20240516193153.4595-1-phcoder@gmail.com> MIME-Version: 1.0 Received-SPF: pass client-ip=2a00:1450:4864:20::62b; envelope-from=phcoder@gmail.com; helo=mail-ej1-x62b.google.com X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, FREEMAIL_FROM=0.001, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: grub-devel@gnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: The development of GNU GRUB List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Reply-To: The development of GNU GRUB Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Errors-To: grub-devel-bounces+grub-devel=archiver.kernel.org@gnu.org Sender: grub-devel-bounces+grub-devel=archiver.kernel.org@gnu.org Q2hvb3NpbmcgYSBmb250IHdoaWNoIGlzIHRvbyBsYXJnZSBicmVha3MgZ2Z4dGVybS4gQmUgbW9y ZSBkaWxpZ2VudCBpbgpmb250IGNob2ljZS4gVGhpcyBiZWluZyBzYWlkIGl0J3MgYmV0dGVyIHRv IHNwZWNpZnkgdGhlIGNvcnJlY3QgZm9udCBleHBsaWNpdGx5CmluIGNvbmZpZyB3aGVuIHNldmVy YWwgZm9udHMgYXJlIGxvYWRlZC4KClNpZ25lZC1vZmYtYnk6IFZsYWRpbWlyIFNlcmJpbmVua28g PHBoY29kZXJAZ21haWwuY29tPgotLS0KIGdydWItY29yZS9nZnhtZW51L3ZpZXcuYyB8ICA3ICst LS0tCiBncnViLWNvcmUvdGVybS9nZnh0ZXJtLmMgfCA1NiArKysrKysrKysrKysrKysrKysrKysr KysrKysrKysrKy0tLS0tLS0tCiAyIGZpbGVzIGNoYW5nZWQsIDQ2IGluc2VydGlvbnMoKyksIDE3 IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL2dydWItY29yZS9nZnhtZW51L3ZpZXcuYyBiL2dy dWItY29yZS9nZnhtZW51L3ZpZXcuYwppbmRleCAxOWQzZjJmMTQuLmQ5NmI1Y2RjOSAxMDA2NDQK LS0tIGEvZ3J1Yi1jb3JlL2dmeG1lbnUvdmlldy5jCisrKyBiL2dydWItY29yZS9nZnhtZW51L3Zp ZXcuYwpAQCAtNTI0LDEyICs1MjQsNyBAQCBpbml0X3Rlcm1pbmFsIChncnViX2dmeG1lbnVfdmll d190IHZpZXcpCiB7CiAgIGdydWJfZm9udF90IHRlcm1pbmFsX2ZvbnQ7CiAKLSAgdGVybWluYWxf Zm9udCA9IGdydWJfZm9udF9nZXQgKHZpZXctPnRlcm1pbmFsX2ZvbnRfbmFtZSk7Ci0gIGlmICgh dGVybWluYWxfZm9udCkKLSAgICB7Ci0gICAgICBncnViX2Vycm9yIChHUlVCX0VSUl9CQURfRk9O VCwgIm5vIGZvbnQgbG9hZGVkIik7Ci0gICAgICByZXR1cm47Ci0gICAgfQorICB0ZXJtaW5hbF9m b250ID0gZ3J1Yl9mb250X2dldF9ub19mYWxsYmFjayAodmlldy0+dGVybWluYWxfZm9udF9uYW1l KTsKIAogICAvKiBDaGVjayB0aGF0IHRlcm1pbmFsIHdpbmRvdyBzaXplIGFuZCBwb3NpdGlvbiBh cmUgc2FuZS4gKi8KICAgdGVybWluYWxfc2FuaXR5X2NoZWNrICh2aWV3KTsKZGlmZiAtLWdpdCBh L2dydWItY29yZS90ZXJtL2dmeHRlcm0uYyBiL2dydWItY29yZS90ZXJtL2dmeHRlcm0uYwppbmRl eCAzYzQ2OGY0NTkuLmFkZGFkNWVlMiAxMDA2NDQKLS0tIGEvZ3J1Yi1jb3JlL3Rlcm0vZ2Z4dGVy bS5jCisrKyBiL2dydWItY29yZS90ZXJtL2dmeHRlcm0uYwpAQCAtMjkzLDEyICsyOTMsNTYgQEAg Z3J1Yl9nZnh0ZXJtX3NjaGVkdWxlX3JlcGFpbnQgKHZvaWQpCiAgIHJlcGFpbnRfc2NoZWR1bGVk ID0gMTsKIH0KIAorc3RhdGljIGludAorZm9udF92YWxpZGF0ZSAoZ3J1Yl9mb250X3QgZm9udCwg aW50IHdpZHRoLCBpbnQgaGVpZ2h0KQoreworICBpbnQgbm9ybWFsX2NoYXJfd2lkdGggPSBjYWxj dWxhdGVfbm9ybWFsX2NoYXJhY3Rlcl93aWR0aCAoZm9udCk7CisgIGludCBub3JtYWxfY2hhcl9o ZWlnaHQgPSBncnViX2ZvbnRfZ2V0X21heF9jaGFyX2hlaWdodCAoZm9udCk7CisgIGlmIChub3Jt YWxfY2hhcl9oZWlnaHQgPT0gMCkKKyAgICBub3JtYWxfY2hhcl9oZWlnaHQgPSAxNjsKKyAgaWYg KG5vcm1hbF9jaGFyX3dpZHRoID09IDApCisgICAgbm9ybWFsX2NoYXJfd2lkdGggPSA4OworCisg IC8qIENhbGN1bGF0ZSBzaXplIG9mIHRleHQgYnVmZmVyLiAgKi8KKyAgaW50IGNvbHVtbnMgPSB3 aWR0aCAvIG5vcm1hbF9jaGFyX3dpZHRoOworICBpbnQgcm93cyA9IGhlaWdodCAvIG5vcm1hbF9j aGFyX2hlaWdodDsKKworICByZXR1cm4gY29sdW1ucyA+PSA0MCAmJiByb3dzID49IDEyOworfQor CiBncnViX2Vycl90CiBncnViX2dmeHRlcm1fc2V0X3dpbmRvdyAoc3RydWN0IGdydWJfdmlkZW9f cmVuZGVyX3RhcmdldCAqdGFyZ2V0LAogCQkJIGludCB4LCBpbnQgeSwgaW50IHdpZHRoLCBpbnQg aGVpZ2h0LAogCQkJIGludCBkb3VibGVfcmVwYWludCwKIAkJCSBncnViX2ZvbnRfdCBmb250LCBp bnQgYm9yZGVyX3dpZHRoKQogeworICBpZiAoIWZvbnQpCisgICAgeworICAgICAgY29uc3QgY2hh ciAqZm9udF9uYW1lOworICAgICAgLyogU2VsZWN0IHRoZSBmb250IHRvIHVzZS4gICovCisgICAg ICBmb250X25hbWUgPSBncnViX2Vudl9nZXQgKCJnZnh0ZXJtX2ZvbnQiKTsKKyAgICAgIGlmICgh IGZvbnRfbmFtZSkKKwlmb250X25hbWUgPSAiIjsgICAvKiBBbGxvdyBmYWxsYmFjayB0byBhbnkg Zm9udC4gICovCisKKyAgICAgIGZvbnQgPSBncnViX2ZvbnRfZ2V0X25vX2ZhbGxiYWNrIChmb250 X25hbWUpOworICAgIH0KKworICBpZiAoIWZvbnQgfHwgIWZvbnRfdmFsaWRhdGUoZm9udCwgd2lk dGgsIGhlaWdodCkpCisgICAgeworICAgICAgc3RydWN0IGdydWJfZm9udF9ub2RlICpub2RlOwor CisgICAgICBmb250ID0gTlVMTDsKKworICAgICAgZm9yIChub2RlID0gZ3J1Yl9mb250X2xpc3Q7 IG5vZGU7IG5vZGUgPSBub2RlLT5uZXh0KQorCWlmIChmb250X3ZhbGlkYXRlKG5vZGUtPnZhbHVl LCB3aWR0aCwgaGVpZ2h0KSkKKwkgIGZvbnQgPSBub2RlLT52YWx1ZTsKKworICAgICAgaWYgKCFm b250KQorCWZvbnQgPSBncnViX2ZvbnRfZ2V0KCIiKTsKKyAgICB9CisgIGlmICghZm9udCkKKyAg ICByZXR1cm4gZ3J1Yl9lcnJvciAoR1JVQl9FUlJfQkFEX0ZPTlQsICJubyBmb250IGxvYWRlZCIp OworCiAgIC8qIENsZWFuIHVwIGFueSBwcmlvciBpbnN0YW5jZS4gICovCiAgIGRlc3Ryb3lfd2lu ZG93ICgpOwogCkBAIC0zMzEsMTIgKzM3NSwxMCBAQCBncnViX2dmeHRlcm1fc2V0X3dpbmRvdyAo c3RydWN0IGdydWJfdmlkZW9fcmVuZGVyX3RhcmdldCAqdGFyZ2V0LAogc3RhdGljIGdydWJfZXJy X3QKIGdydWJfZ2Z4dGVybV9mdWxsc2NyZWVuICh2b2lkKQogewotICBjb25zdCBjaGFyICpmb250 X25hbWU7CiAgIHN0cnVjdCBncnViX3ZpZGVvX21vZGVfaW5mbyBtb2RlX2luZm87CiAgIGdydWJf dmlkZW9fY29sb3JfdCBjb2xvcjsKICAgZ3J1Yl9lcnJfdCBlcnI7CiAgIGludCBkb3VibGVfcmVk cmF3OwotICBncnViX2ZvbnRfdCBmb250OwogCiAgIGVyciA9IGdydWJfdmlkZW9fZ2V0X2luZm8g KCZtb2RlX2luZm8pOwogICAvKiBGaWd1cmUgb3V0IHdoYXQgbW9kZSB3ZSBlbmRlZCB1cC4gICov CkBAIC0zNTcsMjEgKzM5OSwxMyBAQCBncnViX2dmeHRlcm1fZnVsbHNjcmVlbiAodm9pZCkKICAg ICAgIGdydWJfdmlkZW9fZmlsbF9yZWN0IChjb2xvciwgMCwgMCwgbW9kZV9pbmZvLndpZHRoLCBt b2RlX2luZm8uaGVpZ2h0KTsKICAgICB9CiAKLSAgLyogU2VsZWN0IHRoZSBmb250IHRvIHVzZS4g ICovCi0gIGZvbnRfbmFtZSA9IGdydWJfZW52X2dldCAoImdmeHRlcm1fZm9udCIpOwotICBpZiAo ISBmb250X25hbWUpCi0gICAgZm9udF9uYW1lID0gIiI7ICAgLyogQWxsb3cgZmFsbGJhY2sgdG8g YW55IGZvbnQuICAqLwotCi0gIGZvbnQgPSBncnViX2ZvbnRfZ2V0IChmb250X25hbWUpOwotICBp ZiAoIWZvbnQpCi0gICAgcmV0dXJuIGdydWJfZXJyb3IgKEdSVUJfRVJSX0JBRF9GT05ULCAibm8g Zm9udCBsb2FkZWQiKTsKIAogICBncnViX2dmeHRlcm1fZGVjb3JhdG9yX2hvb2sgPSBOVUxMOwog CiAgIHJldHVybiBncnViX2dmeHRlcm1fc2V0X3dpbmRvdyAoR1JVQl9WSURFT19SRU5ERVJfVEFS R0VUX0RJU1BMQVksCiAJCQkJICAwLCAwLCBtb2RlX2luZm8ud2lkdGgsIG1vZGVfaW5mby5oZWln aHQsCiAJCQkJICBkb3VibGVfcmVkcmF3LAotCQkJCSAgZm9udCwgREVGQVVMVF9CT1JERVJfV0lE VEgpOworCQkJCSAgTlVMTCwgREVGQVVMVF9CT1JERVJfV0lEVEgpOwogfQogCiBzdGF0aWMgZ3J1 Yl9lcnJfdAotLSAKMi4zOS4yCgoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX18KR3J1Yi1kZXZlbCBtYWlsaW5nIGxpc3QKR3J1Yi1kZXZlbEBnbnUub3JnCmh0 dHBzOi8vbGlzdHMuZ251Lm9yZy9tYWlsbWFuL2xpc3RpbmZvL2dydWItZGV2ZWwK