summaryrefslogtreecommitdiff
path: root/Master/texmf-dist/source/latex/expl3/l3file.dtx
diff options
context:
space:
mode:
Diffstat (limited to 'Master/texmf-dist/source/latex/expl3/l3file.dtx')
-rw-r--r--Master/texmf-dist/source/latex/expl3/l3file.dtx418
1 files changed, 0 insertions, 418 deletions
diff --git a/Master/texmf-dist/source/latex/expl3/l3file.dtx b/Master/texmf-dist/source/latex/expl3/l3file.dtx
deleted file mode 100644
index 63c21100ba8..00000000000
--- a/Master/texmf-dist/source/latex/expl3/l3file.dtx
+++ /dev/null
@@ -1,418 +0,0 @@
-% \iffalse meta-comment
-%
-%% File: l3file.dtx Copyright (C) 2009-2011 by
-%% The LaTeX3 Project <latex-team@latex-project.org>
-%%
-%% It may be distributed and/or modified under the conditions of the
-%% LaTeX Project Public License (LPPL), either version 1.3c of this
-%% license or (at your option) any later version. The latest version
-%% of this license is in the file
-%%
-%% http://www.latex-project.org/lppl.txt
-%%
-%% This file is part of the "expl3 bundle" (The Work in LPPL)
-%% and all files in that bundle must be distributed together.
-%%
-%% The released version of this bundle is available from CTAN.
-%%
-%% -----------------------------------------------------------------------
-%%
-%% The development version of the bundle can be found at
-%%
-%% http://www.latex-project.org/svnroot/experimental/trunk/
-%%
-%% for those people who are interested.
-%%
-%%%%%%%%%%%
-%% NOTE: %%
-%%%%%%%%%%%
-%%
-%% Snapshots taken from the repository represent work in progress and may
-%% not work or may contain conflicting material! We therefore ask
-%% people _not_ to put them into distributions, archives, etc. without
-%% prior consultation with the LaTeX3 Project.
-%%
-%% -----------------------------------------------------------------------
-%
-%<*driver|package>
-\RequirePackage{l3names}
-\GetIdInfo$Id: l3file.dtx 2242 2011-04-21 08:07:24Z joseph $
- {The LaTeX3 kernel: file operations}
-%</driver|package>
-%<*driver>
-\documentclass[full]{l3doc}
-\usepackage{csquotes}
-\begin{document}
- \DocInput{\jobname.dtx}
-\end{document}
-%</driver>
-% \fi
-%
-% \GetFileInfo{\jobname.sty}
-%
-% \title{^^A
-% \fileinfo
-% \thanks{This file describes v\fileversion, last revised \filedate.}^^A
-% }
-%
-% \author{^^A
-% The \LaTeX3 Project\thanks
-% {^^A
-% E-mail:
-% \href{mailto:latex-team@latex-project.org}
-% {latex-team@latex-project.org}^^A
-% }^^A
-% }
-%
-% \date{Released \filedate}
-%
-% \maketitle
-%
-% \begin{documentation}
-%
-% In contrast to the \pkg{l3io} module, which deals with the lowest
-% level of file management, the \pkg{l3file} module provides a higher
-% level interface for handling file contents. This involves providing
-% convenient wrappers around many of the functions in \pkg{l3io}
-% to make them more generally accessible.
-%
-% It is important to remember that \TeX{} will attempt to locate files using
-% both the operating system path and entries in the \TeX{} file database (most
-% \TeX{} systems use such a database). Thus the \enquote{current path} for
-% \TeX{} is somewhat broader than that for other programs.
-%
-% \begin{variable}{\g_file_current_name_tl}
-% Contains the name of the current \LaTeX{} file. This variable
-% should not be modified: it is intended for information only. It
-% will be equal to \cs{c_job_name_tl} at the start of a \LaTeX{}
-% run and will be modified each time a file is read using
-% \cs{file_input:n}.
-% \end{variable}
-%
-% \begin{function}[TF]{\file_if_exist:n}
-% \begin{syntax}
-% \cs{file_if_exist:nTF} \Arg{file name} \Arg{true code} \Arg{false code}
-% \end{syntax}
-% Searches for \meta{file name} using the current \TeX{} search
-% path and the additional paths controlled by
-% \cs{file_path_include:n}). The branching versions then leave
-% either \meta{true code} or \meta{false code} in the input stream,
-% as appropriate to the truth of the test and the variant of the
-% function chosen.
-% \begin{texnote}
-% The \meta{file name} may contain both literal items and expandable
-% content, which should on full expansion be the desired file name.
-% The expansion occurs when \TeX{} searches for the file.
-% \end{texnote}
-% \end{function}
-%
-% \begin{function}{\file_add_path:nN}
-% \begin{syntax}
-% \cs{file_add_path:nN} \Arg{file name} \meta{tl var}
-% \end{syntax}
-% Searches for \meta{file name} in the path as detailed for
-% \cs{file_if_exist:nTF}, and if found sets the \meta{tl var} the
-% fully-qualified name of the file, \emph{i.e}.~the path and file name.
-% If the file is not found then the \meta{tl var} will be empty.
-% \begin{texnote}
-% The \meta{file name} may contain both literal items and expandable
-% content, which should on full expansion be the desired file name.
-% The expansion occurs when \TeX{} searches for the file.
-% \end{texnote}
-% \end{function}
-%
-% \begin{function}{\file_input:n}
-% \begin{syntax}
-% \cs{file_input:n} \Arg{file name}
-% \end{syntax}
-% Searches for \meta{file name} in the path as detailed for
-% \cs{file_if_exist:nTF}, and if found reads in the file as
-% additional \LaTeX{} source. All files read are recorded
-% for information and the file name stack is updated by this
-% function.
-% \begin{texnote}
-% The \meta{file name} may contain both literal items and expandable
-% content, which should on full expansion be the desired file name.
-% The expansion occurs when \TeX{} searches for the file.
-% \end{texnote}
-% \end{function}
-%
-% \begin{function}{\file_path_include:n}
-% \begin{syntax}
-% \cs{file_path_include:n} \Arg{path}
-% \end{syntax}
-% Adds \meta{path} to the list of those used to search for files
-% by the \cs{file_input:n} and \cs{file_if_exist:n} function. The
-% assignment is local.
-% \end{function}
-%
-% \begin{function}{\file_path_remove:n}
-% \begin{syntax}
-% \cs{file_path_remove:n} \Arg{path}
-% \end{syntax}
-% Removes \meta{path} from the list of those used to search for files
-% by the \cs{file_input:n} and \cs{file_if_exist:n} function. The
-% assignment is local.
-% \end{function}
-%
-% \begin{function}{\file_list:}
-% \begin{syntax}
-% \cs{file_list:}
-% \end{syntax}
-% This function will list all files loaded using \cs{file_input:n}
-% in the log file.
-% \end{function}
-%
-% \end{documentation}
-%
-% \begin{implementation}
-%
-% \section{Internal file functions}
-%
-% \begin{function}{\g_file_stack_seq}
-% Stores the stack of nested files loaded using \cs{file_input:n}. This
-% is needed to restore the appropriate file name to
-% \cs{g_file_current_name_tl} at the end of each file.
-% \end{function}
-%
-% \begin{function}{\g_file_record_seq}
-% Stores the name of every file loaded using \cs{file_input:n}. In
-% contrast to \cs{g_file_stack_seq}, no items are ever removed from this
-% sequence.
-% \end{function}
-%
-% \begin{function}{\l_file_name_tl}
-% Used to return the full name of a file for internal use.
-% \end{function}
-%
-% \begin{function}{\l_file_search_path_seq}
-% The sequence of file paths to search when loading a file.
-% \end{function}
-%
-% \begin{function}{\l_file_search_path_saved_seq}
-% When loaded on top of \LaTeXe{}, there is a need to save the search
-% path so that \cs{input@path} can be used as appropriate.
-% \end{function}
-%
-% \section{File operation implementation}
-%
-% \TestFiles{m3file001}
-%
-% \begin{macrocode}
-%<*initex|package>
-% \end{macrocode}
-%
-% \begin{macrocode}
-%<*package>
-\ProvidesExplPackage
- {\filename}{\filedate}{\fileversion}{\filedescription}
-\package_check_loaded_expl:
-%</package>
-% \end{macrocode}
-%
-% \begin{macro}{\g_file_current_name_tl}
-% The name of the current file should be available at all times.
-% \begin{macrocode}
-\tl_new:N \g_file_current_name_tl
-% \end{macrocode}
-% For the format the file name needs to be picked up at the start of the
-% file. In package mode the current file name is collected from \LaTeXe{}.
-% \begin{macrocode}
-%<*initex>
-\tex_everyjob:D \exp_after:wN
- {
- \tex_the:D \tex_everyjob:D
- \tl_gset:Nx \g_file_current_name_tl { \tex_jobname:D }
- }
-%</initex>
-%<*package>
-\tl_gset_eq:NN \g_file_current_name_tl \@currname
-%</package>
-% \end{macrocode}
-% \end{macro}
-%
-% \begin{macro}[int]{\g_file_stack_seq}
-% The input list of files is stored as a sequence stack.
-% \begin{macrocode}
-\seq_new:N \g_file_stack_seq
-% \end{macrocode}
-% \end{macro}
-%
-% \begin{macro}[int]{\g_file_record_seq}
-% The total list of files used is recorded separately from the current file
-% stack, as nothing is ever popped from this list.
-% \begin{macrocode}
-\seq_new:N \g_file_record_seq
-% \end{macrocode}
-% The current file name should be included in the file list!
-% \begin{macrocode}
-%<*initex>
-\tex_everyjob:D \exp_after:wN
- {
- \tex_the:D \tex_everyjob:D
- \seq_gput_right:NV \g_file_record_seq \g_file_current_name_tl
- }
-%</initex>
-% \end{macrocode}
-% \end{macro}
-%
-% \begin{macro}[int]{\l_file_name_tl}
-% Used to return the fully-qualified name of a file.
-% \begin{macrocode}
-\tl_new:N \l_file_name_tl
-% \end{macrocode}
-% \end{macro}
-%
-% \begin{macro}[int]{\l_file_search_path_seq}
-% The current search path.
-% \begin{macrocode}
-\seq_new:N \l_file_search_path_seq
-% \end{macrocode}
-% \end{macro}
-%
-% \begin{macro}[int]{\l_file_search_path_saved_seq}
-% The current search path has to be saved for package use.
-% \begin{macrocode}
-%<*package>
-\seq_new:N \l_file_search_path_saved_seq
-%</package>
-% \end{macrocode}
-% \end{macro}
-%
-% \begin{macro}{\file_add_path:nN}
-% \begin{macro}[aux]{\g_file_test_stream}
-% \begin{macro}[aux]{\file_add_path_search:nN}
-% The way to test if a file exists is to try to open it: if it does not
-% exist then \TeX{} will report end-of-file. For files which are in the
-% current directory, this is straight-forward. For other locations, a
-% search has to be made looking at each potential path in turn. The first
-% location is of course treated as the correct one. If nothing is found,
-% |#2| is returned empty.
-% \begin{macrocode}
-\cs_new_protected_nopar:Npn \file_add_path:nN #1#2
- {
- \ior_open:Nn \g_file_test_stream {#1}
- \ior_if_eof:NTF \g_file_test_stream
- { \file_add_path_search:nN {#1} #2 }
- {
- \ior_close:N \g_file_test_stream
- \tl_set:Nx #2 {#1}
- }
- }
-\cs_new_protected_nopar:Npn \file_add_path_search:nN #1#2
- {
- \tl_clear:N #2
-%<*package>
- \cs_if_exist:NT \input@path
- {
- \seq_set_eq:NN \l_file_search_path_saved_seq \l_file_search_path_seq
- \clist_map_inline:Nn \input@path
- { \seq_put_right:Nn \l_file_search_path_seq {##1} }
- }
-%</package>
- \seq_map_inline:Nn \l_file_search_path_seq
- {
- \ior_open:Nn \g_file_test_stream { ##1 #1 }
- \ior_if_eof:NF \g_file_test_stream
- {
- \tl_set:Nx #2 { ##1 #1 }
- \seq_map_break:
- }
- }
-%<*package>
- \cs_if_exist:NT \input@path
- { \seq_set_eq:NN \l_file_search_path_seq \l_file_search_path_saved_seq }
-%</package>
- \ior_close:N \g_file_test_stream
- }
-% \end{macrocode}
-% \end{macro}
-% \end{macro}
-% \end{macro}
-%
-% \begin{macro}[TF]{\file_if_exist:n}
-% The test for the existence of a file is a wrapper around the function to
-% add a path to a file. If the file was found, the path will contain something,
-% whereas if the file was not located then the return value will be empty.
-% \begin{macrocode}
-\prg_new_protected_conditional:Nnn \file_if_exist:n { T , F , TF }
- {
- \file_add_path:nN {#1} \l_file_name_tl
- \tl_if_empty:NTF \l_file_name_tl
- { \prg_return_false: }
- { \prg_return_true: }
- }
-% \end{macrocode}
-% \end{macro}
-%
-% \begin{macro}{\file_input:n}
-% Loading a file is done in a safe way, checking first that the file
-% exists and loading only if it does.
-% \begin{macrocode}
-\cs_new_protected_nopar:Npn \file_input:n #1
- {
- \file_add_path:nN {#1} \l_file_name_tl
- \tl_if_empty:NF \l_file_name_tl
- {
-%<*initex>
- \seq_gput_right:Nx \g_file_record_seq {#1}
-%</initex>
-%<*package>
- \@addtofilelist {#1}
-%</package>
- \seq_gpush:NV \g_file_stack_seq \g_file_current_name_tl
- \tl_gset:Nn \g_file_current_name_tl {#1}
- \tex_expandafter:D \tex_input:D \l_file_name_tl ~
- \seq_gpop:NN \g_file_stack_seq \g_file_current_name_tl
- }
- }
-% \end{macrocode}
-% \end{macro}
-%
-% \begin{macro}{\file_path_include:n}
-% \begin{macro}{\file_path_remove:n}
-% Wrapper functions to manage the search path.
-% \begin{macrocode}
-\cs_new_protected_nopar:Npn \file_path_include:n #1
- {
- \seq_if_in:NnF \l_file_search_path_seq {#1}
- { \seq_put_right:Nn \l_file_search_path_seq {#1} }
- }
-\cs_new_protected_nopar:Npn \file_path_remove:n #1
- { \seq_remove_all:Nn \l_file_search_path_seq {#1} }
-% \end{macrocode}
-% \end{macro}
-% \end{macro}
-%
-% \begin{macro}{\file_list:}
-% A function to list all files used to the log.
-% \begin{macrocode}
-\cs_new_protected_nopar:Npn \file_list:
- {
- \seq_remove_duplicates:N \g_file_record_seq
- \iow_log:n { *~File~List~* }
- \seq_map_inline:Nn \g_file_record_seq { \iow_log:n {##1} }
- \iow_log:n { ************* }
- }
-% \end{macrocode}
-% \end{macro}
-%
-% When used as a package, there is a need to hold onto the standard
-% file list as well as the new one here.
-% \begin{macrocode}
-%<*package>
-\AtBeginDocument
- {
- \clist_map_inline:Nn \@filelist
- { \seq_put_right:Nn \g_file_record_seq {#1} }
- }
-%</package>
-% \end{macrocode}
-%
-% \begin{macrocode}
-%</initex|package>
-% \end{macrocode}
-%
-% \end{implementation}
-%
-% \PrintIndex \ No newline at end of file