% Copyright (c) 2022-2023 Thomas Kelkel kelkel@emaileon.de

% This file may be distributed and/or modified under the
% conditions of the LaTeX Project Public License, either
% version 1.3c of this license or (at your option) any later
% version. The latest version of this license is in

%    http://www.latex-project.org/lppl.txt

% and version 1.3c or later is part of all distributions of
% LaTeX version 2009/09/24 or later.

% The ligtype package makes use of the German language
% ligature suppression rules of the selnolig package by
% Mico Loretan. The selnolig package can be downloaded at

%    https://www.ctan.org/pkg/selnolig

% and may be distributed and/or modified under the
% conditions of the LaTeX Project Public License.

\ProvidesPackage{ligtype}[2023/07/08 v0.3 Comprehensive ligature suppression functionalities]
\RequirePackage{ifluatex,luatexbase}

\ifluatex
    \directlua{require ( "ligtype.lua" )}

    \DeclareOption{noshortf}{\directlua{ligtype_no_short_f()}}
    \DeclareOption{allshortf}{\directlua{ligtype_all_short_f()}}
    \DeclareOption{makemarks}{\directlua{ligtype_make_marks()}}
    \DeclareOption{kerntest}{\AtEndDocument{\directlua{ligtype_write_ligs()}}}
    \DeclareOption{nodefault}{\directlua{ligtype_no_default()}}
    \DeclareOption{liglist}{\directlua{ligtype_lig_list()}}
    \DeclareOption{connotes}{\directlua{ligtype_con_notes()}}
    \ProcessOptions

    \def\ligtypeon{\directlua{ligtype_on()}}
    \def\ligtypeoff{\directlua{ligtype_off()}}

    \def\noligs{\directlua{ligtype_no_ligs()}}
    \def\ligs{\directlua{ligtype_ligs()}}

    \ligtypeon

    \newcommand\nolig[2]{%
        \directlua{%
            ligtype_parse_macro ( "\luatexluaescapestring{#1}", "\luatexluaescapestring{#2}", true )%
        }%
    }
    \newcommand\keeplig[2]{%
        \directlua{%
            ligtype_parse_macro ( "\luatexluaescapestring{#1}", "\luatexluaescapestring{#2}", false )%
        }%
    }
\else
    \errhelp{Compile with LuaLaTeX to be able to use the "ligtype" package.}
    \errmessage{Package "ligtype" error: This package requires LuaLaTeX!}
\fi