core-con.mkiv / last modification: 2008-06-24 21:55
%D \module
%D   [       file=core-con,
%D        version=2006.09.16,
%D          title=\CONTEXT\ Core Macros,
%D       subtitle=Conversion Macros,
%D         author=Hans Hagen,
%D           date=\currentdate,
%D      copyright={PRAGMA / Hans Hagen \& Ton Otten}]
%C
%C This module is part of the \CONTEXT\ macro||package and is
%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
%C details.

\unprotect

\registerctxluafile{core-con}{1.001}

\def\romannumerals       #1{\ctxlua{converters.romannumerals(\number#1)}}
\def\Romannumerals       #1{\ctxlua{converters.Romannumerals(\number#1)}}
\def\abjadnumerals      #1{\ctxlua{converters.arabicnumerals(\number#1)}}
\def\abjadnodotnumerals #1{\ctxlua{converters.arabicnodotnumerals(\number#1)}}
\def\abjadnaivenumerals #1{\ctxlua{converters.arabicnaivenumerals(\number#1)}}

\defineconversion [romannumerals]      [\romannumerals]
\defineconversion [Romannumerals]      [\Romannumerals]
\defineconversion [abjadnumerals]      [\abjadnumerals]
\defineconversion [abjadnodotnumerals] [\adjadnodotnumerals]
\defineconversion [abjadnaivenumerals] [\adjadnaivenumerals]

\def\character #1{\ctxlua{converters.character (\number#1)}}
\def\Character #1{\ctxlua{converters.Character (\number#1)}}
\def\characters#1{\ctxlua{converters.characters(\number#1)}}
\def\Characters#1{\ctxlua{converters.Characters(\number#1)}}

\def\languagecharacters#1{\ctxlua{converters.alphabetic(\number#1,"\currentlanguage")}} % new
\def\languageCharacters#1{\ctxlua{converters.Alphabetic(\number#1,"\currentlanguage")}} % new

\def\getdayoftheweek#1#2#3{\normalweekday\ctxlua{converters.weekday(\number#1,\number#2,\number#3)}}
\def\dayoftheweek   #1#2#3{\doconvertday{\ctxlua{converters.weekday(\number#1,\number#2,\number#3)}}}

\def\doifleapyearelse#1%
  {\ifcase\ctxlua{converters.leapyear(\number#1)}
     \@EA\secondoftwoarguments
   \else
     \@EA\firstoftwoarguments
   \fi}

\def\getdayspermonth#1#2%
  {\edef\numberofdays{\ctxlua{converters.nofdays(\number#1,\number#2)}}}

\def\dayspermonth#1#2%
  {\ctxlua{converters.nofdays(\number#1,\number#2)}}

\def\calculatecurrenttime
  {\edef\currenthour  {\ctxlua{converters.hour  ()}}%
   \edef\currentminute{\ctxlua{converters.minute()}}%
   \edef\currentsecond{\ctxlua{converters.second()}}}

% problem is that we calculate with those numbers
%
% \def\time {\numexpr\ctxlua{converters.textime()}\relax}
% \def\year {\numexpr\ctxlua{converters.year   ()}\relax}
% \def\month{\numexpr\ctxlua{converters.month  ()}\relax}
% \def\day  {\numexpr\ctxlua{converters.day    ()}\relax}

% \dayoftheweek{2006}{9}{15}
% \doifleapyearelse{2000}{OK}{NOT OK}
% \doifleapyearelse{2100}{NOT OK}{OK}
% \doifleapyearelse{2004}{OK}{NOT OK}
% \doifleapyearelse{2003}{NOT OK}{OK}
% \dayspermonth{2000}{2}
% [\the\normaltime=\the\time]

% we could use an auxiliary macro to save some bytes in the format
%
% \def\dolanguagecharacters#1#2{\ctxlua{converters.alphabetic(\number#2,"#1")}}

% this does not belong here, but in a lang-module

\def\thainumerals      #1{\ctxlua{converters.alphabetic(\number#1,"thai")}}
\def\devanagarinumerals#1{\ctxlua{converters.alphabetic(\number#1,"devanagari")}}
\def\gurmurkhinumerals #1{\ctxlua{converters.alphabetic(\number#1,"gurmurkhi")}}
\def\gujaratinumerals  #1{\ctxlua{converters.alphabetic(\number#1,"gujarati")}}
\def\tibetannumerals   #1{\ctxlua{converters.alphabetic(\number#1,"tibetan")}}
\def\greeknumerals     #1{\ctxlua{converters.alphabetic(\number#1,"greek")}}
\def\Greeknumerals     #1{\ctxlua{converters.Alphabetic(\number#1,"greek")}}
\def\arabicnumerals    #1{\ctxlua{converters.alphabetic(\number#1,"arabic")}}
\def\persiannumerals   #1{\ctxlua{converters.alphabetic(\number#1,"persian")}}

\let\arabicexnumerals  \persiannumerals

\defineconversion [thainumerals]       [\thainumerals]
\defineconversion [devanagarinumerals] [\devanagarinumerals]
\defineconversion [gurmurkhinumerals]  [\gurmurkhinumerals]
\defineconversion [gujaratinumerals]   [\gujaratinumerals]
\defineconversion [tibetannumerals]    [\tibetannumerals]
\defineconversion [greeknumerals]      [\greeknumerals]
\defineconversion [Greeknumerals]      [\Greeknumerals]
\defineconversion [arabicnumerals]     [\arabicnumerals]
\defineconversion [persiannumerals]    [\persiannumerals]
\defineconversion [arabicexnumerals]   [\arabicexnumerals]

\protect \endinput