Procházka Lukáš Ing.
8. Februar 2018 um 10:50
Hello,

I'm trying to test whether value of \jobname is "Test"; I suppose it should be as the file name is "Test.mkiv".

But the code:

----
\starttext
  \jobname
  \doifelse{\jobname}{Test}{Yes}{No}
  \def\T{Test}
  \ifx\jobname\T True\else False\fi
  \ctxcommand{doifelse("\jobname" == "Test")}{1}{0}
\stoptext
----

yields "No", "False" and "1", so only the printed "1" is what I expect.

Why \doifelse and \ifx are evaluated as false?

The string from \jobname consists of catcode 12 letters while normal text
consists of catcode 11 letters. If you need the name of the file use one
of the commands below.


\starttext

\starttabulate
\NC \tex{jobfilefullname}     \NC \jobfilefullname     \NC\NR
\NC \tex{jobfilename}         \NC \jobfilename         \NC\NR
\NC \tex{jobfilesuffix}       \NC \jobfilesuffix       \NC\NR
\TB
\NC \tex{inputfilebarename}   \NC \inputfilebarename   \NC\NR
\NC \tex{inputfilerealsuffix} \NC \inputfilerealsuffix \NC\NR
\NC \tex{inputfilesuffix}     \NC \inputfilesuffix     \NC\NR
\NC \tex{inputfilename}       \NC \inputfilename       \NC\NR
\stoptabulate

\stoptext

Wolfgang