opt: refactor folding auto-generate file

This commit is contained in:
YiFang Xiao 2023-07-06 07:46:49 +08:00
parent 07615d9d9b
commit cae258272f
3 changed files with 7 additions and 7 deletions

View file

@ -2,14 +2,13 @@
* Part of GoldenDict. Licensed under GPLv3 or later, see the LICENSE file */ * Part of GoldenDict. Licensed under GPLv3 or later, see the LICENSE file */
#include "folding.hh" #include "folding.hh"
#include <QRegularExpression>
#include "utf8.hh" #include "utf8.hh"
#include "globalregex.hh" #include "globalregex.hh"
#include "inc_case_folding.hh"
namespace Folding { namespace Folding {
#include "inc_case_folding.hh"
/// Tests if the given char is one of the Unicode combining marks. Some are /// Tests if the given char is one of the Unicode combining marks. Some are
/// caught by the diacritics folding table, but they are only handled there /// caught by the diacritics folding table, but they are only handled there

View file

@ -1,8 +1,8 @@
// This file was generated automatically. Do not edit directly. // This file was generated automatically. Do not edit directly.
#pragma once
enum { foldCaseMaxOut = 3 }; enum { foldCaseMaxOut = 3 };
size_t foldCase( wchar in, wchar * out ) inline size_t foldCase( char32_t in, char32_t * out )
{ {
switch( in ) switch( in )
{ {
@ -1540,7 +1540,7 @@ size_t foldCase( wchar in, wchar * out )
} }
} }
wchar foldCaseSimple( wchar in ) char32_t foldCaseSimple( char32_t in )
{ {
switch( in ) switch( in )
{ {

View file

@ -164,8 +164,9 @@ int main()
fprintf( outf, "// This file was generated automatically. Do not edit directly.\n\n" ); fprintf( outf, "// This file was generated automatically. Do not edit directly.\n\n" );
fprintf( outf, "#pragma once\n\n" );
fprintf( outf, "enum { foldCaseMaxOut = 3 };\n\n" ); fprintf( outf, "enum { foldCaseMaxOut = 3 };\n\n" );
fprintf( outf, "size_t foldCase( wchar in, wchar * out )\n{\n switch( in )\n {\n" ); fprintf( outf, "inline size_t foldCase( char32_t in, char32_t * out )\n{\n switch( in )\n {\n" );
for ( map< char32_t, u32string >::const_iterator i = foldTable.begin(); i != foldTable.end(); ++i ) { for ( map< char32_t, u32string >::const_iterator i = foldTable.begin(); i != foldTable.end(); ++i ) {
if ( i->second.size() == 1 ) if ( i->second.size() == 1 )
@ -183,7 +184,7 @@ int main()
fprintf( outf, " default: *out = in; return 1;\n" ); fprintf( outf, " default: *out = in; return 1;\n" );
fprintf( outf, " }\n}\n\n" ); fprintf( outf, " }\n}\n\n" );
fprintf( outf, "wchar foldCaseSimple( wchar in )\n{\n switch( in )\n {\n" ); fprintf( outf, "char32_t foldCaseSimple( char32_t in )\n{\n switch( in )\n {\n" );
for ( map< char32_t, char32_t >::const_iterator i = simpleFoldTable.begin(); i != simpleFoldTable.end(); ++i ) for ( map< char32_t, char32_t >::const_iterator i = simpleFoldTable.begin(); i != simpleFoldTable.end(); ++i )
fprintf( outf, " case 0x%x: return 0x%x;\n", i->first, i->second ); fprintf( outf, " case 0x%x: return 0x%x;\n", i->first, i->second );