%global forgeurl https://github.com/starwing/luautf8 %global tag %{version} Name: lua-utf8 Version: 0.1.4 Release: 1%{?dist} Summary: A UTF-8 support module for Lua License: MIT URL: %{forgeurl} %forgemeta Source: %{forgesource} BuildRequires: lua-devel BuildRequires: gcc %description This module adds UTF-8 support to Lua. It use data extracted from [Unicode Character Database](http://www.unicode.org/reports/tr44/), and tested on Lua 5.2.3, Lua 5.3.0 and LuaJIT. parseucd.lua is a pure Lua script generate unidata.h, to support convert characters and check characters' category. It mainly used to compatible with Lua's own string module, it passed all string and pattern matching test in lua test suite[2]. It also add some useful routines against UTF-8 features, some like: - a convenient interface to escape Unicode sequence in string. - string insert/remove, since UTF-8 substring extract may expensive. - calculate Unicode width, useful when implement e.g. console emulator. - a useful interface to translate Unicode offset and byte offset. %prep %forgesetup %build %{__cc} %{optflags} %{?__global_ldflags} -fPIC -c -o lutf8lib.o lutf8lib.c %{__cc} %{?__global_ldflags} -shared -o lua-utf8.so lutf8lib.o %install install -dD %{buildroot}%{lua_libdir} install -p -m 755 lua-utf8.so %{buildroot}%{lua_libdir}/ %check LUA_CPATH="%{buildroot}%{lua_libdir}/?.so" \ lua -e 'local utf8 = require "lua-utf8"; assert(4 == utf8.len("test"));' LUA_CPATH="%{buildroot}%{lua_libdir}/?.so" \ lua test.lua %files %license LICENSE %doc README.md %{lua_libdir}/lua-utf8.so %changelog * Wed Nov 16 2022 Jonny Heggheim - 0.1.4-1 - Initial package