From 30f41c02aec763d32e62351452da9ef582bc3472 Mon Sep 17 00:00:00 2001 From: 3gg <3gg@shellblade.net> Date: Fri, 6 Mar 2026 13:30:59 -0800 Subject: Move contrib libraries to contrib repo --- .../build-scripts/makecasefoldhashtable.pl | 322 --------------------- 1 file changed, 322 deletions(-) delete mode 100755 contrib/SDL-3.2.8/build-scripts/makecasefoldhashtable.pl (limited to 'contrib/SDL-3.2.8/build-scripts/makecasefoldhashtable.pl') diff --git a/contrib/SDL-3.2.8/build-scripts/makecasefoldhashtable.pl b/contrib/SDL-3.2.8/build-scripts/makecasefoldhashtable.pl deleted file mode 100755 index efe3534..0000000 --- a/contrib/SDL-3.2.8/build-scripts/makecasefoldhashtable.pl +++ /dev/null @@ -1,322 +0,0 @@ -#!/usr/bin/perl -w - -# Simple DirectMedia Layer -# Copyright (C) 1997-2025 Sam Lantinga -# -# This software is provided 'as-is', without any express or implied -# warranty. In no event will the authors be held liable for any damages -# arising from the use of this software. -# -# Permission is granted to anyone to use this software for any purpose, -# including commercial applications, and to alter it and redistribute it -# freely, subject to the following restrictions: -# -# 1. The origin of this software must not be misrepresented; you must not -# claim that you wrote the original software. If you use this software -# in a product, an acknowledgment in the product documentation would be -# appreciated but is not required. -# 2. Altered source versions must be plainly marked as such, and must not be -# misrepresented as being the original software. -# 3. This notice may not be removed or altered from any source distribution. - -# This script was originally written by Ryan C. Gordon for PhysicsFS -# ( https://icculus.org/physfs/ ), under the zlib license: the same license -# that SDL itself uses). - -use warnings; -use strict; - -my $HASHBUCKETS1_16 = 256; -my $HASHBUCKETS1_32 = 16; -my $HASHBUCKETS2_16 = 16; -my $HASHBUCKETS3_16 = 4; - -my $mem_used = 0; - -print <<__EOF__; -/* - Simple DirectMedia Layer - Copyright (C) 1997-2025 Sam Lantinga - - This software is provided 'as-is', without any express or implied - warranty. In no event will the authors be held liable for any damages - arising from the use of this software. - - Permission is granted to anyone to use this software for any purpose, - including commercial applications, and to alter it and redistribute it - freely, subject to the following restrictions: - - 1. The origin of this software must not be misrepresented; you must not - claim that you wrote the original software. If you use this software - in a product, an acknowledgment in the product documentation would be - appreciated but is not required. - 2. Altered source versions must be plainly marked as such, and must not be - misrepresented as being the original software. - 3. This notice may not be removed or altered from any source distribution. -*/ - -/* - * This data was generated by SDL/build-scripts/makecasefoldhashtable.pl - * - * Do not manually edit this file! - */ - -#ifndef SDL_casefolding_h_ -#define SDL_casefolding_h_ - -/* We build three simple hashmaps here: one that maps Unicode codepoints to -a one, two, or three lowercase codepoints. To retrieve this info: look at -case_fold_hashX, where X is 1, 2, or 3. Most foldable codepoints fold to one, -a few dozen fold to two, and a handful fold to three. If the codepoint isn't -in any of these hashes, it doesn't fold (no separate upper and lowercase). - -Almost all these codepoints fit into 16 bits, so we hash them as such to save -memory. If a codepoint is > 0xFFFF, we have separate hashes for them, -since there are (currently) only about 120 of them and (currently) all of them -map to a single lowercase codepoint. */ - -typedef struct CaseFoldMapping1_32 -{ - Uint32 from; - Uint32 to0; -} CaseFoldMapping1_32; - -typedef struct CaseFoldMapping1_16 -{ - Uint16 from; - Uint16 to0; -} CaseFoldMapping1_16; - -typedef struct CaseFoldMapping2_16 -{ - Uint16 from; - Uint16 to0; - Uint16 to1; -} CaseFoldMapping2_16; - -typedef struct CaseFoldMapping3_16 -{ - Uint16 from; - Uint16 to0; - Uint16 to1; - Uint16 to2; -} CaseFoldMapping3_16; - -typedef struct CaseFoldHashBucket1_16 -{ - const CaseFoldMapping1_16 *list; - const Uint8 count; -} CaseFoldHashBucket1_16; - -typedef struct CaseFoldHashBucket1_32 -{ - const CaseFoldMapping1_32 *list; - const Uint8 count; -} CaseFoldHashBucket1_32; - -typedef struct CaseFoldHashBucket2_16 -{ - const CaseFoldMapping2_16 *list; - const Uint8 count; -} CaseFoldHashBucket2_16; - -typedef struct CaseFoldHashBucket3_16 -{ - const CaseFoldMapping3_16 *list; - const Uint8 count; -} CaseFoldHashBucket3_16; - -__EOF__ - - -my @foldPairs1_16; -my @foldPairs2_16; -my @foldPairs3_16; -my @foldPairs1_32; - -for (my $i = 0; $i < $HASHBUCKETS1_16; $i++) { - $foldPairs1_16[$i] = ''; -} - -for (my $i = 0; $i < $HASHBUCKETS1_32; $i++) { - $foldPairs1_32[$i] = ''; -} - -for (my $i = 0; $i < $HASHBUCKETS2_16; $i++) { - $foldPairs2_16[$i] = ''; -} - -for (my $i = 0; $i < $HASHBUCKETS3_16; $i++) { - $foldPairs3_16[$i] = ''; -} - -open(FH,'<','casefolding.txt') or die("failed to open casefolding.txt: $!\n"); -while () { - chomp; - # strip comments from textfile... - s/\#.*\Z//; - - # strip whitespace... - s/\A\s+//; - s/\s+\Z//; - - next if not /\A([a-fA-F0-9]+)\;\s*(.)\;\s*(.+)\;/; - my ($code, $status, $mapping) = ($1, $2, $3); - - my $hexxed = hex($code); - #print("// code '$code' status '$status' mapping '$mapping'\n"); - - if (($status eq 'C') or ($status eq 'F')) { - my ($map1, $map2, $map3) = (undef, undef, undef); - $map1 = $1 if $mapping =~ s/\A([a-fA-F0-9]+)(\s*|\Z)//; - $map2 = $1 if $mapping =~ s/\A([a-fA-F0-9]+)(\s*|\Z)//; - $map3 = $1 if $mapping =~ s/\A([a-fA-F0-9]+)(\s*|\Z)//; - die("mapping space too small for '$code'\n") if ($mapping ne ''); - die("problem parsing mapping for '$code'\n") if (not defined($map1)); - - if ($hexxed < 128) { - # Just ignore these, we'll handle the low-ASCII ones ourselves. - } elsif ($hexxed > 0xFFFF) { - # We just need to add the 32-bit 2 and/or 3 codepoint maps if this die()'s here. - die("Uhoh, a codepoint > 0xFFFF that folds to multiple codepoints! Fixme.") if defined($map2); - my $hashed = (($hexxed ^ ($hexxed >> 8)) & ($HASHBUCKETS1_32-1)); - #print("// hexxed '$hexxed' hashed1 '$hashed'\n"); - $foldPairs1_32[$hashed] .= " { 0x$code, 0x$map1 },\n"; - $mem_used += 8; - } elsif (not defined($map2)) { - my $hashed = (($hexxed ^ ($hexxed >> 8)) & ($HASHBUCKETS1_16-1)); - #print("// hexxed '$hexxed' hashed1 '$hashed'\n"); - $foldPairs1_16[$hashed] .= " { 0x$code, 0x$map1 },\n"; - $mem_used += 4; - } elsif (not defined($map3)) { - my $hashed = (($hexxed ^ ($hexxed >> 8)) & ($HASHBUCKETS2_16-1)); - #print("// hexxed '$hexxed' hashed2 '$hashed'\n"); - $foldPairs2_16[$hashed] .= " { 0x$code, 0x$map1, 0x$map2 },\n"; - $mem_used += 6; - } else { - my $hashed = (($hexxed ^ ($hexxed >> 8)) & ($HASHBUCKETS3_16-1)); - #print("// hexxed '$hexxed' hashed3 '$hashed'\n"); - $foldPairs3_16[$hashed] .= " { 0x$code, 0x$map1, 0x$map2, 0x$map3 },\n"; - $mem_used += 8; - } - } -} -close(FH); - -for (my $i = 0; $i < $HASHBUCKETS1_16; $i++) { - $foldPairs1_16[$i] =~ s/,\n\Z//; - my $str = $foldPairs1_16[$i]; - next if $str eq ''; - my $num = '000' . $i; - $num =~ s/\A.*?(\d\d\d)\Z/$1/; - my $sym = "case_fold1_16_${num}"; - print("static const CaseFoldMapping1_16 ${sym}[] = {\n$str\n};\n\n"); -} - -for (my $i = 0; $i < $HASHBUCKETS1_32; $i++) { - $foldPairs1_32[$i] =~ s/,\n\Z//; - my $str = $foldPairs1_32[$i]; - next if $str eq ''; - my $num = '000' . $i; - $num =~ s/\A.*?(\d\d\d)\Z/$1/; - my $sym = "case_fold1_32_${num}"; - print("static const CaseFoldMapping1_32 ${sym}[] = {\n$str\n};\n\n"); -} - -for (my $i = 0; $i < $HASHBUCKETS2_16; $i++) { - $foldPairs2_16[$i] =~ s/,\n\Z//; - my $str = $foldPairs2_16[$i]; - next if $str eq ''; - my $num = '000' . $i; - $num =~ s/\A.*?(\d\d\d)\Z/$1/; - my $sym = "case_fold2_16_${num}"; - print("static const CaseFoldMapping2_16 ${sym}[] = {\n$str\n};\n\n"); -} - -for (my $i = 0; $i < $HASHBUCKETS3_16; $i++) { - $foldPairs3_16[$i] =~ s/,\n\Z//; - my $str = $foldPairs3_16[$i]; - next if $str eq ''; - my $num = '000' . $i; - $num =~ s/\A.*?(\d\d\d)\Z/$1/; - my $sym = "case_fold3_16_${num}"; - print("static const CaseFoldMapping3_16 ${sym}[] = {\n$str\n};\n\n"); -} - -print("static const CaseFoldHashBucket1_16 case_fold_hash1_16[] = {\n"); - -for (my $i = 0; $i < $HASHBUCKETS1_16; $i++) { - my $str = $foldPairs1_16[$i]; - if ($str eq '') { - print(" { NULL, 0 },\n"); - } else { - my $num = '000' . $i; - $num =~ s/\A.*?(\d\d\d)\Z/$1/; - my $sym = "case_fold1_16_${num}"; - print(" { $sym, SDL_arraysize($sym) },\n"); - } - $mem_used += 12; -} -print("};\n\n"); - - -print("static const CaseFoldHashBucket1_32 case_fold_hash1_32[] = {\n"); - -for (my $i = 0; $i < $HASHBUCKETS1_32; $i++) { - my $str = $foldPairs1_32[$i]; - if ($str eq '') { - print(" { NULL, 0 },\n"); - } else { - my $num = '000' . $i; - $num =~ s/\A.*?(\d\d\d)\Z/$1/; - my $sym = "case_fold1_32_${num}"; - print(" { $sym, SDL_arraysize($sym) },\n"); - } - $mem_used += 12; -} -print("};\n\n"); - - -print("static const CaseFoldHashBucket2_16 case_fold_hash2_16[] = {\n"); - -for (my $i = 0; $i < $HASHBUCKETS2_16; $i++) { - my $str = $foldPairs2_16[$i]; - if ($str eq '') { - print(" { NULL, 0 },\n"); - } else { - my $num = '000' . $i; - $num =~ s/\A.*?(\d\d\d)\Z/$1/; - my $sym = "case_fold2_16_${num}"; - print(" { $sym, SDL_arraysize($sym) },\n"); - } - $mem_used += 12; -} -print("};\n\n"); - -print("static const CaseFoldHashBucket3_16 case_fold_hash3_16[] = {\n"); - -for (my $i = 0; $i < $HASHBUCKETS3_16; $i++) { - my $str = $foldPairs3_16[$i]; - if ($str eq '') { - print(" { NULL, 0 },\n"); - } else { - my $num = '000' . $i; - $num =~ s/\A.*?(\d\d\d)\Z/$1/; - my $sym = "case_fold3_16_${num}"; - print(" { $sym, SDL_arraysize($sym) },\n"); - } - $mem_used += 12; -} -print("};\n\n"); - -print <<__EOF__; -#endif /* SDL_casefolding_h_ */ - -__EOF__ - -print STDERR "Memory required for case-folding hashtable: $mem_used bytes\n"; - -exit 0; - -# end of makecashfoldhashtable.pl ... - -- cgit v1.2.3