% askinclude.sty - interactive asking of included files 
%
% VERSION 1.0   November 7, 1991
%
% (c) 1991 by Pablo A. Straub.  Permission is granted to copy and use this
% in any way and for any purpose, except direct commercial advantage,
% provided that you retain this copyright notice.
%
% HISTORY
%
% 0.95  11/05/91   First beta-test version (asked two questions)
% 0.99  11/05/91   Second beta-test version (asks one question; uses * and -.)
% 1.0   11/07/91   Changed prompts (sent to comp.text.tex)
% 1.2e  1994/11/02 Two small changes to run under LaTeX2e
%
% Please send enhancements and corrections to straub@cs.umd.edu.
%
% USAGE
%
% \documentstyle[...,askinclude,...]{...}
%
% HOW IT WORKS
%
% The askinclude style option asks the user which files to include.  If
% the user presses return, the files from the previous run are included
% automatically (except on the first run, in which case all files are
% included); if the answer is  *  all files are included; if the answer
% is  -  no files are included; otherwise the specified files (separated
% by commas, with no embedded spaces) are included.
% 
% RESTRICTIONS
%
% This file redefines \document, the command executed with \begin{document}.
% It may be incompatible with other styles that also redefine \document.
%
% The user's input is not validated.  Anything that is not a * or a - or an
% empty line is passed to \includeonly.
%
% ACKNOWLEDGEMENT
%
% Tom Scavo (scavo@cie.uoregon.edu) suggested saving the include file list
% from the previous run and a simplified user interface.


\def\@includeonly{\@gobble} % assume we do not include from last run

\def\@inputs{*}             % assume all files included


% determine which files to include

\def\@star{*}       % used for comparing user's answer
\def\@minussign{-}      % ditto

\typeout { }
\typeout {Enter file(s) to include (separated by commas and no spaces),}
\typeout {or enter * for all files, or enter - for none, or}
\typein  [\inputfiles]{press Return if this run is the same as the last.}

\ifx\inputfiles\@star           % all files included
   % do nothing
\else \ifx\inputfiles\@minussign    % no files included
   \includeonly{}
   \def\@inputs{}
\else \ifx\inputfiles\empty     % include according to previous run
   \def\@includeonly#1{%
     \gdef\@inputs{#1}
     \ifx\@inputs\@star \else \global\@partswtrue\global\edef\@partlist{#1}\fi}
\else
   \def\@inputs{\inputfiles}    % include these files
   \includeonly{\inputfiles}
\fi\fi\fi


\AtBeginDocument{\if@filesw
                 \immediate\write\@mainaux{\string\@includeonly\string{\@inputs
                                                               \string}}%
                 \def\@includeonly{}}
