diff options
author | Karl Berry <karl@freefriends.org> | 2009-06-09 23:31:15 +0000 |
---|---|---|
committer | Karl Berry <karl@freefriends.org> | 2009-06-09 23:31:15 +0000 |
commit | 215b9a864d5829070bdc66ba736986eb72e5143e (patch) | |
tree | fe0882c81fc4ec945cee4b512f72eaa21ea5f791 /Master/texmf-dist/tex/latex/expl3/l3file.sty | |
parent | df90ec06321940c2f066b05e12f1b5ab099105da (diff) |
expl3 1407 (9jun09)
git-svn-id: svn://tug.org/texlive/trunk@13686 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master/texmf-dist/tex/latex/expl3/l3file.sty')
-rw-r--r-- | Master/texmf-dist/tex/latex/expl3/l3file.sty | 161 |
1 files changed, 161 insertions, 0 deletions
diff --git a/Master/texmf-dist/tex/latex/expl3/l3file.sty b/Master/texmf-dist/tex/latex/expl3/l3file.sty new file mode 100644 index 00000000000..4e576422173 --- /dev/null +++ b/Master/texmf-dist/tex/latex/expl3/l3file.sty @@ -0,0 +1,161 @@ +%% +%% This is file `l3file.sty', +%% generated with the docstrip utility. +%% +%% The original source files were: +%% +%% l3file.dtx (with options: `package') +%% +%% +%% EXPERIMENTAL CODE +%% +%% Do not distribute this file without also distributing the +%% source files specified above. +%% +%% Do not distribute a modified version of this file. +%% +%% +%% File: l3file.dtx Copyright (C) 2009 LaTeX3 project +%% +%% 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 LaTeX Project Team. +%% +%% ----------------------------------------------------------------------- +%% +\RequirePackage{l3names} +\GetIdInfo$Id: l3file.dtx 1352 2009-05-28 11:50:39Z morten $ + {L3 Experimental file loading} +\ProvidesExplPackage + {\filename}{\filedate}{\fileversion}{\filedescription} +\package_check_loaded_expl: +\clist_new:N \g_file_record_clist +\clist_new:N \g_file_record_full_clist +\clist_new:N \l_file_search_path_clist +\ior_new:N \l_file_test_read_stream +\bool_new:N \l_file_tmp_bool +\tl_new:N \l_file_tmp_tl +\prg_new_conditional:Nnn \file_if_exist:n {p,TF,T,F} { + \ior_open:Nn \l_file_test_read_stream {#1} + \ior_if_eof:NTF \l_file_test_read_stream { + \file_if_exist_path:n {#1} + }{ + \ior_close:N \l_file_test_read_stream + \prg_return_true: + } +} +\cs_new_nopar:Nn \file_if_exist_path:n { + \bool_set_false:N \l_file_tmp_bool + \cs_set_nopar:Nn \file_if_exist_aux:n { + \ior_open:Nn \l_file_test_read_stream { #1 ##1 } + \ior_if_eof:NF \l_file_test_read_stream { + \bool_set_true:N \l_file_tmp_bool + \clist_map_break: + } + } + \cs_if_exist:NT \input@path { + \cs_set_eq:NN \l_file_search_path_clist \input@path + } + \clist_map_function:NN \l_file_search_path_clist \file_if_exist_aux:n + \ior_close:N \l_file_test_read_stream + \bool_if:NTF \l_file_tmp_bool { + \prg_return_true: + }{ + \prg_return_false: + } +} +\cs_new_nopar:Nn \file_if_exist_aux:n { } +\cs_new_nopar:Nn \file_add_path:nN { + \tl_clear:N #2 + \ior_open:Nn \l_file_test_read_stream {#1} + \ior_if_eof:NTF \l_file_test_read_stream { + \file_add_path_search:nN {#1} #2 + }{ + \tl_set:Nn #2 {#1} + } + \ior_close:N \l_file_test_read_stream +} +\cs_new_nopar:Nn \file_add_path_search:nN { + \cs_set_nopar:Nn \file_add_path_aux:n { + \ior_open:Nn \l_file_test_read_stream { ##1 #1 } + \ior_if_eof:NF \l_file_test_read_stream { + \tl_set:Nn #2 { ##1 #1 } + \clist_map_break: + } + } + \cs_if_exist:NT \input@path { + \cs_set_eq:NN \l_file_search_path_clist \input@path + } + \clist_map_function:NN \l_file_search_path_clist \file_add_path_aux:n +} +\cs_new_nopar:Nn \file_add_path_aux:n { } +\cs_new:Nn \file_input:n { + \file_add_path:nN {#1} \l_file_tmp_tl + \tl_if_empty:NF \l_file_tmp_tl { + \file_input_no_check:n \l_file_tmp_tl + } +} +\cs_new:Nn \file_input_no_record:n { + \file_add_path:nN {#1} \l_file_tmp_tl + \tl_if_empty:NF \l_file_tmp_tl { + \file_input_no_check_no_record:n \l_file_tmp_tl + } +} +\cs_new_nopar:Nn \file_input_no_check:n { + \clist_gput_right:Nx \g_file_record_clist {#1} + \wlog{ADDING: #1} + \@addtofilelist {#1} + \clist_gput_right:Nx \g_file_record_full_clist {#1} + \tex_input:D #1 ~ +} +\cs_new_nopar:Nn \file_input_no_check_no_record:n { + \clist_gput_right:Nx \g_file_record_full_clist {#1} + \tex_input:D #1 ~ +} +\cs_new_nopar:Nn \file_list: { + \file_list:N \g_file_record_clist +} +\cs_new_nopar:Nn \file_list_full: { + \file_list:N \g_file_record_full_clist +} +\cs_new_nopar:Nn \file_list:N { + \clist_remove_duplicates:N #1 + \iow_log:x { *~File~List~* } + \clist_map_function:NN #1 \file_list_aux:n + \iow_log:x { ************* } +} +\cs_new_nopar:Nn \file_list_aux:n { + \iow_log:x { #1 } +} +\AtBeginDocument{ + \clist_put_right:NV \g_file_record_clist \@filelist + \clist_put_right:NV \g_file_record_full_clist \@filelist +} +%% +%% +%% End of file `l3file.sty'. |