%D \module
%D   [       file=typo-wrp,
%D        version=2014.11.09,
%D          title=\CONTEXT\ Typesetting Macros,
%D       subtitle=Wrappers,
%D         author=Hans Hagen,
%D           date=\currentdate,
%D      copyright={PRAGMA ADE \& \CONTEXT\ Development Team}]
%C
%C This module is part of the \CONTEXT\ macro||package and is
%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
%C details.

\writestatus{loading}{ConTeXt Typesetting Macros / Wrapping}

\unprotect

\registerctxluafile{typo-wrp}{}

%D This definition has moved from page-lin.tex to spac-hor.tex (due to
%D visualization added in august 2003) and now to here (november 2014)
%D due to cacthing border cases in dirty and messy \XML\ sources).

% \unexpanded\def\crlf
%   {\ifhmode
%      \unskip
%      \prewordbreak\crlfplaceholder
%      \ifcase\raggedstatus\hfil\or\or\or\hfil\fi
%      \break
%    \else
%      \crlfplaceholder
%      \endgraf
%    \fi}

\unexpanded\def\crlf
  {\ifhmode
     \expandafter\spac_crlf
   \fi}

\unexpanded\def\spac_crlf
  {\clf_enablecrlf % once
   \unskip
   \spac_crlf_placeholder
   \ifcase\raggedstatus\hfil\or\or\or\hfil\fi
   % in bad usage this can lead to: [break -10000] [wordboundary] [line(break)penalty] [parfillskip]
   \break
   \wordboundary
   % which we then remove (maybe we should flag the wordboundary with an attribute but not now
   \ignorespaces}

\unexpanded\def\spac_crlf_placeholder
  {\wordboundary\strut} % or \endstrut

\unexpanded\def\spac_crlf_placeholder_show
  {\wordboundary
  %\nobreak
   \hpack to \zeropoint{\strut{\infofont\kern.25\emwidth}\lohi{\infofont CR}{\infofont LF}\hss}}

\unexpanded\def\settestcrlf
  {\let\spac_crlf_placeholder\spac_crlf_placeholder_show}

\unexpanded\def\crlfplaceholder % for old times sake
  {\spac_crlf_placeholder}

\appendtoks
    \let\spac_crlf_placeholder\empty
\to \everysetnostrut

\appendtoks
    \let\spac_crlf\space
\to \everysimplifycommands

\protect \endinput
