<div dir="ltr"><div>Karl,</div><div><br></div><div>Many thanks! Your recipe 1-4 worked beautifully! <br></div><div><br></div><div>Why the main installation directory (the one you choose under TeXLive installation) is not a variable under kpsewhich?<br></div><div><br></div><div>Paulo <span class="" style="" id=":1ke.8" tabindex="-1">Ney</span><br></div></div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Thu, Jan 23, 2020 at 11:22 AM Karl Berry <<a href="mailto:karl@freefriends.org">karl@freefriends.org</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">    can I assume all full-path files are system files? <br>
<br>
Maybe this:<br>
<br>
1) run kpsewhich -var-brace-value TEXMF; the output will be a long line<br>
that looks like:<br>
<br>
/home/karl/.texlive2019/texmf-config:/home/karl/.texlive2019/texmf-var:/home/karl/texmf:!!/home/texlive/karl/texmf-local:!!/home/texlive/karl/Master/texmf-config:!!/home/texlive/karl/Master/texmf-var:!!/home/texlive/karl/Master/texmf-dist<br>
<br>
2) Split it on [:;] to get the individual directories. (They'll be<br>
separated by ; on Windows, if you need to support that.)<br>
<br>
3) For each directory, remove a leading "!!" string if present.<br>
<br>
4) In the -recorder output, if the file is under one of these<br>
directories (begins with that as a prefix), consider it a system<br>
file. If not, not.<br>
<br>
5) I can imagine that files under TEXMFHOME may or may not be considered<br>
"system files", depending on the scenario. You'd have to separately look<br>
for the TEXMFHOME value (kpsewhich -var-value TEXMFHOME) and do what's<br>
needed.<br>
<br>
6) Ditto for the "TEXMFAUXTREES" (usually empty).<br>
kpsewhich -var-brace-value TEXMFAUXTREES<br>
<br>
6) It is technically possible for this to get messed up, e.g., if one of<br>
the purportedly "system" trees is defined to be a document directory<br>
(e.g., TEXMFHOME=.). I doubt it'll be a problem in practice, though.<br>
<br>
I think there can be no 100% reliable way to determine if an input file<br>
is a "system" file, because there is no definition of "system" at the<br>
file lookup level. It's just a list of directories.<br>
<br>
Hope this helps,<br>
Karl<br>
<br>
P.S. Of course Perl has plenty of ways to distinguish absolute<br>
vs. relative pathnames, e.g., Cwd::abs_path, but I'm guessing you<br>
are already well aware.<br>
</blockquote></div>