Index: doc/user/user.tex
===================================================================
--- doc/user/user.tex	(revision d2e6f84f3b7585dab64aafb0165087bccb73845d)
+++ doc/user/user.tex	(revision 96aca388320b619d82ebfb2853687b167c47234b)
@@ -11,6 +11,6 @@
 %% Created On       : Wed Apr  6 14:53:29 2016
 %% Last Modified By : Peter A. Buhr
-%% Last Modified On : Mon Sep 15 21:14:57 2025
-%% Update Count     : 7220
+%% Last Modified On : Wed Sep 17 09:15:48 2025
+%% Update Count     : 7251
 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
 
@@ -607,5 +607,5 @@
 
 C, \CC, Java and other programming languages have no exponentiation operator\index{exponentiation!operator}\index{operator!exponentiation}, using a routine like \Indexc{pow( x, y )} instead.
-Ada, Haskell, Python and other programming languages often use operators ©^© or ©**© for exponentiation.
+Ada, Haskell, Python and other programming languages have an exponentiation operator often using operators ©^© or ©**©.
 However, neither of these operators work in C as ©^© means exclusive-or and ©**© means double dereference.
 Furthermore, using a routine for exponentiation does not match with mathematical expectation, \ie ©-x**-y© becomes ©pow( -x, -y )©.
@@ -882,5 +882,5 @@
 \end{enumerate}
 
-Before discussing potential language changes to deal with these problems, it is worth observing that in a typical C program:
+Before discussing language changes to deal with these problems, it is worth observing that in a typical C program:
 \begin{itemize}
 \item
@@ -902,6 +902,6 @@
 \end{cfa}
 still works.
-Nevertheless, reversing the default action would have a non-trivial effect on case actions that compound, such as the above example of processing shell arguments.
-Therefore, to preserve backwards compatibility, it is necessary to introduce a new kind of ©switch© statement, called \Indexc{choose}, with no implicit fall-through semantics and an explicit fall-through if the last statement of a case-clause ends with the new keyword \Indexc{fallthrough}, \eg:
+Nevertheless, reversing the default action would have a non-trivial effect on case actions that compound, such as the above example of processing command-line arguments.
+To preserve backwards compatibility, a new kind of ©switch© statement, called \Indexc{choose} is introduced, with no implicit fall-through semantics and an explicit fall-through if the last statement of a case-clause ends with the new keyword \Indexc{fallthrough}, \eg:
 \begin{cfa}
 ®choose® ( i ) {
@@ -931,5 +931,5 @@
 \item
 Dealing with unreachable code in a ©switch©/©choose© body is solved by restricting declarations and initialization to the start of statement body, which is executed \emph{before} the transfer to the appropriate ©case© clause\footnote{
-Essentially, these declarations are hoisted before the ©switch©/©choose© statement and both declarations and statement are surrounded by a compound statement.} and precluding statements before the first ©case© clause.
+These declarations are hoisted before the ©switch©/©choose© statement and both declarations and statement are surrounded by a compound statement.} and precluding statements before the first ©case© clause.
 Further declarations at the same nesting level as the statement body are disallowed to ensure every transfer into the body is sound.
 \begin{cfa}
@@ -1033,6 +1033,6 @@
 The range character, ©'~'©, is decorated on the left and right to control how the set values are presented in the loop body.
 The range character can be prefixed with ©'+'© or ©'-'© indicating the \emph{direction} the range is scanned, \ie from left to right (ascending) or right to left (descending).
-Ascending stepping uses operator \Indexc{+=};
-descending stepping uses operator \Indexc{-=}.
+Ascending uses operator \Indexc{+=};
+descending uses operator \Indexc{-=}.
 If there is no prefix character, it defaults to ©'+'©.
 \begin{cfa}
@@ -1043,5 +1043,5 @@
 For descending iteration, the ©L© and ©H© values are \emph{implicitly} switched, and the increment/decrement for ©S© is toggled.
 Hence, the order of values in a set may not be the order the values are presented during looping.
-When changing the iteration direction, this form is faster and safer, \ie the direction prefix can be added/removed without changing existing (correct) program text.
+Changing the iteration direction is faster and safer because the direction prefix can be added/removed without changing existing (correct) range information.
 \R{Warning}: reversing the range endpoints for descending order results in an empty set.
 \begin{cfa}
@@ -1286,8 +1286,10 @@
 
 
+
 \end{cfa}
 &
 \begin{cfa}
 int main() {
+	sout | nlOff;
 	for ( S i = 0; i < (S){10,10}; i += 1 ) { sout | i; } sout | "A" | nl; // C
 	for ( S i; 0 ~ (S){10,10} ) { sout | i; } sout | "B" | nl; // CFA
@@ -1424,8 +1426,6 @@
 The following example is a linear search for the key 3 in an array, where finding the key is handled with a ©break© and not finding with the ©else© clause on the loop construct.
 \begin{cquote}
-\begin{cfa}
-int a[10];
-\end{cfa}
-\begin{tabular}{@{}l@{\hspace{3em}}l@{\hspace{3em}}l@{}}
+\begin{tabular}{@{}lll@{}}
+\multicolumn{2}{@{}l@{}}{\lstinline{int a[10]}} \\
 \begin{cfa}
 
@@ -2704,5 +2704,5 @@
 \begin{tabular}{@{}l|ll|l@{}}
 \multicolumn{2}{@{}c}{\textbf{length}} & \multicolumn{2}{c@{}}{\textbf{pattern}} \\
-\multicolumn{4}{@{}l}{\lstinline{string name = "PETER"}} \\
+\multicolumn{4}{@{}l}{\lstinline{string name = "PETER"};} \\
 \begin{cfa}
 s = name( 0, 4 );
@@ -2762,5 +2762,5 @@
 \begin{cquote}
 \begin{tabular}{@{}l|l@{}}
-\multicolumn{2}{@{}l}{\lstinline{string digit = "0123456789"}} \\
+\multicolumn{2}{@{}l}{\lstinline{string digit = "0123456789"};} \\
 \begin{cfa}[escapechar={}]
 digit( 3, 3 ) = "";
@@ -2819,5 +2819,5 @@
 \begin{cquote}
 \begin{tabular}{@{}l|l@{}}
-\multicolumn{2}{@{}l}{\lstinline{string digit = "0123456789"}} \\
+\multicolumn{2}{@{}l}{\lstinline{string digit = "0123456789";}} \\
 \begin{cfa}
 i = find( digit, '3' );
@@ -2837,6 +2837,6 @@
 \begin{cquote}
 \begin{tabular}{@{}l|l@{}}
-\begin{cfa}
-charclass vowels{ "aeiouy" };
+\multicolumn{2}{@{}l}{\lstinline{charclass vowels\{ "aeiouy" \};}} \\
+\begin{cfa}
 i = include( "aaeiuyoo", vowels );
 i = include( "aabiuyoo", vowels );
@@ -2844,5 +2844,4 @@
 &
 \begin{cfa}
-
 8  // compliant
 2  // b non-compliant
@@ -2995,6 +2994,6 @@
 \subsection{C Compatibility}
 
-To ease conversion from C to \CFA, \CFA provides companion C @string@ functions.
-Hence, it is possible to convert a block of C string operations to \CFA strings just by changing the type @char *@ to @string@.
+To ease conversion from C to \CFA, \CFA provides companion C ©string© functions.
+Hence, it is possible to convert a block of C string operations to \CFA strings just by changing the type ©char *© to ©string©.
 \begin{cquote}
 \begin{tabular}{@{}ll@{}}
@@ -3016,5 +3015,5 @@
 \end{tabular}
 \end{cquote}
-However, the conversion fails with I/O because @printf@ cannot print a @string@ using format code @%s@ because \CFA strings are not null terminated.
+However, the conversion fails with I/O because ©printf© cannot print a ©string© using format code ©%s© as \CFA strings are not null terminated.
 Nevertheless, this capability does provide a useful starting point for conversion to safer \CFA strings.
 
@@ -3031,11 +3030,10 @@
 \begin{cquote}
 \begin{tabular}{@{}l|l@{}}
+\multicolumn{2}{@{}l}{\lstinline{string s = "abc";}} \\
 \begin{C++}
-string s = "abc";
 cout << setw(10) << left << setfill( 'x' ) << s << endl;
 \end{C++}
 &
 \begin{C++}
-
 "abcxxxxxxx"
 \end{C++}
@@ -3048,6 +3046,6 @@
 \begin{cquote}
 \begin{tabular}{@{}l|l@{}}
-\begin{cfa}
-string s = "abc";
+\multicolumn{2}{@{}l}{\lstinline{string s = "abc";}} \\
+\begin{cfa}
 sout | bin( s ) | nl
 	   | oct( s ) | nl
@@ -3059,5 +3057,4 @@
 &
 \begin{cfa}
-
 "0b1100001 0b1100010 0b1100011"
 "0141 0142 0143"
@@ -3076,7 +3073,7 @@
 \begin{cquote}
 \begin{tabular}{@{}l|l@{}}
+\multicolumn{2}{@{}l}{\lstinline{char ch, c[10];}} \\
+\multicolumn{2}{@{}l}{\lstinline{string s;}} \\
 \begin{C++}
-char ch, c[10];
-string s;
 cin >> ch >> setw( 5 ) >> c  >> s;
 ®abcde   fg®
@@ -3084,6 +3081,4 @@
 &
 \begin{C++}
-
-
 'a' "bcde" "fg"
 
@@ -3102,7 +3097,7 @@
 \setlength{\tabcolsep}{10pt}
 \begin{tabular}{@{}l|l@{}}
+\multicolumn{2}{@{}l}{\lstinline{char ch, c[10];}} \\
+\multicolumn{2}{@{}l}{\lstinline{string s;}} \\
 \begin{C++}
-char ch, c[10];
-string s;
 sin | ch | wdi( 5, c ) | s;
 ®abcde fg®
