gawk-diffs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[gawk-diffs] [SCM] gawk branch, master, updated. gawk-4.1.0-3831-gc5104f


From: Arnold Robbins
Subject: [gawk-diffs] [SCM] gawk branch, master, updated. gawk-4.1.0-3831-gc5104f9
Date: Fri, 4 Oct 2019 07:48:04 -0400 (EDT)

This is an automated email from the git hooks/post-receive script. It was
generated because a ref change was pushed to the repository containing
the project "gawk".

The branch, master has been updated
       via  c5104f9f926b793234bde9cb05508b818ed9f9aa (commit)
       via  6775b9c4de4050cd65a89835d8f337c00ede5e54 (commit)
       via  f4795f119a1c02ccf92469296a77a9e6d10d3757 (commit)
      from  f6c499e45c2856d6b0fdee24d1f761a32539fcc6 (commit)

Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.

- Log -----------------------------------------------------------------
http://git.sv.gnu.org/cgit/gawk.git/commit/?id=c5104f9f926b793234bde9cb05508b818ed9f9aa

commit c5104f9f926b793234bde9cb05508b818ed9f9aa
Merge: 6775b9c f6c499e
Author: Arnold D. Robbins <address@hidden>
Date:   Fri Oct 4 14:47:56 2019 +0300

    Merge branch 'master' of ssh://git.sv.gnu.org/srv/git/gawk

diff --cc ChangeLog
index e4eae5e,eacf3c4..858bdaa
--- a/ChangeLog
+++ b/ChangeLog
@@@ -1,7 -1,7 +1,11 @@@
 +2019-10-04         Arnold D. Robbins     <address@hidden>
 +
 +      * config.guess, config.sub, install-sh: Updated from GNULIB.
 +
+ 2019-09-30         John E. Malmberg     <address@hidden>
+ 
+       * custom.h: OpenVMS does not provide ULLONG_MAX
+ 
  2019-09-20  Florian Weimer  <address@hidden>
  
        * configure.ac (PRINTF_HAS_F_FORMAT): Include <string.h> for

http://git.sv.gnu.org/cgit/gawk.git/commit/?id=6775b9c4de4050cd65a89835d8f337c00ede5e54

commit 6775b9c4de4050cd65a89835d8f337c00ede5e54
Author: Arnold D. Robbins <address@hidden>
Date:   Fri Oct 4 14:47:14 2019 +0300

    Update aux files.

diff --git a/ChangeLog b/ChangeLog
index a76a555..e4eae5e 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,7 @@
+2019-10-04         Arnold D. Robbins     <address@hidden>
+
+       * config.guess, config.sub, install-sh: Updated from GNULIB.
+
 2019-09-20  Florian Weimer  <address@hidden>
 
        * configure.ac (PRINTF_HAS_F_FORMAT): Include <string.h> for
diff --git a/config.guess b/config.guess
index 97ad073..7f9ebbe 100755
--- a/config.guess
+++ b/config.guess
@@ -2,7 +2,7 @@
 # Attempt to guess a canonical system name.
 #   Copyright 1992-2019 Free Software Foundation, Inc.
 
-timestamp='2019-07-24'
+timestamp='2019-09-10'
 
 # This file is free software; you can redistribute it and/or modify it
 # under the terms of the GNU General Public License as published by
@@ -274,6 +274,9 @@ case 
"$UNAME_MACHINE:$UNAME_SYSTEM:$UNAME_RELEASE:$UNAME_VERSION" in
     *:Sortix:*:*)
        echo "$UNAME_MACHINE"-unknown-sortix
        exit ;;
+    *:Twizzler:*:*)
+       echo "$UNAME_MACHINE"-unknown-twizzler
+       exit ;;
     *:Redox:*:*)
        echo "$UNAME_MACHINE"-unknown-redox
        exit ;;
diff --git a/config.sub b/config.sub
index a318a46..0f2234c 100755
--- a/config.sub
+++ b/config.sub
@@ -1343,7 +1343,7 @@ case $os in
             | hpux* | unos* | osf* | luna* | dgux* | auroraux* | solaris* \
             | sym* | kopensolaris* | plan9* \
             | amigaos* | amigados* | msdos* | newsos* | unicos* | aof* \
-            | aos* | aros* | cloudabi* | sortix* \
+            | aos* | aros* | cloudabi* | sortix* | twizzler* \
             | nindy* | vxsim* | vxworks* | ebmon* | hms* | mvs* \
             | clix* | riscos* | uniplus* | iris* | isc* | rtu* | xenix* \
             | knetbsd* | mirbsd* | netbsd* \
diff --git a/doc/ChangeLog b/doc/ChangeLog
index 0309296..03872e0 100644
--- a/doc/ChangeLog
+++ b/doc/ChangeLog
@@ -1,3 +1,7 @@
+2019-10-04         Arnold D. Robbins     <address@hidden>
+
+       * texinfo.tex: Updated.
+
 2019-09-24         Arnold D. Robbins     <address@hidden>
 
        * gawktexi.in: Take advantage of new indexing features in
diff --git a/doc/texinfo.tex b/doc/texinfo.tex
index af857cb..1ea515b 100644
--- a/doc/texinfo.tex
+++ b/doc/texinfo.tex
@@ -1,9 +1,9 @@
 % texinfo.tex -- TeX macros to handle Texinfo files.
-% 
+%
 % Load plain if necessary, i.e., if running under initex.
 \expandafter\ifx\csname fmtname\endcsname\relax\input plain\fi
 %
-\def\texinfoversion{2019-09-20.22}
+\def\texinfoversion{2019-09-24.13}
 %
 % Copyright 1985, 1986, 1988, 1990-2019 Free Software Foundation, Inc.
 %
@@ -218,7 +218,7 @@
 % @errormsg{MSG}.  Do the index-like expansions on MSG, but if things
 % aren't perfect, it's not the end of the world, being an error message,
 % after all.
-% 
+%
 \def\errormsg{\begingroup \indexnofonts \doerrormsg}
 \def\doerrormsg#1{\errmessage{#1}}
 
@@ -323,9 +323,9 @@
 % the output routine.  The saved contents are valid until we actually
 % \shipout a page.
 %
-% (We used to run a short output routine to actually set \topmark and 
-% \firstmark to the right values, but if this was called with an empty page 
-% containing whatsits for writing index entries, the whatsits would be thrown 
+% (We used to run a short output routine to actually set \topmark and
+% \firstmark to the right values, but if this was called with an empty page
+% containing whatsits for writing index entries, the whatsits would be thrown
 % away and the index auxiliary file would remain empty.)
 %
 \newtoks\savedtopmark
@@ -365,7 +365,7 @@
     \let\thischapterheading\thischapter
   \else
     % \thischapterheading is the same as \thischapter except it is blank
-    % for the first page of a chapter.  This is to prevent the chapter name 
+    % for the first page of a chapter.  This is to prevent the chapter name
     % being shown twice.
     \def\thischapterheading{}%
   \fi
@@ -448,7 +448,7 @@
   }%
 }
 
-% First remove any @comment, then any @c comment.  Pass the result on to 
+% First remove any @comment, then any @c comment.  Pass the result on to
 % \argcheckspaces.
 \def\argremovecomment#1\comment#2\ArgTerm{\argremovec #1\c\ArgTerm}
 \def\argremovec#1\c#2\ArgTerm{\argcheckspaces#1\^^M\ArgTerm}
@@ -1085,8 +1085,8 @@ where each line of input produces a line of output.}
         end
       end
     }
-    % The -2 in the arguments here gives all the input to TeX catcode 12 
-    % (other) or 10 (space), preventing undefined control sequence errors. See 
+    % The -2 in the arguments here gives all the input to TeX catcode 12
+    % (other) or 10 (space), preventing undefined control sequence errors. See
     % https://lists.gnu.org/archive/html/bug-texinfo/2019-08/msg00031.html
     %
   \endgroup
@@ -1141,7 +1141,7 @@ where each line of input produces a line of output.}
 % for display in the outlines, and in other places.  Thus, we have to
 % double any backslashes.  Otherwise, a name like "\node" will be
 % interpreted as a newline (\n), followed by o, d, e.  Not good.
-% 
+%
 % See http://www.ntg.nl/pipermail/ntg-pdftex/2004-July/000654.html and
 % related messages.  The final outcome is that it is up to the TeX user
 % to double the backslashes and otherwise make the string valid, so
@@ -1446,7 +1446,7 @@ output) for that.)}
       % their "best" equivalent, based on the @documentencoding.  Too
       % much work for too little return.  Just use the ASCII equivalents
       % we use for the index sort strings.
-      % 
+      %
       \indexnofonts
       \setupdatafile
       % We can have normal brace characters in the PDF outlines, unlike
@@ -2730,7 +2730,7 @@ end
 }
 
 % Commands to set the quote options.
-% 
+%
 \parseargdef\codequoteundirected{%
   \def\temp{#1}%
   \ifx\temp\onword
@@ -2771,7 +2771,7 @@ end
 % If we are in a monospaced environment, however, 1) always use \ttsl,
 % and 2) do not add an italic correction.
 \def\dosmartslant#1#2{%
-  \ifusingtt 
+  \ifusingtt
     {{\ttsl #2}\let\next=\relax}%
     {\def\next{{#1#2}\futurelet\next\smartitaliccorrection}}%
   \next
@@ -2918,14 +2918,14 @@ end
   \gdef\codedash{\futurelet\next\codedashfinish}
   \gdef\codedashfinish{%
     \normaldash % always output the dash character itself.
-    % 
+    %
     % Now, output a discretionary to allow a line break, unless
     % (a) the next character is a -, or
     % (b) the preceding character is a -.
     % E.g., given --posix, we do not want to allow a break after either -.
     % Given --foo-bar, we do want to allow a break between the - and the b.
     \ifx\next\codedash \else
-      \ifx\codedashprev\codedash 
+      \ifx\codedashprev\codedash
       \else \discretionary{}{}{}\fi
     \fi
     % we need the space after the = for the case when \next itself is a
@@ -3007,7 +3007,7 @@ end
         % For pdfTeX and LuaTeX
         \ifurefurlonlylink
           % PDF plus option to not display url, show just arg
-          \unhbox0             
+          \unhbox0
         \else
           % PDF, normally display both arg and url for consistency,
           % visibility, if the pdf is eventually used to print, etc.
@@ -3020,7 +3020,7 @@ end
           % For XeTeX
           \ifurefurlonlylink
             % PDF plus option to not display url, show just arg
-            \unhbox0             
+            \unhbox0
           \else
             % PDF, normally display both arg and url for consistency,
             % visibility, if the pdf is eventually used to print, etc.
@@ -3078,10 +3078,10 @@ end
   }
 }
 
-% By default we'll break after the special characters, but some people like to 
-% break before the special chars, so allow that.  Also allow no breaking at 
+% By default we'll break after the special characters, but some people like to
+% break before the special chars, so allow that.  Also allow no breaking at
 % all, for manual control.
-% 
+%
 \parseargdef\urefbreakstyle{%
   \def\txiarg{#1}%
   \ifx\txiarg\wordnone
@@ -3099,11 +3099,16 @@ end
 \def\wordbefore{before}
 \def\wordnone{none}
 
-% Allow a ragged right output to aid breaking long URL's.  Putting stretch in 
-% between characters of the URL doesn't look good.
+% Allow a ragged right output to aid breaking long URL's.  There can
+% be a break at the \allowbreak with no extra glue (if the existing stretch in
+% the line is sufficent), a break at the \penalty100 with extra glue added
+% at the end of the line, or no break at all here.
+%   Changing the value of the penalty and/or the amount of stretch affects how
+% preferrable one choice is over the other.
 \def\urefallowbreak{%
-  \hskip 0pt plus 4 em\relax
   \allowbreak
+  \hskip 0pt plus 4 em\relax
+  \penalty100
   \hskip 0pt plus -4 em\relax
 }
 
@@ -3303,7 +3308,7 @@ end
 % @inlinefmt{FMTNAME,PROCESSED-TEXT} and @inlineraw{FMTNAME,RAW-TEXT}.
 % Ignore unless FMTNAME == tex; then it is like @iftex and @tex,
 % except specified as a normal braced arg, so no newlines to worry about.
-% 
+%
 \def\outfmtnametex{tex}
 %
 \long\def\inlinefmt#1{\doinlinefmt #1,\finish}
@@ -3311,7 +3316,7 @@ end
   \def\inlinefmtname{#1}%
   \ifx\inlinefmtname\outfmtnametex \ignorespaces #2\fi
 }
-% 
+%
 % @inlinefmtifelse{FMTNAME,THEN-TEXT,ELSE-TEXT} expands THEN-TEXT if
 % FMTNAME is tex, else ELSE-TEXT.
 \long\def\inlinefmtifelse#1{\doinlinefmtifelse #1,,,\finish}
@@ -3327,7 +3332,7 @@ end
 % *right* brace they would have to use a command anyway, so they may as
 % well use a command to get a left brace too.  We could re-use the
 % delimiter character idea from \verb, but it seems like overkill.
-% 
+%
 \long\def\inlineraw{\tex \doinlineraw}
 \long\def\doinlineraw#1{\doinlinerawtwo #1,\finish}
 \def\doinlinerawtwo#1,#2,\finish{%
@@ -3604,7 +3609,7 @@ end
 % for non-CM glyphs.  That is ec* for regular text and tc* for the text
 % companion symbols (LaTeX TS1 encoding).  Both are part of the ec
 % package and follow the same conventions.
-% 
+%
 \def\ecfont{\etcfont{e}}
 \def\tcfont{\etcfont{t}}
 %
@@ -3676,7 +3681,7 @@ end
               after the title page.}}%
 \def\setshortcontentsaftertitlepage{%
   \errmessage{@setshortcontentsaftertitlepage has been removed as a Texinfo
-              command; move your @shortcontents and @contents commands if you 
+              command; move your @shortcontents and @contents commands if you
               want the contents after the title page.}}%
 
 \parseargdef\shorttitlepage{%
@@ -3731,7 +3736,7 @@ end
 % don't worry much about spacing, ragged right.  This should be used
 % inside a \vbox, and fonts need to be set appropriately first. \par should
 % be specified before the end of the \vbox, since a vbox is a group.
-% 
+%
 \def\raggedtitlesettings{%
   \rm
   \hyphenpenalty=10000
@@ -4354,7 +4359,7 @@ end
 }
 
 % multitable-only commands.
-% 
+%
 % @headitem starts a heading row, which we typeset in bold.  Assignments
 % have to be global since we are inside the implicit group of an
 % alignment entry.  \everycr below resets \everytab so we don't have to
@@ -4673,7 +4678,7 @@ end
 % Like \expandablevalue, but completely expandable (the \message in the
 % definition above operates at the execution level of TeX).  Used when
 % writing to auxiliary files, due to the expansion that \write does.
-% If flag is undefined, pass through an unexpanded @value command: maybe it 
+% If flag is undefined, pass through an unexpanded @value command: maybe it
 % will be set by the time it is read back in.
 %
 % NB flag names containing - or _ may not work here.
@@ -4697,7 +4702,7 @@ end
 
 % @ifset VAR ... @end ifset reads the `...' iff VAR has been defined
 % with @set.
-% 
+%
 % To get the special treatment we need for `@end ifset,' we call
 % \makecond and then redefine.
 %
@@ -4730,7 +4735,7 @@ end
 % without the @) is in fact defined.  We can only feasibly check at the
 % TeX level, so something like `mathcode' is going to considered
 % defined even though it is not a Texinfo command.
-% 
+%
 \makecond{ifcommanddefined}
 \def\ifcommanddefined{\parsearg{\doifcmddefined{\let\next=\ifcmddefinedfail}}}
 %
@@ -4838,8 +4843,8 @@ end
 \def\docodeindex#1{\edef\indexname{#1}\parsearg\docodeindexxxx}
 \def\docodeindexxxx #1{\doind{\indexname}{\code{#1}}}
 
-
-% Used for the aux, toc and index files to prevent expansion of Texinfo 
+
+% Used for the aux, toc and index files to prevent expansion of Texinfo
 % commands.
 %
 \def\atdummies{%
@@ -5186,7 +5191,7 @@ end
 }
 \def\defglyph#1#2{\def#1##1{#2}} % see above
 
-
+
 
 
 % #1 is the index name, #2 is the entry text.
@@ -5213,7 +5218,7 @@ end
   \ifx\suffix\indexisfl\def\suffix{f1}\fi
   % Open the file
   \immediate\openout\csname#1indfile\endcsname \jobname.\suffix
-  % Using \immediate above here prevents an object entering into the current 
+  % Using \immediate above here prevents an object entering into the current
   % box, which could confound checks such as those in \safewhatsit for
   % preceding skips.
   \typeout{Writing index file \jobname.\suffix}%
@@ -5265,7 +5270,7 @@ end
   \ifx\segment\isfinish
   \else
     %
-    % Fully expand the segment, throwing away any @sortas directives, and 
+    % Fully expand the segment, throwing away any @sortas directives, and
     % trim spaces.
     \edef\trimmed{\segment}%
     \edef\trimmed{\expandafter\eatspaces\expandafter{\trimmed}}%
@@ -5323,12 +5328,12 @@ end
 % the current value of \escapechar.
 \def\escapeisbackslash{\escapechar=`\\}
 
-% Use \ in index files by default.  texi2dvi didn't support @ as the escape 
-% character (as it checked for "\entry" in the files, and not "@entry").  When 
-% the new version of texi2dvi has had a chance to become more prevalent, then 
-% the escape character can change back to @ again.  This should be an easy 
-% change to make now because both @ and \ are only used as escape characters 
in 
-% index files, never standing for themselves. 
+% Use \ in index files by default.  texi2dvi didn't support @ as the escape
+% character (as it checked for "\entry" in the files, and not "@entry").  When
+% the new version of texi2dvi has had a chance to become more prevalent, then
+% the escape character can change back to @ again.  This should be an easy
+% change to make now because both @ and \ are only used as escape characters in
+% index files, never standing for themselves.
 %
 \set txiindexescapeisbackslash
 
@@ -5348,7 +5353,7 @@ end
   \def\}{\rbracechar{}}%
   \uccode`\~=`\\ \uppercase{\def~{\backslashchar{}}}%
   %
-  % Split the entry into primary entry and any subentries, and get the index 
+  % Split the entry into primary entry and any subentries, and get the index
   % sort key.
   \splitindexentry\indextext
   %
@@ -5529,18 +5534,18 @@ end
     \uccode`\~=`\\ \uppercase{\if\noexpand~}\noexpand#1
       \expandafter\ifx\csname SETtxiskipindexfileswithbackslash\endcsname\relax
 \errmessage{%
-ERROR: A sorted index file in an obsolete format was skipped.  
+ERROR: A sorted index file in an obsolete format was skipped.
 To fix this problem, please upgrade your version of 'texi2dvi'
 or 'texi2pdf' to that at <https://ftp.gnu.org/gnu/texinfo>.
-If you are using an old version of 'texindex' (part of the Texinfo 
+If you are using an old version of 'texindex' (part of the Texinfo
 distribution), you may also need to upgrade to a newer version (at least 6.0).
 You may be able to typeset the index if you run
 'texindex \jobname.\indexname' yourself.
-You could also try setting the 'txiindexescapeisbackslash' flag by 
+You could also try setting the 'txiindexescapeisbackslash' flag by
 running a command like
-'texi2dvi -t "@set txiindexescapeisbackslash" \jobname.texi'.  If you do 
+'texi2dvi -t "@set txiindexescapeisbackslash" \jobname.texi'.  If you do
 this, Texinfo will try to use index files in the old format.
-If you continue to have problems, deleting the index files and starting again 
+If you continue to have problems, deleting the index files and starting again
 might help (with 'rm \jobname.?? \jobname.??s')%
 }%
       \else
@@ -5609,7 +5614,7 @@ might help (with 'rm \jobname.?? \jobname.??s')%
   % bottom of a column to reduce an increase in inter-line spacing.
   \nobreak
   \vskip 0pt plus 5\baselineskip
-  \penalty -300 
+  \penalty -300
   \vskip 0pt plus -5\baselineskip
   %
   % Typeset the initial.  Making this add up to a whole number of
@@ -5725,7 +5730,7 @@ might help (with 'rm \jobname.?? \jobname.??s')%
       \advance\dimen@ii by 1\dimen@i
       \ifdim\wd\boxA > \dimen@ii % If the entry doesn't fit in one line
       \ifdim\dimen@ > 0.8\dimen@ii   % due to long index text
-        % Try to split the text roughly evenly.  \dimen@ will be the length of 
+        % Try to split the text roughly evenly.  \dimen@ will be the length of
         % the first line.
         \dimen@ = 0.7\dimen@
         \dimen@ii = \hsize
@@ -5933,7 +5938,7 @@ might help (with 'rm \jobname.?? \jobname.??s')%
 \newbox\balancedcolumns
 \setbox\balancedcolumns=\vbox{shouldnt see this}%
 %
-% Only called for the last of the double column material.  \doublecolumnout 
+% Only called for the last of the double column material.  \doublecolumnout
 % does the others.
 \def\balancecolumns{%
   \setbox0 = \vbox{\unvbox\PAGE}% like \box255 but more efficient, see p.120.
@@ -5961,7 +5966,7 @@ might help (with 'rm \jobname.?? \jobname.??s')%
     }%
     % Now the left column is in box 1, and the right column in box 3.
     %
-    % Check whether the left column has come out higher than the page itself.  
+    % Check whether the left column has come out higher than the page itself.
     % (Note that we have doubled \vsize for the double columns, so
     % the actual height of the page is 0.5\vsize).
     \ifdim2\ht1>\vsize
@@ -6258,7 +6263,7 @@ might help (with 'rm \jobname.?? \jobname.??s')%
 \let\top\unnumbered
 
 % Sections.
-% 
+%
 \outer\parseargdef\numberedsec{\numhead1{#1}} % normally calls seczzz
 \def\seczzz#1{%
   \global\subsecno=0 \global\subsubsecno=0  \global\advance\secno by 1
@@ -6281,7 +6286,7 @@ might help (with 'rm \jobname.?? \jobname.??s')%
 }
 
 % Subsections.
-% 
+%
 % normally calls numberedsubseczzz:
 \outer\parseargdef\numberedsubsec{\numhead2{#1}}
 \def\numberedsubseczzz#1{%
@@ -6306,7 +6311,7 @@ might help (with 'rm \jobname.?? \jobname.??s')%
 }
 
 % Subsubsections.
-% 
+%
 % normally numberedsubsubseczzz:
 \outer\parseargdef\numberedsubsubsec{\numhead3{#1}}
 \def\numberedsubsubseczzz#1{%
@@ -7364,7 +7369,7 @@ might help (with 'rm \jobname.?? \jobname.??s')%
 
 % @indentedblock is like @quotation, but indents only on the left and
 % has no optional argument.
-% 
+%
 \makedispenvdef{indentedblock}{\indentedblockstart}
 %
 \def\indentedblockstart{%
@@ -7664,7 +7669,7 @@ might help (with 'rm \jobname.?? \jobname.??s')%
 % @deftypefnnewline on|off says whether the return type of typed functions
 % are printed on their own line.  This affects @deftypefn, @deftypefun,
 % @deftypeop, and @deftypemethod.
-% 
+%
 \parseargdef\deftypefnnewline{%
   \def\temp{#1}%
   \ifx\temp\onword
@@ -7683,8 +7688,8 @@ might help (with 'rm \jobname.?? \jobname.??s')%
 % \dosubind {index}{topic}{subtopic}
 %
 % If SUBTOPIC is present, precede it with a space, and call \doind.
-% (At some time during the 20th century, this made a two-level entry in an 
-% index such as the operation index.  Nobody seemed to notice the change in 
+% (At some time during the 20th century, this made a two-level entry in an
+% index such as the operation index.  Nobody seemed to notice the change in
 % behaviour though.)
 \def\dosubind#1#2#3{%
   \def\thirdarg{#3}%
@@ -7859,7 +7864,7 @@ might help (with 'rm \jobname.?? \jobname.??s')%
       \tclose{\temp}% typeset the return type
       \ifrettypeownline
         % put return type on its own line; prohibit line break following:
-        \hfil\vadjust{\nobreak}\break  
+        \hfil\vadjust{\nobreak}\break
       \else
         \space  % type on same line, so just followed by a space
       \fi
@@ -8006,7 +8011,7 @@ might help (with 'rm \jobname.?? \jobname.??s')%
   \scantokens{#1@comment}%
   %
   % The \comment is to remove the \newlinechar added by \scantokens, and
-  % can be noticed by \parsearg.  Note \c isn't used because this means 
cedilla 
+  % can be noticed by \parsearg.  Note \c isn't used because this means cedilla
   % in math mode.
 }
 
@@ -8207,7 +8212,7 @@ might help (with 'rm \jobname.?? \jobname.??s')%
 % list to some hook where the argument is to be expanded.  If there are
 % less than 10 arguments that hook is to be replaced by ##N where N
 % is the position in that list, that is to say the macro arguments are to be
-% defined `a la TeX in the macro body.  
+% defined `a la TeX in the macro body.
 %
 % That gets used by \mbodybackslash (above).
 %
@@ -8238,8 +8243,8 @@ might help (with 'rm \jobname.?? \jobname.??s')%
 %
 % Read recursive and nonrecursive macro bodies. (They're different since
 % rec and nonrec macros end differently.)
-% 
-% We are in \macrobodyctxt, and the \xdef causes backslashshes in the macro 
+%
+% We are in \macrobodyctxt, and the \xdef causes backslashshes in the macro
 % body to be transformed.
 % Set \macrobody to the body of the macro, and call \defmacro.
 %
@@ -8273,7 +8278,7 @@ might help (with 'rm \jobname.?? \jobname.??s')%
 % twice the \macarg.BLAH macros does not cost too much processing power.
 \def\parsemmanyargdef@@#1,{%
   \if#1;\let\next=\relax
-  \else 
+  \else
     \let\next=\parsemmanyargdef@@
     \edef\tempb{\eatspaces{#1}}%
     \expandafter\def\expandafter\tempa
@@ -8358,7 +8363,7 @@ might help (with 'rm \jobname.?? \jobname.??s')%
 
 % Replace arguments by their values in the macro body, and place the result
 % in macro \@tempa.
-% 
+%
 \def\macvalstoargs@{%
   %  To do this we use the property that token registers that are \the'ed
   % within an \edef  expand only once. So we are going to place all argument
@@ -8382,9 +8387,9 @@ might help (with 'rm \jobname.?? \jobname.??s')%
   \expandafter\def\expandafter\@tempa\expandafter{\@tempc}%
   }
 
-% Define the named-macro outside of this group and then close this group. 
-% 
-\def\macargexpandinbody@{% 
+% Define the named-macro outside of this group and then close this group.
+%
+\def\macargexpandinbody@{%
   \expandafter
   \endgroup
   \macargdeflist@
@@ -8422,7 +8427,7 @@ might help (with 'rm \jobname.?? \jobname.??s')%
 }
 
 % Trailing missing arguments are set to empty.
-% 
+%
 \def\setemptyargvalues@{%
   \ifx\paramlist\nilm@
     \let\next\macargexpandinbody@
@@ -8499,7 +8504,7 @@ might help (with 'rm \jobname.?? \jobname.??s')%
   \else % at most 9
     \ifnum\paramno<10\relax
       % @MACNAME sets the context for reading the macro argument
-      % @MACNAME@@ gets the argument, processes backslashes and appends a 
+      % @MACNAME@@ gets the argument, processes backslashes and appends a
       % comma.
       % @MACNAME@@@ removes braces surrounding the argument list.
       % @MACNAME@@@@ scans the macro body with arguments substituted.
@@ -8543,11 +8548,11 @@ might help (with 'rm \jobname.?? \jobname.??s')%
 % Call #1 with a list of tokens #2, with any doubled backslashes in #2
 % compressed to one.
 %
-% This implementation works by expansion, and not execution (so we cannot use 
-% \def or similar).  This reduces the risk of this failing in contexts where 
-% complete expansion is done with no execution (for example, in writing out to 
+% This implementation works by expansion, and not execution (so we cannot use
+% \def or similar).  This reduces the risk of this failing in contexts where
+% complete expansion is done with no execution (for example, in writing out to
 % an auxiliary file for an index entry).
-% 
+%
 % State is kept in the input stream: the argument passed to
 % @look_ahead, @gobble_and_check_finish and @add_segment is
 %
@@ -8569,11 +8574,11 @@ might help (with 'rm \jobname.?? \jobname.??s')%
 % #3 - NEXT_TOKEN
 % #4 used to look ahead
 %
-% If the next token is not a backslash, process the rest of the argument; 
+% If the next token is not a backslash, process the rest of the argument;
 % otherwise, remove the next token.
 @gdef@look_ahead#1!#2#3#4{%
   @ifx#4\%
-   @expandafter@gobble_and_check_finish 
+   @expandafter@gobble_and_check_finish
   @else
    @expandafter@add_segment
   @fi#1!{#2}#4#4%
@@ -8597,9 +8602,9 @@ might help (with 'rm \jobname.?? \jobname.??s')%
 % #3 - NEXT_TOKEN
 % #4 is input stream until next backslash
 %
-% Input stream is either at the start of the argument, or just after a 
-% backslash sequence, either a lone backslash, or a doubled backslash.  
-% NEXT_TOKEN contains the first token in the input stream: if it is \finish, 
+% Input stream is either at the start of the argument, or just after a
+% backslash sequence, either a lone backslash, or a doubled backslash.
+% NEXT_TOKEN contains the first token in the input stream: if it is \finish,
 % finish; otherwise, append to ARG_RESULT the segment of the argument up until
 % the next backslash.  PENDING_BACKSLASH contains a backslash to represent
 % a backslash just before the start of the input stream that has not been
@@ -8611,13 +8616,13 @@ might help (with 'rm \jobname.?? \jobname.??s')%
   % append the pending backslash to the result, followed by the next segment
   @expandafter@is_fi@look_ahead#1#2#4!{\}@fi
   % this @fi is discarded by @look_ahead.
-  % we can't get rid of it with \expandafter because we don't know how 
+  % we can't get rid of it with \expandafter because we don't know how
   % long #4 is.
 }
 
 % #1 - THE_MACRO
 % #2 - ARG_RESULT
-% #3 discards the res of the conditional in @add_segment, and @is_fi ends the 
+% #3 discards the res of the conditional in @add_segment, and @is_fi ends the
 % conditional.
 @gdef@call_the_macro#1#2!#3@fi{@is_fi #1{#2}}
 
@@ -8629,7 +8634,7 @@ might help (with 'rm \jobname.?? \jobname.??s')%
 % for reading the argument (slightly different in the two cases).  Then,
 % to read the argument, in the whole-line case, it then calls the regular
 % \parsearg MAC; in the lbrace case, it calls \passargtomacro MAC.
-% 
+%
 \def\braceorline#1{\let\macnamexxx=#1\futurelet\nchar\braceorlinexxx}
 \def\braceorlinexxx{%
   \ifx\nchar\bgroup
@@ -8683,7 +8688,7 @@ might help (with 'rm \jobname.?? \jobname.??s')%
 
 % Used so that the @top node doesn't have to be wrapped in an @ifnottex
 % conditional.
-% \doignore goes to more effort to skip nested conditionals but we don't need 
+% \doignore goes to more effort to skip nested conditionals but we don't need
 % that here.
 \def\omittopnode{%
    \ifx\lastnode\wordTop
@@ -8691,7 +8696,7 @@ might help (with 'rm \jobname.?? \jobname.??s')%
 }
 \def\wordTop{Top}
 
-% Until the next @node or @bye command, divert output to a box that is not 
+% Until the next @node or @bye command, divert output to a box that is not
 % output.
 \def\ignorenode{\setbox\dummybox\vbox\bgroup\def\node{\egroup\node}%
 \ignorenodebye
@@ -8758,7 +8763,7 @@ might help (with 'rm \jobname.?? \jobname.??s')%
 % automatically in xrefs, if the third arg is not explicitly specified.
 % This was provided as a "secret" @set xref-automatic-section-title
 % variable, now it's official.
-% 
+%
 \parseargdef\xrefautomaticsectiontitle{%
   \def\temp{#1}%
   \ifx\temp\onword
@@ -8774,7 +8779,7 @@ might help (with 'rm \jobname.?? \jobname.??s')%
   \fi\fi
 }
 
-% 
+%
 % @xref, @pxref, and @ref generate cross-references.  For \xrefX, #1 is
 % the node name, #2 the name of the Info cross-reference, #3 the printed
 % node name, #4 the name of the Info file, #5 the name of the printed
@@ -8927,24 +8932,24 @@ might help (with 'rm \jobname.?? \jobname.??s')%
     \fi
   \else
     % node/anchor (non-float) references.
-    % 
+    %
     % If we use \unhbox to print the node names, TeX does not insert
     % empty discretionaries after hyphens, which means that it will not
     % find a line break at a hyphen in a node names.  Since some manuals
     % are best written with fairly long node names, containing hyphens,
     % this is a loss.  Therefore, we give the text of the node name
     % again, so it is as if TeX is seeing it for the first time.
-    % 
+    %
     \ifdim \wd\printedmanualbox > 0pt
       % Cross-manual reference with a printed manual name.
-      % 
+      %
       \crossmanualxref{\cite{\printedmanual\unskip}}%
     %
     \else\ifdim \wd\infofilenamebox > 0pt
       % Cross-manual reference with only an info filename (arg 4), no
       % printed manual name (arg 5).  This is essentially the same as
       % the case above; we output the filename, since we have nothing else.
-      % 
+      %
       \crossmanualxref{\code{\infofilename\unskip}}%
     %
     \else
@@ -8984,20 +8989,20 @@ might help (with 'rm \jobname.?? \jobname.??s')%
 \endgroup}
 
 % Output a cross-manual xref to #1.  Used just above (twice).
-% 
+%
 % Only include the text "Section ``foo'' in" if the foo is neither
 % missing or Top.  Thus, @xref{,,,foo,The Foo Manual} outputs simply
 % "see The Foo Manual", the idea being to refer to the whole manual.
-% 
+%
 % But, this being TeX, we can't easily compare our node name against the
 % string "Top" while ignoring the possible spaces before and after in
 % the input.  By adding the arbitrary 7sp below, we make it much less
 % likely that a real node name would have the same width as "Top" (e.g.,
 % in a monospaced font).  Hopefully it will never happen in practice.
-% 
+%
 % For the same basic reason, we retypeset the "Top" at every
 % reference, since the current font is indeterminate.
-% 
+%
 \def\crossmanualxref#1{%
   \setbox\toprefbox = \hbox{Top\kern7sp}%
   \setbox2 = \hbox{\ignorespaces \printedrefname \unskip \kern7sp}%
@@ -9044,7 +9049,7 @@ might help (with 'rm \jobname.?? \jobname.??s')%
   \fi\fi\fi
 }
 
-% \refx{NAME}{SUFFIX} - reference a cross-reference string named NAME.  SUFFIX 
+% \refx{NAME}{SUFFIX} - reference a cross-reference string named NAME.  SUFFIX
 % is output afterwards if non-empty.
 \def\refx#1#2{%
   \requireauxfile
@@ -9076,9 +9081,9 @@ might help (with 'rm \jobname.?? \jobname.??s')%
   #2% Output the suffix in any case.
 }
 
-% This is the macro invoked by entries in the aux file.  Define a control 
-% sequence for a cross-reference target (we prepend XR to the control sequence 
-% name to avoid collisions).  The value is the page number.  If this is a 
float 
+% This is the macro invoked by entries in the aux file.  Define a control
+% sequence for a cross-reference target (we prepend XR to the control sequence
+% name to avoid collisions).  The value is the page number.  If this is a float
 % type, we have more work to do.
 %
 \def\xrdef#1#2{%
@@ -9094,10 +9099,10 @@ might help (with 'rm \jobname.?? \jobname.??s')%
   \bgroup
     \expandafter\gdef\csname XR\safexrefname\endcsname{#2}%
   \egroup
-  % We put the \gdef inside a group to avoid the definitions building up on 
-  % TeX's save stack, which can cause it to run out of space for aux files 
with 
+  % We put the \gdef inside a group to avoid the definitions building up on
+  % TeX's save stack, which can cause it to run out of space for aux files with
   % thousands of lines.  \gdef doesn't use the save stack, but \csname does
-  % when it defines an unknown control sequence as \relax. 
+  % when it defines an unknown control sequence as \relax.
   %
   % Was that xref control sequence that we just defined for a float?
   \expandafter\iffloat\csname XR\safexrefname\endcsname
@@ -9456,7 +9461,7 @@ might help (with 'rm \jobname.?? \jobname.??s')%
   %
   \ifimagevmode
     \medskip  % space after a standalone image
-  \fi  
+  \fi
   \ifx\centersub\centerV \egroup \fi
 \endgroup}
 
@@ -10287,7 +10292,7 @@ directory should work if nowhere else does.}
         \uppercase{.}
       \endgroup
     \else
-      \errhelp = \EMsimple     
+      \errhelp = \EMsimple
       \errmessage{Unicode character U+#1 not supported, sorry}%
     \fi
   \else
@@ -10320,7 +10325,7 @@ directory should work if nowhere else does.}
     \countUTFz = "#1\relax
     \begingroup
       \parseXMLCharref
-    
+
       % Give \u8:... its definition.  The sequence of seven \expandafter's
       % expands after the \gdef three times, e.g.
       %
@@ -10332,7 +10337,7 @@ directory should work if nowhere else does.}
       \expandafter\expandafter
       \expandafter\expandafter
       \expandafter\gdef       \UTFviiiTmp{#2}%
-      % 
+      %
       \expandafter\ifx\csname uni:#1\endcsname \relax \else
        \message{Internal error, already defined: #1}%
       \fi
@@ -10371,7 +10376,7 @@ directory should work if nowhere else does.}
     \divide\countUTFz by 64
     \countUTFy = \countUTFz  % Save to be the future value of \countUTFz.
     \multiply\countUTFz by 64
-    
+
     % \countUTFz is now \countUTFx with the last 5 bits cleared.  Subtract
     % in order to get the last five bits.
     \advance\countUTFx by -\countUTFz
@@ -10406,7 +10411,7 @@ directory should work if nowhere else does.}
 % U+0080..U+00FF = 
https://en.wikipedia.org/wiki/Latin-1_Supplement_(Unicode_block)
 % U+0100..U+017F = https://en.wikipedia.org/wiki/Latin_Extended-A
 % U+0180..U+024F = https://en.wikipedia.org/wiki/Latin_Extended-B
-% 
+%
 % Many of our renditions are less than wonderful, and all the missing
 % characters are available somewhere.  Loading the necessary fonts
 % awaits user request.  We can't truly support Unicode without
@@ -11444,9 +11449,9 @@ directory should work if nowhere else does.}
 \def\texinfochars{%
   \let< = \activeless
   \let> = \activegtr
-  \let~ = \activetilde 
+  \let~ = \activetilde
   \let^ = \activehat
-  \markupsetuplqdefault \markupsetuprqdefault 
+  \markupsetuplqdefault \markupsetuprqdefault
   \let\b = \strong
   \let\i = \smartitalic
   % in principle, all other definitions in \tex have to be undone too.
diff --git a/extension/build-aux/ChangeLog b/extension/build-aux/ChangeLog
index 1488044..3fde6e0 100644
--- a/extension/build-aux/ChangeLog
+++ b/extension/build-aux/ChangeLog
@@ -1,3 +1,7 @@
+2019-10-04         Arnold D. Robbins     <address@hidden>
+
+       * config.guess, config.sub, install-sh: Updated from GNULIB.
+
 2019-08-21         Arnold D. Robbins     <address@hidden>
 
        * config.guess: Updated from GNULIB.
diff --git a/extension/build-aux/config.guess b/extension/build-aux/config.guess
index 97ad073..7f9ebbe 100755
--- a/extension/build-aux/config.guess
+++ b/extension/build-aux/config.guess
@@ -2,7 +2,7 @@
 # Attempt to guess a canonical system name.
 #   Copyright 1992-2019 Free Software Foundation, Inc.
 
-timestamp='2019-07-24'
+timestamp='2019-09-10'
 
 # This file is free software; you can redistribute it and/or modify it
 # under the terms of the GNU General Public License as published by
@@ -274,6 +274,9 @@ case 
"$UNAME_MACHINE:$UNAME_SYSTEM:$UNAME_RELEASE:$UNAME_VERSION" in
     *:Sortix:*:*)
        echo "$UNAME_MACHINE"-unknown-sortix
        exit ;;
+    *:Twizzler:*:*)
+       echo "$UNAME_MACHINE"-unknown-twizzler
+       exit ;;
     *:Redox:*:*)
        echo "$UNAME_MACHINE"-unknown-redox
        exit ;;
diff --git a/extension/build-aux/config.sub b/extension/build-aux/config.sub
index a318a46..0f2234c 100755
--- a/extension/build-aux/config.sub
+++ b/extension/build-aux/config.sub
@@ -1343,7 +1343,7 @@ case $os in
             | hpux* | unos* | osf* | luna* | dgux* | auroraux* | solaris* \
             | sym* | kopensolaris* | plan9* \
             | amigaos* | amigados* | msdos* | newsos* | unicos* | aof* \
-            | aos* | aros* | cloudabi* | sortix* \
+            | aos* | aros* | cloudabi* | sortix* | twizzler* \
             | nindy* | vxsim* | vxworks* | ebmon* | hms* | mvs* \
             | clix* | riscos* | uniplus* | iris* | isc* | rtu* | xenix* \
             | knetbsd* | mirbsd* | netbsd* \
diff --git a/extension/build-aux/install-sh b/extension/build-aux/install-sh
index 8175c64..20d8b2e 100755
--- a/extension/build-aux/install-sh
+++ b/extension/build-aux/install-sh
@@ -451,7 +451,18 @@ do
     trap 'ret=$?; rm -f "$dsttmp" "$rmtmp" && exit $ret' 0
 
     # Copy the file name to the temp name.
-    (umask $cp_umask && $doit_exec $cpprog "$src" "$dsttmp") &&
+    (umask $cp_umask &&
+     { test -z "$stripcmd" || {
+        # Create $dsttmp read-write so that cp doesn't create it read-only,
+        # which would cause strip to fail.
+        if test -z "$doit"; then
+          : >"$dsttmp" # No need to fork-exec 'touch'.
+        else
+          $doit touch "$dsttmp"
+        fi
+       }
+     } &&
+     $doit_exec $cpprog "$src" "$dsttmp") &&
 
     # and set any options; do chmod last to preserve setuid bits.
     #
diff --git a/install-sh b/install-sh
index 8175c64..20d8b2e 100755
--- a/install-sh
+++ b/install-sh
@@ -451,7 +451,18 @@ do
     trap 'ret=$?; rm -f "$dsttmp" "$rmtmp" && exit $ret' 0
 
     # Copy the file name to the temp name.
-    (umask $cp_umask && $doit_exec $cpprog "$src" "$dsttmp") &&
+    (umask $cp_umask &&
+     { test -z "$stripcmd" || {
+        # Create $dsttmp read-write so that cp doesn't create it read-only,
+        # which would cause strip to fail.
+        if test -z "$doit"; then
+          : >"$dsttmp" # No need to fork-exec 'touch'.
+        else
+          $doit touch "$dsttmp"
+        fi
+       }
+     } &&
+     $doit_exec $cpprog "$src" "$dsttmp") &&
 
     # and set any options; do chmod last to preserve setuid bits.
     #

http://git.sv.gnu.org/cgit/gawk.git/commit/?id=f4795f119a1c02ccf92469296a77a9e6d10d3757

commit f4795f119a1c02ccf92469296a77a9e6d10d3757
Author: Arnold D. Robbins <address@hidden>
Date:   Fri Oct 4 14:41:35 2019 +0300

    Update Italian translation.

diff --git a/doc/it/ChangeLog b/doc/it/ChangeLog
index 00740b4..4a70441 100644
--- a/doc/it/ChangeLog
+++ b/doc/it/ChangeLog
@@ -1,3 +1,9 @@
+2019-10-02         Antonio Giovanni Colombo   <address@hidden>
+
+       * gawktexi.in: Updated.
+       * sidebar.awk: Updated.
+       * texinfo.tex: Updated.
+
 2019-09-24         Antonio Giovanni Colombo   <address@hidden>
 
        * texinfo.tex: Updated.
diff --git a/doc/it/gawktexi.in b/doc/it/gawktexi.in
index c41c25d..115ef1e 100644
--- a/doc/it/gawktexi.in
+++ b/doc/it/gawktexi.in
@@ -56,7 +56,7 @@
 @c applies to and all the info about who's publishing this edition
 
 @c These apply across the board.
-@set UPDATE-MONTH Luglio 2019
+@set UPDATE-MONTH Settembre 2019
 @set VERSION 5.1
 @set PATCHLEVEL 0
 
@@ -246,11 +246,11 @@
 @ifnotinfo
 
 @macro cindexawkfunc{name}
-@cindex @code{\name\()}, funzione
+@cindex @code{\name\()} (funzione)
 @end macro
 
 @macro cindexgawkfunc{name}
-@cindex @code{\name\()}, funzione (@command{gawk})
+@cindex @code{\name\()} (funzione @command{gawk})
 @end macro
 @end ifnotinfo
 
@@ -1273,7 +1273,7 @@ per aver arricchito le nostre vite in misura 
incalcolabile.
 Arnold Robbins e io siamo buoni amici. Ci siamo conosciuti
 @c 11 years ago
 nel 1990 per un insieme di
-circostanze---e per il nostro linguaggio di programmazione preferito, AWK.
+circostanze --- e per il nostro linguaggio di programmazione preferito, AWK.
 Tutto era iniziato un paio d'anni prima.
 Avevo appena iniziato un nuovo lavoro e avevo notato un computer Unix 
scollegato
 che giaceva in un angolo.
@@ -1286,9 +1286,9 @@ In uno dei miei giri per biblioteche e librerie alla 
ricerca di libri sullo
 Unix, trovai il libro, dalla copertina grigia, su AWK, noto anche come @:
 Alfred V.@: Aho, Brian W.@: Kernighan e
 Peter J.@: Weinberger, @cite{The AWK Programming Language}, (Addison-Wesley,
-1988).  Il semplice paradigma di programmazione di AWK
----trovare un'espressione di ricerca nell'input e di conseguenza compiere
-un'azione---riduceva spesso
+1988).  Il semplice paradigma di programmazione di AWK --- trovare
+un'espressione di ricerca nell'input e di conseguenza compiere
+un'azione --- riduceva spesso
 complesse e tediose manipolazioni di dati a poche righe di codice.  Ero
 entusiasta di cimentarmi nella programmazione in AWK.
 
@@ -1495,6 +1495,7 @@ Ottobre 2014
    </prefaceinfo>
 @end docbook
 
+@cindex @command{awk}
 Lavorando con file di testo capita di dover eseguire alcuni tipi ripetitivi di
 operazioni. Si potrebbe voler estrarre alcune righe e scartare il resto, o fare
 modifiche laddove siano verificate certe condizioni, lasciando inalterato il
@@ -1503,7 +1504,7 @@ resto del file.  Questi compiti risultano spesso pi@`u 
agevoli usando
 di programmazione specializzato che rende facile eseguire semplici attivit@`a
 di riformattazione di dati.
 
-@cindex Brian Kernighan, @command{awk} di
+@cindex @command{gawk}
 L'implementazione GNU di @command{awk} @`e chiamata @command{gawk}; se
 invocato con le opzioni o con le variabili d'ambiente appropriate,
 (@pxref{Opzioni}), @`e pienamente
@@ -1518,13 +1519,13 @@ Ci@`o implica che tutti i programmi
 Perci@`o nella maggior parte dei casi non si distingue tra @command{gawk} e
 altre implementazioni di @command{awk}.
 
-@cindex @command{awk}, POSIX e, si veda anche POSIX @command{awk}
-@cindex @command{awk}, POSIX e
-@cindex POSIX, @command{awk} e
-@cindex @command{gawk}, @command{awk} e
-@cindex @command{awk}, @command{gawk} e
-@cindex @command{awk}, uso di
-Usando @command{awk} potete:
+@cindex @command{awk} @subentry POSIX e @seealso{POSIX @command{awk}}
+@cindex @command{awk} @subentry POSIX e
+@cindex POSIX @subentry @command{awk} e
+@cindex @command{gawk} @subentry @command{awk} e
+@cindex @command{awk} @subentry @command{gawk} e
+@cindex @command{awk} @subentry uso di
+Usando @command{awk} si possono:
 
 @itemize @value{BULLET}
 @item
@@ -1544,9 +1545,9 @@ Sperimentare algoritmi che possono essere adattati in 
seguito ad altri
 linguaggi per computer
 @end itemize
 
-@cindex @command{awk}, si veda anche @command{gawk}
-@cindex @command{gawk}, si veda anche @command{awk}
-@cindex @command{gawk}, uso di
+@cindex @command{awk} @seealso{@command{gawk}}
+@cindex @command{gawk} @seealso{@command{awk}}
+@cindex @command{gawk} @subentry uso di
 Inoltre,
 @command{gawk}
 fornisce strumenti che rendono facile:
@@ -1578,7 +1579,7 @@ deve comunque avere familiarit@`a con i concetti di 
ridirezione I/O e di
 @dfn{pipe}.} cos@`{@dotless{i}} come con le funzionalit@`a di base della 
shell, come la
 ridirezione, l'input/output (I/O) e le @dfn{pipe}.
 
-@cindex GNU @command{awk}, si veda @command{gawk}
+@cindex GNU @command{awk} @seeentry{@command{gawk}}
 Implementazioni del linguaggio @command{awk} sono disponibili per diversi
 sistemi operativi di computer.  Questo @value{DOCUMENT}, oltre a descrivere il
 linguaggio @command{awk} in generale, descrive anche la specifica
@@ -1614,8 +1615,8 @@ per quei sistemi @`e stato rimosso.}
 @node Storia
 @unnumberedsec La storia di @command{gawk} e @command{awk}
 @cindex ricetta per un linguaggio di programmazione
-@cindex linguaggio di programmazione, ricetta per un
-@cindex programmazione, ricetta per un linguaggio di
+@cindex linguaggi di programmazione @subentry ricetta per
+@cindex programmazione @subentry ricetta per linguaggi di
 @sidebar Ricetta per un linguaggio di programmazione
 
 @multitable {2 parti di} {1 parte di  @code{egrep}} {1 parte di  @code{snobol}}
@@ -1633,7 +1634,7 @@ parti di C.  Documentare molto bene e distribuire.
 @cindex Aho, Alfred
 @cindex Weinberger, Peter
 @cindex Kernighan, Brian
-@cindex @command{awk}, storia di
+@cindex @command{awk} @subentry storia di
 Il nome @command{awk} deriva dalle iniziali dei suoi progettisti: Alfred V.@:
 Aho, Peter J.@: Weinberger e Brian W.@: Kernighan.  La versione originale di
 @command{awk} fu scritta nel 1977 negli AT&T Bell Laboratories.
@@ -1682,7 +1683,7 @@ per un elenco completo di quelli che hanno fornito 
contributi importanti a
 @node Nomi
 @unnumberedsec Una rosa, con ogni altro nome...
 
-@cindex @command{awk}, nuovo e vecchio
+@cindex @command{awk} @subentry nuovo e vecchio
 Il linguaggio @command{awk} si @`e evoluto nel corso degli anni.  Tutti i
 dettagli si trovano in @ref{Storia del linguaggio}.
 Il linguaggio descritto in questo @value{DOCUMENT}
@@ -1720,7 +1721,7 @@ dell'implementazione GNU, viene usato i termine 
@command{gawk}.
 
 @node Questo manuale
 @unnumberedsec Uso di questo @value{DOCUMENT}
-@cindex @command{awk}, descrizione dei termini
+@cindex @command{awk} @subentry descrizione dei termini
 
 Il termine @command{awk} si riferisce sia a uno specifico programma sia al
 linguaggio che si usa per dire al programma stesso cosa deve fare.  Quando 
dobbiamo
@@ -1732,8 +1733,8 @@ eseguire l'utilit@`a @command{awk}.
 Il termine ``programma @command{awk}'' si riferisce a un programma scritto
 dall'utente nel linguaggio di programmazione @command{awk}.
 
-@cindex @command{gawk}, @command{awk} e
-@cindex @command{awk}, @command{gawk} e
+@cindex @command{gawk} @subentry @command{awk} e
+@cindex @command{awk} @subentry @command{gawk} e
 @cindex POSIX @command{awk}
 In primo luogo, questo @value{DOCUMENT} spiega le funzionalit@`a di 
@command{awk}
 come definite nello standard POSIX, e lo fa nel contesto dell'implementazione
@@ -1766,7 +1767,7 @@ sparsi in tutto il @value{DOCUMENT}.
 Aggiungono una spiegazione pi@`u completa su punti importanti, ma che
 probabilmente non sono di interesse in sede di prima lettura.
 @ifclear FOR_PRINT
-Si trovano tutti nell'indice analitico, alla voce ``sidebar.'' @c non c'e 
riquadro nell'indice analitico
+Si trovano tutti nell'indice analitico, alla voce ``riquadro.''
 @end ifclear
 
 La maggior parte delle volte, gli esempi usano programmi @command{awk} 
completi.
@@ -2105,12 +2106,12 @@ Note di avviso o raccomandazioni di cautela sono 
stampate in questo modo.
 @unnumberedsubsec Angoli Bui
 @cindex Kernighan, Brian
 @quotation
-@i{Gli angoli bui sono essenzialmente frattali---per quanto vengano
+@i{Gli angoli bui sono essenzialmente frattali --- per quanto vengano
 illuminati, ce n'@`e sempre uno pi@`u piccolo e pi@`u buio.}
 @author Brian Kernighan
 @end quotation
 
-@cindex a.b., si veda angolo buio
+@cindex a.b. @seeentry{angolo buio}
 @cindex angolo buio
 Fino allo standard POSIX (e @cite{@value{TITLE}}),
 molte caratteristiche di @command{awk} erano poco documentate o
@@ -2130,7 +2131,7 @@ Appaiono anche nell'indice sotto la voce ``angolo buio.''
 Ma come osservato nella citazione d'apertura, ogni trattazione degli
 angoli bui @`e per definizione incompleta.
 
-@cindex e.c., si veda estensioni comuni
+@cindex e.c. @seeentry{estensioni comuni}
 Estensioni al linguaggio standard di @command{awk} disponibili in pi@`u di una
 implementazione di @command{awk} sono segnate
 @ifclear FOR_PRINT
@@ -2152,11 +2153,11 @@ dedita alla produzione e distribuzione di software 
liberamente distribuibile.
 @`E stata fondata da Richard M.@: Stallman, l'autore della prima versione
 dell'editor Emacs.  GNU Emacs @`e oggi la versione di Emacs pi@`u largamente 
usata.
 
-@cindex Progetto GNU
-@cindex GNU, Progetto
+@cindex progetto @subentry GNU
+@cindex GNU @subentry progetto
 @cindex GPL (General Public License)
-@cindex General Public License, si veda GPL
-@cindex documentazione, online
+@cindex General Public License @seeentry{GPL}
+@cindex documentazione @subentry online
 Il Progetto GNU@footnote{GNU sta per ``GNU's Not Unix.''}
 @`e un progetto della Free Software
 Foundation in continuo sviluppo per creare un ambiente per computer completo, 
liberamente
@@ -2185,9 +2186,8 @@ piccoli programmi di utilit@`a (come @command{gawk}), 
sono stati completati e
 sono liberamente disponibili.  Il kernel del sistema operativo GNU (noto come
 HURD), @`e stato rilasciato ma @`e ancora allo stato di sviluppo iniziale.
 
-@cindex Linux
 @cindex GNU/Linux
-@cindex sistemi operativi basati su BSD
+@cindex sistemi operativi @subentry basati su BSD
 In attesa che il sistema operativo GNU venga pi@`u completatamente
 sviluppato, si dovrebbe prendere in considerazione l'uso di GNU/Linux, un
 sistema operativo liberamente distribuibile e basato su Unix disponibile
@@ -2200,8 +2200,8 @@ scaricabili da internet.
 @end ifclear
 
 @ifnotinfo
-Il @value{DOCUMENT} @`e realmente libero---almeno, l'informazione che contiene
-@`e libera per chiunque---.  Il codice sorgente del @value{DOCUMENT}, leggibile
+Il @value{DOCUMENT} @`e realmente libero --- almeno, l'informazione che 
contiene
+@`e libera per chiunque ---.  Il codice sorgente del @value{DOCUMENT}, 
leggibile
 elettronicamente, viene fornito con @command{gawk}.
 @ifclear FOR_PRINT
 (Dare un'occhiata alla Free Documentation
@@ -2365,10 +2365,10 @@ significare sia
 che @cite{Come curiosare educatamente}].
 Karl Berry ha aiutato in modo significativo con la parte @TeX{} di Texinfo.
 
-@cindex Hartholz, Marshall
-@cindex Hartholz, Elaine
-@cindex Schreiber, Bert
-@cindex Schreiber, Rita
+@cindex Hartholz @subentry Marshall
+@cindex Hartholz @subentry Elaine
+@cindex Schreiber @subentry Bert
+@cindex Schreiber @subentry Rita
 Vorrei ringraziare Marshall ed Elaine Hartholz di Seattle e il Dr.@: Bert e 
Rita
 Schreiber di Detroit per i lunghi periodi di vacanza trascorsi in tutta
 tranquillit@`a in casa loro, che mi hanno permesso di fare importanti progressi
@@ -2388,7 +2388,7 @@ lavorare con lui a questo progetto @`e stato un vero 
piacere.
 
 @cindex Drepper, Ulrich
 @cindex GNITS mailing list
-@cindex mailing list, GNITS
+@cindex mailing list @subentry GNITS
 Gli intrepidi membri della lista GNITS, con una particolare menzione per Ulrich
 Drepper, hanno fornito un aiuto prezioso e commenti per il progetto
 delle funzionalit@`a di internazionalizzazione.
@@ -2411,7 +2411,7 @@ versione 3.1 di @command{gawk}.
 @cindex Jaegermann, Michal
 @cindex Kahrs, J@"urgen
 @cindex Kasal, Stepan
-@cindex Malmberg, John E.
+@cindex Malmberg, John
 @cindex Pitts, Dave
 @cindex Ramey, Chet
 @cindex Rankin, Pat
@@ -2483,9 +2483,9 @@ amicizia e per essere stato per me un modello da seguire 
ormai da quasi
 30 anni!  Averlo come revisiore @`e per me un privilegio eccitante, ma @`e
 stata anche un'esperienza che mi ha fatto sentire molto piccolo@enddots{}
 
-@cindex Robbins, Miriam
-@cindex Robbins, Jean
-@cindex Robbins, Harry
+@cindex Robbins @subentry Miriam
+@cindex Robbins @subentry Jean
+@cindex Robbins @subentry Harry
 @cindex D-o
 Devo ringraziare la mia meravigliosa moglie, Miriam, per la sua pazienza nel
 corso delle molte versioni di questo progetto, per la correzione delle bozze e
@@ -2548,11 +2548,11 @@ seguenti capitoli:
 @end ifdocbook
 @node Per iniziare
 @chapter Per iniziare con @command{awk}
-@c @cindex @dfn{script}, definizione di
-@c @cindex rule, definizione di
-@c @cindex program, definizione di
+@c @cindex script, definition of
+@c @cindex rule, definition of
+@c @cindex program, definition of
 @c @cindex basic function of @command{awk}
-@cindex @command{awk}, funzione di
+@cindex @command{awk} @subentry utilizzo di
 
 Il compito fondamentale di @command{awk} @`e quello di ricercare righe (o
 altre unit@`a di testo) in file che corrispondano a certi criteri di ricerca.
@@ -2561,9 +2561,9 @@ quella riga le azioni specificate per quel criterio.  
@command{awk} continua
 a elaborare righe in input in questo modo, finch@'e non raggiunge la fine delle
 righe nei file in input.
 
-@cindex @command{awk}, uso di
-@cindex linguaggi di programmazione@comma{} guidati-dai-dati/procedurali
-@cindex @command{awk}, programmi
+@cindex @command{awk} @subentry uso di
+@cindex linguaggi di programmazione @subentry guidati-dai-dati vs. procedurali
+@cindex programmi @command{awk}
 I programmi scritti in @command{awk} sono differenti dai programmi scritti
 nella maggior parte degli altri linguaggi,
 poich@'e i programmi @command{awk} sono @dfn{guidati dai dati} (ovvero,
@@ -2577,8 +2577,8 @@ deve elaborare.
 Per questa ragione i programmi @command{awk} sono spesso piacevolmente
 facili da leggere e da scrivere.
 
-@cindex programma, definizione di
-@cindex regola, definizione di
+@cindex programma @subentry definizione di
+@cindex regola @subentry definizione di
 Quando si esegue @command{awk}, va specificato un
 @dfn{programma} @command{awk} che
 dice ad @command{awk} cosa fare.  Il programma consiste di una serie di
@@ -2623,7 +2623,7 @@ Per separare regole, basta andare a capo.  Quindi un 
programma
 @node Eseguire gawk
 @section Come iniziare a eseguire programmi @command{gawk}
 
-@cindex programmi @command{awk}, eseguire
+@cindex programmi @command{awk} @subentry eseguire
 Ci sono vari modi di eseguire un programma @command{awk}.  Se il programma @`e
 corto, @`e pi@`u facile includerlo nel comando con cui si invoca @command{awk},
 cos@`{@dotless{i}}:
@@ -2632,7 +2632,7 @@ cos@`{@dotless{i}}:
 awk '@var{programma}' @var{input-file1} @var{input-file2} @dots{}
 @end example
 
-@cindex riga di comando, formati
+@cindex riga di comando @subentry formati
 Quando il programma @`e lungo, di solito @`e meglio metterlo in un file
 ed eseguirlo con un comando come questo:
 
@@ -2692,8 +2692,8 @@ della shell.  Gli apici fanno inoltre s@`{@dotless{i}} 
che la shell tratti tutto
 @var{programma} come un solo argomento per @command{awk}, e permettono che
 @var{programma} sia pi@`u lungo di una riga.
 
-@cindex shell, @dfn{script}
-@cindex programmi @command{awk}, eseguire, da @dfn{script} di shell
+@cindex shell @subentry @dfn{script}
+@cindex programmi @command{awk} @subentry eseguire @subentry da @dfn{script} 
di shell
 Questo formato @`e utile anche per eseguire programmi @command{awk} di
 dimensioni piccole o medie da @dfn{script} di shell, perch@'e non richiede
 un file separato che contenga il programma @command{awk}.  Uno @dfn{script}
@@ -2718,8 +2718,8 @@ brevi, scritti sulla riga di comando.
 @subsection Senza uso di file in input (input immesso da tastiera)
 
 @cindex standard input
-@cindex input, standard
-@cindex file in input, eseguire @command{awk} senza usarli
+@cindex input @subentry standard
+@cindex input @subentry eseguire @command{awk} senza usare
 Si pu@`o anche eseguire @command{awk} senza indicare alcun file in input.  Se
 si immette la seguente riga di comando:
 
@@ -2733,9 +2733,8 @@ che di solito significa qualsiasi cosa venga immesso 
dalla tastiera.
 Ci@`o prosegue finch@'e non si segnala una fine-file battendo @kbd{Ctrl-d}.
 (In sistemi operativi non-POSIX, il carattere di fine-file pu@`o essere 
diverso.)
 
-@cindex input, file in, si veda file in input
-@cindex file in input, eseguire @command{awk} senza usarli
-@cindex programmi @command{awk}, eseguire, senza file in input
+@cindex input @subentry eseguire @command{awk} senza usare
+@cindex programmi @command{awk} @subentry eseguire @subentry senza file in 
input
 Per esempio, il seguente programma stampa un consiglio da amico
 (dalla @cite{Guida galattica per gli autostoppisti} di Douglas Adams ),
 per non lasciarsi spaventare dalle complessit@`a della programmazione per
@@ -2783,9 +2782,10 @@ $ @kbd{awk '@{ print @}'}
 @node Lunghi
 @subsection Eseguire programmi lunghi
 
-@cindex programmi @command{awk}, eseguire
-@cindex programmi @command{awk}, lunghi
-@cindex file, programmi @command{awk} in
+@cindex programmi @command{awk} @subentry eseguire
+@cindex programmi @command{awk} @subentry lunghi
+@cindex programmi @command{awk} @subentry in file
+@cindex file @subentry programmi @command{awk} in
 Talora i programmi @command{awk} sono molto lunghi.  In tali situazioni
 conviene mettere il programma in un file separato.  Per dire ad
 @command{awk} di usare quel file come programma, digitare:
@@ -2794,8 +2794,9 @@ conviene mettere il programma in un file separato.  Per 
dire ad
 awk -f @var{file-sorgente} @var{input-file1} @var{input-file2} @dots{}
 @end example
 
-@cindex @option{-f}, opzione
-@cindex riga di comando, opzione @option{-f}
+@cindex @option{-f} (opzione)
+@cindex opzione @subentry @option{-f}
+@cindex riga di comando @subentry opzione @option{-f}
 L'opzione @option{-f} dice al comando @command{awk} di ottenere il programma
 @command{awk} dal file @var{file-sorgente} (@pxref{Opzioni}).
 Ogni @value{FN} pu@`o essere usato come @var{file-sorgente}.  Per esempio, si
@@ -2819,7 +2820,7 @@ equivale al comando:
 awk 'BEGIN @{ print \"Non v\47allarmate!\" @}'
 @end example
 
-@cindex protezione, nella riga di comando di @command{gawk}
+@cindex protezione @subentry nella riga di comando di @command{gawk}
 @noindent
 Questo @`e gi@`a stato spiegato prima
 (@pxref{Leggere dal terminale}).
@@ -2832,8 +2833,8 @@ di comando di @command{awk}.
 (Inoltre, se il programma si trova in un file, @`e possibile usare un apice
 singolo all'interno del programma, invece del magico @samp{\47}.)
 
-@cindex apice singolo (@code{'}), nella riga di comando di @command{gawk}
-@cindex @code{'} (apice singolo), nella riga di comando di @command{gawk}
+@cindex apice singolo (@code{'}) @subentry nella riga di comando di 
@command{gawk}
+@cindex @code{'} (apice singolo) @subentry nella riga di comando di 
@command{gawk}
 Per identificare chiaramente un file di programma @command{awk} come tale,
 si pu@`o aggiungere il suffisso @file{.awk} al @value{FN}.  Ci@`o non
 cambia l'esecuzione del programma @command{awk} ma semplifica
@@ -2842,9 +2843,9 @@ la ``manutenzione''.
 @node @dfn{Script} eseguibili
 @subsection Programmi @command{awk} da eseguire come @dfn{script}
 @cindex programmi @command{awk}
-@cindex @code{#} (cancelletto), @code{#!} (@dfn{script} eseguibili)
-@cindex Unix, @dfn{script} @command{awk} e
-@cindex cancelletto (@code{#}), @code{#!} (@dfn{script} eseguibili)
+@cindex @code{#} (cancelletto) @subentry @code{#!} (@dfn{script} eseguibili)
+@cindex Unix @subentry @dfn{script} @command{awk} e
+@cindex cancelletto (@code{#}) @subentry @code{#!} (@dfn{script} eseguibili)
 
 Una volta familiarizzato con @command{awk}, si potrebbero scrivere
 @dfn{script} che richiamano @command{awk}, usando il meccanismo di
@@ -2883,7 +2884,7 @@ programma che gli utenti possono richiamare senza dover 
essere informati che
 il programma @`e scritto in @command{awk}.
 
 @sidebar Comprendere @samp{#!}
-@cindex portabilit@`a, @code{#!} (@dfn{script} eseguibili)
+@cindex portabilit@`a @subentry @code{#!} (@dfn{script} eseguibili)
 
 @command{awk} @`e un linguaggio @dfn{interpretato}.  Ci@`o significa che il
 comando @command{awk} legge il programma dell'utente e poi elabora i dati
@@ -2911,14 +2912,15 @@ Non si dovrebbero mettere altri argomenti oltre al 
primo nella riga @samp{#!}
 dopo il percorso del comando @command{awk}.  Non funziona.  Il sistema
 operativo tratta il resto della riga come un argomento solo, e lo passa ad
 @command{awk}.
-Cos@`{@dotless{i}} facendo il comportamento sar@`a poco chiaro; con ogni 
probabilit@`a un
+Cos@`{@dotless{i}} facendo il comportamento sar@`a poco chiaro; con ogni
+probabilit@`a verr@`a emesso un
 messaggio di errore di qualche tipo da @command{awk}.
 
-@cindex variabili @code{ARGC}/@code{ARGV}, portabilit@`a e
-@cindex portabilit@`a, variabile @code{ARGV}
+@cindex variabile @subentry @code{ARGC}/@code{ARGV} @subentry portabilit@`a e
+@cindex portabilit@`a @subentry variabile @code{ARGV}
+@cindex angolo buio @subentry @code{ARGV}, valore della variabile
+@cindex angolo buio @subentry variabile @subentry @code{ARGV}, valore
 Infine, il valore di @code{ARGV[0]}
-@cindex angolo buio, @code{ARGV}, valore della variabile
-@cindex angolo buio, variabile @code{ARGV}, valore
 (@pxref{Variabili predefinite})
 pu@`o variare a seconda del sistema operativo.
 Alcuni sistemi ci mettono @samp{awk}, altri il nome completo del percorso
@@ -2930,10 +2932,10 @@ per ottenere il nome del proprio @dfn{script}.
 
 @node Commenti
 @subsection Documentare programmi @command{gawk}.
-@cindex @code{#} (cancelletto), commentare
-@cindex cancelletto (@code{#}), commentare
-@cindex commentare
-@cindex programmi @command{awk}, documentazione
+@cindex @code{#} (cancelletto) @subentry commentare
+@cindex cancelletto (@code{#}) @subentry commentare
+@cindex commenti
+@cindex programmi @command{awk} @subentry documentazione dei
 
 Un @dfn{commento} @`e del testo incluso in un programma per aiutare le
 persone che lo leggeranno; non @`e parte del programma eseguibile vero e
@@ -2959,9 +2961,9 @@ digitare direttamente da tastiera, ma ci@`o solitmanete 
non serve molto; il
 fine di un commento @`e di aiutare l'utente o qualcun altro a comprendere il
 programma, quando lo rilegge in un secondo tempo.
 
-@cindex protezione, per piccoli programmi awk
-@cindex apice singolo (@code{'}), vs.@: apostrofo
-@cindex @code{'} (apice singolo), vs.@: apostrofo
+@cindex protezione @subentry per piccoli programmi awk
+@cindex apice singolo (@code{'}) @subentry vs.@: apostrofo
+@cindex @code{'} (apice singolo) @subentry vs.@: apostrofo
 @quotation ATTENZIONE
 Come detto in
 @ref{Monouso},
@@ -3005,7 +3007,7 @@ La prossima @value{SUBSECTION} descrive le regole di 
protezione della shell.
 
 @node Protezione
 @subsection Uso di apici nella shell.
-@cindex shell, uso di apici, regole per
+@cindex shell @subentry protezione @subentry regole per
 
 @menu
 * Doppi apici in DOS::              Passaggio di apici in file .BAT Windows.
@@ -3023,8 +3025,8 @@ di shell di maggiori dimensioni:
 awk '@var{testo del programma}' @var{input-file1} @var{input-file2} @dots{}
 @end example
 
-@cindex shell, uso di apici, regole per
-@cindex Bourne shell, uso di apici, regole per la
+@cindex shell @subentry protezione @subentry regole per
+@cindex Bourne shell @subentry protezione @subentry regole per la
 Quando si lavora con la shell, non guasta avere una conoscenza
 di base sulle regole per l'uso di apici nella shell.  Le regole
 seguenti valgono solo per shell in stile Bourne (come Bash, la
@@ -3063,10 +3065,10 @@ lo protegge.  La shell toglie la barra inversa e passa 
il carattere
 protetto al comando.
 
 @item
-@cindex @code{\} (barra inversa), nei comandi di shell
-@cindex barra inversa (@code{\}), nei comandi di shell
-@cindex apice singolo (@code{'}), nei comandi di shell
-@cindex @code{'} (apice singolo), nei comandi di shell
+@cindex @code{\} (barra inversa) @subentry nei comandi di shell
+@cindex barra inversa (@code{\}) @subentry nei comandi di shell
+@cindex apice singolo (@code{'}) @subentry nei comandi di shell
+@cindex @code{'} (apice singolo) @subentry nei comandi di shell
 Gli apici singoli proteggono qualsiasi cosa sia inclusa tra un apice di
 apertura e uno di chiusura.
 La shell non interpreta il testo protetto, il quale viene passato 
cos@`{@dotless{i}} com'@`e
@@ -3077,8 +3079,8 @@ apici singoli.  Potete trovare in
 un esempio di cosa succede se si prova a farlo.
 
 @item
-@cindex doppio apice (@code{"}), nei comandi shell
-@cindex @code{"} (doppio apice), nei comandi shell
+@cindex doppio apice (@code{"}) @subentry nei comandi shell
+@cindex @code{"} (doppio apice) @subentry nei comandi shell
 I doppi apici proteggono la maggior parte di quel che @`e racchiuso tra i
 doppi apici di apertura e quelli di chiusura.
 La shell effettua almeno la sostituzione di variabili e di comandi
@@ -3111,8 +3113,8 @@ $ @kbd{awk "BEGIN @{ print \"Non v'allarmate!\" @}"}
 @print{} Non v'allarmate!
 @end example
 
-@cindex apice singolo (@code{'}), con doppio apice
-@cindex @code{'} (apice singolo), con doppio apice
+@cindex apice singolo (@code{'}) @subentry con doppio apice
+@cindex @code{'} (apice singolo) @subentry con doppio apice
 Va notato che l'apice singolo non @`e speciale all'interno di un testo
 racchiuso tra doppi apici.
 
@@ -3128,7 +3130,7 @@ awk -F "" '@var{programma}' @var{file} # corretto
 @end example
 
 @noindent
-@cindex stringa nulla come argomento a @command{gawk}, protezione della
+@cindex stringa nulla @subentry come argomento a @command{gawk}, protezione 
della
 Non @`e invece da usare:
 
 @example
@@ -3142,7 +3144,7 @@ Ci@`o come minimo genera un errore di sintassi, e un 
comportamento confuso nel
 caso peggiore.
 @end itemize
 
-@cindex protezione, nella riga di comando di @command{gawk}, trucchi per la
+@cindex protezione @subentry nella riga di comando di @command{gawk} @subentry 
trucchi per la
 Mischiare apici singoli e doppi @`e difficile.  Occorre utilizzare
 trucchi della shell per gli apici, come questi:
 
@@ -3311,8 +3313,8 @@ seguite da un doppio apice non hanno bisogno di essere 
duplicate.
 @node File dati di esempio
 @section @value{DDF} per gli esempi
 
-@cindex input file, esempi
-@cindex file di @code{mail-list}
+@cindex input @subentry esempi
+@cindex file @subentry @file{mail-list}
 Molti degli esempi in questo @value{DOCUMENT} hanno come input due @value{DF}
 di esempio.  Il primo, @file{mail-list}, contiene una lista di nomi di
 persone, insieme ai loro indirizzi email e a informazioni riguardanti le
@@ -3351,7 +3353,7 @@ Jean-Paul    555-2127     jeanpaul.campanorum@@nyu.edu    
 R
 @c endfile
 @end example
 
-@cindex file @code{inventory-shipped}
+@cindex file @subentry @file{inventory-shipped}
 Il @value{DF} @file{inventory-shipped} contiene
 informazioni sulle consegne effettuate durante l'anno.
 Ogni record contiene il mese, il numero di contenitori verdi spediti,
@@ -3431,15 +3433,15 @@ $ @kbd{awk '/li/ @{ print $0 @}' mail-list}
 @print{} Samuel       555-3430     samuel.lanceolis@@shu.edu        A
 @end example
 
-@cindex azioni, default
-@cindex criteri di ricerca, default
+@cindex azioni @subentry default
+@cindex criteri di ricerca @subentry default
 In una regola @command{awk}, il criterio di selezione o l'azione possono
 essere omessi, ma non entrambi.  Se il criterio @`e omesso, l'azione viene
 applicata a @emph{ogni} riga dell'input.
 Se l'azione viene omessa, per default si stampano tutte le righe che
 sono individuate dal criterio di selezione.
 
-@cindex azioni, omesse
+@cindex azioni @subentry omesse
 Quindi, si potrebbe omettere l'azione (l'istruzione @code{print} e le
 graffe) nell'esempio precedente e il risultato sarebbe lo stesso:
 @command{awk} stampa tutte le righe che corrispondono al criterio di
@@ -3447,7 +3449,7 @@ ricerca @samp{li}.  Per confronto, omettendo l'istruzione 
@code{print} ma
 lasciando le graffe si richiede un'azione nulla, che non fa nulla (cio@`e non
 stampa alcuna riga).
 
-@cindex programmi @command{awk}, esempi molto corti
+@cindex programmi @command{awk} @subentry esempi molto corti
 Molti programmi @command{awk} pratici sono lunghi solo una o due righe.
 Qui sotto troviamo una collezione di programmi utili e corti, per iniziare.
 Alcuni di questi programmi contengono elementi del linguaggio che non sono
@@ -3471,7 +3473,7 @@ awk 'length($0) > 80' data
 @end example
 
 L'unica regola presente ha un'espressione di relazione come modello
-e non ha azione---quindi applica l'azione di default, stampando il record.
+e non ha azione --- quindi applica l'azione di default, stampando il record.
 
 @item
 Stampare la lunghezza della riga in input pi@`u lunga:
@@ -3479,15 +3481,15 @@ Stampare la lunghezza della riga in input pi@`u lunga:
 @example
 @group
 awk '@{ if (length($0) > max) max = length($0) @}
-     END @{ print max @}' data
+END @{ print max @}' data
 @end group
 @end example
 
 Il codice associato a @code{END} viene eseguito dopo che tutto
 l'input @`e stato letto; @`e l'altra faccia della medaglia di @code{BEGIN}.
 
-@cindex programma @command{expand}
-@cindex @command{expand}, programma
+@cindex programma @subentry @command{expand}
+@cindex @command{expand} (programma)
 @item
 Stampare la lunghezza della riga pi@`u lunga in @file{data}:
 
@@ -3640,7 +3642,7 @@ ls -l | awk '$6 == "Nov" @{ somma += $5 @}
              END @{ print somma @}'
 @end example
 
-@cindex comando @command{ls}
+@cindex comando @subentry @command{ls}
 Questo comando stampa il numero totale di byte in tutti i file contenuti
 nella directory corrente, la cui data di modifica @`e novembre (di qualsiasi
 anno).  La parte @w{@samp{ls -l}} dell'esempio @`e un comando di sistema che
@@ -3659,7 +3661,7 @@ ogni file e la data di ultima modifica.  Il suo output 
@`e del tipo:
 @end example
 
 @noindent
-@cindex continuazione di riga, nella C shell
+@cindex continuazione di riga @subentry nella C shell
 Il primo campo contiene le autorizzazioni di lettura/scrittura [r/w], il
 secondo il numero dei collegamenti al file [cio@`e il numero di nomi con cui
 il file @`e conosciuto], e il terzo campo identifica il proprietario del file.
@@ -3670,7 +3672,7 @@ rispettivamente, in cui il file @`e stato modificato.  
Infine, il nono campo
 contiene il @value{FN}.
 
 @c @cindex automatic initialization
-@cindex inizializzazione automatica
+@cindex inizializzazione @subentry automatica
 L'espressione @samp{$6 == "Nov"} nel nostro programma @command{awk} controlla
 se il sesto campo dell'output di @w{@samp{ls -l}} corrisponda alla stringa
 @samp{Nov}.  Ogni volta che una riga ha la stringa
@@ -3697,17 +3699,17 @@ dei rapporti molto utili ed esteticamente gradevoli.
 @node Istruzioni/Righe
 @section Istruzioni e righe in @command{awk}
 @cindex interruzioni di riga
-@cindex andare a capo
+@cindex ritorno a capo
 
 Molto spesso, ogni riga di un programma @command{awk} @`e un'istruzione a s@'e
 stante o una regola isolata, come:
 
 @example
 awk '/12/  @{ print $0 @}
-     /21/  @{ print $0 @}' mail-list inventory-shipped
+/21/  @{ print $0 @}' mail-list inventory-shipped
 @end example
 
-@cindex @command{gawk}, andare a capo
+@cindex @command{gawk} @subentry ritorno a capo
 Comunque, @command{gawk} ignora i ritorni a capo dopo ognuno di questi
 simboli e istruzioni:
 
@@ -3724,8 +3726,8 @@ Il cambio di riga dopo @samp{?} e i @samp{:} @`e 
un'estensione minore in
 @command{gawk}; specificando @option{--posix} come opzione
 (@pxref{Opzioni}), quest'estensione non @`e valida.}
 
-@cindex @code{\} (barra inversa), continuazione di riga e
-@cindex barra inversa (@code{\}), continuazione di riga e
+@cindex @code{\} (barra inversa) @subentry continuazione di riga e
+@cindex barra inversa (@code{\}) @subentry continuazione di riga e
 Volendo dividere una sola istruzione su due righe in un punto in cui
 andando a capo sarebbe considerata conclusa, @`e possibile @dfn{continuare}
 nella riga successiva terminando la prima riga con un carattere di
@@ -3736,11 +3738,11 @@ a una stringa o a un'espressione regolare.  Per esempio:
 
 @example
 awk '/Questa espressione regolare @`e troppo lunga, quindi\
- la continuiamo sulla riga seguente/ @{ print $1 @}'
+la continuiamo sulla riga seguente/ @{ print $1 @}'
 @end example
 
 @noindent
-@cindex portabilit@`a, continuazione di riga con barra inversa e
+@cindex portabilit@`a @subentry continuazione di riga con barra inversa e
 Non abbiamo quasi mai usato la continuazione tramite barra inversa nei nostri
 programmi di esempio.  @command{gawk} non pone limiti alla lunghezza di
 una riga, quindi la continuazione tramite barra inversa non @`e mai 
strettamente
@@ -3759,9 +3761,9 @@ mezzo di un'espressione regolare o di una stringa.
 @c 10/2000: gawk, mawk, and current bell labs awk allow it,
 @c solaris 2.7 nawk does not. Solaris /usr/xpg4/bin/awk does though!  sigh.
 
-@cindex comando @command{csh}
-@cindex barra inversa (@code{\}), continuazione di riga e, in @command{csh}
-@cindex @code{\} (barra inversa), continuazione di riga e, in @command{csh}
+@cindex comando @subentry @command{csh}
+@cindex barra inversa (@code{\}) @subentry continuazione di riga e @subentry 
in @command{csh}
+@cindex @code{\} (barra inversa) @subentry continuazione di riga e @subentry 
in @command{csh}
 @quotation ATTENZIONE
 @emph{la continuazione tramite barra inversa non funziona come sopra descritto
 nella C shell.}  Funziona per programmi @command{awk} contenuti in file e
@@ -3802,9 +3804,9 @@ criterio di selezione e azione su righe separate, si
 @emph{deve} usare la continuazione tramite barra inversa; non si pu@`o fare
 diversamente.
 
-@cindex barra inversa (@code{\}), continuazione di riga, commenti e
-@cindex @code{\} (barra inversa), continuazione di riga, commenti e
-@cindex commenti, continuazione di riga con barra inversa e i
+@cindex barra inversa (@code{\}) @subentry continuazione di riga e @subentry 
commenti
+@cindex @code{\} (barra inversa) @subentry continuazione di riga e @subentry 
commenti
+@cindex commenti @subentry continuazione di riga con barra inversa e
 Un'altra cosa da tener presente @`e che la continuazione tramite barra inversa 
e
 i commenti non possono essere frammisti.  Non appena @command{awk} incontra
 un @samp{#} che inizia un commento, ignora @emph{tutto} il resto della riga.
@@ -3826,11 +3828,11 @@ successiva.  Invece, la combinazione barra 
inversa-ritorno a capo non viene
 per nulla notata, in quanto ``nascosta'' all'interno del commento.  Quindi,
 il @code{BEGIN} @`e marcato come errore di sintassi.
 
-@cindex istruzioni multiple
-@cindex @code{;} (punto e virgola), separare istruzioni nelle azioni
-@cindex punto e virgola (@code{;}), separare istruzioni nelle azioni
-@cindex @code{;} (punto e virgola), separare regole
-@cindex punto e virgola (@code{;}), separare regole
+@cindex istruzioni @subentry multiple
+@cindex @code{;} (punto e virgola) @subentry separare istruzioni nelle azioni
+@cindex punto e virgola (@code{;}) @subentry separare istruzioni nelle azioni
+@cindex @code{;} (punto e virgola) @subentry separare regole
+@cindex punto e virgola (@code{;}) @subentry separare regole
 Quando le istruzioni @command{awk} all'interno di una regola sono brevi, si
 potrebbe metterne pi@`u d'una su una riga sola.  Ci@`o @`e possibile separando 
le
 istruzioni con un punto e virgola (@samp{;}).
@@ -3883,7 +3885,7 @@ descritte sistematicamente in @ref{Variabili predefinite} 
e in
 @node Quando
 @section Quando usare @command{gawk}
 
-@cindex @command{awk}, uso di
+@cindex @command{awk} @subentry uso di
 Ora che abbiamo visto qualcosa di quel che @command{awk} @`e in grado di fare,
 ci si potr@`a chiedere come @command{awk} potrebbe tornare utile.  Usando
 programmi di utilit@`a, criteri di ricerca sofisticati, separatori
@@ -3902,7 +3904,7 @@ e buttati via.  Poich@'e i programmi @command{awk} sono 
interpretati, si pu@`o
 evitare la (normalmente laboriosa) parte di compilazione nel ciclo tipico
 dello sviluppo software, ossia edita-compila-prova-correggi.
 
-@cindex Brian Kernighan, @command{awk} di
+@cindex Brian Kernighan @subentry @command{awk} di
 In @command{awk} sono stati scritti programmi complessi, compreso un assembler
 completo, pluri-piattaforma per
 @ifclear FOR_PRINT
@@ -3921,7 +3923,7 @@ al linguaggio Prolog.
 Le possibilit@`a dell'originale @command{awk} erano messe a dura prova
 da programmi di questa complessit@`a, ma le versioni moderne sono pi@`u 
robuste.
 
-@cindex programmi @command{awk}, complessi
+@cindex programmi @command{awk} @subentry complessi
 Se capita di scrivere programmi @command{awk} pi@`u lunghi di, diciamo,
 qualche centinaio di righe, si potrebbe considerare la possibilit@`a di usare
 un linguaggio di programmazione differente da @command{awk}.
@@ -4011,10 +4013,10 @@ tranquillamente saltare.
 
 @node Riga di comando
 @section Come eseguire @command{awk}
-@cindex riga di comando, eseguire @command{awk} da
-@cindex @command{awk}, eseguire
-@cindex argomenti, riga di comando, eseguire @command{awk}
-@cindex opzioni sulla riga di comando, eseguire @command{awk}
+@cindex riga di comando @subentry eseguire @command{awk} da
+@cindex @command{awk} @subentry eseguire
+@cindex argomenti @subentry riga di comando @subentry eseguire @command{awk}
+@cindex opzioni @subentry sulla riga di comando @subentry per eseguire 
@command{awk}
 
 Ci sono due modi di eseguire @command{awk}: con un programma esplicito o con
 uno o pi@`u file di programma.  Qui @`e mostrata la sintassi di entrambi; le 
voci
@@ -4025,22 +4027,24 @@ racchiuse tra [@dots{}] sono opzionali:
 @command{awk} [@var{opzioni}] [@option{--}] @code{'@var{programma}'} 
@var{file} @dots{}
 @end display
 
-@cindex GNU, opzioni estese
-@cindex estese, opzioni
-@cindex opzioni estese
+@cindex GNU @subentry opzioni estese sulla riga di comando
+@cindex estese @subentry opzioni
+@cindex opzioni @subentry estese GNU
 In aggiunta alle tradizionali opzioni di una sola lettera in stile POSIX,
 @command{gawk} consente anche le opzioni estese GNU.
 
-@cindex angolo buio, invocare @command{awk}
-@cindex @dfn{lint}, controlli con programma vuoto
+@cindex angolo buio @subentry invocare @command{awk}
+@cindex @dfn{lint} @subentry controlli @subentry con programma vuoto
+@cindex controllo @subentry @dfn{lint} @subentry con programma vuoto
 @`E possibile invocare @command{awk} con un programma vuoto:
 
 @example
 awk '' file_dati_1 file_dati_2
 @end example
 
-@cindex @option{--lint}, opzione
-@cindex angolo buio, programmi vuoti
+@cindex @option{--lint} (opzione)
+@cindex opzione @subentry @option{--lint}
+@cindex angolo buio @subentry programmi vuoti
 @noindent
 Fare cos@`{@dotless{i}} ha comunque poco senso; @command{awk} termina
 silenziosamente quando viene fornito un programma vuoto.
@@ -4051,10 +4055,10 @@ che il programma @`e vuoto.
 
 @node Opzioni
 @section Opzioni sulla riga di comando
-@cindex opzioni sulla riga di comando
-@cindex riga di comando, opzioni
-@cindex GNU, opzioni estese
-@cindex opzioni estese
+@cindex opzioni @subentry sulla riga di comando
+@cindex riga di comando @subentry opzioni
+@cindex GNU @subentry opzioni estese sulla riga di comando
+@cindex opzioni @subentry estese GNU
 
 Le opzioni sono precedute da un trattino e consistono in un unico carattere.
 Le opzioni estese in stile GNU sono precedute da un doppio trattino e
@@ -4067,7 +4071,7 @@ dell'argomento sono separati da spazi.
 Se un'opzione con un valore viene immessa pi@`u di una volta,
 l'ultimo valore @`e quello che conta.
 
-@cindex POSIX @command{awk}, opzioni estese GNU e
+@cindex POSIX @command{awk} @subentry opzioni estese GNU
 Ogni opzione estesa di @command{gawk} ha una corrispondente opzione
 breve in stile POSIX.
 Le opzioni estese e brevi sono
@@ -4077,17 +4081,21 @@ L'elenco seguente descrive le opzioni richieste dallo 
standard POSIX:
 @table @code
 @item -F @var{fs}
 @itemx --field-separator @var{fs}
-@cindex @option{-F}, opzione
-@cindex @option{--field-separator}, opzione
-@cindex @code{FS}, variabile, l'opzione @code{--field-separator} e
+@cindex @option{-F} (opzione)
+@cindex opzione @subentry @option{-F}
+@cindex @option{--field-separator} (opzione)
+@cindex opzione @subentry @option{--field-separator}
+@cindex @code{FS} (variabile) @subentry l'opzione @code{--field-separator} e
 Imposta la variabile @code{FS} a @var{fs}
 (@pxref{Separatori di campo}).
 
 @item -f @var{file-sorgente}
 @itemx --file @var{file-sorgente}
-@cindex @option{-f}, opzione
-@cindex @option{--file}, opzione
-@cindex @command{awk}, programmi, collocazione dei
+@cindex @option{-f} (opzione)
+@cindex opzione @subentry @option{-f}
+@cindex @option{--file} (opzione)
+@cindex opzione @subentry @option{--file}
+@cindex programmi @command{awk} @subentry collocazione dei
 Legge il sorgente del programma @command{awk} da @var{file-sorgente}
 anzich@'e prenderlo dal primo argomento che non @`e un'opzione.
 Quest'opzione pu@`o essere data pi@`u volte; il programma @command{awk}
@@ -4101,9 +4109,11 @@ informazioni.
 
 @item -v @var{var}=@var{val}
 @itemx --assign @var{var}=@var{val}
-@cindex @option{-v}, opzione
-@cindex @option{--assign}, opzione
-@cindex variabili, impostazione
+@cindex @option{-v} (opzione)
+@cindex opzione @subentry @option{-v}
+@cindex @option{--assign} (opzione)
+@cindex opzione @subentry @option{--assign}
+@cindex variabili @subentry impostazione
 Imposta la variabile @var{var} al valore @var{val} @emph{prima} che inizi
 l'esecuzione del programma.  Tali valori di variabile sono disponibili
 all'interno della regola @code{BEGIN}
@@ -4114,8 +4124,8 @@ essere usata pi@`u di una volta, impostando ogni volta 
una variabile
 differente, in questo modo:
 @samp{awk @w{-v pippo=1} @w{-v pluto=2} @dots{}}.
 
-@cindex predefinite, variabili, opzione @code{-v}@comma{} impostare con
-@cindex variabili predefinite, impostare con opzione @code{-v}
+@cindex predefinita @subentry variabile @subentry impostare con opzione 
@code{-v}
+@cindex variabili @subentry predefinite @subentry impostare con opzione 
@code{-v}
 @quotation ATTENZIONE
 Usare @option{-v} per impostare valori di variabili predefinite
 pu@`o condurre a risultati sorprendenti.  @command{awk} reimposter@`a i
@@ -4124,7 +4134,8 @@ eventuali valori iniziali che possono essere stati 
assegnati.
 @end quotation
 
 @item -W @var{gawk-opt}
-@cindex @option{-W}, opzione
+@cindex @option{-W} (opzione)
+@cindex opzione @subentry @option{-W}
 Fornisce un'opzione specifica dell'implementazione.  Questa @`e la convenzione
 POSIX per fornire opzioni specifiche dell'implementazione.
 Queste opzioni
@@ -4135,15 +4146,15 @@ L'elenco completo delle opzioni specifiche di 
@command{gawk} @`e riportato di
 seguito.
 
 @item --
-@cindex riga di comando, opzioni, fine delle
-@cindex opzioni sulla riga di comando, fine delle
+@cindex riga di comando @subentry opzioni @subentry fine delle
+@cindex opzioni @subentry sulla riga di comando @subentry fine delle
 Segnale della fine delle opzioni da riga di comando.  I seguenti argomenti
 non sono trattati come opzioni anche se iniziano con @samp{-}.  Questa
 interpretazione di @option{--} segue le convenzioni POSIX per l'analisi degli
 argomenti.
 
-@cindex @code{-} (meno), nomi di file che iniziano con
-@cindex meno (@code{-}), nomi di file che iniziano con
+@cindex @code{-} (meno) @subentry nomi di file che iniziano con
+@cindex meno (@code{-}) @subentry nomi di file che iniziano con
 @`E utile se si hanno @value{FNS} che iniziano con @samp{-},
 o negli @dfn{script} di shell, se si hanno @value{FNS} che devono essere
 specificati dall'utente che potrebbero iniziare con @samp{-}.
@@ -4157,8 +4168,10 @@ L'elenco che segue descrive le opzioni specifiche di 
@command{gawk}:
 @table @asis
 @item @option{-b}
 @itemx @option{--characters-as-bytes}
-@cindex @option{-b}, opzione
-@cindex @option{--characters-as-bytes}, opzione
+@cindex @option{-b} (opzione)
+@cindex opzione @subentry @option{-b}
+@cindex @option{--characters-as-bytes} (opzione)
+@cindex opzione @subentry @option{--characters-as-bytes}
 Fa s@`{@dotless{i}} che @command{gawk} tratti tutti i dati in input come 
caratteri di un solo
 byte.  In aggiunta, tutto l'output scritto con @code{print} o @code{printf}
 viene trattato come composto da caratteri contenuti in un solo byte.
@@ -4174,9 +4187,11 @@ multibyte validi. Quest'opzione @`e una maniera facile 
di dire a @command{gawk}:
 
 @item @option{-c}
 @itemx @option{--traditional}
-@cindex @option{-c}, opzione
-@cindex @option{--traditional}, opzione
-@cindex modalit@`a compatibile di (@command{gawk}), specificare
+@cindex @option{-c} (opzione)
+@cindex opzione @subentry @option{-c}
+@cindex @option{--traditional} (opzione)
+@cindex opzione @subentry @option{--tradizional}
+@cindex modalit@`a compatibile di (@command{gawk}) @subentry specificare
 Specifica la @dfn{modalit@`a di compatibilit@`a}, nella quale le estensioni 
GNU al
 linguaggio @command{awk} sono disabilitate; in questo modo @command{gawk} si
 comporta proprio come la versione di BWK @command{awk}.
@@ -4190,27 +4205,31 @@ Si veda anche
 
 @item @option{-C}
 @itemx @option{--copyright}
-@cindex @option{-C}, opzione
-@cindex @option{--copyright}, opzione
-@cindex GPL (General Public License), stampare
+@cindex @option{-C} (opzione)
+@cindex opzione @subentry @option{-C}
+@cindex @option{--copyright} (opzione)
+@cindex opzione @subentry @option{--copyright}
+@cindex GPL (General Public License) @subentry stampare
 Stampa la versione ridotta della General Public License ed esce.
 
 @item @option{-d}[@var{file}]
 @itemx @option{--dump-variables}[@code{=}@var{file}]
-@cindex @option{-d}, opzione
-@cindex @option{--dump-variables}, opzione
+@cindex @option{-d} (opzione)
+@cindex opzione @subentry @option{-d}
+@cindex @option{--dump-variables} (opzione)
+@cindex opzione @subentry @option{--dump-variables}
 @cindex fornire una lista di tutte le variabili del programma
-@cindex @file{awkvars.out}, file
-@cindex file @file{awkvars.out}
-@cindex variabili globali, stampare una lista delle
+@cindex @file{awkvars.out} @subentry file
+@cindex file @subentry @file{awkvars.out}
+@cindex variabili @subentry globali @subentry stampare una lista delle
 Stampa una lista ordinata di variabili globali, i loro tipi, e i valori finali
 in @var{file}.  Se non viene fornito alcun @var{file}, stampa questa lista
 in un file chiamato @file{awkvars.out} nella directory corrente.
 Non sono consentiti spazi tra @option{-d} e @var{file}, se
 @var{file} viene specificato.
 
-@cindex risoluzione di problemi, refusi@comma{} variabili globali
-@cindex problemi, risoluzione di, refusi@comma{} variabili globali
+@cindex risoluzione di problemi @subentry refusi @subentry variabili globali
+@cindex problemi @subentry risoluzione di @subentry refusi, variabili globali
 Avere una lista di tutte le variabili globali @`e un buon modo per cercare
 refusi nei propri programmi.
 Si pu@`o usare quest'opzione anche se si ha un grosso programma con tantissime
@@ -4221,9 +4240,11 @@ semplici come @code{i}, @code{j}, etc.).
 
 @item @option{-D}[@var{file}]
 @itemx @option{--debug}[@code{=}@var{file}]
-@cindex @option{-D}, opzione
-@cindex @option{--debug}, opzione
-@cindex @command{awk}, debug, abilitare
+@cindex @option{-D} (opzione)
+@cindex opzione @subentry @option{-D}
+@cindex @option{--debug} (opzione)
+@cindex opzione @subentry @option{--debug}
+@cindex @command{awk} @subentry debug, abilitare
 Abilita l'esecuzione del debug di programmi @command{awk}
 (@pxref{Debugging}).
 Per default, il debugger legge i comandi interattivamente dalla tastiera
@@ -4235,9 +4256,11 @@ Non sono consentiti spazi tra @option{-D} e @var{file}, 
se
 
 @item @option{-e} @var{testo-del-programma}
 @itemx @option{--source} @var{testo-del-programma}
-@cindex @option{-e}, opzione
-@cindex @option{--source}, opzione
-@cindex codice sorgente, combinare
+@cindex @option{-e} (opzione)
+@cindex opzione @subentry @option{-e}
+@cindex @option{--source} (opzione)
+@cindex opzione @subentry @option{--source}
+@cindex codice sorgente @subentry combinare
 Fornisce del codice sorgente nel @var{testo-del-programma}.
 Quest'opzione consente di combinare il codice sorgente contenuto in file
 col codice sorgente immesso sulla riga di comando.
@@ -4272,9 +4295,11 @@ informazioni.
 
 @item @option{-E} @var{file}
 @itemx @option{--exec} @var{file}
-@cindex @option{-E}, opzione
-@cindex @option{--exec}, opzione
-@cindex @command{awk}, programmi, collocazione dei
+@cindex @option{-E} (opzione)
+@cindex opzione @subentry @option{-E}
+@cindex @option{--exec} (opzione)
+@cindex opzione @subentry @option{--exec}
+@cindex programmi @command{awk} @subentry collocazione dei
 @cindex CGI, @command{awk} @dfn{script} per
 Simile a @option{-f}, legge il testo del programma @command{awk} da
 @var{file}.  Ci sono due differenze rispetto a @option{-f}:
@@ -4311,10 +4336,12 @@ con @dfn{script} @samp{#!}
 
 @item @option{-g}
 @itemx @option{--gen-pot}
-@cindex @option{-g}, opzione
-@cindex @option{--gen-pot}, opzione
-@cindex portabilit@`a, generare file oggetto
-@cindex file oggetto portabili, generare
+@cindex @option{-g} (opzione)
+@cindex opzione @subentry @option{-g}
+@cindex @option{--gen-pot} (opzione)
+@cindex opzione @subentry @option{--gen-pot}
+@cindex portabilit@`a @subentry generare file oggetto
+@cindex file @subentry oggetto portabili @subentry generare
 Analizza il programma sorgente e
 genera un file GNU @command{gettext} @dfn{portable object template} sullo
 standard output per tutte le costanti di tipo stringa che sono state marcate
@@ -4324,19 +4351,23 @@ per informazioni su quest'opzione.
 
 @item @option{-h}
 @itemx @option{--help}
-@cindex @option{-h}, opzione
-@cindex @option{--help}, opzione
-@cindex GNU, opzioni estese, stampare una lista di
-@cindex opzioni, stampare una lista di
-@cindex stampa, lista di opzioni
+@cindex @option{-h} (opzione)
+@cindex opzione @subentry @option{-h}
+@cindex @option{--help} (opzione)
+@cindex opzione @subentry @option{--help}
+@cindex GNU @subentry opzioni estese sulla riga di comando @subentry stampare 
una lista di
+@cindex opzioni @subentry stampare una lista di
+@cindex stampa @subentry lista di opzioni
 Stampa un messaggio sull'``uso'' riassumendo le opzioni brevi ed estese
 accettate da @command{gawk} ed esce.
 
 @item @option{-i} @var{file-sorgente}
 @itemx @option{--include} @var{file-sorgente}
-@cindex @option{-i}, opzione
-@cindex @option{--include}, opzione
-@cindex @command{awk}, programmi, collocazione dei
+@cindex @option{-i} (opzione)
+@cindex opzione @subentry @option{-i}
+@cindex @option{--include} (opzione)
+@cindex opzione @subentry @option{--include}
+@cindex programmi @command{awk} @subentry collocazione dei
 Legge una libreria di sorgenti @command{awk} da @var{file-sorgente}.
 Quest'opzione @`e del tutto equivalente a usare la direttiva @code{@@include}
 all'interno del proprio programma.  @`E molto simile all'opzione
@@ -4356,9 +4387,12 @@ informazioni.
 
 @item @option{-l} @var{ext}
 @itemx @option{--load} @var{ext}
-@cindex @option{-l}, opzione
-@cindex @option{--load}, opzione
+@cindex @option{-l} (opzione)
+@cindex opzione @subentry @option{-l}
+@cindex @option{--load} (opzione)
+@cindex opzione @subentry @option{--load}
 @cindex caricare estensioni
+@cindex estensioni @subentry caricare
 Carica un'estensione dinamica denominata @var{ext}.  Le estensioni sono
 memorizzate come librerie condivise di sistema.
 Quest'opzione ricerca la libreria usando la variabile d'ambiente
@@ -4372,10 +4406,12 @@ condivisa.  Questa funzionalit@`a avanzata @`e 
descritta in dettaglio in
 
 @item @option{-L}[@var{valore}]
 @itemx @option{--lint}[@code{=}@var{valore}]
-@cindex @option{-l}, opzione
-@cindex @option{--lint}, opzione
-@cindex @dfn{lint}, controlli, emissione di avvertimenti
-@cindex avvertimenti, emissione di
+@cindex @option{-L} (opzione)
+@cindex opzione @subentry @option{-L}
+@cindex @option{--lint} (opzione)
+@cindex opzione @subentry @option{--lint}
+@cindex @dfn{lint} @subentry controlli @subentry emissione di avvertimenti
+@cindex avvertimenti @subentry emissione di
 Emette messaggi d'avvertimento relativi a costrutti dubbi o non portabili ad
 altre implementazioni di @command{awk}.
 Non sono consentiti spazi tra @option{-L} e @var{valore}, se
@@ -4400,8 +4436,10 @@ brevi, questa non @`e un'operazione gravosa.
 
 @item @option{-M}
 @itemx @option{--bignum}
-@cindex @option{-M}, opzione
-@cindex @option{--bignum}, opzione
+@cindex @option{-M} (opzione)
+@cindex opzione @subentry @option{-M}
+@cindex @option{--bignum} (opzione)
+@cindex opzione @subentry @option{--bignum}
 Chiede il calcolo con precisione arbitraria sui numeri.  Quest'opzione non ha
 alcun effetto se @command{gawk} non @`e compilato per l'uso delle librerie GNU
 MPFR e MP
@@ -4409,11 +4447,15 @@ MPFR e MP
 
 @item @option{-n}
 @itemx @option{--non-decimal-data}
-@cindex @option{-n}, opzione
-@cindex @option{--non-decimal-data}, opzione
-@cindex esadecimali@comma{} valori, abilitare l'interpretazione di
-@cindex ottali@comma{} valori, abilitare l'interpretazione di
-@cindex risoluzione di problemi, opzione @code{--non-decimal-data}
+@cindex @option{-n} (opzione)
+@cindex opzione @subentry @option{-n}
+@cindex @option{--non-decimal-data} (opzione)
+@cindex opzione @subentry @option{--non-decimal-data}
+@cindex esadecimali @subentry numeri @subentry abilitare l'interpretazione di
+@cindex valori @subentry esadecimali @subentry abilitare l'interpretazione di
+@cindex ottali @subentry numeri @subentry abilitare l'interpretazione di
+@cindex valori @subentry ottali @subentry abilitare l'interpretazione di
+@cindex risoluzione di problemi @subentry opzione @code{--non-decimal-data}
 Abilita l'interpretazione automatica di valori ottali ed esadecimali
 nei dati di input
 (@pxref{Dati non decimali}).
@@ -4427,8 +4469,10 @@ quest'opzione potrebbe non essere pi@`u disponibile in 
una futura versione di
 
 @item @option{-N}
 @itemx @option{--use-lc-numeric}
-@cindex @option{-N}, opzione
-@cindex @option{--use-lc-numeric}, opzione
+@cindex @option{-N} (opzione)
+@cindex opzione @subentry @option{-N}
+@cindex @option{--use-lc-numeric} (opzione)
+@cindex opzione @subentry @option{--use-lc-numeric}
 Forza l'uso del carattere di separazione decimale della localizzazione
 quando analizza i dati in input
 (@pxref{Localizzazioni}).
@@ -4436,8 +4480,10 @@ quando analizza i dati in input
 @cindex stampa elegante
 @item @option{-o}[@var{file}]
 @itemx @option{--pretty-print}[@code{=}@var{file}]
-@cindex @option{-o}, opzione
-@cindex @option{--pretty-print}, opzione
+@cindex @option{-o} (opzione)
+@cindex opzione @subentry @option{-o}
+@cindex @option{--pretty-print} (opzione)
+@cindex opzione @subentry @option{--pretty-print}
 Consente la stampa di una versione formattata elegantemente dei programmi
 @command{awk}.  Implica l'opzione @option{--no-optimize}.
 Per default il programma di output viene creato in un file
@@ -4454,8 +4500,10 @@ Ora non @`e pi@`u cos@`{@dotless{i}}.
 
 @item @option{-O}
 @itemx @option{--optimize}
-@cindex @option{--optimize}, opzione
-@cindex @option{-O}, opzione
+@cindex @option{-O} (opzione)
+@cindex opzione @subentry @option{-O}
+@cindex @option{--optimize} (opzione)
+@cindex opzione @subentry @option{--optimize}
 Abilita le ottimizzazioni di default nella rappresentazione interna del
 programma.  Attualmente, questo comprende solo delle semplificazioni nell'uso
 di costanti.
@@ -4467,9 +4515,11 @@ opzione @option{-s} (si veda pi@`u sotto in questa 
lista).
 
 @item @option{-p}[@var{file}]
 @itemx @option{--profile}[@code{=}@var{file}]
-@cindex @option{-p}, opzione
-@cindex @option{--profile}, opzione
-@cindex @command{awk}, profilazione, abilitare la
+@cindex @option{-p} (opzione)
+@cindex opzione @subentry @option{-p}
+@cindex @option{--profile} (opzione)
+@cindex opzione @subentry @option{--profile}
+@cindex @command{awk} @subentry profilazione, abilitare la
 Abilita la creazione del profilo di esecuzione di programmi @command{awk}
 (@pxref{Profilare}).
 Implicitamente viene forzata l'opzione @option{--no-optimize}.
@@ -4484,10 +4534,13 @@ sinistro e il conteggio delle chiamate di funzione per 
ogni funzione.
 
 @item @option{-P}
 @itemx @option{--posix}
-@cindex @option{-P}, opzione
-@cindex @option{--posix}, opzione
-@cindex POSIX, modalit@`a
-@cindex @command{gawk}, estensioni@comma{} disabilitare
+@cindex @option{-P} (opzione)
+@cindex opzione @subentry @option{-P}
+@cindex @option{--posix} (opzione)
+@cindex opzione @subentry @option{--posix}
+@cindex POSIX @subentry modalit@`a
+@cindex modalit@`a POSIX 
+@cindex @command{gawk} @subentry estensioni, disabilitare
 Opera in modalit@`a POSIX rigorosa.  Disabilita tutte le estensioni di
 @command{gawk} (proprio come @option{--traditional}) e
 disabilita tutte le estensioni non consentite da POSIX.
@@ -4501,21 +4554,21 @@ restrizioni:
 @itemize @value{BULLET}
 
 @cindex ritorno a capo
-@cindex spazi vuoti, ritorno a capo invece che
+@cindex spazi vuoti @subentry ritorno a capo come
 @item
 I ritorni a capo non sono consentiti dopo @samp{?} o @samp{:}
 (@pxref{Espressioni condizionali}).
 
 
-@cindex @code{FS}, variabile, carattere TAB come
-@cindex variabile @code{FS}, carattere TAB come
+@cindex @code{FS} (variabile) @subentry carattere TAB come
+@cindex variabile @subentry @code{FS} @subentry carattere TAB come
 @item
 Specificando @samp{-Ft} sulla riga di comando non si imposta il valore
 della variabile @code{FS} a un singolo carattere TAB
 (@pxref{Separatori di campo}).
 
-@cindex localizzazione, separatore decimale della
-@cindex separatore decimale, carattere, specifico della localizzazione
+@cindex localizzazione @subentry separatore decimale della
+@cindex separatore decimale @subentry carattere specifico della localizzazione
 @item
 Il carattere di separatore decimale della localizzazione @`e usato per 
analizzare
 i dati di input
@@ -4524,17 +4577,21 @@ i dati di input
 
 @c @cindex automatic warnings
 @c @cindex warnings, automatic
-@cindex @option{--traditional}, opzione, e opzione @code{--posix}
-@cindex @option{--posix}, opzione, e opzione @code{--traditional}
+@cindex @option{--traditional} (opzione) @subentry e opzione @code{--posix}
+@cindex opzione @subentry @option{--traditional} @subentry e opzione 
@code{--posix}
+@cindex @option{--posix} (opzione) @subentry e opzione @code{--traditional}
+@cindex opzione @subentry @option{--posix} @subentry e opzione 
@code{--traditional}
 Se si forniscono entrambe le opzioni @option{--traditional} e @option{--posix}
 sulla riga di comando, @option{--posix} ha la precedenza.  Se vengono fornite
 entrambe le opzioni @command{gawk} emette un avviso.
 
 @item @option{-r}
 @itemx @option{--re-interval}
-@cindex @option{-r}, opzione
-@cindex @option{--re-interval}, opzione
-@cindex espressioni regolari, espressioni di intervallo e
+@cindex @option{-r} (opzione)
+@cindex opzione @subentry @option{-r}
+@cindex @option{--re-interval} (opzione)
+@cindex opzione @subentry @option{--re-interval}
+@cindex espressioni regolari @subentry espressioni di intervallo e
 Consente le espressioni di intervallo
 (@pxref{Operatori di espressioni regolari})
 nelle espressioni regolari.
@@ -4544,21 +4601,23 @@ che per l'uso in combinazione con 
@option{--traditional}).
 
 @item @option{-s}
 @itemx @option{--no-optimize}
-@cindex @option{--no-optimize}, opzione
-@cindex opzione @option{--no-optimize}
-@cindex @option{-s}, opzione,
-@cindex opzione @option{-s}
+@cindex @option{-s} (opzione)
+@cindex opzione @subentry @option{-s}
+@cindex @option{--no-optimize} (opzione)
+@cindex opzione @subentry @option{--no-optimize}
 Disabilita le opzioni di ottimizzazione di default di @command{gawk}
 effettuate sulla rappresentazione interna del programma.
 
 @item @option{-S}
 @itemx @option{--sandbox}
-@cindex @option{-S}, opzione
-@cindex @option{--sandbox}, opzione
-@cindex sandbox, modalit@`a
-@cindex prova, modalit@`a di
-@cindex @code{ARGV}, vettore
-@cindex vettore @code{ARGV}
+@cindex @option{-S} (opzione)
+@cindex opzione @subentry @option{-S}
+@cindex @option{--sandbox} (opzione)
+@cindex opzione @subentry @option{--sandbox}
+@cindex @dfn{sandbox} @subentry modalit@`a
+@cindex prova @subentry modalit@`a di
+@cindex @code{ARGV} (vettore)
+@cindex vettore @subentry @code{ARGV}
 Disabilita la funzione @code{system()},
 la ridirezione dell'input con @code{getline},
 la ridirezione dell'output con @code{print} e @code{printf},
@@ -4571,37 +4630,50 @@ accesso al sistema (oltre al @value{DF} di input 
specificato).
 
 @item @option{-t}
 @itemx @option{--lint-old}
-@cindex @option{-L}, opzione
-@cindex @option{--lint-old}, opzione
+@cindex @option{-t} (opzione)
+@cindex opzione @subentry @option{-t}
+@cindex @option{--lint-old} (opzione)
+@cindex opzione @subentry @option{--lint-old}
 Avvisa su costrutti che non sono disponibili nella versione originale di
 @command{awk} dalla versione 7 di Unix
 (@pxref{V7/SVR3.1}).
 
 @item @option{-V}
 @itemx @option{--version}
-@cindex @option{-V}, opzione
-@cindex @option{--version}, opzione
-@cindex @command{gawk}, versioni di, informazioni su@comma{} stampa
+@cindex @option{-V} (opzione)
+@cindex opzione @subentry @option{-V}
+@cindex @option{--version} (opzione)
+@cindex opzione @subentry @option{--version}
+@cindex @command{gawk} @subentry versione di @subentry stampa informazioni su
 Stampa informazioni sulla versione di questa specifica copia di @command{gawk}.
 Consente di determinare se la copia di @command{gawk} in uso @`e aggiornata
 rispetto a quello che @`e attualmente in distribuzione da parte della Free
 Software Foundation.
 @`E utile anche per la segnalazione di bug
 (@pxref{Bug}).
+
+@cindex @code{-} (meno) @subentry @code{--} marcatore della fine delle opzioni
+@cindex meno (@code{-}) @subentry @code{--} marcatore della fine delle opzioni
+@item @code{--}
+Marca la fine di tutte le opzioni.
+Ogni argomento sulla riga di comando che segue @code{--} viene messo
+nel vettore @code{ARGV}, anche se inizia con il segno meno (@code{-}).
 @end table
 
 Ogni altra opzione, se @`e stato specificato il testo di un programma
 @`e contrassegnata come non valida con un messaggio di avvertimento,
 altrimenti @`e ignorata.
 
-@cindex @option{-F}, opzione, opzione @option{-Ft} imposta @code{FS} a TAB
+@cindex @option{-F} (opzione) @subentry @option{-Ft} imposta @code{FS} a TAB
+@cindex opzione @subentry @option{-F} @subentry opzione @option{-Ft} imposta 
@code{FS} a TAB
 In modalit@`a di compatibilit@`a, come caso particolare, se il valore di 
@var{fs}
 fornito all'opzione @option{-F} @`e @samp{t}, @code{FS} @`e impostata al 
carattere
 TAB (@code{"\t"}).  Questo @`e vero solo per @option{--traditional} e non
 per @option{--posix}
 (@pxref{Separatori di campo}).
 
-@cindex @option{-f}, opzione, usi multipli
+@cindex @option{-f} (opzione) @subentry usi multipli
+@cindex opzione @subentry @option{-f} @subentry usi multipli
 L'opzione @option{-f} pu@`o essere usata pi@`u di una volta nella riga di 
comando.
 In questo caso, @command{awk} legge il sorgente del suo programma da tutti i
 file indicati, come se fossere concatenati assieme a formare un unico grande
@@ -4631,7 +4703,8 @@ facilmente codice sorgente da riga di comando e da 
libreria
 Come per @option{-f}, le opzioni @option{-e} e @option{-i}
 si possono usare pi@`u volte nella riga di comando.
 
-@cindex @option{-e}, opzione
+@cindex @option{-e} (opzione)
+@cindex opzione @subentry @option{-e}
 Se non sono specificate le opzioni @option{-f} o @option{-e},
 @command{gawk} usa il primo argomento diverso da un'opzione,
 presente sulla riga di comando, come testo del codice sorgente
@@ -4640,9 +4713,12 @@ dopo il testo del programma sono inseriti nel vettore 
@code{ARGV};
 @command{awk} @emph{non} continua ad analizzare la riga di comando
 alla ricerca di ulteriori opzioni.
 
-@cindex @env{POSIXLY_CORRECT}, variabile d'ambiente
-@cindex @dfn{lint}, controlli, variabile d'ambiente @env{POSIXLY_CORRECT}
-@cindex POSIX, modalit@`a
+@cindex @env{POSIXLY_CORRECT} (variabile d'ambiente)
+@cindex variabili d'ambiente @subentry @env{POSIXLY_CORRECT}
+@cindex @dfn{lint} @subentry controlli @env{POSIXLY_CORRECT} (variabile 
d'ambiente)
+@cindex controllo @subentry @dfn{lint} @subentry @env{POSIXLY_CORRECT} 
(variabile d'ambiente)
+@cindex POSIX @subentry modalit@`a
+@cindex modalit@`a POSIX 
 Se la variabile d'ambiente @env{POSIXLY_CORRECT} esiste,
 @command{gawk} si comporta in modalit@`a POSIX rigorosa, esattamente come se
 fosse stata fornita l'opzione @option{--posix}.
@@ -4663,7 +4739,7 @@ POSIXLY_CORRECT=true
 export POSIXLY_CORRECT
 @end example
 
-@cindex @command{csh}, comando, variabile d'ambiente @env{POSIXLY_CORRECT}
+@cindex @command{csh} (comando di utilit@`a) @subentry variabile d'ambiente 
@env{POSIXLY_CORRECT}
 Per una shell compatibile con C,@footnote{Non raccomandato.}
 questa riga andr@`a aggiunta nel file @file{.login} nella directory "home"
 dell'utente:
@@ -4672,20 +4748,20 @@ dell'utente:
 setenv POSIXLY_CORRECT true
 @end example
 
-@cindex portabilit@`a, variabile d'ambiente @env{POSIXLY_CORRECT}
+@cindex portabilit@`a @subentry variabile d'ambiente @env{POSIXLY_CORRECT}
 Avere @env{POSIXLY_CORRECT} impostata non @`e raccomandato per l'uso 
quotidiano,
 ma @`e utile per provare la portabilit@`a dei programmi su altri
 ambienti.
 
 @node Altri argomenti
 @section Altri argomenti della riga di comando
-@cindex riga di comando, argomenti
-@cindex argomenti, riga di comando
+@cindex riga di comando @subentry argomenti
+@cindex argomenti @subentry riga di comando
 
 Qualsiasi altro argomento sulla riga di comando @`e trattato normalmente come
 file in input da elaborare nell'ordine con cui @`e specificato. Comunque, un
 argomento che ha la forma @code{@var{var}=@var{valore}}, assegna
-il valore @var{valore} alla variabile @var{var}---non specifica affatto
+il valore @var{valore} alla variabile @var{var} --- non specifica affatto
 un file.  (Si veda @ref{Opzioni di assegnamento}.)  Nel seguente esempio,
 @var{count=1} @`e un assegnamento di variabile, non un @value{FN}:
 
@@ -4703,10 +4779,10 @@ questione andr@`a fatto precedere da @samp{./}, come 
nell'esempio seguente:
 awk -f programma.awk file1 ./count=1 file2
 @end example
 
-@cindex @command{gawk}, variabile @code{ARGIND} in
-@cindex @code{ARGIND}, variabile, argomenti da riga di comando
-@cindex @code{ARGV}, vettore, indicizzare all'interno di
-@cindex @code{ARGC}/@code{ARGV}, variabili, argomenti da riga di comando
+@cindex @command{gawk} @subentry @code{ARGIND} (variabile) in
+@cindex @code{ARGIND} (variabile) @subentry argomenti da riga di comando
+@cindex @code{ARGV} (vettore) @subentry indicizzare all'interno di
+@cindex @code{ARGC}/@code{ARGV} (variabili) @subentry argomenti da riga di 
comando
 Tutti gli argomenti da riga di comando sono resi disponibili al programma
 @command{awk} nel vettore @code{ARGV} (@pxref{Variabili predefinite}).  
Opzioni da
 riga di comando e il testo del programma (se presente) sono esclusi da
@@ -4720,8 +4796,8 @@ La modifica di @code{ARGC} e @code{ARGV} nel proprio 
programma @command{awk}
 consente di controllare come @command{awk} elabora i file in input; questo @`e
 descritto pi@`u dettagliatamente in @ref{ARGC e ARGV}.
 
-@cindex file in input, assegnamenti di variabile e
-@cindex assegnamenti di variabile e file in input
+@cindex input @subentry assegnamenti di variabile e
+@cindex assegnamento @subentry di variabile e file in input
 La distinzione tra argomenti che sono @value{FN} e argomenti di assegnamento
 di variabili vien fatta quando @command{awk} deve aprire il successivo file di
 input.
@@ -4737,7 +4813,7 @@ all'interno di una regola @code{BEGIN}
 poich@'e tali regole vengono eseguite prima che @command{awk} cominci a
 esaminare la lista degli argomenti.
 
-@cindex angolo buio, sequenze di protezione
+@cindex angolo buio @subentry sequenze di protezione
 I valori delle variabili dati sulla riga di comando sono elaborati per
 rimuovere sequenze di protezione (@pxref{Sequenze di protezione}).
 @value{DARKCORNER}
@@ -4756,13 +4832,13 @@ applicazioni che dipendevano dal vecchio comportamento.
 La funzionalit@`a dell'assegnamento di variabile @`e molto utile per assegnare
 valori a variabili come @code{RS}, @code{OFS}, e @code{ORS}, che controllano i
 formati di input e di output, prima di effettuare la scansione dei @value{DF}.
-@`E utile anche per effettuare passaggi multipli su un o stesso
+@`E utile anche per effettuare passaggi multipli su uno stesso
 @value{DF}.  Per esempio:
 
-@cindex file, passaggi multipli su
+@cindex file @subentry passaggi multipli su
 @example
-awk 'pass == 1  @{ @var{pass 1 stuff} @}
-     pass == 2  @{ @var{pass 2 stuff} @}' pass=1 mydata pass=2 mydata
+awk 'pass == 1  @{ @var{istruzioni pass 1} @}
+pass == 2  @{ @var{istruzioni pass 2} @}' pass=1 mydata pass=2 mydata
 @end example
 
 Una volta disponibile la funzionalit@`a per assegnare una variabile, l'opzione
@@ -4806,7 +4882,7 @@ operativo rende disponibile il file o no].)
 
 @node Variabili d'ambiente
 @section Le variabili d'ambiente usate da @command{gawk}
-@cindex variabili d'ambiente usate da @command{gawk}
+@cindex variabili d'ambiente @subentry usate da @command{gawk}
 
 Diverse variabili d'ambiente influiscono sul comportamento
 di @command{gawk}.
@@ -4821,11 +4897,12 @@ di @command{gawk}.
 
 @node AWKPATH (Variabile)
 @subsection Ricerca di programmi @command{awk} in una lista di directory.
-@cindex @env{AWKPATH}, variabile d'ambiente
-@cindex directory, ricerca di file sorgente
-@cindex percorso di ricerca per file sorgente
-@cindex ricerca, percorso di, per file sorgente
-@cindex differenze tra @command{awk} e @command{gawk}, variabile d'ambiente 
@env{AWKPATH}
+@cindex @env{AWKPATH} (variabile d'ambiente)
+@cindex variabili d'ambiente @subentry @env{AWKPATH}
+@cindex directory @subentry ricerca di file sorgente
+@cindex percorso di ricerca @subentry per file sorgente
+@cindex ricerca @subentry percorso di, per file sorgente
+@cindex differenze tra @command{awk} e @command{gawk} @subentry @env{AWKPATH} 
(variabile d'ambiente)
 @ifinfo
 Il precedente @value{SECTION} ha descritto come i file di programma di
 @command{awk} possono essere specificati sulla riga di comando con
@@ -4919,10 +4996,10 @@ e @command{gawk} non ha pi@`u bisogno di usare 
@env{AWKPATH}.
 
 @node AWKLIBPATH (Variabile)
 @subsection Ricerca di librerie condivise @command{awk} su varie directory.
-@cindex @env{AWKLIBPATH}, variabile d'ambiente
-@cindex directory, ricerca di estensioni caricabili
-@cindex percorso di ricerca per estensioni
-@cindex differenze tra @command{awk} e @command{gawk}, variabile d'ambiente 
@code{AWKLIBPATH}
+@cindex @env{AWKLIBPATH} (variabile d'ambiente)
+@cindex directory @subentry ricerca di estensioni caricabili
+@cindex percorso di ricerca @subentry per estensioni
+@cindex differenze tra @command{awk} e @command{gawk} @subentry 
@code{AWKLIBPATH} (variabile d'ambiente)
 
 La variabile d'ambiente @env{AWKLIBPATH} @`e simile alla variabile 
@env{AWKPATH},
 ma @`e usata per ricercare estensioni caricabili (memorizzate come
@@ -5058,8 +5135,8 @@ possibili sprechi di memoria.
 @node Codice di ritorno
 @section Il codice di ritorno all'uscita da @command{gawk}
 
-@cindex codice di ritorno, di @command{gawk}
-@cindex stato d'uscita, di @command{gawk}
+@cindex codice di ritorno @subentry di @command{gawk}
+@cindex stato d'uscita @subentry di @command{gawk}
 Se l'istruzione @code{exit} viene usata con un valore
 (@pxref{Istruzione exit}), @command{gawk} termina l'esecuzione con il valore
 numerico specificato.
@@ -5090,9 +5167,13 @@ Questo
 @value{SECTION} descrive una funzionalit@`a disponibile solo in
 @command{gawk}.
 
-@cindex @code{@@include}, direttiva
-@cindex direttiva @code{@@include}
-@cindex includere file, direttiva @code{@@include}
+@cindex @code{@@} (chiocciola) @subentry @code{@@include} (direttiva)
+@cindex chiocciola (@code{@@}) @subentry @code{@@include} (direttiva)
+@cindex direttiva @subentry @code{@@include}
+@cindex file @subentry includere, direttiva @code{@@include}
+@cindex caricare estensioni @subentry @code{@@load} (direttiva)
+@cindex estensioni @subentry caricare @subentry @code{@@load} (direttiva)
+@cindex includere file @subentry direttiva @code{@@include}
 La direttiva @code{@@include} pu@`o essere usata per leggere file sorgenti
 di @command{awk} esterni.  Questo d@`a la possibilit@`a di suddividere file
 sorgenti di @command{awk} di grandi dimensioni in porzioni pi@`u piccole e 
pi@`u
@@ -5110,7 +5191,7 @@ Iniziamo con due @dfn{script} @command{awk} (banali), che 
chiameremo
 
 @example
 BEGIN @{
-    print "Questo @`e lo script test1."
+print "Questo @`e lo script test1."
 @}
 @end example
 
@@ -5120,7 +5201,7 @@ e questo @`e @file{test2}:
 @example
 @@include "test1"
 BEGIN @{
-    print "Questo @`e lo script test2."
+print "Questo @`e lo script test2."
 @}
 @end example
 
@@ -5152,7 +5233,7 @@ I file da includere possono essere nidificati; p.es., 
dato un terzo
 @group
 @@include "test2"
 BEGIN @{
-    print "Questo @`e lo script test3."
+print "Questo @`e lo script test3."
 @}
 @end group
 @end example
@@ -5231,10 +5312,10 @@ Questo
 @value{SECTION} descrive una funzionalit@`a disponibile solo in
 @command{gawk}.
 
-@cindex @code{@@load}, direttiva
-@cindex direttiva @code{@@load}
-@cindex caricare estensioni, direttiva @code{@@load}
-@cindex estensioni, caricamento, direttiva @code{@@load}
+@cindex @code{@@} (chiocciola) @subentry @code{@@load} (direttiva)
+@cindex chiocciola (@code{@@}) @subentry @code{@@load} (direttiva)
+@cindex caricare estensioni @subentry direttiva @code{@@load}
+@cindex estensioni @subentry caricare @subentry direttiva @code{@@load}
 La direttiva @code{@@load} pu@`o essere usata per leggere estensioni di
 @command{awk} esterne (memorizzate come librerie condivise di sistema).
 Questo consente di collegare del codice compilato che pu@`o offrire prestazioni
@@ -5277,9 +5358,9 @@ che possono essere caricate sia con @code{@@load} che con 
l'opzione
 
 @c update this section for each release!
 
-@cindex opzioni deprecate
-@cindex funzionalit@`a deprecate
-@cindex obsolete, funzionalit@`a
+@cindex opzioni @subentry deprecate
+@cindex funzionalit@`a @subentry deprecate
+@cindex obsolete @subentry funzionalit@`a
 @ifnotinfo
 Questa
 @end ifnotinfo
@@ -5306,8 +5387,8 @@ in case some option becomes obsolete in a future version 
of @command{gawk}.
 
 @node Non documentato
 @section Opzioni e funzionalit@`a non documentate
-@cindex non documentate, funzionalit@`a
-@cindex funzionalit@`a non documentate
+@cindex non documentate @subentry funzionalit@`a
+@cindex funzionalit@`a @subentry non documentate
 @cindex Skywalker, Luke
 @cindex Kenobi, Obi-Wan
 @cindex jedi, cavalieri
@@ -5317,7 +5398,7 @@ in case some option becomes obsolete in a future version 
of @command{gawk}.
 @author Obi-Wan
 @end quotation
 
-@cindex conchiglie, mare
+@cindex conchiglie @subentry mare
 @ifnotinfo
 Questa @value{SECTION} @`e stata lasciata intenzionalmente vuota.
 @end ifnotinfo
@@ -5365,7 +5446,7 @@ oppure:
 
 @example
 awk '@{ sum += $1 @}
-     END @{ print sum @}' data
+END @{ print sum @}' data
 @end example
 
 @noindent
@@ -5526,8 +5607,8 @@ Poich@'e le espressioni regolari sono una parte 
fondamentale della
 programmazione in @command{awk}, il loro formato e il loro uso meritano un
 @value{CHAPTER} a s@'e stante.
 
-@cindex barra (@code{/}), per delimitare le espressioni regolari
-@cindex @code{/} (barra), per delimitare le espressioni regolari
+@cindex barra (@code{/}) @subentry per delimitare le espressioni regolari
+@cindex @code{/} (barra) @subentry per delimitare le espressioni regolari
 Un'espressione regolare racchiusa tra barre (@samp{/})
 @`e un modello di ricerca @command{awk} che individua tutti i record in input
 il cui testo corrisponde al modello stesso.
@@ -5563,8 +5644,8 @@ complesse.
 @node Uso di @dfn{regexp}
 @section Uso di espressioni regolari
 
-@cindex criteri di ricerca, espressioni regolari usate come
-@cindex espressioni regolari, come criteri di ricerca
+@cindex criteri di ricerca @subentry espressioni regolari come
+@cindex espressioni regolari @subentry come criteri di ricerca
 Un'espressione regolare pu@`o essere usata come modello di ricerca
 racchiudendola tra barre.  L'espressione regolare @`e quindi confrontata
 con tutto il testo di ogni record (normalmente, basta che corrisponda a
@@ -5580,21 +5661,21 @@ $ @kbd{awk '/li/ @{ print $2 @}' mail-list}
 @print{} 555-3430
 @end example
 
-@cindex espressioni regolari, operatori
-@cindex operatori, ricerca in stringhe
+@cindex espressioni regolari @subentry operatori
+@cindex operatori @subentry ricerca in stringhe
 @c @cindex operators, @code{~}
-@cindex ricerca in stringhe, operatori
-@cindex @code{~} (tilde), operatore @code{~}
-@cindex tilde (@code{~}), operatore @code{~}
-@cindex @code{!} (punto esclamativo), operatore @code{!~}
-@cindex punto esclamativo (@code{!}), operatore @code{!~}
-@c @cindex operatori, @code{!~}
-@cindex @code{if}, istruzione, uso di espressioni regolari in
-@cindex @code{while}, istruzione, uso di espressioni regolari in
-@cindex @code{do}-@code{while}, istruzione, uso di espressioni regolari in
-@c @cindex istruzione @code{if}
-@c @cindex istruzione @code{while}
-@c @cindex istruzione @code{do}
+@cindex ricerca @subentry in stringhe, operatori
+@cindex @code{~} (tilde) @subentry operatore @code{~}
+@cindex tilde (@code{~}) @subentry operatore @code{~}
+@cindex @code{!} (punto esclamativo) @subentry operatore @code{!~}
+@cindex punto esclamativo (@code{!}) @subentry operatore @code{!~}
+@c @cindex operators, @code{!~}
+@cindex @code{if} (istruzione) @subentry uso di espressioni regolari in
+@cindex @code{while} (istruzione) @subentry uso di espressioni regolari in
+@cindex @code{do}-@code{while} (istruzione) @subentry uso di espressioni 
regolari in
+@c @cindex statement @code{if}
+@c @cindex statement @code{while}
+@c @cindex statement @code{do}
 Espressioni regolari possono anche essere usate in espressioni di confronto.
 Queste espressioni consentono di specificare le stringhe da riconoscere;
 non devono necessariamente comprendere l'intero record corrente.  I due
@@ -5649,9 +5730,9 @@ $ @kbd{awk '$1 !~ /J/' inventory-shipped}
 @dots{}
 @end example
 
-@cindex @dfn{regexp}, costanti
-@cindex costanti @dfn{regexp}
-@cindex espressioni regolari, costanti, si veda costanti @dfn{regexp}
+@cindex @dfn{regexp} @subentry costanti
+@cindex costanti @subentry @dfn{regexp}
+@cindex espressioni regolari @subentry costanti @seeentry{costanti 
@dfn{regexp}}
 Quando una @dfn{regexp} @`e racchiusa tra barre, come @code{/pippo/}, la 
chiamiamo
 una @dfn{costante regexp}, proprio come @code{5.27} @`e una costante
 numerica e @code{"pippo"} @`e una costante [di tipo] stringa.
@@ -5659,9 +5740,10 @@ numerica e @code{"pippo"} @`e una costante [di tipo] 
stringa.
 @node Sequenze di protezione
 @section Sequenze di protezione
 
-@cindex sequenze di protezione, in stringhe
-@cindex barra inversa (@code{\}), in sequenze di protezione
-@cindex @code{\} (barra inversa), in sequenze di protezione
+@cindex sequenze di protezione
+@cindex sequenze di protezione @subentry in stringhe
+@cindex barra inversa (@code{\}) @subentry in sequenze di protezione
+@cindex @code{\} (barra inversa) @subentry in sequenze di protezione
 Alcuni caratteri non possono essere inclusi letteralmente in costanti
 stringa (@code{"pippo"}) o in costanti @dfn{regexp} (@code{/pippo/}).
 Vanno invece rappresentati usando @dfn{sequenze di protezione},
@@ -5691,50 +5773,51 @@ tutte le sequenze di protezione usate in @command{awk} e
 cosa rappresentano.  Se non @`e detto altrimenti, tutte queste sequenze di
 protezione valgono sia per costanti stringa che per costanti @dfn{regexp}:
 
+@cindex ASCII
 @table @code
 @item \\
 Barra inversa letterale, @samp{\}.
 
 @c @cindex @command{awk} language, V.4 version
-@cindex @code{\} (barra inversa), @code{\a}, sequenza di protezione
-@cindex barra inversa (@code{\}), @code{\a}, sequenza di protezione
+@cindex @code{\} (barra inversa) @subentry @code{\a} (sequenza di protezione)
+@cindex barra inversa (@code{\}) @subentry @code{\a} (sequenza di protezione)
 @item \a
 Il carattere ``campanello'', @kbd{Ctrl-g}, codice ASCII 7 (BEL).
 (Spesso genera qualche tipo di segnale sonoro udibile.)
 
-@cindex @code{\} (barra inversa), @code{\b}, sequenza di protezione
-@cindex barra inversa (@code{\}), @code{\b}, sequenza di protezione
+@cindex @code{\} (barra inversa) @subentry @code{\b} (sequenza di protezione)
+@cindex barra inversa (@code{\}) @subentry @code{\b} (sequenza di protezione)
 @item \b
 Barra inversa, @kbd{Ctrl-h}, codice ASCII 8 (BS).
 
-@cindex @code{\} (barra inversa), @code{\f}, sequenza di protezione
-@cindex barra inversa (@code{\}), @code{\f}, sequenza di protezione
+@cindex @code{\} (barra inversa) @subentry @code{\f} (sequenza di protezione)
+@cindex barra inversa (@code{\}) @subentry @code{\f} (sequenza di protezione)
 @item \f
 Nuova pagina, @kbd{Ctrl-l}, codice ASCII 12 (FF).
 
-@cindex @code{\} (barra inversa), @code{\n}, sequenza di protezione
-@cindex barra inversa (@code{\}), @code{\n}, sequenza di protezione
+@cindex @code{\} (barra inversa) @subentry @code{\n} (sequenza di protezione)
+@cindex barra inversa (@code{\}) @subentry @code{\n} (sequenza di protezione)
 @item \n
 A-capo, @kbd{Ctrl-j}, codice ASCII 10 (LF).
 
-@cindex @code{\} (barra inversa), @code{\r}, sequenza di protezione
-@cindex barra inversa (@code{\}), @code{\r}, sequenza di protezione
+@cindex @code{\} (barra inversa) @subentry @code{\r} (sequenza di protezione)
+@cindex barra inversa (@code{\}) @subentry @code{\r} (sequenza di protezione)
 @item \r
 Ritorno-a-capo, @kbd{Ctrl-m}, codice ASCII 13 (CR).
 
-@cindex @code{\} (barra inversa), @code{\t}, sequenza di protezione
-@cindex barra inversa (@code{\}), @code{\t}, sequenza di protezione
+@cindex @code{\} (barra inversa) @subentry @code{\t} (sequenza di protezione)
+@cindex barra inversa (@code{\}) @subentry @code{\t} (sequenza di protezione)
 @item \t
 Tabulazione orizzontale, @kbd{Ctrl-i}, codice ASCII 9 (HT).
 
 @c @cindex @command{awk} language, V.4 version
-@cindex @code{\} (barra inversa), @code{\v}, sequenza di protezione
-@cindex barra inversa (@code{\}), @code{\v}, sequenza di protezione
+@cindex @code{\} (barra inversa) @subentry @code{\v} (sequenza di protezione)
+@cindex barra inversa (@code{\}) @subentry @code{\v} (sequenza di protezione)
 @item \v
 Tabulazione verticale, @kbd{Ctrl-k}, codice ASCII 11 (VT).
 
-@cindex @code{\} (barra inversa), @code{\}@var{nnn}, sequenza di protezione
-@cindex barra inversa (@code{\}), @code{\}@var{nnn}, sequenza di protezione
+@cindex @code{\} (barra inversa) @subentry @code{\}@var{nnn} (sequenza di 
protezione)
+@cindex barra inversa (@code{\}) @subentry @code{\}@var{nnn} (sequenza di 
protezione)
 @item \@var{nnn}
 Il valore ottale @var{nnn}, dove @var{nnn} pu@`o essere da 1 a 3 cifre ottali,
 tra @samp{0} e @samp{7}.  Per esempio, il codice per il carattere ASCII ESC
@@ -5742,10 +5825,10 @@ tra @samp{0} e @samp{7}.  Per esempio, il codice per il 
carattere ASCII ESC
 
 @c @cindex @command{awk} language, V.4 version
 @c @cindex @command{awk} language, POSIX version
-@cindex @code{\} (barra inversa), @code{\x}, sequenza di protezione
-@cindex barra inversa (@code{\}), @code{\x}, sequenza di protezione
-@cindex comuni, estensioni@comma{} @code{\x}, sequenza di protezione
-@cindex estensioni comuni, @code{\x}, sequenza di protezione
+@cindex @code{\} (barra inversa) @subentry @code{\x} (sequenza di protezione)
+@cindex barra inversa (@code{\}) @subentry @code{\x} (sequenza di protezione)
+@cindex comuni @subentry estensioni @subentry @code{\x}, sequenza di protezione
+@cindex estensioni comuni @subentry @code{\x} (sequenza di protezione)
 @item \x@var{hh}@dots{}
 Il valore esadecimale @var{hh}, dove @var{hh} indica una sequenza di cifre
 esadecimali (@samp{0}--@samp{9}, e @samp{A}--@samp{F}
@@ -5765,8 +5848,8 @@ Dalla @value{PVERSION} 4.2,
 vengono elaborate solo due cifre.
 @end quotation
 
-@cindex @code{\} (barra inversa), @code{\/}, sequenza di protezione
-@cindex barra inversa (@code{\}), @code{\/}, sequenza di protezione
+@cindex @code{\} (barra inversa) @subentry @code{\/} (sequenza di protezione)
+@cindex barra inversa (@code{\}) @subentry @code{\/} (sequenza di protezione)
 @item \/
 Una barra (necessario solo per costanti @dfn{regexp}).
 Questa sequenza si usa per inserire una costante @dfn{regexp}
@@ -5784,8 +5867,8 @@ Poich@'e una @dfn{regexp} @`e racchiusa tra
 barre, si deve proteggere ogni barra che sia parte dell'espressione, per dire
 ad @command{awk} di andare avanti a scandire il resto della @dfn{regexp}.
 
-@cindex @code{\} (barra inversa), @code{\"}, sequenza di protezione
-@cindex barra inversa (@code{\}), @code{\"}, sequenza di protezione
+@cindex @code{\} (barra inversa) @subentry @code{\"} (sequenza di protezione)
+@cindex barra inversa (@code{\}) @subentry @code{\"} (sequenza di protezione)
 @item \"
 Un doppio apice (necessario solo per costanti stringa).
 Questa sequenza si usa per inserire in una costante stringa il carattere
@@ -5807,27 +5890,27 @@ significa che il carattere seguente dovrebbe essere 
preso letteralmente,
 anche se normalmente sarebbe un operatore di @dfn{regexp}.  Per esempio,
 @code{/a\+b/} individua i tre caratteri @samp{a+b}.
 
-@cindex barra inversa (@code{\}), in sequenze di protezione
-@cindex @code{\} (barra inversa), in sequenze di protezione
+@cindex barra inversa (@code{\}) @subentry in sequenze di protezione
+@cindex @code{\} (barra inversa) @subentry in sequenze di protezione
 @cindex portabilit@`a
 Per una completa portabilit@`a, non usare una barra inversa prima di qualsiasi
 carattere non incluso nella lista precedente, o che non sia un operatore.
 @c 11/2014: Moved so as to not stack sidebars
 @sidebar Barra inversa prima di un carattere normale
-@cindex portabilit@`a, barra inversa in sequenze di protezione
-@cindex POSIX @command{awk}, barre inverse in costanti stringa
-@cindex barra inversa (@code{\}), in sequenze di protezione, POSIX e
-@cindex @code{\} (barra inversa), in sequenze di protezione, POSIX e
+@cindex portabilit@`a @subentry barra inversa in sequenze di protezione
+@cindex POSIX @command{awk} @subentry barre inverse in costanti stringa
+@cindex barra inversa (@code{\}) @subentry in sequenze di protezione @subentry 
POSIX e
+@cindex @code{\} (barra inversa) @subentry in sequenze di protezione @subentry 
POSIX e
 
-@cindex risoluzione di problemi, barra inversa prima di caratteri non speciali
-@cindex problemi, risoluzione di, barra inversa prima di caratteri non speciali
+@cindex risoluzione di problemi @subentry barra inversa prima di caratteri non 
speciali
+@cindex problemi @subentry risoluzione di @subentry barra inversa prima di 
caratteri non speciali
 Se si mette una barra inversa in una costante stringa prima di qualcosa che
 non sia uno dei caratteri elencati sopra, POSIX @command{awk} di proposito
 lascia indefinito il comportamento.  Ci sono due possibilit@`a:
 
 @c @cindex automatic warnings
 @c @cindex warnings, automatic
-@cindex Brian Kernighan, @command{awk} di
+@cindex Brian Kernighan @subentry @command{awk} di
 @table @asis
 @item Togliere la barra inversa
 Questo @`e quel che sia BWK @command{awk} che @command{gawk} fanno.
@@ -5840,10 +5923,11 @@ occorre mettere due barre inverse nella stringa:
 @samp{FS = @w{"[ \t]+\\|[ \t]+"}}.)
 @c I did this!  This is why I added the warning.
 
-@cindex @command{gawk}, sequenze di protezione
-@cindex Unix @command{awk}, barre inverse in sequenze di protezione
-@cindex @command{mawk}, programma di utilit@`a
-@cindex programma di utilit@`a @command{mawk}
+@cindex @command{gawk} @subentry sequenze di protezione
+@cindex @command{gawk} @subentry sequenze di protezione @seealso{barra inversa}
+@cindex Unix @command{awk} @subentry barra inversa in sequenze di protezione
+@cindex @command{mawk} (programma di utilit@`a)
+@cindex programma di utilit@`a @subentry @command{mawk}
 @item Tenere la barra inversa cos@`{@dotless{i}} com'@`e.
 Alcune altre implementazioni di @command{awk} fanno questo.
 In quelle implementazioni, immettere @code{"a\qc"} equivale a immettere
@@ -5870,7 +5954,7 @@ carattere letteralmente.
 @end itemize
 
 @sidebar Sequenze di protezione per metacaratteri
-@cindex metacaratteri, sequenze di protezione per
+@cindex metacaratteri @subentry sequenze di protezione per
 
 Supponiamo che si usi una protezione ottale o esadecimale
 per rappresentare un metacarattere di @dfn{regexp}
@@ -5878,7 +5962,7 @@ per rappresentare un metacarattere di @dfn{regexp}
 @command{awk} considera il carattere come un carattere letterale o
 come un operatore di @dfn{regexp}?
 
-@cindex angolo buio, sequenze di protezione, per metacaratteri
+@cindex angolo buio @subentry sequenze di protezione @subentry per 
metacaratteri
 Storicamente, tali caratteri erano considerati letteralmente.
 @value{DARKCORNER}
 Invece, lo standard POSIX richiede che siano considerati
@@ -5891,8 +5975,8 @@ letteramente, quando sono usati in costanti @dfn{regexp}. 
 Quindi,
 
 @node Operatori di espressioni regolari
 @section Operatori di espressioni regolari
-@cindex espressioni regolari, operatori
-@cindex metacaratteri in espressioni regolari
+@cindex espressioni regolari @subentry operatori
+@cindex metacaratteri @subentry in espressioni regolari
 
 @`E possibile inserire in espressioni regolari dei caratteri speciali,
 detti @dfn{operatori di espressioni regolari} o @dfn{metacaratteri}, per
@@ -5920,18 +6004,17 @@ di protezione e che non sono elencati qui rappresentano 
se stessi:
 
 @c Use @asis so the docbook comes out ok. Sigh.
 @table @asis
-@cindex barra inversa (@code{\}), operatore @dfn{regexp}
-@cindex barra inversa (@code{\}), operatore @dfn{regexp}
-@cindex @code{\} (barra inversa), operatore @dfn{regexp}
+@cindex barra inversa (@code{\}) @subentry operatore @dfn{regexp}
+@cindex @code{\} (barra inversa) @subentry operatore @dfn{regexp}
 @item @code{\}
 Si usa per togliere il significato speciale a un carattere quando si effettuano
 confronti.  Per esempio, @samp{\$}
 individua il carattere @samp{$}.
 
-@cindex espressioni regolari, ancore nelle
-@cindex Texinfo, inizi di capitolo nei file
-@cindex @code{^} (circonflesso), operatore @dfn{regexp}
-@cindex circonflesso (@code{^}), operatore @dfn{regexp}
+@cindex espressioni regolari @subentry @`ancore nelle
+@cindex Texinfo @subentry inizi di capitolo nei file
+@cindex @code{^} (circonflesso) @subentry operatore @dfn{regexp}
+@cindex circonflesso (@code{^}) @subentry operatore @dfn{regexp}
 @item @code{^}
 Si usa per indicare l'inizio di una stringa.  Per esempio, @samp{^@@chapter}
 individua @samp{@@chapter} all'inizio di una stringa e si pu@`o usare per
@@ -5947,8 +6030,8 @@ di una stringa.  La condizione non @`e verificata 
nell'esempio seguente:
 if ("riga1\nRIGA 2" ~ /^R/) @dots{}
 @end example
 
-@cindex @code{$} (dollaro), operatore @dfn{regexp}
-@cindex dollaro (@code{$}), operatore @dfn{regexp}
+@cindex @code{$} (dollaro) @subentry operatore @dfn{regexp}
+@cindex dollaro (@code{$}) @subentry operatore @dfn{regexp}
 @item @code{$}
 Simile a @samp{^}, ma serve a indicare la fine di una stringa.
 Per esempio, @samp{p$}
@@ -5962,8 +6045,8 @@ La condizione nell'esempio seguente non @`e verificata:
 if ("riga1\nRIGA 2" ~ /1$/) @dots{}
 @end example
 
-@cindex @code{.} (punto), operatore @dfn{regexp}
-@cindex punto (@code{.}), operatore @dfn{regexp}
+@cindex @code{.} (punto) @subentry operatore @dfn{regexp}
+@cindex punto (@code{.}) @subentry operatore @dfn{regexp}
 @item @code{.} (punto)
 Individua un qualsiasi carattere,
 @emph{incluso} il carattere di ritorno a capo.  Per esempio, @samp{.P}
@@ -5972,7 +6055,9 @@ Usando la concatenazione, si pu@`o formare un'espressione 
regolare come
 @samp{U.A}, che individua qualsiasi sequenza di tre caratteri che inizia con
 @samp{U} e finisce con @samp{A}.
 
-@cindex POSIX @command{awk}, uso del punto (@code{.})
+@cindex POSIX @subentry modalit@`a
+@cindex modalit@`a POSIX 
+@cindex POSIX @command{awk} @subentry uso del punto (@code{.})
 In modalit@`a POSIX stretta (@pxref{Opzioni}),
 @samp{.} non individua il carattere @sc{nul},
 ossia il carattere con tutti i bit uguali a zero.
@@ -5980,17 +6065,17 @@ In altri contesti, @sc{nul} @`e solo un carattere 
qualsiasi.  Altre versioni
 di @command{awk} possono non essere in grado di individuare il carattere
 @sc{nul}.
 
-@cindex @code{[]} (parentesi quadre), operatore @dfn{regexp}
-@cindex parentesi quadre (@code{[]}), operatore @dfn{regexp}
-@cindex espressioni tra parentesi
-@cindex insiemi di caratteri, si veda anche espressioni tra parentesi quadre
-@cindex liste di caratteri, si veda espressioni tra parentesi quadre
-@cindex classi di caratteri, si veda espressioni tra parentesi quadre
+@cindex @code{[]} (parentesi quadre) @subentry operatore @dfn{regexp}
+@cindex parentesi @subentry quadre (@code{[]}) @subentry operatore @dfn{regexp}
+@cindex espressioni @subentry tra parentesi quadre
+@cindex insiemi di caratteri (in espressioni regolari) @seeentry{espressioni 
tra parentesi quadre}
+@cindex liste di caratteri @seeentry{espressioni tra parentesi quadre}
+@cindex classi di caratteri @seeentry{espressioni tra parentesi quadre}
 @item @code{[}@dots{}@code{]}
 Questa @`e chiamata una @dfn{espressione tra parentesi quadre}.@footnote{In
 altri testi, un'espressione tra parentesi quadre potrebbe essere
 definita come @dfn{insieme di caratteri}, @dfn{classe di caratteri} o
- @dfn{lista di caratteri}.}
+@dfn{lista di caratteri}.}
 Individua @emph{uno} qualsiasi dei caratteri racchiusi tra
 parentesi quadre.  Per esempio, @samp{[MVX]} individua uno qualsiasi
 dei caratteri @samp{M}, @samp{V}, o @samp{X} in una stringa.  Una spiegazione
@@ -5998,7 +6083,7 @@ esauriente di quel che si pu@`o mettere all'interno di 
un'espressione tra
 parentesi quadre @`e data in
 @ref{Espressioni tra parentesi quadre}.
 
-@cindex espressioni tra parentesi quadre, complementate
+@cindex espressioni @subentry tra parentesi quadre @subentry complementate
 @item @code{[^}@dots{}@code{]}
 Questa @`e una @dfn{espressione tra parentesi quadre complementata}.  Il primo
 carattere dopo la @samp{[} @emph{deve} essere un @samp{^}.  Individua
@@ -6019,8 +6104,8 @@ qualsiasi posizione al suo interno) una vocale inglese 
minuscola.
 L'alternativa si applica alle @dfn{regexp} pi@`u ampie individuabili in ogni
 lato.
 
-@cindex @code{()} (parentesi), operatore @dfn{regexp}
-@cindex parentesi (@code{()}), operatore @dfn{regexp}
+@cindex @code{()} (parentesi) @subentry operatore @dfn{regexp}
+@cindex parentesi @subentry (@code{()}) @subentry operatore @dfn{regexp}
 @item @code{(}@dots{}@code{)}
 Le parentesi sono usate per raggruppare, sia nelle espressioni regolari sia
 in quelle aritmetiche.  Si possono usare per concatenare espressioni regolari
@@ -6039,8 +6124,8 @@ relativa parentesi sinistra; una parentesi destra senza la
 corrispondente parentesi sinistra @`e considerata (senza dare
 alcun messaggio di avviso) come un normale carattere.
 
-@cindex @code{*} (asterisco), operatore @code{*}, come operatore @dfn{regexp}
-@cindex asterisco (@code{*}), operatore @code{*}, come operatore @dfn{regexp}
+@cindex @code{*} (asterisco) @subentry operatore @code{*} @subentry come 
operatore @dfn{regexp}
+@cindex asterisco (@code{*}) @subentry operatore @code{*} @subentry come 
operatore @dfn{regexp}
 @item @code{*}
 Questo simbolo richiede che la precedente espressione regolare sia
 ripetuta tante volte quanto serve per trovare una corrispondenza.  Per
@@ -6061,23 +6146,25 @@ Secondo, @samp{*} trova quante pi@`u ripetizioni siano 
possibili.  Se il testo
 da ricercare @`e @samp{phhhhhhhhhhhhhhooey}, @samp{ph*} individua tutte le
 @samp{h}.
 
-@cindex @code{+} (pi@`u), operatore @dfn{regexp}
-@cindex pi@`u (@code{+}), operatore @dfn{regexp}
+@cindex @code{+} (pi@`u) @subentry operatore @dfn{regexp}
+@cindex pi@`u (@code{+}) @subentry operatore @dfn{regexp}
 @item @code{+}
 Questo simbolo @`e simile a @samp{*}, tranne per il fatto che l'espressione
 precedente deve essere trovata almeno una volta.  Questo significa che
 @samp{wh+y} individuerebbe @samp{why} e @samp{whhy}, ma non @samp{wy}, mentre
 @samp{wh*y} li troverebbe tutti e tre.
 
-@cindex @code{?} (punto interrogativo), operatore @dfn{regexp}
-@cindex punto interrogativo (@code{?}), operatore @dfn{regexp}
+@cindex @code{?} (punto interrogativo) @subentry operatore @dfn{regexp}
+@cindex punto interrogativo (@code{?}) @subentry operatore @dfn{regexp}
 @item @code{?}
 Questo simbolo @`e simile a @samp{*}, tranne per il fatto che l'espressione che
 precede pu@`o essere trovata una volta sola oppure non trovata
 affatto.  Per esempio, @samp{fe?d}
 individua @samp{fed} e @samp{fd}, ma nient'altro.
 
-@cindex espressioni di intervallo, (@dfn{regexp})
+@cindex @code{@{@}} (parentesi graffe) @subentry operatore @dfn{regexp}
+@cindex parentesi @subentry graffe (@code{@{@}}) @subentry operatore 
@dfn{regexp}
+@cindex espressioni @subentry di intervallo @subentry (@dfn{regexp})
 @item @code{@{}@var{n}@code{@}}
 @itemx @code{@{}@var{n}@code{,@}}
 @itemx @code{@{}@var{n}@code{,}@var{m}@code{@}}
@@ -6102,8 +6189,8 @@ Riconosce @samp{whhy}, @samp{whhhy} e cos@`{@dotless{i}} 
via.
 @end table
 @end table
 
-@cindex precedenza, operatori @dfn{regexp}
-@cindex espressioni regolari, operatori, precedenza degli
+@cindex precedenza @subentry operatori @dfn{regexp}
+@cindex espressioni regolari @subentry operatori @subentry precedenza degli
 Nelle espressioni regolari, gli operatori @samp{*}, @samp{+}, e @samp{?},
 come pure le parentesi graffe @samp{@{} e @samp{@}},
 hanno
@@ -6112,8 +6199,8 @@ la precedenza pi@`u alta, seguite dalla concatenazione, e 
poi da
 Come nell'algebra, le parentesi possono cambiare il raggruppamento degli
 operatori.
 
-@cindex POSIX @command{awk}, espressioni regolari e
-@cindex @command{gawk}, espressioni regolari, precedenza
+@cindex POSIX @command{awk} @subentry espressioni regolari
+@cindex @command{gawk} @subentry espressioni regolari @subentry precedenza
 In POSIX @command{awk} e @command{gawk}, gli operatori @samp{*}, @samp{+}
 e @samp{?} rappresentano se stessi quando non c'@`e nulla prima di essi
 nella @dfn{regexp}.  Per esempio, @code{/+/} individua un semplice segno
@@ -6123,12 +6210,12 @@ tale notazione come un errore di sintassi.
 @node Espressioni di intervallo
 @subsection Alcune note sulle espressioni di intervallo
 
-@cindex POSIX @command{awk}, espressioni di intervallo in
+@cindex POSIX @command{awk} @subentry espressioni di intervallo
 Le espressioni di intervallo non erano tradizionalmente disponibili in
 @command{awk}.  Sono state aggiunte come parte dello standard POSIX per
 rendere @command{awk} ed @command{egrep} coerenti tra di loro.
 
-@cindex @command{gawk}, espressioni di intervallo e
+@cindex @command{gawk} @subentry espressioni di intervallo e
 In passato, poich@'e vecchi programmi possono usare @samp{@{} e @samp{@}} in
 costanti @dfn{regexp},
 @command{gawk} @emph{non} riconosceva espressioni di intervallo
@@ -6161,12 +6248,12 @@ eseguito in modalit@`a compatibile (@pxref{Opzioni}).
 
 @node Espressioni tra parentesi quadre
 @section Usare espressioni tra parentesi quadre
-@cindex espressioni tra parentesi quadre
-@cindex espressioni tra parentesi quadre, espressioni di intervallo
-@cindex espressioni di intervallo, (@dfn{regexp})
+@cindex espressioni @subentry tra parentesi quadre
+@cindex espressioni @subentry tra parentesi quadre @subentry espressioni di 
intervallo
+@cindex espressioni @subentry di intervallo @subentry (@dfn{regexp})
 @cindex elenchi di caratteri in espressioni regolari
-@cindex caratteri, elenchi di, in espressioni regolari
-@cindex espressioni regolari, elenchi di caratteri in
+@cindex caratteri @subentry elenchi di, in espressioni regolari
+@cindex espressioni regolari @subentry elenchi di caratteri in
 
 Come detto sopra, un'espressione tra parentesi quadre individua qualsiasi
 carattere incluso tra le parentesi quadre aperta e chiusa.
@@ -6192,12 +6279,12 @@ caratteri in cui i punti di inizio e fine 
dell'intervello
 abbiano valori maggiori di 256, occorre immettere direttamente
 le codifiche multi-byte dei caratteri in questione.
 
-@cindex @code{\} (barra inversa), in espressioni tra parentesi quadre
-@cindex barra inversa (@code{\}), in espressioni tra parentesi quadre
-@cindex @code{^} (circonflesso), in espressioni tra parentesi quadre
-@cindex circonflesso (@code{^}), in espressioni tra parentesi quadre
-@cindex @code{-} (meno), in espressioni tra parentesi quadre
-@cindex meno (@code{-}), in espressioni tra parentesi quadre
+@cindex @code{\} (barra inversa) @subentry in espressioni tra parentesi quadre
+@cindex barra inversa (@code{\}) @subentry in espressioni tra parentesi quadre
+@cindex @code{^} (circonflesso) @subentry in espressioni tra parentesi quadre
+@cindex circonflesso (@code{^}) @subentry in espressioni tra parentesi quadre
+@cindex @code{-} (meno) @subentry in espressioni tra parentesi quadre
+@cindex meno (@code{-}) @subentry in espressioni tra parentesi quadre
 Per includere uno dei caratteri @samp{\}, @samp{]}, @samp{-}, o @samp{^} in
 un'espressione tra parentesi quadre, occorre inserire un @samp{\} prima del
 carattere stesso.  Per esempio:
@@ -6212,11 +6299,11 @@ Inoltre, se si mette una @samp{]} subito dopo la
 @samp{[} aperta, la parentesi quadra chiusa @`e considerata come uno dei
 caratteri da individuare.
 
-@cindex POSIX @command{awk}, espressioni tra parentesi quadre e
-@cindex espressioni regolari estese (ERE)
+@cindex POSIX @command{awk} @subentry espressioni tra parentesi quadre
+@cindex espressioni regolari @subentry estese (ERE)
 @cindex ERE (espressioni regolari estese)
-@cindex @command{egrep}, programma di utilit@`a
-@cindex programma di utilit@`a @command{egrep}
+@cindex @command{egrep} (programma di utilit@`a)
+@cindex programma di utilit@`a @subentry @command{egrep}
 L'utilizzo di @samp{\} nelle espressioni tra parentesi quadre
 @`e compatibile con altre implementazioni di @command{awk} ed @`e anche 
richiesto
 da POSIX.
@@ -6225,8 +6312,8 @@ specificazioni POSIX per le espressioni regolari estese 
(ERE).
 Le ERE POSIX sono basate sulle espressioni regolari accettate dal
 tradizionale programma di utilit@`a @command{egrep}.
 
-@cindex espressioni tra parentesi quadre, classi di caratteri
-@cindex POSIX @command{awk}, espressioni tra parentesi quadre e, classi di 
caratteri
+@cindex espressioni @subentry tra parentesi quadre @subentry classi di 
caratteri
+@cindex POSIX @command{awk} @subentry espressioni tra parentesi quadre 
@subentry classi di caratteri
 Le @dfn{classi di caratteri} sono una funzionalit@`a introdotta nello standard
 POSIX.  Una classe di caratteri @`e una particolare notazione per descrivere
 liste di caratteri cha hanno un attributo specifico, ma i caratteri
@@ -6284,10 +6371,10 @@ Subject: Re: [bug-gawk] Does gawk character classes 
follow this?
 > From: address@hidden
 > Date: Fri, 15 Feb 2019 03:01:34 -0700
 > Cc: address@hidden, address@hidden
-> 
+>
 > I get the feeling that there's something really bothering you, but
 > I don't understand what.
-> 
+>
 > Can you clarify, please?
 
 I thought I already did: we cannot be expected to provide a definitive
@@ -6298,6 +6385,7 @@ depends on various factors out of our control.
 @c Thanks to
 @c Date: Tue, 01 Jul 2014 07:39:51 +0200
 @c From: Hermann Peifer <address@hidden>
+@cindex ASCII
 Alcuni programmi di utilit@`a che cercano espressioni regolari prevedono
 una classe di caratteri, non standard,
 @samp{[:ascii:]}; @command{awk} non la prevede.  Tuttavia, @`e possibile 
ottenere
@@ -6313,9 +6401,9 @@ trattano @code{[:blank:]} come @code{[:space:]}, 
individuando quindi
 pi@`u caratteri del dovuto.  Caveat Emptor! [Stia in guardia il compratore!].
 @end quotation
 
-@cindex espressioni tra parentesi quadre, elementi di collazione
-@cindex espressioni tra parentesi quadre, non-ASCII
-@cindex elementi di collazione
+@cindex espressioni @subentry tra parentesi quadre @subentry elementi di 
collazione
+@cindex espressioni @subentry tra parentesi quadre @subentry non-ASCII
+@cindex elementi @subentry di collazione
 In espressioni tra parentesi quadre possono apparire due ulteriori sequenze
 speciali.  Riguardano insiemi di caratteri non-ASCII, che possono avere
 simboli singoli (chiamati @dfn{elementi di collazione}) che sono rappresentati
@@ -6325,8 +6413,8 @@ equivalenti tra loro ai fini della @dfn{collazione}, o 
dell'ordinamento.
 sono equivalenti).  Queste sequenze sono:
 
 @table @asis
-@cindex espressioni tra parentesi quadre, elementi di collazione
-@cindex elementi di collazione
+@cindex espressioni @subentry tra parentesi quadre @subentry elementi di 
collazione
+@cindex elementi @subentry di collazione
 @item elementi di collazione
 Elementi di collazione multi-byte racchiusi fra
 @samp{[.} e @samp{.]}.  Per esempio, se @samp{ch} @`e un elemento di 
collazione,
@@ -6334,7 +6422,7 @@ Elementi di collazione multi-byte racchiusi fra
 collazione, mentre @samp{[ch]} @`e una @dfn{regexp} che individua le lettere
 @samp{c} o @samp{h}.
 
-@cindex espressioni tra parentesi quadre, classi di equivalenza
+@cindex espressioni @subentry tra parentesi quadre @subentry classi di 
equivalenza
 @item classi di equivalenza
 Sono nomi, specifici a una particolare localizzazione, per una lista di
 caratteri equivalenti tra loro.  Il nome @`e racchiuso fra
@@ -6346,9 +6434,9 @@ che corrisponde a @samp{e}, @samp{@^e}, @samp{@`e} e 
@samp{@'e}.
 
 Queste funzionalit@`a sono molto utili in localizzazioni non inglesi.
 
-@cindex internazionalizzazione, localizzazione, classi di caratteri
-@cindex @command{gawk}, classi di caratteri e
-@cindex POSIX @command{awk}, espressioni tra parentesi quadre e, classi di 
caratteri
+@cindex internazionalizzazione @subentry localizzazione @subentry classi di 
caratteri
+@cindex @command{gawk} @subentry classi di caratteri e
+@cindex POSIX @command{awk} @subentry espressioni tra parentesi quadre 
@subentry classi di caratteri
 @quotation ATTENZIONE
 Le funzioni di libreria che @command{gawk} usa per individuare le espressioni
 regolari per ora riconoscono solo le classi di caratteri POSIX;
@@ -6364,7 +6452,7 @@ caratteri, di simboli di collazione o di una classe di 
equivalenza
 @node Pi@`u lungo da sinistra
 @section Quanto @`e lungo il testo individuato?
 
-@cindex espressioni regolari, corrispondenza pi@`u a sinistra
+@cindex espressioni regolari @subentry corrispondenza pi@`u a sinistra
 @c @cindex matching, leftmost longest
 Si consideri il caso seguente:
 
@@ -6404,12 +6492,12 @@ e anche @pxref{Separatori di campo}).
 @node Espressioni regolari calcolate
 @section Usare @dfn{regexp} dinamiche
 
-@cindex espressioni regolari calcolate
-@cindex espressioni regolari dinamiche
-@cindex @code{~} (tilde), operatore @code{~}
-@cindex tilde (@code{~}), operatore @code{~}
-@cindex @code{!} (punto esclamativo), operatore @code{!~}
-@cindex punto esclamativo (@code{!}), operatore @code{!~}
+@cindex espressioni regolari @subentry calcolate
+@cindex espressioni regolari @subentry dinamiche
+@cindex @code{~} (tilde) @subentry operatore @code{~}
+@cindex tilde (@code{~}) @subentry operatore @code{~}
+@cindex @code{!} (punto esclamativo) @subentry operatore @code{!~}
+@cindex punto esclamativo (@code{!}) @subentry operatore @code{!~}
 @c @cindex operators, @code{~}
 @c @cindex operators, @code{!~}
 L'espressione a destra di un operatore @samp{~} o @samp{!~} non deve
@@ -6443,11 +6531,11 @@ alla sua destra.  Questo vale per ogni espressione 
(come la
 costanti stringa.
 @end quotation
 
-@cindex costanti @dfn{regexp}, barre vs.@: doppi apici
-@cindex @code{\} (barra inversa), in costanti @dfn{regexp}
-@cindex barra inversa (@code{\}), in costanti @dfn{regexp}
-@cindex @code{"} (doppio apice), in costanti @dfn{regexp}
-@cindex doppio apice (@code{"}), in costanti @dfn{regexp}
+@cindex costanti @subentry @dfn{regexp} @subentry barre vs.@: doppi apici
+@cindex @code{\} (barra inversa) @subentry in costanti @dfn{regexp}
+@cindex barra inversa (@code{\}) @subentry in costanti @dfn{regexp}
+@cindex @code{"} (doppio apice) @subentry in costanti @dfn{regexp}
+@cindex doppio apice (@code{"}) @subentry in costanti @dfn{regexp}
 Che differenza fa la doppia scansione di una stringa?
 La risposta ha a che vedere con le sequenze di protezione e particolarmente
 con le barre inverse.  Per inserire una barra inversa in un'espressione
@@ -6461,10 +6549,10 @@ occorre immettere @code{"\\*"}.  La prima barra inversa 
protegge la
 seconda in modo che la stringa in realt@`a contenga i
 due caratteri @samp{\} e @samp{*}.
 
-@cindex risoluzione di problemi, costanti @dfn{regexp} vs.@: costanti stringa
-@cindex problemi, risoluzione di, costanti @dfn{regexp} vs.@: costanti stringa
-@cindex costanti @dfn{regexp}, vs.@: costanti stringa
-@cindex costanti stringa, vs.@: costanti @dfn{regexp}
+@cindex risoluzione di problemi @subentry costanti @dfn{regexp} vs.@: costanti 
stringa
+@cindex problemi @subentry risoluzione di @subentry costanti @dfn{regexp} 
vs.@: costanti stringa
+@cindex costanti @subentry @dfn{regexp} @subentry vs.@: costanti stringa
+@cindex costanti @subentry stringa @subentry vs.@: costanti @dfn{regexp}
 Dato che si possono usare sia costanti @dfn{regexp} che costanti stringa per
 descrivere espressioni regolari, qual @`e da preferire?  La risposta @`e
 ``costanti @dfn{regexp}'', per molti motivi:
@@ -6489,8 +6577,8 @@ chiaramente che si vuole una corrispondenza con una 
@dfn{regexp}.
 @end itemize
 
 @sidebar Usare @code{\n} in espressioni tra parentesi quadre in @dfn{regexp} 
dinamiche
-@cindex espressioni regolari dinamiche, contenenti dei ritorni a capo
-@cindex ritorno a capo, in @dfn{regexp} dinamiche
+@cindex espressioni regolari @subentry dinamiche @subentry contenenti dei 
ritorni a capo
+@cindex ritorno a capo @subentry in @dfn{regexp} dinamiche
 
 Alcune delle prime versioni di @command{awk} non consentono di usare il
 carattere di ritorno a capo
@@ -6506,7 +6594,7 @@ $ @kbd{awk '$0 ~ "[ \t\n]"'}
 @error{}        $0 ~ "[ >>>  \t\n]" <<<
 @end example
 
-@cindex ritorno a capo, in costanti @dfn{regexp}
+@cindex ritorno a capo @subentry in costanti @dfn{regexp}
 Ma un ritorno a capo in una costante @dfn{regexp} non d@`a alcun problema:
 
 @example
@@ -6525,11 +6613,11 @@ in pratica, ma val la pena di notarlo a futura memoria.
 
 @c This section adapted (long ago) from the regex-0.12 manual
 
-@cindex espressioni regolari, operatori, @command{gawk}
-@cindex @command{gawk}, espressioni regolari, operatori
-@cindex operatori, specifici per GNU
-@cindex espressioni regolari, operatori, per parole
-@cindex parola, definizione in @dfn{regexp}
+@cindex espressioni regolari @subentry operatori @subentry @command{gawk}
+@cindex @command{gawk} @subentry espressioni regolari @subentry operatori
+@cindex operatori @subentry specifici per GNU
+@cindex espressioni regolari @subentry operatori @subentry per parole
+@cindex parola @subentry definizione in @dfn{regexp}
 Il software GNU che ha a che fare con espressioni regolari comprende alcuni
 operatori @dfn{regexp} aggiuntivi.  Questi
 operatori sono descritti in
@@ -6547,67 +6635,67 @@ parole.  Ai nostri fini, una @dfn{parola} @`e una 
sequenza di uno o pi@`u letter
 cifre, o trattini bassi (@samp{_}):
 
 @table @code
-@c @cindex operatori, @code{\s} (@command{gawk})
-@cindex barra inversa (@code{\}), @code{\s}, operatore (@command{gawk})
-@cindex @code{\} (barra inversa), @code{\s}, operatore (@command{gawk})
+@c @cindex operators, @code{\s} (@command{gawk})
+@cindex barra inversa (@code{\}) @subentry @code{\s} (operatore @command{gawk})
+@cindex @code{\} (barra inversa) @subentry @code{\s} (operatore @command{gawk})
 @item \s
 Corrisponde a ogni carattere bianco.
 Lo si pu@`o pensare come un'abbreviazione di
 @w{@samp{[[:space:]]}}.
 
-@c @cindex operatori, @code{\S} (@command{gawk})
-@cindex barra inversa (@code{\}), @code{\S}, operatore (@command{gawk})
-@cindex @code{\} (barra inversa), @code{\S}, operatore (@command{gawk})
+@c @cindex operators, @code{\S} (@command{gawk})
+@cindex barra inversa (@code{\}) @subentry @code{\S} (operatore @command{gawk})
+@cindex @code{\} (barra inversa) @subentry @code{\S} (operatore @command{gawk})
 @item \S
 Corrisponde a ogni carattere che non @`e uno spazio bianco.
 Lo si pu@`o pensare come un'abbreviazione di
 @w{@samp{[^[:space:]]}}.
 
-@c @cindex operatori, @code{\w} (@command{gawk})
-@cindex barra inversa (@code{\}), @code{\w}, operatore (@command{gawk})
-@cindex @code{\} (barra inversa), @code{\w}, operatore (@command{gawk})
+@c @cindex operators, @code{\w} (@command{gawk})
+@cindex barra inversa (@code{\}) @subentry @code{\w} (operatore @command{gawk})
+@cindex @code{\} (barra inversa) @subentry @code{\w} (operatore @command{gawk})
 @item \w
 Corrisponde a ogni carattere che componga una parola; ovvero, corrisponde a
 ogni lettera, cifra, o trattino basso.
 Lo si pu@`o pensare come un'abbreviazione di
 @w{@samp{[[:alnum:]_]}}.
 
-@c @cindex operatori, @code{\W} (@command{gawk})
-@cindex barra inversa (@code{\}), @code{\W}, operatore (@command{gawk})
-@cindex @code{\} (barra inversa), @code{\W}, operatore (@command{gawk})
+@c @cindex operators, @code{\W} (@command{gawk})
+@cindex barra inversa (@code{\}) @subentry @code{\W} (operatore @command{gawk})
+@cindex @code{\} (barra inversa) @subentry @code{\W} (operatore @command{gawk})
 @item \W
 Corrisponde a ogni carattere che non @`e parte di una parola.
 Lo si pu@`o pensare come un'abbreviazione di
 @w{@samp{[^[:alnum:]_]}}.
 
-@c @cindex operatori, @code{\<} (@command{gawk})
-@cindex barra inversa (@code{\}), @code{\<}, operatore (@command{gawk})
-@cindex @code{\} (barra inversa), @code{\<}, operatore (@command{gawk})
+@c @cindex operators, @code{\<} (@command{gawk})
+@cindex barra inversa (@code{\}) @subentry @code{\<} (operatore @command{gawk})
+@cindex @code{\} (barra inversa) @subentry @code{\<} (operatore @command{gawk})
 @item \<
 Individua la stringa nulla all'inizio di una parola.
 Per esempio, @code{/\<via/} individua @samp{via} ma non
 @samp{funivia}.
 
-@c @cindex operatori, @code{\>} (@command{gawk})
-@cindex barra inversa (@code{\}), @code{\>}, operatore (@command{gawk})
-@cindex @code{\} (barra inversa), @code{\>}, operatore (@command{gawk})
+@c @cindex operators, @code{\>} (@command{gawk})
+@cindex barra inversa (@code{\}) @subentry @code{\>} (operatore @command{gawk})
+@cindex @code{\} (barra inversa) @subentry @code{\>} (operatore @command{gawk})
 @item \>
 Individua la stringa nulla alla fine di una parola.
 Per esempio, @code{/via\>/} individua @samp{via} ma non @samp{viadotto}.
 
-@c @cindex operatori, @code{\y} (@command{gawk})
-@cindex barra inversa (@code{\}), @code{\y}, operatore (@command{gawk})
-@cindex @code{\} (barra inversa), @code{\y}, operatore (@command{gawk})
-@cindex limite-di-parola, individuare il
+@c @cindex operators, @code{\y} (@command{gawk})
+@cindex barra inversa (@code{\}) @subentry @code{\y} (operatore @command{gawk})
+@cindex @code{\} (barra inversa) @subentry @code{\y} (operatore @command{gawk})
+@cindex limite-di-parola @subentry individuare il
 @item \y
 Individua la stringa nulla o alla fine o all'inizio di una parola.
 (cio@`e, il limite di una parola - @dfn{boundar@strong{y}} in inglese).
 Per esempio, @samp{\yradar?\y}
 individua sia @samp{rada} che @samp{radar}, come parole separate.
 
-@c @cindex operatori, @code{\B} (@command{gawk})
-@cindex barra inversa (@code{\}), @code{\B}, operatore (@command{gawk})
-@cindex @code{\} (barra inversa), @code{\B}, operatore (@command{gawk})
+@c @cindex operators, @code{\B} (@command{gawk})
+@cindex barra inversa (@code{\}) @subentry @code{\B} (operatore @command{gawk})
+@cindex @code{\} (barra inversa) @subentry @code{\B} (operatore @command{gawk})
 @item \B
 Individua la stringa nulla che ricorre all'interno di una parola.
 Per esempio,
@@ -6615,9 +6703,9 @@ Per esempio,
 @samp{\B} @`e essenzialmente l'opposto di @samp{\y}.
 @end table
 
-@cindex buffer, operatori per
-@cindex espressioni regolari, operatori, per buffer
-@cindex operatori, ricerca in stringhe, per buffer
+@cindex buffer @subentry operatori per
+@cindex espressioni regolari @subentry operatori @subentry per buffer
+@cindex operatori @subentry ricerca in stringhe @subentry per buffer
 Ci sono due altri operatori che operano sui buffer.  In Emacs un
 @dfn{buffer} @`e, naturalmente, un buffer di Emacs.  In altri programmi GNU,
 fra cui @command{gawk}, le routine di libreria delle @dfn{regexp} considerano
@@ -6626,32 +6714,32 @@ Gli operatori sono:
 
 @table @code
 @item \`
-@c @cindex operatori, @code{\`} (@command{gawk})
-@cindex barra inversa (@code{\}), @code{\`}, operatore (@command{gawk})
-@cindex @code{\} (barra inversa), @code{\`}, operatore (@command{gawk})
+@c @cindex operators, @code{\`} (@command{gawk})
+@cindex barra inversa (@code{\}) @subentry @code{\`} (operatore @command{gawk})
+@cindex @code{\} (barra inversa) @subentry @code{\`} (operatore @command{gawk})
 Individua la stringa nulla che occorre all'inizio di un buffer
 (di una stringa)
 
-@c @cindex operatori, @code{\'} (@command{gawk})
-@cindex barra inversa (@code{\}), @code{\'}, operatore (@command{gawk})
-@cindex @code{\} (barra inversa), @code{\'}, operatore (@command{gawk})
+@c @cindex operators, @code{\'} (@command{gawk})
+@cindex barra inversa (@code{\}) @subentry @code{\'} (operatore @command{gawk})
+@cindex @code{\} (barra inversa) @subentry @code{\'} (operatore @command{gawk})
 @item \'
 Individua la stringa nulla che occorre alla fine di un buffer
 (di una stringa)
 @end table
 
-@cindex @code{^} (circonflesso), operatore @dfn{regexp}
-@cindex circonflesso (@code{^}), operatore @dfn{regexp}
-@cindex @code{?} (punto interrogativo), operatore @dfn{regexp}
-@cindex punto interrogativo (@code{?}), operatore @dfn{regexp}
+@cindex @code{^} (circonflesso) @subentry operatore @dfn{regexp}
+@cindex circonflesso (@code{^}) @subentry operatore @dfn{regexp}
+@cindex @code{?} (punto interrogativo) @subentry operatore @dfn{regexp}
+@cindex punto interrogativo (@code{?}) @subentry operatore @dfn{regexp}
 Poich@'e @samp{^} e @samp{$} si riferiscono sempre all'inizio e alla
 fine di stringhe, questi operatori non aggiungono nuove funzionalit@`a
 ad @command{awk}.  Sono inclusi per compatibilit@`a con altro
 software GNU.
 
-@cindex @command{gawk}, operatore limite-di-parola
-@cindex limite-di-parola, operatore (@command{gawk})
-@cindex operatori, limite-di-parola (@command{gawk})
+@cindex @command{gawk} @subentry operatore limite-di-parola
+@cindex limite-di-parola @subentry operatore (@command{gawk})
+@cindex operatori @subentry limite-di-parola (@command{gawk})
 In altro software GNU, l'operatore di limite-di-parola @`e @samp{\b}.  Questo,
 comunque, @`e in conflitto con la definizione, nel linguaggio @command{awk},
 di @samp{\b} come
@@ -6661,8 +6749,8 @@ operatori GNU, ma questo @`e stato ritenuto troppo 
arzigogolato.  Il metodo
 corrente di usare @samp{\y} al posto del @samp{\b} di GNU sembra essere
 il male minore.
 
-@cindex espressioni regolari, @command{gawk}, opzioni sulla riga di comando
-@cindex @command{gawk}, opzioni sulla riga di comando, ed espressioni regolari
+@cindex espressioni regolari @subentry @command{gawk} @subentry opzioni sulla 
riga di comando
+@cindex @command{gawk} @subentry opzioni sulla riga di comando @subentry ed 
espressioni regolari
 Le varie opzioni sulla riga di comando
 (@pxref{Opzioni})
 controllano come @command{gawk} interpreta i caratteri nelle @dfn{regexp}:
@@ -6687,7 +6775,7 @@ Sono ammesse solo le @dfn{regexp} POSIX; gli operatori 
GNU non sono
 speciali (p.es., @samp{\w} individua una semplice lettera @samp{w}).
 Le espressioni di intervallo sono ammesse.
 
-@cindex Brian Kernighan, @command{awk} di
+@cindex Brian Kernighan @subentry @command{awk} di
 @item @code{--traditional}
 Le @dfn{regexp} Unix tradizionali di @command{awk} sono ammesse.  Gli
 operatori GNU non sono speciali, e le espressioni
@@ -6706,9 +6794,9 @@ Altrimenti, le espressioni di intervallo sono disponibili 
per default.
 @node Maiuscolo-Minuscolo
 @section Fare confronti ignorando maiuscolo/minuscolo
 
-@cindex espressioni regolari, maiuscolo/minuscolo
-@cindex @dfn{regexp}, maiuscolo/minuscolo
-@cindex maiuscolo/minuscolo e @dfn{regexp}
+@cindex espressioni regolari @subentry maiuscolo/minuscolo
+@cindex @dfn{regexp} @subentry maiuscolo/minuscolo
+@cindex maiuscolo/minuscolo @subentry @dfn{regexp} e
 Il tipo di carattere (maiuscolo/minuscolo) @`e normalmente rilevante nelle
 espressioni regolari, sia nella ricerca di
 caratteri normali (cio@`e, non metacaratteri), sia all'interno di espressioni
@@ -6738,15 +6826,15 @@ tolower($1) ~ /foo/  @{ @dots{} @}
 converte il primo campo in minuscole, prima di fare un confronto.
 Questo funziona in ogni @command{awk} conforme allo standard POSIX.
 
-@cindex @command{gawk}, espressioni regolari, differenza maiuscolo/minuscolo
-@cindex distinzione maiuscolo/minuscolo, @command{gawk}
-@cindex differenze tra @command{awk} e @command{gawk}, espressioni regolari
-@cindex @code{~} (tilde), operatore @code{~}
-@cindex tilde (@code{~}), operatore @code{~}
-@cindex @code{!} (punto esclamativo), operatore @code{!~}
-@cindex punto esclamativo (@code{!}), operatore @code{!~}
-@cindex @code{IGNORECASE}, variabile, con operatori @code{~} e @code{!~}
-@cindex @command{gawk}, variabile @code{IGNORECASE} in
+@cindex @command{gawk} @subentry espressioni regolari @subentry distinzione 
maiuscolo/minuscolo
+@cindex distinzione maiuscolo/minuscolo @subentry @command{gawk}
+@cindex differenze tra @command{awk} e @command{gawk} @subentry espressioni 
regolari
+@cindex @code{~} (tilde) @subentry operatore @code{~}
+@cindex tilde (@code{~}) @subentry operatore @code{~}
+@cindex @code{!} (punto esclamativo) @subentry operatore @code{!~}
+@cindex punto esclamativo (@code{!}) @subentry operatore @code{!~}
+@cindex @code{IGNORECASE} (variabile) @subentry con operatori @code{~} e 
@code{!~}
+@cindex @command{gawk} @subentry variabile @subentry @code{IGNORECASE} in
 @c @cindex variables, @code{IGNORECASE}
 Un altro metodo, proprio di @command{gawk}, @`e di impostare la variabile
 @code{IGNORECASE} a un valore diverso da zero (@pxref{Variabili predefinite}).
@@ -6858,11 +6946,11 @@ versioni di @command{awk}, vanno usate invece le 
funzioni @code{tolower()} o
 @node Leggere file
 @chapter Leggere file in input
 
-@cindex leggere file in input
-@cindex file in input, leggere
-@cindex file in input
-@cindex @code{FILENAME}, variabile
-@cindex variabile @code{FILENAME}
+@cindex leggere @subentry file in input
+@cindex input @subentry leggere
+@cindex input
+@cindex @code{FILENAME} (variabile)
+@cindex variabile @subentry @code{FILENAME}
 Nel tipico programma @command{awk},
 @command{awk} legge tutto l'input sia dallo standard input
 (per default @`e la tastiera, ma spesso @`e una @dfn{pipe} da un altro comando)
@@ -6881,7 +6969,7 @@ Per default, ogni record @`e una riga.  Ogni
 record @`e suddiviso automaticamente in "pezzi" chiamati @dfn{campi}.
 Questo rende pi@`u pratico far lavorare i programmi sulle parti di un record.
 
-@cindex @code{getline}, comando
+@cindex @code{getline} (comando)
 In rare occasioni, si potrebbe aver bisogno di usare il comando
 @code{getline}. Il comando  @code{getline} @`e utile sia perch@'e pu@`o 
procurare
 un input esplicito da un numero indeterminato di file, sia perch@'e non vanno
@@ -6916,10 +7004,10 @@ getline (@pxref{Getline}).
 @node Record
 @section Controllare come i dati sono suddivisi in record
 
-@cindex input, suddividere in record
-@cindex record, suddividere l'input in
-@cindex @code{NR}, variabile
-@cindex @code{FNR}, variabile
+@cindex input @subentry suddividere in record
+@cindex record @subentry suddividere l'input in
+@cindex @code{NR} (variabile)
+@cindex @code{FNR} (variabile)
 @command{awk} suddivide l'input per il programma in record e campi.
 Tiene traccia del numero di record gi@`a letti dal
 file in input corrente.  Questo valore @`e memorizzato in una variabile
@@ -6945,18 +7033,18 @@ regolare.  Questo meccanismo @`e spiegato pi@`u in 
dettaglio qui sotto.
 @node awk divisione record
 @subsection Come @command{awk} standard divide i record.
 
-@cindex separatori di record
-@cindex record, separatori di
+@cindex separatore di record
+@cindex record @subentry separatore di
 I record sono separati da un carattere chiamato @dfn{separatore di record}.
 Per default, il separatore di record @`e il carattere di ritorno a capo.
 Questo @`e il motivo per cui i record sono, per default, righe singole.
 Per usare un diverso carattere come separatore di record
 basta assegnare quel carattere alla variabile predefinita @code{RS}.
 
-@cindex separatore di record, ritorno a capo come
-@cindex ritorno a capo, come separatore di record
-@cindex a capo, come separatore di record
-@cindex @code{RS}, variabile
+@cindex separatore di record @subentry ritorno a capo come
+@cindex ritorno a capo @subentry come separatore di record
+@cindex ritorno a capo @subentry come separatore di record
+@cindex @code{RS} (variabile)
 Come per ogni altra variabile,
 il valore di @code{RS} pu@`o essere cambiato nel programma @command{awk}
 con l'operatore di assegnamento, @samp{=}
@@ -6971,7 +7059,7 @@ Per esempio:
 
 @example
 awk 'BEGIN @{ RS = "u" @}
-     @{ print $0 @}' mail-list
+@{ print $0 @}' mail-list
 @end example
 
 @noindent
@@ -7049,8 +7137,9 @@ il record, diversamente dalle altre, che hanno una o 
pi@`u ricorrenze della
 il ritorno a capo che li separa nell'output @`e l'originale ritorno a capo nel
 @value{DF}, non quella aggiunta da @command{awk} quando ha stampato il record!
 
-@cindex separatori di record, cambiare i
-@cindex record, separatori di
+@cindex separatore di record @subentry cambiare il
+@cindex cambiare @subentry il separatore di record
+@cindex record @subentry separatore di
 Un altro modo per cambiare il separatore di record @`e sulla riga di comando,
 usando la funzionalit@`a dell'assegnamento di variabile
 (@pxref{Altri argomenti}):
@@ -7093,14 +7182,14 @@ variabile predefinita @code{NF} @`e il numero di campi 
nel record corrente.
 vuoto, stampando @samp{0} come risultato.  Anche molte altre versioni di
 @command{awk} agiscono in questo modo.)
 
-@cindex angolo buio, file in input
+@cindex angolo buio @subentry file in input
 Il raggiungimento della fine di un file in input fa terminare il record di
 input corrente, anche se l'ultimo carattere nel file non @`e il carattere in
 @code{RS}.  @value{DARKCORNER}
 
-@cindex stringa vuota
+@cindex stringa @subentry vuota @seeentry{stringa nulla}
 @cindex stringa nulla
-@c @cindex strings, empty, see null strings
+@cindex stringa @subentry vuota @seeentry{stringa nulla}
 La stringa nulla @code{""} (una stringa che non contiene alcun carattere)
 ha un significato particolare come
 valore di @code{RS}.  Significa che i record sono separati
@@ -7112,14 +7201,14 @@ Se si cambia il valore di @code{RS} nel mezzo di 
un'esecuzione di
 non riguarda il record in corso di elaborazione e neppure quelli gi@`a
 elaborati.
 
-@cindex @command{gawk}, variabile @code{RT} in
-@cindex @code{RT}, variabile
-@cindex record, fine dei
-@cindex differenze tra @command{awk} e @command{gawk}, separatori di record
-@cindex differenze tra @command{awk} e @command{gawk}, variabili 
@code{RS}/@code{RT}
-@cindex espressioni regolari, come separatori di record
-@cindex record, separatori di, espressioni regolari come
-@cindex separatori di record, espressioni regolari come
+@cindex @command{gawk} @subentry variabile @subentry @code{RT} in
+@cindex @code{RT} (variabile)
+@cindex record @subentry fine dei
+@cindex differenze tra @command{awk} e @command{gawk} @subentry separatore di 
record
+@cindex differenze tra @command{awk} e @command{gawk} @subentry variabili 
@code{RS}/@code{RT}
+@cindex espressioni regolari @subentry come separatore di record
+@cindex record @subentry separatore di @subentry espressioni regolari come
+@cindex separatore di record @subentry espressioni regolari come
 Dopo che @`e stata determinata la fine di un record, @command{gawk}
 imposta la variabile @code{RT} al testo nell'input che corrisponde a
 @code{RS}.
@@ -7127,8 +7216,8 @@ imposta la variabile @code{RT} al testo nell'input che 
corrisponde a
 @node gawk divisione record
 @subsection Divisione dei record con @command{gawk}
 
-@cindex estensioni comuni, @code{RS} come espressione regolare
-@cindex comuni, estensioni@comma{} @code{RS} come espressione regolare
+@cindex estensioni comuni @subentry @code{RS} come espressione regolare
+@cindex comuni @subentry estensioni @subentry @code{RS} come espressione 
regolare
 Quando si usa @command{gawk},
 il valore di @code{RS} non @`e limitato a una stringa costituita da un solo
 carattere.  Se contiene pi@`u di un carattere, @`e considerato essere
@@ -7199,10 +7288,10 @@ in cui possono essere presenti dei caratteri di ritorno 
a capo.
 @`E meglio perci@`o evitare metacaratteri di ancoraggio nel valore di 
@code{RS}.
 @end quotation
 
-@cindex @command{gawk}, variabile @code{RT} in
-@cindex @code{RT}, variabile
-@cindex variabile @code{RT}
-@cindex differenze tra @command{awk} e @command{gawk}, variabili 
@code{RS}/@code{RT}
+@cindex @command{gawk} @subentry variabile @subentry @code{RT} in
+@cindex @code{RT} (variabile)
+@cindex variabile @subentry @code{RT}
+@cindex differenze tra @command{awk} e @command{gawk} @subentry variabili 
@code{RS}/@code{RT}
 L'uso di @code{RS} come espressione regolare e la variabile @code{RT} sono
 estensioni @command{gawk}; non sono disponibili in
 modalit@`a compatibile
@@ -7211,7 +7300,7 @@ In modalit@`a compatibile, solo il primo carattere del 
valore di
 @code{RS} determina la fine del record.
 
 @sidebar @code{RS = "\0"} non @`e portabile
-@cindex portabilit@`a, file di dati come un unico record
+@cindex portabilit@`a @subentry file di dati come un unico record
 Ci sono casi in cui capita di dover trattare un intero @value{DF} come
 un record unico.  L'unico modo di far questo @`e quello di dare a @code{RS}
 un valore che non ricorre nel file in input.  Ci@`o @`e difficile da fare in 
modo
@@ -7226,7 +7315,7 @@ usare per @code{RS} in questo caso:
 BEGIN @{ RS = "\0" @}  # l'intero file diventa un record?
 @end example
 
-@cindex differenze tra @command{awk} e @command{gawk}, stringhe, memorizzazione
+@cindex differenze tra @command{awk} e @command{gawk} @subentry memorizzazione 
di stringhe
 @command{gawk} di fatto lo accetta, e usa il carattere @sc{NUL}
 come separatore di record.
 Questo funziona per certi file speciali, come @file{/proc/environ} su sistemi
@@ -7234,7 +7323,7 @@ GNU/Linux, dove il carattere @sc{NUL} @`e di fatto un 
separatore di record..
 Comunque, quest'uso @emph{non} @`e portabile sulla maggior parte delle
 implementazioni di @command{awk}.
 
-@cindex angolo buio, stringhe, memorizzazione
+@cindex angolo buio @subentry stringhe, memorizzazine di
 Quasi tutte le altre implementazioni di @command{awk} @footnote{Almeno quelle
 che ci sono note.} memorizzano internamente le stringhe come stringhe
 in stile C.  Le stringhe in stile C usano il carattere @sc{NUL} come
@@ -7247,10 +7336,11 @@ Capita che recenti versioni di @command{mawk} possano 
usare i carattere
 @command{mawk} non consente  di includere caratteri @sc{NUL} nelle stringhe.
 (Ci@`o potrebbe cambiare in una versione futura di @command{mawk}.)
 
-@cindex record, trattare file come un solo
+@cindex record @subentry trattare file come un solo
 @cindex trattare un file come un solo record
-@cindex record unico, trattare un file come un
-@cindex unico record, trattare un file come un
+@cindex file @subentry trattato come un solo record
+@cindex record unico @subentry trattare file come un solo
+@cindex unico record @subentry trattare un file come un
 @xref{Funzione readfile} per un modo interessante di leggere
 file interi.  Se si usa  @command{gawk}, si veda
 @ref{Esempio di estensione Readfile} per un'altra opzione.
@@ -7262,7 +7352,7 @@ file interi.  Se si usa  @command{gawk}, si veda
 @cindex esaminare i campi
 @cindex campi
 @cindex accesso ai campi
-@cindex campi, esame dei
+@cindex campi @subentry esame dei
 Quando @command{awk} legge un record in input, il record @`e
 automaticamente @dfn{analizzato} o separato da @command{awk} in "pezzi"
 chiamati @dfn{campi}.  Per default, i campi sono separati da
@@ -7274,14 +7364,14 @@ sono considerati spazi vuoti in altri linguaggi, 
@emph{non} sono considerati
 tali da @command{awk}.
 
 Lo scopo dei campi @`e quello di rendere pi@`u conveniente per l'utente far
-riferimento a questi frammenti dei record.  Non @`e  necessario usarli---si 
pu@`o
-operare sull'intero record, se si vuole---ma i campi sono ci@`o che rende
+riferimento a questi frammenti dei record.  Non @`e  necessario usarli --- si 
pu@`o
+operare sull'intero record, se si vuole --- ma i campi sono ci@`o che rende
 cos@`{@dotless{i}} potenti dei semplici programmi @command{awk}.
 
-@cindex operatore di campo @code{$}
-@cindex @code{$} (dollaro), operatore di campo @code{$}
-@cindex dollaro (@code{$}), operatore di campo @code{$}
-@cindex operatore di campo, dollaro come
+@cindex operatore @subentry di campo @subentry @code{$}
+@cindex @code{$} (dollaro) @subentry operatore di campo @code{$}
+@cindex dollaro (@code{$}) @subentry operatore di campo @code{$}
+@cindex operatore @subentry di campo @subentry dollaro come
 Si usa il simbolo del dollaro (@samp{$})
 per far riferimento a un campo in un programma @command{awk},
 seguito dal numero del campo desiderato.  Quindi, @code{$1}
@@ -7301,8 +7391,8 @@ Qui il primo campo, o @code{$1}, @`e @samp{Questo}, il 
secondo campo, o
 @samp{o} e il @samp{.}, il punto @`e considerato parte del settimo
 campo.
 
-@cindex @code{NF}, variabile
-@cindex campi, numero dei
+@cindex @code{NF} (variabile)
+@cindex campi @subentry numero dei
 @code{NF} @`e una variabile predefinita il cui valore @`e il numero di campi 
nel
 record corrente.  @command{awk} aggiorna automaticamente il valore di
 @code{NF} ogni volta che legge un record.  Indipendentemente da quanti campi
@@ -7340,8 +7430,8 @@ $ @kbd{awk '/li/ @{ print $1, $NF @}' mail-list}
 
 @node Campi non costanti
 @section Numeri di campo variabili
-@cindex campi, numero dei
-@cindex numeri di campo
+@cindex campi @subentry numero dei
+@cindex numero @subentry di campi in un record
 
 Un numero di campo non @`e necessario che sia una costante.  Nel linguaggio
 @command{awk} si pu@`o usare qualsiasi espressione dopo @samp{$} per far
@@ -7391,14 +7481,15 @@ implementazioni di @command{awk} possono comportarsi in 
modo diverso.)
 Come accennato in @ref{Campi},
 @command{awk} memorizza il numero di campi del record corrente nella variabile
 predefinita @code{NF} (@pxref{Variabili predefinite}).  Quindi,
-l'espressione @code{$NF} non @`e una funzionalit@`a speciale---@`e la diretta
+l'espressione @code{$NF} non @`e una funzionalit@`a speciale --- @`e la diretta
 conseguenza della valutazione di @code{NF} e dell'uso di questo valore come
 numero di campo.
 
 @node Cambiare i campi
 @section Cambiare il contenuto di un campo
 
-@cindex campi, cambiare il contenuto dei
+@cindex campi @subentry cambiare il contenuto dei
+@cindex cambiare @subentry il contenuto dei campi
 Il contenuto di un campo, cos@`{@dotless{i}} come @`e visto da @command{awk}, 
pu@`o essere
 cambiato all'interno di un programma @command{awk}; questo cambia quello che
 @command{awk} percepisce come record in input corrente.  (Il reale file in
@@ -7459,8 +7550,8 @@ $ @kbd{awk '@{ $6 = ($5 + $4 + $3 + $2)}
 @dots{}
 @end example
 
-@cindex aggiungere, campi
-@cindex campi, aggiungere
+@cindex aggiungere @subentry campi
+@cindex campi @subentry aggiungere
 @noindent
 Abbiamo appena creato @code{$6}, il cui valore @`e la somma dei campi
 @code{$2}, @code{$3}, @code{$4} e @code{$5}.  Il segno @samp{+}
@@ -7473,10 +7564,10 @@ record in input corrente, che @`e il valore di 
@code{$0}.  Cos@`{@dotless{i}}, s
 nuovo campo, col numero di separatori di campo appropriati tra esso e i
 campi originariamente presenti.
 
-@cindex @code{OFS}, variabile
-@cindex output, separatore di campo, si veda @code{OFS}, variabile
-@cindex campo, separatori di, si veda anche @code{OFS}
-@cindex separatori di campo, si veda anche @code{OFS}
+@cindex @code{OFS} (variabile)
+@cindex output @subentry separatore di campo @seeentry{@code{OFS} (variabile)}
+@cindex campi @subentry separatore di @seealso{@code{OFS}}
+@cindex separatore di campo @seealso{@code{OFS} (variabile)}
 Questa ridefinizione influenza ed @`e influenzata da
 @code{NF} (il numero dei campi; @pxref{Campi}).
 Per esempio, il valore di @code{NF} @`e impostato al numero del campo pi@`u
@@ -7492,9 +7583,9 @@ Per esempio:
 
 @example
 if ($(NF+1) != "")
-    print "non @`e possibile"
+print "non @`e possibile"
 else
-    print "@`e tutto normale"
+print "@`e tutto normale"
 @end example
 
 @noindent
@@ -7532,8 +7623,8 @@ Il campo intermedio, @code{$5}, @`e creato con un valore 
vuoto
 (indicato dalla seconda coppia di due punti (@code{:}) adiacenti),
 e @code{NF} @`e aggiornato col valore sei.
 
-@cindex angolo buio, variabile @code{NF}, decremento
-@cindex @code{NF}, variable, decremento
+@cindex angolo buio @subentry variabile @subentry @code{NF}, decremento
+@cindex @code{NF} (variabile) @subentry decremento
 Decrementando @code{NF} si eliminano i campi
 dopo il nuovo valore di @code{NF} e si ricalcola @code{$0}.
 @value{DARKCORNER}
@@ -7546,7 +7637,7 @@ $ @kbd{echo a b c d e f | awk '@{ print "NF =", NF;}
 @print{} a b c
 @end example
 
-@cindex portabilit@`a, variabile @code{NF}@comma{} decremento
+@cindex portabilit@`a @subentry variabile @code{NF}, decrementare
 @quotation ATTENZIONE
 Alcune versioni di @command{awk} non
 ricostruiscono @code{$0} quando @code{NF} viene diminuito.
@@ -7612,9 +7703,9 @@ in precedenza.
                                      sommario.
 @end menu
 
-@cindex @code{FS}, variabile
-@cindex campi, separare
-@cindex campo, separatori di
+@cindex @code{FS} (variabile)
+@cindex campi @subentry separare
+@cindex campi @subentry separatore di
 Il @dfn{separatore di campo}, che @`e un carattere singolo o un'espressione
 regolare, controlla il modo in cui @command{awk} suddivide un record in input
 in campi.  @command{awk} fa una scansione del record in input per trovare i
@@ -7634,14 +7725,15 @@ moo goo gai pan
 @samp{@bullet{}gai@bullet{}pan}.
 Notare gli spazi iniziali nei valori del secondo e del terzo campo.
 
-@cindex risoluzione di problemi, @command{awk} usa @code{FS} anzich@'e 
@code{IFS}
-@cindex problemi, risoluzione di, @command{awk} usa @code{FS} anzich@'e 
@code{IFS}
+@cindex risoluzione di problemi @subentry @command{awk} usa @code{FS} 
anzich@'e @code{IFS}
+@cindex problemi @subentry risoluzione di @subentry @command{awk} usa 
@code{FS} anzich@'e @code{IFS}
 Il separatore di campo @`e rappresentato dalla variable predefinita @code{FS}.
 I programmatori di shell notino:  @command{awk} @emph{non} usa il
 nome @code{IFS} che @`e usato dalle shell conformi a POSIX (come
 la Unix Bourne shell, @command{sh}, o Bash).
 
-@cindex @code{FS}, variabile, cambiare il valore di una
+@cindex @code{FS} (variabile) @subentry cambiare il valore della
+@cindex cambiare @subentry il valore di @code{FS} (variabile)
 Il valore di @code{FS} si pu@`o cambiare nel programma @command{awk} con
 l'operatore di assegnamento, @samp{=} (@pxref{Operatori di assegnamento}).
 Spesso il momento giusto per far ci@`o @`e all'inizio dell'esecuzione
@@ -7657,7 +7749,7 @@ Per esempio, qui impostiamo il valore di @code{FS} alla 
stringa
 awk 'BEGIN @{ FS = "," @} ; @{ print $2 @}'
 @end example
 
-@cindex @code{BEGIN}, criterio di ricerca
+@cindex @code{BEGIN} (regola)
 @noindent
 Data la riga in input:
 
@@ -7669,9 +7761,9 @@ John Q. Smith, 29 Oak St., Walamazoo, MI 42139
 questo programma @command{awk} estrae e stampa la stringa
 @samp{@bullet{}29@bullet{}Oak@bullet{}St.}.
 
-@cindex separatori di campo, scelta dei
-@cindex espressioni regolari, come separatori di campo
-@cindex separatori di campo, espressioni regolari come
+@cindex separatore di campo @subentry scelta del
+@cindex espressioni regolari @subentry come separatore di campo
+@cindex separatore di campo @subentry espressioni regolari come
 A volte i dati in input contengono caratteri separatori che non
 separano i campi nel modo in cui ci si sarebbe atteso.  Per esempio, il
 nome della persona dell'esempio che abbiamo appena usato potrebbe avere un
@@ -7694,8 +7786,10 @@ si possano manipolare con un programma @command{awk} 
separato.)
 @node Separatori di campo di default
 @subsection Lo spazio vuoto normalmente separa i campi
 
-@cindex separatori di campo, spazi vuoti come
-@cindex spazi vuoti, come separatori di campo
+@cindex separatore di campo @subentry spazi vuoti come
+@cindex spazi vuoti @subentry come separatore di campo
+@cindex separatore di campo @subentry @code{FS} (variabile) come
+@cindex @code{FS} (variabile) @subentry come separatore di campo 
 I campi sono separati normalmente da spazi vuoti
 (spazi, tabulazioni e ritorni a capo), non solo da spazi singoli.  Due spazi
 in una riga non delimitano un campo vuoto. Il valore di default del separatore
@@ -7716,8 +7810,8 @@ regole.
 @node Separare campi con @dfn{regexp}
 @subsection Usare @dfn{regexp} come separatori di campo
 
-@cindex espressioni regolari, come separatori di campo
-@cindex separatori di campo, espressioni regolari come
+@cindex espressioni regolari @subentry come separatore di campo
+@cindex separatore di campo @subentry espressioni regolari come
 La precedente @value{SUBSECTION}
 ha illustrato l'uso di caratteri singoli o di stringhe semplici come
 valore di @code{FS}.
@@ -7775,9 +7869,8 @@ $ @kbd{echo ' a  b  c  d ' | awk 'BEGIN @{ FS = "[ 
\t\n]+" @}}
 @end example
 
 @noindent
-@c @cindex null strings
 @cindex stringa nulla
-@cindex stringa vuota, si veda stringa nulla
+@cindex stringa @subentry vuota @seeentry{stringa nulla}
 In questo caso, il primo campo @`e nullo, o vuoto.
 Il taglio degli spazi vuoti iniziale e finale ha luogo anche
 ogniqualvolta @code{$0} @`e ricalcolato.
@@ -7798,9 +7891,9 @@ Poich@'e lo spazio vuoto iniziale @`e stato ignorato 
quando si @`e trovato
 @code{$1}, esso non fa parte del nuovo @code{$0}.  Alla fine, l'ultima
 istruzione @code{print} stampa il nuovo @code{$0}.
 
-@cindex @code{FS}, contenente @code{^}
-@cindex @code{^} (circonflesso), in @code{FS}
-@cindex angolo buio, @code{^}, in @code{FS}
+@cindex @code{FS} (variabile) @subentry contenente @code{^}
+@cindex @code{^} (circonflesso) @subentry in @code{FS}
+@cindex angolo buio @subentry @code{^}, in @code{FS}
 C'@`e un'ulteriore sottigliezza da considerare quando si usano le espressioni
 regolari per separare i campi.
 Non @`e ben specificato nello standard POSIX, n@'e altrove, cosa
@@ -7811,7 +7904,7 @@ rispondono a questo quesito in modo diverso, e non si 
dovrebbe far affidamento
 su alcun comportamento specifico nei propri programmi.
 @value{DARKCORNER}
 
-@cindex Brian Kernighan, @command{awk} di
+@cindex Brian Kernighan @subentry @command{awk} di
 Di sicuro, BWK @command{awk} individua con @samp{^}
 solo l'inizio del record.  Anche @command{gawk}
 funziona in questo modo. Per esempio:
@@ -7829,11 +7922,11 @@ $ @kbd{echo 'xxAA  xxBxx  C' |}
 @node Campi di un solo carattere
 @subsection Fare di ogni carattere un campo separato
 
-@cindex estensioni comuni, campi di un solo carattere
-@cindex comuni, estensioni, campi di un solo carattere
-@cindex differenze tra @command{awk} e @command{gawk}, campi di un solo 
carattere
-@cindex singolo carattere, campi
-@cindex campi di un solo carattere
+@cindex estensioni comuni @subentry campi di un solo carattere
+@cindex comuni @subentry estensioni @subentry campi di un solo carattere
+@cindex differenze tra @command{awk} e @command{gawk} @subentry campi di un 
solo carattere
+@cindex singolo carattere @subentry campi di un
+@cindex campi @subentry di un solo carattere
 Ci sono casi in cui si abbia la necessit@`a di analizzare ciascun carattere di 
un
 record separatamente.  Questo si pu@`o fare in @command{gawk} semplicemente
 assegnando la stringa nulla (@code{""}) a @code{FS}. @value{COMMONEXT}
@@ -7852,8 +7945,8 @@ $ @kbd{echo a b | gawk 'BEGIN @{ FS = "" @}}
 @print{} Il campo 3 @`e b
 @end example
 
-@cindex angolo buio, @code{FS} come stringa nulla
-@cindex @code{FS}, variabile, come stringa nulla
+@cindex angolo buio @subentry @code{FS} come stringa nulla
+@cindex @code{FS} (variabile) @subentry come stringa nulla
 Tradizionalmente, il comportamento di @code{FS} quando @`e impostato a
 @code{""} non @`e stato definito.  In questo caso, la  maggior parte delle
 versioni UNIX di @command{awk} trattano l'intero record come se avesse un
@@ -7866,10 +7959,11 @@ si comporta in questo modo.
 
 @node Separatori campo da riga di comando
 @subsection Impostare @code{FS} dalla riga di comando
-@cindex @option{-F}, opzione sulla riga di comando
-@cindex separatore di campo, specificare sulla riga di comando
-@cindex riga di comando, impostare @code{FS} sulla
-@cindex @code{FS}, variabile, impostare da riga di comando
+@cindex @option{-F} (opzione) sulla riga di comando
+@cindex opzione @subentry @option{-F} @subentry sulla riga di comando
+@cindex separatore di campo @subentry specificare sulla riga di comando
+@cindex riga di comando @subentry impostare @code{FS} sulla
+@cindex @code{FS} (variabile) @subentry impostare da riga di comando
 
 @code{FS} pu@`o essere impostata sulla riga di comando.  Per far questo si usa
 l'opzione @option{-F}.  Per esempio:
@@ -7896,9 +7990,9 @@ awk -F\\\\ '@dots{}' file @dots{}
 @end example
 
 @noindent
-@cindex separatore di campo, @code{\} (barra inversa) come
-@cindex @code{\} (barra inversa), come separatore di campo
-@cindex barra inversa (@code{\}), come separatore di campo
+@cindex separatore di campo @subentry @code{\} (barra inversa) come
+@cindex @code{\} (barra inversa) @subentry come separatore di campo
+@cindex barra inversa (@code{\}) @subentry come separatore di campo
 Poich@'e @samp{\} @`e usato nella shell per proteggere caratteri, a 
@command{awk}
 arriva @samp{-F\\}.  Quindi @command{awk} elabora @samp{\\} per caratteri di
 protezione (@pxref{Sequenze di protezione}), producendo alla fine
@@ -7951,7 +8045,7 @@ che ci si aspettava venisse usato.
 Questo lascia intuire il motivo per cui si deve stare attenti nella scelta
 dei separatori di campo e di record.
 
-@cindex Unix @command{awk}, file di password, separatori di campo e
+@cindex Unix @command{awk} @subentry file di password @subentry separatore di 
campo e
 Forse l'uso pi@`u comune di un solo carattere come separatore di campo avviene
 quando si elabora il file delle password di un sistema Unix.  Su molti sistemi
 Unix, ogni utente @`e descritto da un elemento nel file delle password del
@@ -7962,7 +8056,7 @@ dell'utente criptata o oscurata (una password oscurata 
@`e indicata dalla
 presenza di una sola @samp{x} nel secondo campo).  Una riga nel file delle
 password potrebbe essere simile a questa:
 
-@cindex Robbins, Arnold
+@cindex Robbins @subentry Arnold
 @example
 arnold:x:2076:10:Arnold Robbins:/home/arnold:/bin/bash
 @end example
@@ -7989,11 +8083,10 @@ awk -F'\n' '@var{programma}' @var{file @dots{}}
 @noindent
 In questo caso, @code{$1} coincide con @code{$0}.
 
-
 @sidebar Cambiare @code{FS} non incide sui campi
 
-@cindex POSIX @command{awk}, separatori di campo e
-@cindex separatore di campo, POSIX e il
+@cindex POSIX @command{awk} @subentry separatore di campo
+@cindex separatore di campo @subentry POSIX e il
 Secondo lo standard POSIX, si suppone che @command{awk} si comporti
 come se ogni record sia stato diviso in campi nel momento in cui @`e stato
 letto.  In particolare, ci@`o vuol dire che se si cambia il valore di
@@ -8001,9 +8094,9 @@ letto.  In particolare, ci@`o vuol dire che se si cambia 
il valore di
 la loro suddivisione) sar@`a ancora quello ottenuto usando il precedente
 valore di @code{FS}, non quello nuovo.
 
-@cindex angolo buio, separatori di campo
-@cindex @command{sed}, programma di utilit@`a
-@cindex programma di utilit@`a @command{sed}
+@cindex angolo buio @subentry separatore di campo
+@cindex @command{sed} (programma di utilit@`a)
+@cindex programma di utilit@`a @subentry @command{sed}
 @cindex editori di flusso
 Comunque, molte delle pi@`u vecchie implementazioni di @command{awk} non
 funzionano in questo modo.  Invece, rimandano la divisione dei campi
@@ -8102,9 +8195,9 @@ caso, @code{IGNORECASE} avr@`a effetto.
 @section Leggere campi di larghezza costante
 
 
-@cindex campi di larghezza costante
-@cindex larghezza costante, campi di
-@cindex funzionalit@`a avanzate, campi di larghezza costante
+@cindex campi @subentry di larghezza costante
+@cindex larghezza costante @subentry campi di
+@cindex funzionalit@`a @subentry avanzate @subentry campi di larghezza costante
 @c O'Reilly doesn't like it as a note the first thing in the section.
 @ifnotinfo
 Questa
@@ -8151,12 +8244,12 @@ Sebbene un programma @command{awk} portabile possa 
usare una serie di
 chiamate @code{substr()} su @code{$0} (@pxref{Funzioni per stringhe}),
 questo @`e scomodo e inefficiente se il numero dei campi @`e elevato.
 
-@cindex risoluzione di problemi, errori fatali, specificare larghezza dei campi
-@cindex problemi, risoluzione di, errori fatali, specificare larghezza dei 
campi
-@cindex @command{w}, programma di utilit@`a
-@cindex programma di utilit@`a @command{w}
-@cindex @code{FIELDWIDTHS}, variabile
-@cindex @command{gawk}, variabile @code{FIELDWIDTHS} in
+@cindex risoluzione di problemi @subentry errori fatali @subentry specificare 
larghezza dei campi
+@cindex problemi @subentry risoluzione di @subentry errori fatali, specificare 
larghezza dei campi
+@cindex @command{w} (programma di utilit@`a)
+@cindex programma di utilit@`a @subentry @command{w}
+@cindex @code{FIELDWIDTHS} (variabile)
+@cindex @command{gawk} @subentry variabile @subentry @code{FIELDWIDTHS} in
 La suddivisione di un record in input in campi a larghezza fissa viene
 specificata assegnando una stringa contenente numeri separati da spazi alla
 variabile predefinita @code{FIELDWIDTHS}.  Ogni numero specifica la larghezza
@@ -8171,7 +8264,7 @@ Unix @command{w}.  @`E utile per spiegare l'uso di 
@code{FIELDWIDTHS}:
 
 @example
 @group
- 10:06pm  up 21 days, 14:04,  23 users
+10:06pm  up 21 days, 14:04,  23 users
 User     tty       login@  idle   JCPU   PCPU  what
 hzuo     ttyV0     8:58pm            9      5  vi p24.tex
 hzang    ttyV3     6:37pm    50                -csh
@@ -8192,18 +8285,18 @@ calcolato:
 @example
 BEGIN  @{ FIELDWIDTHS = "9 6 10 6 7 7 35" @}
 NR > 2 @{
-    inat = $4
-    sub(/^ +/, "", inat)   # togli spazi prima del valore
-    if (inat == "")
-        inat = 0
-    if (inat ~ /:/) @{      # hh:mm
-        split(inat, t, ":")
-        inat = t[1] * 60 + t[2]
-    @}
-    if (inat ~ /days/)
-        inat *= 24 * 60 * 60
+inat = $4
+sub(/^ +/, "", inat)   # togli spazi prima del valore
+if (inat == "")
+inat = 0
+if (inat ~ /:/) @{      # hh:mm
+split(inat, t, ":")
+inat = t[1] * 60 + t[2]
+@}
+if (inat ~ /days/)
+inat *= 24 * 60 * 60
 
-    print $1, $2, inat
+print $1, $2, inat
 @}
 @end example
 
@@ -8338,11 +8431,11 @@ o @code{"FIELDWIDTHS"} se si usa la separazione in 
campi a larghezza fissa:
 
 @example
 if (PROCINFO["FS"] == "FS")
-    @var{separazione in campi normale}@dots{}
+@var{separazione in campi normale}@dots{}
 else if  (PROCINFO["FS"] == "FIELDWIDTHS")
-    @var{separazione in campi a larghezza fissa}@dots{}
+@var{separazione in campi a larghezza fissa}@dots{}
 else
-    @var{separazione dei campi in base al contenuto}@dots{} @ii{(si veda
+@var{separazione dei campi in base al contenuto}@dots{} @ii{(si veda
 @ifnotinfo
 la @value{SECTION} successiva)}
 @end ifnotinfo
@@ -8371,7 +8464,7 @@ Questo
 di @command{gawk}.  Se si @`e un utente alle prime armi di @command{awk},
 la si pu@`o saltare in prima lettura.
 
-@cindex funzionalit@`a avanzate, specificare il contenuto dei campi
+@cindex funzionalit@`a @subentry avanzate @subentry specificare il contenuto 
dei campi
 
 Normalmente, quando si usa @code{FS}, @command{gawk} definisce i campi come
 le parti del record che si trovano tra due separatori di campo.  In altre
@@ -8399,8 +8492,8 @@ Robbins,Arnold,"1234 A Pretty Street, 
NE",MyTown,MyState,12345-6789,USA
 @c endfile
 @end example
 
-@cindex @command{gawk}, variabile @code{FPAT} in
-@cindex @code{FPAT}, variabile
+@cindex @command{gawk} @subentry variabile @subentry @code{FPAT} in
+@cindex @code{FPAT} (variabile)
 La variabile @code{FPAT} offre una soluzione per casi come questo.
 Il valore di @code{FPAT} dovrebbe essere una stringa formata da un'espressione
 regolare.  L'espressione regolare descrive il contenuto di ciascun campo.
@@ -8430,16 +8523,16 @@ e divide i dati:
 @c file eg/misc/simple-csv.awk
 @group
 BEGIN @{
-    FPAT = "([^,]+)|(\"[^\"]+\")"
+FPAT = "([^,]+)|(\"[^\"]+\")"
 @}
 @end group
 
 @group
 @{
-    print "NF = ", NF
-    for (i = 1; i <= NF; i++) @{
-        printf("$%d = <%s>\n", i, $i)
-    @}
+print "NF = ", NF
+for (i = 1; i <= NF; i++) @{
+printf("$%d = <%s>\n", i, $i)
+@}
 @}
 @end group
 @c endfile
@@ -8467,8 +8560,8 @@ questo tipo:
 
 @example
 if (substr($i, 1, 1) == "\"") @{
-    len = length($i)
-    $i = substr($i, 2, len - 2) # Ottiene il testo tra doppi apici
+len = length($i)
+$i = substr($i, 2, len - 2) # Ottiene il testo tra doppi apici
 @}
 @end example
 
@@ -8508,11 +8601,11 @@ per suddividere normali stringhe (@pxref{Funzioni per 
stringhe}).
 @node Controllare la creazione di campi
 @section Controllare come @command{gawk} sta dividendo i record
 
-@cindex @command{gawk}, separazione in campi e
+@cindex @command{gawk} @subentry separazione in campi e
 Come visto sopra, @command{gawk} fornisce tre metodi indipendenti per
 dividere i record in input in campi.  Il meccanismo utilizzato dipende da
-quale delle tre variabili---@code{FS}, @code{FIELDWIDTHS} o
-@code{FPAT}---@`e stato definito per ultimo.
+quale delle tre variabili --- @code{FS}, @code{FIELDWIDTHS} o
+@code{FPAT} --- @`e stato definito per ultimo.
 Inoltre, un analizzatore di input che utilizzi l'API (Application
 Programming Interface) pu@`o scegliere di modificare il meccanismo di
 analisi dei record; si veda @ref{Analizzatori di input} per ulteriori 
informazioni
@@ -8550,17 +8643,17 @@ record e poi ripristinare le inpostazioni originali.  
Si veda
 @node Righe multiple
 @section Record su righe multiple
 
-@cindex righe multiple, record su
-@cindex record multiriga
-@cindex input, record multiriga
-@cindex file, lettura dei record multiriga
-@cindex input, file in, si veda file in input
+@cindex righe multiple @subentry record su
+@cindex record @subentry multiriga
+@cindex input @subentry record multiriga
+@cindex file @subentry lettura dei record multiriga
+@cindex input
 In alcune banche-dati, una sola riga non pu@`o contenere in modo adeguato
 tutte le informazioni di una voce.  In questi casi si possono usare record
 multiriga.
 Il primo passo @`e quello di scegliere il formato dei dati.
 
-@cindex separatori di record, per record multiriga
+@cindex separatore di record @subentry per record multiriga
 Una tecnica @`e quella di usare un carattere o una stringa non usuali per
 separare i record.  Per esempio, si pu@`o usare il carattere di interruzione di
 pagina (scritto @samp{\f} sia in @command{awk} che in C) per separarli,
@@ -8569,7 +8662,7 @@ variabile @code{RS} a @code{"\f"} (una stringa contenente 
il carattere di
 interruzione di pagina).  Si potrebbe ugualmente usare qualsiasi altro
 carattere, sempre che non faccia parte dei dati di un record.
 
-@cindex @code{RS}, variabile, record multiriga e
+@cindex @code{RS} (variabile) @subentry record multiriga e
 Un'altra tecnica @`e quella di usare righe vuote per separare i record.
 Per una particolare
 convenzione, una stringa nulla come valore di @code{RS} indica che i record
@@ -8581,8 +8674,8 @@ esse costituiscono sempre un unico separatore di record.
 (Le righe vuote devono essere completamente vuote; righe che contengono
 spazi bianchi @emph{non} sono righe vuote.)
 
-@cindex stringa pi@`u lunga da sinistra, individuare la
-@cindex individuare la stringa pi@`u lunga da sinistra
+@cindex stringa @subentry pi@`u lunga da sinistra @subentry individuare la
+@cindex individuare @subentry la stringa pi@`u lunga da sinistra
 Si pu@`o ottenere lo stesso effetto di @samp{RS = ""} assegnando la stringa
 @code{"\n\n+"} a @code{RS}.  Quest'espressione regolare individua
 il ritorno a capo alla fine del record e una o pi@`u righe vuote dopo il
@@ -8593,7 +8686,7 @@ Quindi, il record successivo non inizia prima della 
successiva riga non
 vuota; indipendentemente dal numero di righe vuote presenti in una voce di
 banca-dati, esse sono considerate come un unico separatore di record.
 
-@cindex angolo buio, record multiriga
+@cindex angolo buio @subentry record multiriga
 Comunque, c'@`e una sostanziale differenza tra @samp{RS = ""} e @samp{RS =
 "\n\n+"}.  Nel primo caso, i ritorni a capo iniziali nel @value{DF} di
 input vengono ignorati, e se un file termina senza righe vuote aggiuntive dopo
@@ -8601,8 +8694,8 @@ l'ultimo record, il ritorno a capo viene rimosso dal 
record.  Nel secondo
 caso, questa particolare elaborazione non viene fatta.
 @value{DARKCORNER}
 
-@cindex separatore di campo, nei record multiriga
-@cindex @code{FS}, nei record multiriga
+@cindex separatore di campo @subentry nei record multiriga
+@cindex @code{FS} (variabile) @subentry nei record multiriga
 Ora che l'input @`e separato in record, il secondo passo @`e quello di 
separare i
 campi all'interno dei record.  Un modo per farlo @`e quello di dividere in
 campi ognuna delle righe in input
@@ -8675,10 +8768,10 @@ Un semplice programma per elaborare questo file @`e il 
seguente:
 BEGIN @{ RS = "" ; FS = "\n" @}
 
 @{
-      print "Il nome @`e:", $1
-      print "L'indirizzo @`e:", $2
-      print "Citt@`a e Stato sono:", $3
-      print ""
+print "Il nome @`e:", $1
+print "L'indirizzo @`e:", $2
+print "Citt@`a e Stato sono:", $3
+print ""
 @}
 @end example
 
@@ -8734,9 +8827,9 @@ I record sono separati da ricorrenze di caratteri 
corrispondenti a
 standard POSIX.)
 @end table
 
-@cindex @command{gawk}, @code{RT} variabile in
-@cindex @code{RT}, variabile
-@cindex differenze tra @command{awk} e @command{gawk}, variabili 
@code{RS}/@code{RT}
+@cindex @command{gawk} @subentry variabile @subentry @code{RT} in
+@cindex @code{RT} (variabile)
+@cindex differenze tra @command{awk} e @command{gawk} @subentry variabili 
@code{RS}/@code{RT}
 Se non @`e eseguito in modalit@`a di compatibilit@`a (@pxref{Opzioni}),
 @command{gawk} imposta @code{RT} al testo di input corrispondente
 al valore specificato da @code{RS}.
@@ -8746,8 +8839,8 @@ corrisponde a @code{RS}, @command{gawk} imposta @code{RT} 
alla stringa nulla.
 @node Getline
 @section Richiedere input usando @code{getline}
 
-@cindex @code{getline}, comando, input esplicito con
-@cindex input esplicito
+@cindex @code{getline} (comando) @subentry input esplicito con
+@cindex input @subentry esplicito
 Finora abbiamo ottenuto i dati di input dal flusso di input principale di
 @command{awk}: lo standard input (normalmente la tastiera, a volte
 l'output di un altro programma) o i
@@ -8774,11 +8867,12 @@ delle Parti I e II
 @end ifnotinfo
 e avere acquisito una buona conoscenza di come funziona @command{awk}.
 
-@cindex @command{gawk}, variabile @code{ERRNO} in
-@cindex @code{ERRNO}, variabile, con comando @command{getline}
-@cindex differenze tra @command{awk} e @command{gawk}, comando @code{getline}
-@cindex @code{getline}, comando, codice di ritorno
-@cindex @option{--sandbox}, opzione, ridirezione dell'input con @code{getline}
+@cindex @command{gawk} @subentry variabile @subentry @code{ERRNO} in
+@cindex @code{ERRNO} (variabile) @subentry con comando @command{getline}
+@cindex differenze tra @command{awk} e @command{gawk} @subentry comando 
@code{getline}
+@cindex @code{getline} (comando) @subentry codice di ritorno
+@cindex @option{--sandbox} (opzione) @subentry ridirezione dell'input con 
@code{getline}
+@cindex opzione @subentry @option{--sandbox} @subentry ridirezione dell'input 
con @code{getline}
 
 Il comando @code{getline} restituisce 1 se trova un record e 0 se
 trova la fine del file.  Se si verifica qualche errore cercando di leggere
@@ -8901,8 +8995,8 @@ regola presente nel programma.  @xref{Istruzione next}.
 
 @node Getline variabile
 @subsection Usare @code{getline} in una variabile
-@cindex @code{getline} in una variabile
-@cindex variabili, usare in comando @code{getline}
+@cindex @code{getline} (comando) @subentry in una variabile
+@cindex variabili @subentry usare in comando @code{getline}
 
 Si pu@`o usare @samp{getline @var{var}} per leggere il record successivo
 in input ad @command{awk} nella variabile @var{var}.  Non vien fatta
@@ -8955,12 +9049,12 @@ il valore di @code{NF} non cambiano.
 @node Getline file
 @subsection Usare @code{getline} da un file
 
-@cindex @code{getline} da un file
-@cindex input, ridirezione dell'
+@cindex @code{getline} (comando) @subentry da un file
+@cindex input @subentry ridirezione dell'
 @cindex ridirezione dell'input
-@cindex @code{<} (parentesi acuta sinistra), operatore @code{<} (I/O)
-@cindex parentesi acuta sinistra (@code{<}), operatore @code{<} (I/O)
-@cindex operatori di input/output
+@cindex @code{<} (parentesi acuta sinistra) @subentry operatore @code{<} (I/O)
+@cindex parentesi @subentry acuta sinistra (@code{<}) @subentry operatore 
@code{<} (I/O)
+@cindex operatori @subentry input/output
 Si usa @samp{getline < @var{file}} per leggere il record successivo da
 @var{file}.  Qui, @var{file} @`e un'espressione di tipo stringa che
 specifica il @value{FN}.  @samp{< @var{file}} @`e una cosidetta
@@ -8972,11 +9066,11 @@ corrente:
 
 @example
 @{
-    if ($1 == 10) @{
-         getline < "secondary.input"
-         print
-    @} else
-         print
+if ($1 == 10) @{
+ getline < "secondary.input"
+ print
+@} else
+ print
 @}
 @end example
 
@@ -8986,7 +9080,7 @@ modo normale, per cui vengono cambiati i valori di 
@code{$0} e degli altri
 campi, producendo un nuovo valore di @code{NF}.
 Viene impostato anche @code{RT}.
 
-@cindex POSIX @command{awk}, operatore @code{<} e
+@cindex POSIX @command{awk} @subentry @code{<} (operatore)
 @c Thanks to Paul Eggert for initial wording here
 Per lo standard POSIX, @samp{getline < @var{espressione}} @`e ambiguo se
 @var{espressione} contiene operatori che non sono all'interno di parentesi,
@@ -8998,7 +9092,7 @@ programma dev'essere portabile su tutte le 
implementazioni di @command{awk}.
 
 @node Getline variabile file
 @subsection Usare @code{getline} in una variabile da un file
-@cindex variabili, usare in comando @code{getline}
+@cindex variabili @subentry usare in comando @code{getline}
 
 Si usa @samp{getline @var{var} < @var{file}} per leggere l'input
 dal file
@@ -9017,12 +9111,12 @@ Tale record @`e sostituito dal contenuto del file
 
 @example
 @{
-     if (NF == 2 && $1 == "@@include") @{
-          while ((getline line < $2) > 0)
-               print line
-          close($2)
-     @} else
-          print
+if (NF == 2 && $1 == "@@include") @{
+  while ((getline line < $2) > 0)
+       print line
+  close($2)
+@} else
+  print
 @}
 @end example
 
@@ -9053,11 +9147,11 @@ Se non si pu@`o ottenerla, l'attenzione ai dettagli 
pu@`o aiutare.}
 @author Brian Kernighan
 @end quotation
 
-@cindex @code{|} (barra verticale), operatore @code{|} (I/O)
-@cindex barra verticale (@code{|}), operatore @code{|} (I/O)
-@cindex input, @dfn{pipeline}
-@cindex @dfn{pipe}, input
-@cindex operatori, input/output
+@cindex @code{|} (barra verticale) @subentry operatore @code{|} (I/O)
+@cindex barra verticale (@code{|}) @subentry operatore @code{|} (I/O)
+@cindex input @subentry @dfn{pipeline}
+@cindex @dfn{pipe} @subentry input
+@cindex operatori @subentry input/output
 L'output di un comando pu@`o anche essere convogliato in @code{getline}, usando
 @samp{@var{comando} | getline}.  In
 questo caso, la stringa @var{comando} viene eseguita come comando di shell e
@@ -9071,13 +9165,13 @@ costituito da un comando di shell.
 @example
 @group
 @{
-     if ($1 == "@@execute") @{
-          tmp = substr($0, 10)        # Rimuove "@@execute"
-          while ((tmp | getline) > 0)
-               print
-          close(tmp)
-     @} else
-          print
+if ($1 == "@@execute") @{
+  tmp = substr($0, 10)        # Rimuove "@@execute"
+  while ((tmp | getline) > 0)
+       print
+  close(tmp)
+@} else
+  print
 @}
 @end group
 @end example
@@ -9105,9 +9199,9 @@ gastone
 @noindent
 il programma potrebbe produrre:
 
-@cindex Robbins, Bill
-@cindex Robbins, Miriam
-@cindex Robbins, Arnold
+@cindex Robbins @subentry Bill
+@cindex Robbins @subentry Miriam
+@cindex Robbins @subentry Arnold
 @example
 pippo
 pluto
@@ -9128,7 +9222,7 @@ di @code{NF}, e ricalcola il valore di @code{$0}.  I 
valori di
 @code{NR} e @code{FNR} non vengono cambiati.
 Viene impostato @code{RT}.
 
-@cindex POSIX @command{awk}, operatore I/O @code{|} e
+@cindex POSIX @command{awk} @subentry @code{|} (operatore I/O)
 @c Thanks to Paul Eggert for initial wording here
 Per lo standard POSIX, @samp{@var{espressione} | getline} @`e ambiguo se
 @var{espressione} contiene operatori che non sono all'interno di parentesi,
@@ -9138,9 +9232,9 @@ l'operatore di concatenazione non @`e tra parentesi.  Si 
dovrebbe scrivere
 invece @samp{(@w{"echo "} "date") | getline}, se il programma dev'essere
 portabile su tutte le implementazioni di @command{awk}.
 
-@cindex Brian Kernighan, @command{awk} di
-@cindex @command{mawk}, programma di utilit@`a
-@cindex programma di utilit@`a @command{mawk}
+@cindex Brian Kernighan @subentry @command{awk} di
+@cindex @command{mawk} (programma di utilit@`a)
+@cindex programma di utilit@`a @subentry @command{mawk}
 @quotation NOTA
 Sfortunatamente, @command{gawk} non ha un comportamento uniforme nel
 trattare un costrutto come @samp{@w{"echo "} "date" | getline}.
@@ -9156,7 +9250,7 @@ esplicite.
 
 @node Getline variabile @dfn{pipe}
 @subsection Usare @code{getline} in una variabile da una @dfn{pipe}
-@cindex variabili, usare in comando @code{getline}
+@cindex variabili @subentry usare in comando @code{getline}
 
 Quando si usa @samp{@var{comando} | getline @var{var}},
 l'output di @var{comando} @`e inviato tramite una @dfn{pipe} a
@@ -9167,9 +9261,9 @@ stampa:
 
 @example
 BEGIN @{
-     "date" | getline current_time
-     close("date")
-     print "Report printed on " current_time
+"date" | getline current_time
+close("date")
+print "Report printed on " current_time
 @}
 @end example
 
@@ -9190,12 +9284,12 @@ programma dev'essere portabile su tutte le 
implementazioni di @command{awk}.
 
 @node Getline coprocesso
 @subsection Usare @code{getline} da un coprocesso
-@cindex coprocessi, @code{getline} da
-@cindex @code{getline}, comando, coprocessi@comma{} usare dal
-@cindex @code{|} (barra verticale), operatore @code{|&} (I/O)
-@cindex barra verticale (@code{|}), operatore @code{|&} (I/O)
-@cindex operatori, input/output
-@cindex differenze tra @command{awk} e @command{gawk}, operatori di 
input/output
+@cindex coprocessi @subentry @code{getline} da
+@cindex @code{getline} (comando) @subentry coprocessi, usare da
+@cindex @code{|} (barra verticale) @subentry operatore @code{|&} (I/O)
+@cindex barra verticale (@code{|}) @subentry operatore @code{|&} (I/O)
+@cindex operatori @subentry input/output
+@cindex differenze tra @command{awk} e @command{gawk} @subentry operatori di 
input/output
 
 Leggere dell'input in @code{getline} da una @dfn{pipe} @`e un'operazione
 unidirezionale.
@@ -9238,7 +9332,7 @@ dove i coprocessi vengono trattati pi@`u dettagliatamente.
 
 @node Getline variabile coprocesso
 @subsection Usare @code{getline} in una variabile da un coprocesso
-@cindex variabili, usare in comando @code{getline}
+@cindex variabili @subentry usare in comando @code{getline}
 
 Quando si usa @samp{@var{comando} |& getline @var{var}}, l'output dal
 coprocesso @var{comando} viene inviato tramite una @dfn{pipe} bidirezionale a
@@ -9268,10 +9362,10 @@ Quando @code{getline} cambia il valore di @code{$0} e 
@code{NF},
 programma per iniziare a provare il nuovo record su ogni criterio di ricerca.
 Comunque, il nuovo record viene provato su ogni regola successiva.
 
-@cindex differenze tra @command{awk} e @command{gawk}, limitazioni di 
implementazione
-@cindex implementazione, problemi, @command{gawk}, limiti
-@cindex @command{awk}, implementazioni, limiti
-@cindex @command{gawk}, problemi di implementazioni, limiti
+@cindex differenze tra @command{awk} e @command{gawk} @subentry limitazioni di 
implementazione
+@cindex implementazione @subentry problemi di @subentry @command{gawk}, limiti
+@cindex @command{awk} @subentry implementazioni di @subentry limiti delle
+@cindex @command{gawk} @subentry problemi di implementazione @subentry limiti
 @item
 Alcune tra le prime implementazioni di @command{awk} limitano a una sola il
 numero di @dfn{pipeline} che un programma @command{awk} pu@`o tenere aperte.
@@ -9279,11 +9373,11 @@ In @command{gawk}, non c'@`e questo limite.
 Si possono aprire tante @dfn{pipeline} (e coprocessi) quante ne permette il
 sistema operativo in uso.
 
-@cindex effetti collaterali, variabile @code{FILENAME}
-@cindex @code{FILENAME}, variabile, impostare con @code{getline}
-@cindex angolo buio, variabile @code{FILENAME}
-@cindex @code{getline}, comando, variabile @code{FILENAME} e
-@cindex @code{BEGIN}, criterio di ricerca, @code{getline} e
+@cindex effetti collaterali @subentry variabile @code{FILENAME}
+@cindex @code{FILENAME} (variabile) @subentry impostare con @code{getline}
+@cindex angolo buio @subentry variabile @subentry @code{FILENAME}
+@cindex @code{getline} (comando) @subentry variabile @code{FILENAME} e
+@cindex @code{BEGIN} (regola) @subentry @code{getline} e
 @item
 Un interessante effetto collaterale si ha se si usa @code{getline}, senza
 una ridirezione, all'interno di una regola @code{BEGIN}.  Poich@'e una
@@ -9335,9 +9429,9 @@ From: Duncan Moore <duncan.moore@@gmx.com>
 
 @example
 BEGIN @{
-    system("echo 1 > f")
-    while ((getline a[++c] < "f") > 0) @{ @}
-    print c
+system("echo 1 > f")
+while ((getline a[++c] < "f") > 0) @{ @}
+print c
 @}
 @end example
 
@@ -9353,7 +9447,7 @@ se c'@`e un valore di stringa da assegnare.
 
 @node Sommario di getline
 @subsection Sommario delle varianti di @code{getline}
-@cindex @code{getline}, comando, varianti
+@cindex @code{getline} (comando) @subentry varianti
 
 La @ref{tabella-varianti-getline}
 riassume le otto varianti di @code{getline},
@@ -9379,10 +9473,10 @@ Nota: per ogni variante, @command{gawk} imposta la 
variabile predefinita
 
 @node Timeout in lettura
 @section Leggere input entro un tempo limite
-@cindex tempo limite, leggere input
-@cindex @dfn{timeout}, si veda tempo limite
+@cindex tempo limite @subentry entro il quale leggere input
+@cindex @dfn{timeout} @seeentry{tempo limite}
 
-@cindex differenze tra @command{awk} e @command{gawk}, tempo limite per lettura
+@cindex differenze tra @command{awk} e @command{gawk} @subentry tempo limite 
per lettura
 @ifnotinfo
 Questa
 @end ifnotinfo
@@ -9412,9 +9506,9 @@ non riceve alcuna risposta dal server dopo un certo 
periodo di tempo:
 Service = "/inet/tcp/0/localhost/daytime"
 PROCINFO[Service, "READ_TIMEOUT"] = 100
 if ((Service |& getline) > 0)
-    print $0
+print $0
 else if (ERRNO != "")
-    print ERRNO
+print ERRNO
 @end group
 @end example
 
@@ -9425,7 +9519,7 @@ non pi@`u di cinque secondi:
 @example
 PROCINFO["/dev/stdin", "READ_TIMEOUT"] = 5000
 while ((getline < "/dev/stdin") > 0)
-    print $0
+print $0
 @end example
 
 @command{gawk} termina l'operazione di lettura se l'input non
@@ -9463,8 +9557,8 @@ per l'input diventa illimitata.
 @example
 PROCINFO[Service, "READ_TIMEOUT"] = 1000
 while ((Service |& getline) > 0) @{
-    print $0
-    PROCINFO[Service, "READ_TIMEOUT"] -= 100
+print $0
+PROCINFO[Service, "READ_TIMEOUT"] -= 100
 @}
 @end example
 
@@ -9476,6 +9570,8 @@ la prima volta.  Per questo, cambiare il valore del tempo
 limite come nell'esempio appena visto non @`e molto utile.
 @end quotation
 
+@cindex @env{GAWK_READ_TIMEOUT} (variabile d'ambiente)
+@cindex variabili d'ambiente @subentry @env{GAWK_READ_TIMEOUT}
 Se l'elemento di @code{PROCINFO} non @`e presente e la variabile d'ambiente
 @env{GAWK_READ_TIMEOUT} esiste,
 @command{gawk} usa il suo valore per inizializzare il valore di tempo limite.
@@ -9502,9 +9598,9 @@ indefinitamente in attesa che qualche altro processo lo 
apra in scrittura.
 @node Proseguire dopo errore in input
 @section Elaborare ulteriore input dopo certi errori di I/O
 @cindex proseguire dopo errore in input
-@cindex errore in input, possibilit@`a di proseguire
+@cindex errore @subentry in input @subentry possibilit@`a di proseguire
 
-@cindex differenze tra @command{awk} e @command{gawk}, proseguire dopo errore 
in input
+@cindex differenze tra @command{awk} e @command{gawk} @subentry proseguire 
dopo errore in input
 @ifnotinfo
 Questa
 @end ifnotinfo
@@ -9543,9 +9639,9 @@ modo non bloccante.
 
 @node Directory su riga di comando
 @section Directory sulla riga di comando
-@cindex differenze tra @command{awk} e @command{gawk}, directory sulla riga di 
comando
-@cindex directory, riga di comando
-@cindex riga di comando, directory su
+@cindex differenze tra @command{awk} e @command{gawk} @subentry directory 
sulla riga di comando
+@cindex directory @subentry riga di comando
+@cindex riga di comando @subentry directory su
 
 Per lo standard POSIX, i file che compaiono sulla riga di comando di
 @command{awk} devono essere file di testo; @`e un errore fatale se non lo sono.
@@ -9640,6 +9736,8 @@ o da un coprocesso.
 @code{PROCINFO[@var{file}, "READ_TIMEOUT"]} si pu@`o usare per impostare un
 tempo limite alle operazioni di lettura da @var{file}.
 
+@cindex POSIX @subentry modalit@`a
+@cindex modalit@`a POSIX 
 @item
 Le directory sulla riga di comando generano un errore fatale per
 @command{awk} standard;
@@ -9666,7 +9764,7 @@ comprese le astensioni, per ciascun quesito.
 @chapter Stampare in output
 
 @cindex stampare
-@cindex output, stampare, si veda stampare
+@cindex output @subentry stampare @seeentry{stampare}
 Una delle azioni che un programma fa pi@`u comunemente, @`e quella di produrre
 @dfn{stampe}, ossia scrivere in output l'input letto, tutto o in parte.
 Si pu@`o usare l'istruzione @code{print} per una stampa semplice, e 
l'istruzione
@@ -9681,8 +9779,8 @@ Per stampare fornendo delle specifiche, @`e necessario 
usare
 l'istruzione @code{printf}
 (@pxref{Printf}).
 
-@cindex istruzione @code{print}
-@cindex istruzione @code{printf}
+@cindex istruzione @subentry @code{print}
+@cindex istruzione @subentry @code{printf}
 Oltre alla stampa semplice e formattata, questo @value{CHAPTER}
 esamina anche le ridirezioni di I/O verso file e @dfn{pipe}, introduce
 i @value{FNS} speciali che @command{gawk} elabora internamente,
@@ -9738,9 +9836,9 @@ del record corrente (come @code{$1}), variabili, o 
quasiasi espressione
 @command{awk}.  I valori numerici sono convertiti in stringhe prima di essere
 stampati.
 
-@cindex record, stampare
-@cindex righe, vuote, stampare
-@cindex testo, stampare
+@cindex record @subentry stampare
+@cindex righe @subentry vuote @subentry stampare
+@cindex testo @subentry stampare
 Una semplice istruzione @samp{print} senza specificare elementi equivale a
 @samp{print $0}: stampa l'intero record corrente.  Per stampare una riga
 vuota, si usa @samp{print ""}.
@@ -9764,7 +9862,7 @@ resto della stringa.  Una
 singola istruzione @code{print} pu@`o in questo modo generare un numero
 qualsiasi di righe.
 
-@cindex ritorno a capo, stampare un
+@cindex ritorno a capo @subentry stampare un
 Quel che segue @`e un esempio di stampa di una stringa che contiene al suo
 interno dei
 @ifinfo
@@ -9792,7 +9890,7 @@ $ @kbd{awk 'BEGIN @{ print "riga uno\nriga due\nriga tre" 
@}'}
 @end group
 @end example
 
-@cindex campi, stampare
+@cindex campi @subentry stampare
 Il prossimo esempio, eseguito sul file @file{inventory-shipped},
 stampa i primi due campi di ogni record in input, separandoli con uno
 spazio:
@@ -9805,8 +9903,8 @@ $ @kbd{awk '@{ print $1, $2 @}' inventory-shipped}
 @dots{}
 @end example
 
-@cindex istruzione @code{print}, virgole, omettere
-@cindex debug, istruzione @code{print}@comma{} omissione virgole
+@cindex istruzione @subentry @code{print} @subentry virgole, omettere
+@cindex debug @subentry istruzione @code{print} @subentry omissione virgole
 Un errore frequente usando l'istruzione @code{print} @`e quello di tralasciare
 la virgola tra due elementi.  Questo ha spesso come risultato la stampa di
 elementi attaccati tra loro, senza lo spazio di separazione.  Il motivo per
@@ -9823,7 +9921,7 @@ $ @kbd{awk '@{ print $1 $2 @}' inventory-shipped}
 @dots{}
 @end example
 
-@cindex @code{BEGIN}, criterio di ricerca, intestazioni, aggiungere
+@cindex @code{BEGIN} (regola) @subentry intestazioni, aggiungere
 Per chi non conosce il file @file{inventory-shipped} nessuno
 dei due output di esempio risulta molto comprensibile.  Una riga iniziale di
 intestazione li renderebbe pi@`u chiari.
@@ -9834,8 +9932,8 @@ stampate una volta sola:
 
 @example
 awk 'BEGIN @{  print "Mese  Contenitori"
-              print "----- -----------" @}
-           @{  print $1, $2 @}' inventory-shipped
+      print "----- -----------" @}
+   @{  print $1, $2 @}' inventory-shipped
 @end example
 
 @noindent
@@ -9858,13 +9956,13 @@ campi:
 @example
 @group
 awk 'BEGIN @{  print "Mese  Contenitori"
-              print "----- -----------" @}
-           @{ print $1, "     ", $2 @}' inventory-shipped
+      print "----- -----------" @}
+   @{ print $1, "     ", $2 @}' inventory-shipped
 @end group
 @end example
 
-@cindex istruzione @code{printf}, colonne@comma{} allineamento
-@cindex colonne, allineamento
+@cindex istruzione @subentry @code{printf} @subentry colonne, allineamento
+@cindex colonne @subentry allineamento
 Allineare le colonne in questo modo pu@`o diventare piuttosto
 complicato, quando ci sono parecchie colonne da tenere allineate.  Contare gli
 spazi per due o tre colonne @`e semplice, ma oltre questo limite comincia a
@@ -9872,9 +9970,9 @@ volerci molto tempo.  Ecco perch@'e @`e disponibile 
l'istruzione @code{printf}
 (@pxref{Printf});
 una delle possibilit@`a che offre @`e quella di allineare colonne di dati.
 
-@cindex continuazione di riga, in istruzione @code{print}
-@cindex istruzione @code{print}, continuazione di riga e
-@cindex @code{print}, istruzione, continuazione di riga e
+@cindex continuazione di riga @subentry in istruzione @code{print}
+@cindex istruzione @subentry @code{print} @subentry continuazione di riga e
+@cindex @code{print} (istruzione) @subentry continuazione di riga e
 @quotation NOTA
 Si pu@`o continuare su pi@`u righe sia l'istruzione @code{print} che 
l'istruzione
 @code{printf} semplicemente mettendo un ritorno a capo dopo una virgola
@@ -9885,7 +9983,7 @@ qualsiasi
 @node Separatori di output
 @section I separatori di output e come modificarli
 
-@cindex variabile @code{OFS}
+@cindex variabile @subentry @code{OFS}
 Come detto sopra, un'istruzione @code{print} contiene una lista di elementi
 separati da virgole.  Nell'output, gli elementi sono solitamente separati
 da spazi singoli.  Non @`e detto tuttavia che debba sempre essere 
cos@`{@dotless{i}}; uno
@@ -9902,10 +10000,10 @@ ci aggiunge una stringa detta @dfn{separatore record 
in output} (o
 (cio@`e, un carattere di ritorno a capo).  Quindi, ogni istruzione
 @code{print} normalmente genera [almeno] una riga a s@'e stante.
 
-@cindex output, record
-@cindex separatore di record in output, si veda @code{ORS}, variabile
-@cindex @code{ORS}, variabile
-@cindex @code{BEGIN}, criterio di ricerca, variabili @code{OFS}/@code{ORS}, 
assegnare valori a
+@cindex output @subentry record
+@cindex separatore di record @subentry in output @seeentry{@code{ORS} 
(variabile)}
+@cindex @code{ORS} (variabile)
+@cindex @code{BEGIN} (regola) @subentry variabili @code{OFS}/@code{ORS}, 
assegnare valori a
 Per cambiare il tipo di separazione in output di campi e record, si impostano
 valori differenti alle variabili @code{OFS} e @code{ORS}.  Il posto pi@`u
 indicato per farlo @`e nella regola @code{BEGIN}
@@ -9951,8 +10049,8 @@ programma viene scritto tutto su un'unica riga.
 
 @node OFMT
 @section Controllare l'output di numeri con @code{print}
-@cindex numerico, formato di output
-@cindex formati numerici di output
+@cindex numerico @subentry formato di output
+@cindex formato @subentry numerico di output
 Quando si stampano valori numerici con l'istruzione @code{print},
 @command{awk} converte internamente ogni numero in una stringa di caratteri
 e stampa quella stringa.  @command{awk} usa la funzione @code{sprintf()}
@@ -9972,8 +10070,8 @@ in
 @ref{Lettere di controllo}.
 
 @cindexawkfunc{sprintf}
-@cindex @code{OFMT}, variabile
-@cindex output, specificatore di formato@comma{} @code{OFMT}
+@cindex @code{OFMT} (variabile)
+@cindex output @subentry specificatore di formato @subentry @code{OFMT}
 La variabile predefinita @code{OFMT} contiene la specifica di formato
 che @code{print} usa con @code{sprintf()} per convertire un numero in
 una stringa per poterla stampare.
@@ -9990,9 +10088,9 @@ $ @kbd{awk 'BEGIN @{}
 @end example
 
 @noindent
-@cindex angolo buio, variabile @code{OFMT}
-@cindex POSIX @command{awk}, variabile @code{OFMT} e
-@cindex variabile @code{OFMT}, POSIX @command{awk} e
+@cindex angolo buio @subentry variabile @subentry @code{OFMT}
+@cindex POSIX @command{awk} @subentry @code{OFMT} (variabile)
+@cindex variabile @subentry @code{OFMT} @subentry POSIX @command{awk} in
 Per lo standard POSIX, il comportamento di @command{awk} @`e indefinito
 se @code{OFMT} contiene qualcosa di diverso da una specifica di conversione
 di un numero in virgola mobile.
@@ -10001,10 +10099,10 @@ di un numero in virgola mobile.
 @node Printf
 @section Usare l'istruzione @code{printf} per stampe sofisticate
 
-@cindex istruzione @code{printf}
-@cindex @code{printf}, istruzione
-@cindex output, formattato
-@cindex formattare l'output
+@cindex istruzione @subentry @code{printf}
+@cindex @code{printf} (istruzione)
+@cindex output @subentry formattare
+@cindex formattare @subentry output
 Per un controllo pi@`u ampio sul formato di output di quello fornito da
 @code{print}, si pu@`o usare @code{printf}.
 Con @code{printf} si pu@`o
@@ -10024,8 +10122,8 @@ cifre stampare dopo il separatore decimale).
 @node Printf Fondamenti
 @subsection Sintassi dell'istruzione @code{printf}
 
-@cindex istruzione @code{printf}, sintassi dell'
-@cindex @code{printf}, sintassi dell'istruzione
+@cindex istruzione @subentry @code{printf} @subentry sintassi
+@cindex @code{printf} (istruzione) @subentry sintassi
 Una semplice istruzione @code{printf} @`e qualcosa di simile a questo:
 
 @example
@@ -10079,9 +10177,9 @@ in output.
 
 @node Lettere di controllo
 @subsection Lettere di controllo del formato
-@cindex istruzione @code{printf}, lettere di controllo del formato
-@cindex @code{printf}, istruzione, lettere di controllo del formato
-@cindex specificatori di formato, istruzione @code{printf}
+@cindex istruzione @subentry @code{printf} @subentry lettere di controllo del 
formato
+@cindex @code{printf} (istruzione) @subentry lettere di controllo del formato
+@cindex specificatori di formato @subentry istruzione @code{printf}
 
 Uno specificatore di formato inizia col carattere @samp{%} e termina con
 una @dfn{lettera di controllo del formato}; e dice all'istruzione
@@ -10122,8 +10220,8 @@ Stampa un numero come un carattere; quindi, 
@samp{printf "%c",
 65} stampa la lettera @samp{A}. L'output per un valore costituito da una
 stringa @`e il primo carattere della stringa stessa.
 
-@cindex angolo buio, caratteri di controllo del formato
-@cindex @command{gawk}, caratteri di controllo del formato
+@cindex angolo buio @subentry caratteri di controllo del formato
+@cindex @command{gawk} @subentry caratteri di controllo del formato
 @quotation NOTA
 Lo standard POSIX richiede che il primo carattere di una stringa sia stampato.
 In localizzazioni con caratteri multibyte, @command{gawk} tenta di
@@ -10226,8 +10324,8 @@ Questa notazione non serve per stampare alcun
 argomento e ignora eventuali modificatori.
 @end table
 
-@cindex angolo buio, caratteri di controllo del formato
-@cindex @command{gawk}, caratteri di controllo del formato
+@cindex angolo buio @subentry caratteri di controllo del formato
+@cindex @command{gawk} @subentry caratteri di controllo del formato
 @quotation NOTA
 Quando si usano lettere di controllo del formato per numeri interi
 per stampare valori esterni all'intervallo massimo disponibile nel
@@ -10255,9 +10353,9 @@ si prega di fare riferimento a quel testo.
 @node Modificatori di formato
 @subsection Modificatori per specifiche di formato @code{printf}
 
-@cindex istruzione @code{printf}, modificatori
-@cindex @code{printf}, istruzione, modificatori
-@cindex modificatori@comma{} in specificatori di formato
+@cindex istruzione @subentry @code{printf} @subentry modificatori
+@cindex @code{printf} (istruzione) @subentry modificatori
+@cindex modificatori @subentry in specificatori di formato
 Una specifica di formato pu@`o anche includere dei @dfn{modificatori} che
 possono controllare che parte stampare del valore dell'elemento, e anche
 quanto spazio utilizzare per stamparlo.
@@ -10269,18 +10367,18 @@ spazi nell'output.  Questi sono i modificatori 
previsti, nell'ordine in
 cui possono apparire:
 
 @table @asis
-@cindex differenze tra @command{awk} e @command{gawk}, tra istruzioni 
@code{print} e @code{printf}
-@cindex istruzione @code{printf}, specificatori posizionali
-@cindex @code{printf}, istruzione, specificatori posizionali
+@cindex differenze tra @command{awk} e @command{gawk} @subentry tra istruzioni 
@code{print} e @code{printf}
+@cindex istruzione @subentry @code{printf} @subentry specificatori di posizione
+@cindex @code{printf} (istruzione) @subentry specificatori di posizione
 @c the code{} does NOT start a secondary
-@cindex specificatori posizionali, istruzione @code{printf}
+@cindex specificatori di posizione @subentry istruzione @code{printf}
 @item @code{@var{N}$}
-Una costante intera seguita da un @samp{$} @`e uno @dfn{specificatore 
posizionale}.
+Una costante intera seguita da un @samp{$} @`e uno @dfn{specificatore di 
posizione}.
 Normalmente, le specifiche di formato sono applicate agli argomenti
 nell'ordine in cui appaiono nella stringa di formato.  Con uno specificatore
-posizionale, la specifica di formato @`e applicata a un argomento
+di posizione, la specifica di formato @`e applicata a un argomento
 indicato per numero, invece che a quello che
-sarebbe il prossimo argomento nella lista.  Gli specificatori posizionali
+sarebbe il prossimo argomento nella lista.  Gli specificatori di posizione
 iniziano a contare partendo da uno.  Quindi:
 
 @example
@@ -10295,7 +10393,7 @@ A prima vista, questa funzionalit@`a non sembra di 
grande utilit@`a.
 Si tratta in effetti di un'estensione @command{gawk}, pensata per essere
 usata nella traduzione di messaggi emessi in fase di esecuzione.
 @xref{Ordinamento di printf},
-che descrive come e perch@'e usare specificatori posizionali.
+che descrive come e perch@'e usare specificatori di posizione.
 Per ora li possiamo ignorare.
 
 @item - @code{-} (Segno meno)
@@ -10465,9 +10563,9 @@ printf "%" w "." p "s\n", s
 @noindent
 Questo codice non @`e di facile lettura, ma funziona.
 
-@c @cindex controlli @command @{lint}
-@cindex debug, errori fatali, @code{printf}, stringhe di formato
-@cindex POSIX @command{awk}, stringhe di formato @code{printf} e
+@c @cindex lint checks
+@cindex debug @subentry errori fatali @subentry @code{printf}, stringhe di 
formato
+@cindex POSIX @command{awk} @subentry stringhe di formato @code{printf}
 Chi programma in C probabilmente @`e abituato a specificare modificatori
 addizionali (@samp{h}, @samp{j}, @samp{l}, @samp{L}, @samp{t} e @samp{z}) nelle
 stringhe di formato di @code{printf}.  Questi modificatori non sono validi
@@ -10528,8 +10626,8 @@ programma @command{awk}:
 
 @example
 awk 'BEGIN @{ print "Nome      Numero"
-             print "----      ------" @}
-           @{ printf "%-10s %s\n", $1, $2 @}' mail-list
+     print "----      ------" @}
+   @{ printf "%-10s %s\n", $1, $2 @}' mail-list
 @end example
 
 L'esempio precedente usa sia l'istruzione @code{print} che l'istruzione
@@ -10538,8 +10636,8 @@ risultati usando solo istruzioni @code{printf}:
 
 @example
 awk 'BEGIN @{ printf "%-10s %s\n", "Nome", "Numero"
-             printf "%-10s %s\n", "----", "------" @}
-           @{ printf "%-10s %s\n", $1, $2 @}' mail-list
+     printf "%-10s %s\n", "----", "------" @}
+   @{ printf "%-10s %s\n", $1, $2 @}' mail-list
 @end example
 
 @noindent
@@ -10552,18 +10650,19 @@ evidenziare memorizzandola in una variabile, 
cos@`{@dotless{i}}:
 
 @example
 awk 'BEGIN @{ format = "%-10s %s\n"
-             printf format, "Nome", "Numero"
-             printf format, "----", "------" @}
-           @{ printf format, $1, $2 @}' mail-list
+     printf format, "Nome", "Numero"
+     printf format, "----", "------" @}
+   @{ printf format, $1, $2 @}' mail-list
 @end example
 
 
 @node Ridirezione
 @section Ridirigere l'output di @code{print} e @code{printf}
 
-@cindex output, ridirezione
+@cindex output @subentry ridirezione
 @cindex ridirezione dell'output
-@cindex @option{--sandbox}, opzione, ridirezione dell'output con @code{print}, 
@code{printf}
+@cindex @option{--sandbox} (opzione) @subentry ridirezione dell'output con 
@code{print}, @code{printf}
+@cindex opzione @subentry @option{--sandbox} @subentry ridirezione dell'output 
con @code{print}, @code{printf}
 Finora, l'output di @code{print} e @code{printf} @`e stato diretto
 verso lo standard output,
 che di solito @`e lo schermo.  Sia @code{print} che @code{printf} possono
@@ -10582,8 +10681,8 @@ comandi della shell, l'unica differenza @`e che si 
trovano all'interno di
 un programma @command{awk}.
 
 @c the commas here are part of the see also
-@cindex istruzione @code{print}, si veda anche ridirezione dell'output
-@cindex istruzione @code{printf}, si veda anche ridirezione dell'output
+@cindex istruzione @subentry @code{print} @seealso{ridirezione dell'output}
+@cindex istruzione @subentry @code{printf} @seealso{ridirezione dell'output}
 Ci sono quattro forme di ridirezione dell'output:
 output scritto su un file,
 output aggiunto in fondo a un file,
@@ -10593,9 +10692,9 @@ Vengono descritti per l'istruzione @code{print},
 ma funzionano allo stesso modo per @code{printf}:
 
 @table @code
-@cindex @code{>} (parentesi acuta destra), operatore @code{>} (I/O)
-@cindex parentesi acuta destra (@code{>}), operatore @code{>} (I/O)
-@cindex operatori, input/output
+@cindex @code{>} (parentesi acuta destra) @subentry operatore @code{>} (I/O)
+@cindex parentesi @subentry acuta destra (@code{>}) @subentry operatore 
@code{>} (I/O)
+@cindex operatori @subentry input/output
 @item print @var{elementi} > @var{output-file}
 Questa ridirezione stampa gli elementi nel file di output chiamato
 @var{output-file}.  Il @value{FN} @var{output-file} pu@`o essere
@@ -10634,8 +10733,8 @@ $ @kbd{cat lista-nomi}
 @noindent
 Ogni file in output contiene un nome o un numero su ogni riga.
 
-@cindex @code{>} (parentesi acuta destra), operatore @code{>>} (I/O)
-@cindex parentesi acuta destra (@code{>}), operatore @code{>>} (I/O)
+@cindex @code{>} (parentesi acuta destra) @subentry operatore @code{>>} (I/O)
+@cindex parentesi @subentry acuta destra (@code{>}) @subentry operatore 
@code{>>} (I/O)
 @item print @var{elementi} >> @var{output-file}
 Questa ridirezione stampa gli elementi in un file di output preesistente,
 di nome @var{output-file}.  La differenza tra questa ridirezione e quella
@@ -10644,9 +10743,9 @@ con un solo @samp{>} @`e che il precedente contenuto 
(se esiste) di
 aggiunto in fondo al file.
 Se @var{output-file} non esiste, viene creato.
 
-@cindex @code{|} (barra verticale), operatore @code{|} (I/O)
-@cindex @dfn{pipe}, output
-@cindex output, a @dfn{pipe}
+@cindex @code{|} (barra verticale) @subentry operatore @code{|} (I/O)
+@cindex @dfn{pipe} @subentry output
+@cindex output @subentry a @dfn{pipe}
 @item print @var{elementi} | @var{comando}
 @`E possibile inviare output a un altro programma usando una @dfn{pipe}
 invece di inviarlo a un file.   Questa ridirezione apre una @dfn{pipe} verso
@@ -10670,8 +10769,8 @@ alone for now and let's hope no-one notices.
 @example
 @group
 awk '@{ print $1 > "nomi.non.ordinati"
-       comando = "sort -r > nomi.ordinati"
-       print $1 | comando @}' mail-list
+comando = "sort -r > nomi.ordinati"
+print $1 | comando @}' mail-list
 @end group
 @end example
 
@@ -10704,9 +10803,9 @@ perch@'e (se si vuole riusare lo stesso file o comando)
 esattamente nello stesso modo.
 
 @cindex coprocessi
-@cindex @code{|} (barra verticale), operatore @code{|&} (I/O)
-@cindex operatori, input/output
-@cindex differenze tra @command{awk} e @command{gawk}, operatori di 
input/output
+@cindex @code{|} (barra verticale) @subentry operatore @code{|&} (I/O)
+@cindex operatori @subentry input/output
+@cindex differenze tra @command{awk} e @command{gawk} @subentry operatori di 
input/output
 @item print @var{elementi} |& @var{comando}
 Questa ridirezione stampa gli elementi nell'input di @var{comando}.
 La differenza tra questa ridirezione  e quella
@@ -10737,7 +10836,7 @@ il particolare @var{file} o @var{comando} che si @`e 
specificato non @`e gi@`a
 stato utilizzato in scrittura dal programma o se @`e stato chiuso
 dopo l'ultima scrittura.
 
-@cindex debug, stampare
+@cindex debug @subentry stampare
 @`E un errore comune usare la ridirezione @samp{>} per la prima istruzione
 @code{print} verso un file, e in seguito usare @samp{>>} per le successive
 scritture in output:
@@ -10762,10 +10861,10 @@ Tuttavia il mischiare gli operatori per lo stesso 
file @`e sintomo di uno
 stile di programmazione inelegante, e pu@`o causare confusione in chi legge
 il programma.)
 
-@cindex differenze tra @command{awk} e @command{gawk}, limitazioni di 
implementazione
-@cindex problemi di implementazione, @command{gawk}, limitazioni
-@cindex @command{awk}, problemi di implementazione, @dfn{pipe}
-@cindex @command{gawk}, problemi di implementazione, @dfn{pipe}
+@cindex differenze tra @command{awk} e @command{gawk} @subentry limitazioni di 
implementazione
+@cindex problemi di implementazione @subentry @command{gawk} @subentry 
limitazioni
+@cindex @command{awk} @subentry problemi di implementazione @subentry 
@dfn{pipe}
+@cindex @command{gawk} @subentry problemi di implementazione @subentry 
@dfn{pipe}
 @ifnotinfo
 Come visto in precedenza
 (@pxref{Note su getline}),
@@ -10786,7 +10885,7 @@ aprire tante @dfn{pipeline} quante ne consente il 
sistema operativo su cui
 viene eseguito.
 
 @sidebar Inviare @dfn{pipe} alla @command{sh}
-@cindex shell, inviare comandi tramite @dfn{pipe} alla
+@cindex shell @subentry inviare comandi tramite @dfn{pipe} alla
 
 Una maniera particolarmente efficace di usare la ridirezione @`e quella di
 preparare righe di comando da passare
@@ -10819,13 +10918,13 @@ righe di comando da passare alla shell.
 @node FD speciali
 @section File speciali per flussi standard di dati pre-aperti
 @cindex standard input
-@cindex input, standard
+@cindex input @subentry standard
 @cindex standard output
-@cindex output, standard
-@cindex errore, output
+@cindex output @subentry standard
+@cindex errore @subentry in output
 @cindex standard error
 @cindex descrittori di file
-@cindex file, descrittori, si veda descrittori di file
+@cindex file @subentry descrittori @seeentry{descrittori di file}
 
 I programmi in esecuzione hanno convenzionalmente tre flussi di input e
 output a disposizione, gi@`a aperti per la lettura e la scrittura.
@@ -10843,9 +10942,9 @@ la ragione per cui ci sono due flussi distinti,
 standard output e standard error, @`e per poterli ridirigere indipendentemente
 l'uno dall'altro.
 
-@cindex differenze tra @command{awk} e @command{gawk}, messaggi di errore
+@cindex differenze tra @command{awk} e @command{gawk} @subentry messaggi di 
errore
 @cindex gestione errori
-@cindex errori, gestione degli
+@cindex errori @subentry gestione degli
 Nelle tradizionali implementazioni di @command{awk}, il solo modo per
 scrivere un messaggio di errore allo
 standard error in un programma @command{awk} @`e il seguente:
@@ -10892,15 +10991,12 @@ direttamente il descrittore di file identificato dal 
@value{FN}.  Questi
 @command{gawk} @`e disponibile, e non solo in quelli che aderiscono allo
 standard POSIX:
 
-@cindex estensioni comuni, file speciale @code{/dev/stdin}
-@cindex estensioni comuni, file speciale @code{/dev/stdout}
-@cindex estensioni comuni, file speciale @code{/dev/stderr}
-@c @cindex comuni, estensioni@comma{} file speciale @code{/dev/stdin}
-@c @cindex comuni, estensioni@comma{} file speciale @code{/dev/stdout}
-@c @cindex comuni, estensioni@comma{} file speciale @code{/dev/stderr}
-@cindex nomi di file, flussi standard in @command{gawk}
+@cindex estensioni comuni @subentry file speciale @code{/dev/stdin}
+@cindex estensioni comuni @subentry file speciale @code{/dev/stdout}
+@cindex estensioni comuni @subentry file speciale @code{/dev/stderr}
+@cindex nomi @subentry di file @subentry flussi standard in @command{gawk}
 @cindex @code{/dev/@dots{}}, file speciali
-@cindex file, file speciali @code{/dev/@dots{}}
+@cindex file @subentry speciali @subentry @code{/dev/@dots{}}
 @cindex @code{/dev/fd/@var{N}}, file speciali (in @command{gawk})
 @table @file
 @item /dev/stdin
@@ -10920,7 +11016,7 @@ la maniera corretta di scrivere un messaggio di errore 
diviene quindi:
 print "Ho trovato un errore grave!" > "/dev/stderr"
 @end example
 
-@cindex debug, doppio apice con nomi di file
+@cindex debug @subentry doppio apice con nomi di file
 Si noti l'uso di doppi apici per racchiudere il @value{FN}.
 Come per ogni altra ridirezione, il valore dev'essere una stringa.
 @`E un errore comune omettere i doppi apici, il che conduce a
@@ -10933,7 +11029,7 @@ invocato con l'opzione @option{--traditional} 
(@pxref{Opzioni}).
 
 @node File speciali
 @section @value{FFNS} speciali in @command{gawk}
-@cindex @command{gawk}, nomi di file in
+@cindex @command{gawk} @subentry nomi di file in
 
 Oltre all'accesso a standard input, standard output e standard error,
 @command{gawk} consente di accedere a ogni descrittore di file aperto.
@@ -10975,8 +11071,8 @@ oltre il due, effettivamente chiude il descrittore di 
file specificato.
 
 @node Reti speciali
 @subsection File speciali per comunicazioni con la rete
-@cindex reti, funzionalit@`a per
-@cindex TCP/IP, funzionalit@`a per
+@cindex reti @subentry funzionalit@`a per
+@cindex TCP/IP @subentry funzionalit@`a per
 
 I programmi @command{gawk}
 possono aprire una connessione bidirezionale
@@ -11005,8 +11101,9 @@ Sono qui elencate alcune cose da tener presente usando i
 @value{FNS} speciali forniti da @command{gawk}:
 
 @itemize @value{BULLET}
-@cindex modalit@`a compatibile di (@command{gawk}), nomi di file
-@cindex nomi di file, nella modalit@`a compatibile di @command{gawk}
+@cindex modalit@`a compatibile di (@command{gawk}) @subentry nomi di file
+@cindex nomi @subentry di file @subentry nella modalit@`a compatibile di 
@command{gawk}
+@cindex modalit@`a POSIX 
 @item
 Il riconoscimento dei @value{FNS} per i tre file standard pre-aperti
 @`e disabilitato solo in modalit@`a POSIX.
@@ -11030,12 +11127,12 @@ Se lo si fa, il comportamente risultante @`e 
imprevedibile.
 
 @node Chiusura file e @dfn{pipe}
 @section Chiudere ridirezioni in input e in output
-@cindex output, file in, si veda file in output
-@cindex input, file in, chiusura
-@cindex output, file in, chiusura
-@cindex @dfn{pipe}, chiusura
-@cindex coprocessi, chiusura
-@cindex @code{getline}, comando, coprocessi@comma{} usare dal
+@cindex output @subentry file in
+@cindex input @subentry chiusura
+@cindex file @subentry in output @subentry chiusura di
+@cindex @dfn{pipe} @subentry chiusura
+@cindex coprocessi @subentry chiusura
+@cindex @code{getline} (comando) @subentry coprocessi, usare da
 
 Se lo stesso @value{FN} o lo stesso comando di shell @`e usato con 
@code{getline}
 pi@`u di una volta durante l'esecuzione di un programma @command{awk}
@@ -11143,10 +11240,10 @@ programma chiude la @dfn{pipe} dopo ogni riga 
dell'output, allora ogni riga
 costituisce un messaggio separato.
 @end itemize
 
-@cindex differenze tra @command{awk} e @command{gawk}, funzione @code{close()}
-@cindex portabilit@`a, funzione @code{close()}
-@cindex funzione @code{close()}, portabilit@`a
-@cindex @code{close()}, funzione, portabilit@`a
+@cindex differenze tra @command{awk} e @command{gawk} @subentry funzione 
@code{close()}
+@cindex portabilit@`a @subentry funzione @code{close()}
+@cindex funzione @subentry @code{close()} @subentry portabilit@`a
+@cindex @code{close()} (funzione) @subentry portabilit@`a
 Se si usano file in numero superiore a quelli che il sistema permette
 di mantenere aperti,
 @command{gawk} tenta di riutilizzare i file aperti disponibili fra
@@ -11161,12 +11258,12 @@ consideri qualcosa del tipo:
 
 @example
 @{
-    @dots{}
-    comando = ("grep " $1 " /qualche/file | un_mio_programma -q " $3)
-    while ((comando | getline) > 0) @{
-        @var{elabora output di} comando
-    @}
-    # qui serve close(comando)
+@dots{}
+comando = ("grep " $1 " /qualche/file | un_mio_programma -q " $3)
+while ((comando | getline) > 0) @{
+@var{elabora output di} comando
+@}
+# qui serve close(comando)
 @}
 @end example
 
@@ -11201,7 +11298,7 @@ stato aperto con una ridirezione,
 e per questo @command{awk} silenziosamente non fa nulla, tranne impostare un
 codice di ritorno negativo.
 
-@cindex @code{|} (barra verticale), operatore @code{|&} (I/O), 
@dfn{pipe}@comma{} chiusura
+@cindex @code{|} (barra verticale) @subentry operatore @code{|&} (I/O) 
@subentry @dfn{pipe}, chiusura
 Quando si usa l'operatore @samp{|&} per comunicare con un coprocesso,
 @`e talora utile essere in grado di chiudere un lato della @dfn{pipe}
 bidirezionale, senza chiudere l'altro lato.
@@ -11217,12 +11314,12 @@ rinviata alla
 che ne parla pi@`u dettagliatamente e fornisce un esempio.
 
 @sidebar Usare il codice di ritorno di @code{close()}
-@cindex angolo buio, funzione @code{close()}
-@cindex funzione @code{close()}, codice di ritorno
-@cindex @code{close()}, funzione, codice di ritorno
-@cindex codice di ritorno@comma{} funzione @code{close()}
-@cindex differenze tra @command{awk} e @command{gawk}, funzione @code{close()}
-@cindex Unix @command{awk}, funzione @code{close()} e
+@cindex angolo buio @subentry funzione @subentry @code{close()}
+@cindex funzione @subentry @code{close()} @subentry codice di ritorno
+@cindex @code{close()} (funzione) @subentry codice di ritorno
+@cindex codice di ritorno @subentry funzione @code{close()}
+@cindex differenze tra @command{awk} e @command{gawk} @subentry funzione 
@code{close()}
+@cindex Unix @command{awk} @subentry funzione @code{close()} e
 
 In molte versioni di Unix @command{awk}, la funzione @code{close()}
 @`e in realt@`a un'istruzione.
@@ -11236,9 +11333,9 @@ comando | getline info
 retval = close(comando)  # errore di sintassi in parecchi Unix awk
 @end example
 
-@cindex @command{gawk}, variabile @code{ERRNO} in
-@cindex variabile @code{ERRNO}, con funzione @command{close()}
-@cindex @code{ERRNO}, variabile, con funzione @command{close()}
+@cindex @command{gawk} @subentry variabile @subentry @code{ERRNO} in
+@cindex variabile @subentry @code{ERRNO} @subentry con funzione 
@command{close()}
+@cindex @code{ERRNO} (variabile) @subentry con funzione @command{close()}
 @command{gawk} gestisce @code{close()} come una funzione.
 Il codice di ritorno @`e @minus{}1 se l'argomento designa un file
 che non era mai stato aperto con una ridirezione, o se c'@`e un problema di
@@ -11269,6 +11366,8 @@ Questo valore @`e zero se la chiusura riesce, o 
@minus{}1 se non riesce.
 @end multitable
 @end float
 
+@cindex POSIX @subentry modalit@`a
+@cindex modalit@`a POSIX 
 Lo standard POSIX @`e molto generico; dice che @code{close()}
 restituisce zero se @`e terminata correttamente, e un valore diverso da zero
 nell'altro caso.  In generale,
@@ -11350,6 +11449,8 @@ o @code{PROCINFO["/dev/stdout", "NONFATAL"]}.
 Per lo standard error, occorre
 usare @code{PROCINFO["/dev/stderr", "NONFATAL"]}.
 
+@cindex @env{GAWK_SOCK_RETRIES} (variabile d'ambiente)
+@cindex variabili d'ambiente @subentry @env{GAWK_SOCK_RETRIES}
 Se si tenta di aprire un @dfn{socket} TCP/IP (@pxref{Reti TCP/IP}),
 @command{gawk} tenta di farlo per un certo numero di volte.
 La variabile d'ambiente @env{GAWK_SOCK_RETRIES}
@@ -11492,7 +11593,7 @@ che forniscono i valori usati nelle espressioni.
 @node Costanti
 @subsection Espressioni costanti
 
-@cindex costanti, tipi di
+@cindex costanti @subentry tipi di
 
 Il tipo di espressione pi@`u semplice @`e una @dfn{costante}, che ha sempre lo
 stesso valore.  Ci sono tre tipi di costanti: numeriche, di stringa e di
@@ -11512,8 +11613,8 @@ avere forme diverse, ma sono memorizzate internamente 
sempre allo stesso modo.
 @node Costanti scalari
 @subsubsection Costanti numeriche e stringhe
 
-@cindex costanti numeriche
-@cindex numeriche, costanti
+@cindex costanti @subentry numeriche
+@cindex numeriche @subentry costanti
 Una @dfn{costante numerica} @`e un numero.  Questo numero pu@`o essere un
 numero intero, una frazione decimale o un numero in notazione scientifica
 (esponenziale).@footnote{La rappresentazione interna di tutti i numeri,
@@ -11529,7 +11630,8 @@ valore:
 1050e-1
 @end example
 
-@cindex costanti stringa
+@cindex costanti @subentry stringa
+@cindex stringa @subentry costante
 Una @dfn{costante stringa} @`e formata da una sequenza di caratteri racchiusi 
tra
 doppi apici.  Per esempio:
 
@@ -11538,8 +11640,9 @@ doppi apici.  Per esempio:
 @end example
 
 @noindent
-@cindex differenze tra @command{awk} e @command{gawk}, stringhe
-@cindex stringhe, limitazioni della lunghezza
+@cindex differenze tra @command{awk} e @command{gawk} @subentry stringhe
+@cindex stringa @subentry limitazioni della lunghezza
+@cindex ASCII
 rappresenta la stringa il cui contenuto @`e la parola @samp{pappagallo}.
 Le stringhe in
 @command{gawk} possono essere di qualsiasi lunghezza, e possono contenere
@@ -11585,9 +11688,9 @@ $ @kbd{gawk 'BEGIN @{ print "ciao, }
 @print{} gawk: riga com.:1:                ^ syntax error
 @end example
 
-@cindex angolo buio, stringhe, continuazione su pi@`u righe
-@cindex stringhe, continuazione su pi@`u righe
-@cindex differenze tra @command{awk} e @command{gawk}, stringhe
+@cindex angolo buio @subentry stringhe @subentry continuazione su pi@`u righe
+@cindex stringa @subentry continuazione su pi@`u righe
+@cindex differenze tra @command{awk} e @command{gawk} @subentry stringhe
 Sebbene POSIX non definisca cosa succede usando un carattere
 protetto di avanzamento riga, come nell'esempio in linguaggio C
 visto sopra, tutte le versioni di @command{awk} consentono di
@@ -11604,6 +11707,7 @@ $ @kbd{gawk 'BEGIN @{ print "ciao, \}
 @print{} ciao, mondo
 @end example
 
+@cindex modalit@`a POSIX 
 In modalit@`a POSIX (@pxref{Opzioni}), @command{gawk} non consente
 caratteri protetti di avanzamento riga.  Altrimenti, il
 comportamento @`e quello descritto sopra.
@@ -11621,10 +11725,10 @@ $ @kbd{nawk 'BEGIN @{ print "ciao, \}
 
 @node Numeri non-decimali
 @subsubsection Numeri ottali ed esadecimali
-@cindex ottali, numeri
-@cindex esadecimali, numeri
-@cindex numeri ottali
-@cindex numeri esadecimali
+@cindex ottali @subentry numeri
+@cindex esadecimali @subentry numeri
+@cindex numeri @subentry ottali
+@cindex numeri @subentry esadecimali
 
 In @command{awk}, tutti i numeri sono espressi nel sistema decimale (cio@`e a
 base 10).
@@ -11671,8 +11775,8 @@ quando si lavora con dati che non possono essere 
rappresentati
 convenientemente come caratteri o come numeri regolari, come i dati binari di
 vario tipo.
 
-@cindex @command{gawk}, numeri ottali e
-@cindex @command{gawk}, numeri esadecimali e
+@cindex @command{gawk} @subentry numeri ottali e
+@cindex @command{gawk} @subentry numeri esadecimali e
 @command{gawk} permette l'uso di costanti ottali ed esadecimali nel testo di
 un programma.  Comunque, se numeri non-decimali sono presenti tra i dati in
 input, essi non sono trattati in maniera speciale; trattarli in modo speciale
@@ -11701,12 +11805,12 @@ $ @kbd{gawk 'BEGIN @{ print "021 @`e", 021 ; print 
018 @}'}
 @print{} 18
 @end example
 
-@cindex modalit@`a compatibile di (@command{gawk}), numeri ottali
-@cindex numeri ottali nella modalit@`a compatibile di (@command{gawk})
-@cindex modalit@`a compatibile di (@command{gawk}), numeri esadecimali
-@cindex numeri esadecimali nella modalit@`a compatibile di (@command{gawk})
-@cindex compatibile, modalit@`a (@command{gawk}), numeri ottali
-@cindex compatibile, modalit@`a (@command{gawk}), numeri esadecimali
+@cindex modalit@`a compatibile di (@command{gawk}) @subentry numeri ottali
+@cindex numeri @subentry ottali @subentry nella modalit@`a compatibile di 
(@command{gawk})
+@cindex modalit@`a compatibile di (@command{gawk}) @subentry numeri esadecimali
+@cindex numeri @subentry esadecimali @subentry nella modalit@`a compatibile di 
(@command{gawk})
+@cindex compatibile @subentry modalit@`a (@command{gawk}) @subentry numeri 
ottali
+@cindex compatibile @subentry modalit@`a (@command{gawk}) @subentry numeri 
esadecimali
 Le costanti ottali ed esadecimali nel codice sorgente sono un'estensione di
 @command{gawk}.  Se @command{gawk} @`e in modalit@`a compatibile
 (@pxref{Opzioni}),
@@ -11730,12 +11834,12 @@ $ @kbd{gawk 'BEGIN @{ printf "0x11 vale <%s>\n", 0x11 
@}'}
 @node Costanti come espressioni regolari
 @subsubsection Costanti fornite tramite espressioni regolari
 
-@cindex @dfn{regexp}, costanti
-@cindex costanti @dfn{regexp}
-@cindex @code{~} (tilde), operatore @code{~}
-@cindex tilde (@code{~}), operatore @code{~}
-@cindex @code{!} (punto esclamativo), operatore @code{!~}
-@cindex punto esclamativo (@code{!}), operatore @code{!~}
+@cindex @dfn{regexp} @subentry costanti
+@cindex costanti @subentry @dfn{regexp}
+@cindex @code{~} (tilde) @subentry operatore @code{~}
+@cindex tilde (@code{~}) @subentry operatore @code{~}
+@cindex @code{!} (punto esclamativo) @subentry operatore @code{!~}
+@cindex punto esclamativo (@code{!}) @subentry operatore @code{!~}
 Una @dfn{costante regexp} @`e la descrizione di un'espressione regolare
 delimitata
 da barre, come @code{@w{/^inizio e fine$/}}.  La maggior parte delle
@@ -11770,7 +11874,7 @@ un'estensione @command{gawk}.
 @node Costanti @dfn{regexp} normali
 @subsubsection Costanti @dfn{regexp} normali in @command{awk}.
 
-@cindex angolo buio, costanti @dfn{regexp}
+@cindex angolo buio @subentry costanti @dfn{regexp}
 Quand'@`e usata a destra degli operatori @samp{~} o @samp{!~},
 una costante @dfn{regexp} rappresenta semplicemente l'espressione regolare che
 dev'essere confrontata.  Comunque, le costanti @dfn{regexp} (come 
@code{/pippo/})
@@ -11808,8 +11912,8 @@ if (/pippo/ ~ $1) print "trovato pippo"
 
 @c @cindex automatic warnings
 @c @cindex warnings, automatic
-@cindex @command{gawk}, costanti @dfn{regexp} e
-@cindex costanti @dfn{regexp}, in @command{gawk}
+@cindex @command{gawk} @subentry costanti @dfn{regexp} e
+@cindex costanti @subentry @dfn{regexp} @subentry in @command{gawk}
 @noindent
 Questo codice ``ovviamente'' intende verificare se @code{$1} contiene
 l'espressione regolare @code{/pippo/}.  Ma in effetti l'espressione
@@ -11831,8 +11935,8 @@ confronta = /pippo/
 assegna zero o uno alla variabile @code{confronta}, a seconda
 del contenuto del record in input corrente.
 
-@cindex differenze tra @command{awk} e @command{gawk}, costanti @dfn{regexp}
-@cindex angolo buio, costanti @dfn{regexp}, come argomenti a funzioni definite 
dall'utente
+@cindex differenze tra @command{awk} e @command{gawk} @subentry costanti 
@dfn{regexp}
+@cindex angolo buio @subentry costanti @dfn{regexp} @subentry come argomenti a 
funzioni definite dall'utente
 @cindexgawkfunc{gensub}
 @cindexawkfunc{sub}
 @cindexawkfunc{gsub}
@@ -11929,7 +12033,7 @@ sarebbe bello poter avere costanti @dfn{regexp} che sono
 una @dfn{regexp} utile per effettuare dei confronti,
 e non una semplice espressione regolare.
 
-@cindex valori, @dfn{regexp}
+@cindex valori @subentry @dfn{regexp}
 @command{gawk} prevede questa funzionalit@`a.  Un'espressione regolare
 fortemente tipizzata @`e molto simile a un'espressione regolare normale,
 tranne per il fatto di essere preceduta dal simbolo @samp{@@}:
@@ -12000,8 +12104,8 @@ al valore di stringa del testo della @dfn{regexp} 
originale.
 @node Variabili
 @subsection Variabili
 
-@cindex variabili definite dall'utente
-@cindex definite dall'utente, variabili
+@cindex variabili @subentry definite dall'utente
+@cindex definite dall'utente @subentry @dfn{Si veda} variabili definite 
dall'utente
 Le @dfn{variabili} consentono di memorizzare valori in un certo punto di un
 programma, per usarli pi@`u tardi in un'altra parte del programma.  Le 
variabili
 possono essere gestite interamente all'interno del testo del programma, ma
@@ -12042,8 +12146,8 @@ contenuto dei loro parametri che sono
 costituiti da vettori
 (@pxref{Funzioni per stringhe}).
 
-@cindex variabili, predefinite
-@cindex variabili, inizializzazione
+@cindex variabili @subentry predefinite
+@cindex variabili @subentry inizializzazione
 Alcune variabili hanno un significato speciale predefinito, come @code{FS}
 (il separatore di campo) e @code{NF} (il numero di campi nel record di input
 corrente).  @xref{Variabili predefinite} per un elenco delle variabili
@@ -12063,8 +12167,8 @@ tradizionali.
 
 @node Opzioni di assegnamento
 @subsubsection Assegnare una variabile dalla riga di comando
-@cindex variabili, assegnare da riga di comando
-@cindex riga di comando, variabili@comma{} assegnare da
+@cindex variabili @subentry assegnare da riga di comando
+@cindex riga di comando @subentry variabili @subentry assegnare da
 
 Si pu@`o impostare qualsiasi variabile @command{awk} includendo un
 @dfn{assegnamento di variabile} tra gli argomenti sulla riga di comando quando
@@ -12075,7 +12179,8 @@ Tale assegnamento ha la seguente forma:
 @var{variabile}=@var{testo}
 @end example
 
-@cindex @option{-v}, opzione
+@cindex @option{-v} (opzione)
+@cindex opzione @subentry @option{-v}
 @noindent
 Con questo assegnamento, una variabile viene impostata o all'inizio
 dell'esecuzione di @command{awk} o tra la lettura di un file in input e il
@@ -12120,7 +12225,7 @@ $ @kbd{awk '@{ print $n @}' n=4 inventory-shipped n=2 
mail-list}
 @dots{}
 @end example
 
-@cindex angolo buio, argomenti da riga di comando
+@cindex angolo buio @subentry argomenti da riga di comando
 Gli argomenti da riga di comando sono resi disponibili dal programma
 @command{awk} nel vettore @code{ARGV} per poter essere esaminati esplicitamente
 (@pxref{ARGC e ARGV}).
@@ -12165,10 +12270,10 @@ questa @value{SECTION} tratta di quest'importante 
sfaccettatura di @command{awk}
 @node Stringhe e numeri
 @subsubsection Come @command{awk} converte tra stringhe e numeri
 
-@cindex conversione da stringhe a numeri
-@cindex stringhe, conversione
-@cindex numeri, conversione in stringhe
-@cindex conversione da numeri a stringhe
+@cindex conversione @subentry da stringa a numero
+@cindex stringa @subentry conversione
+@cindex numeri @subentry conversione in stringhe
+@cindex conversione @subentry da numero a stringa
 Le stringhe sono convertite in numeri e i numeri sono convertiti in stringhe,
 se il contesto del programma @command{awk} lo richiede.  Per esempio, se il
 valore di @code{pippo} o @code{pluto} nell'espressione @samp{pippo + pluto}
@@ -12189,9 +12294,9 @@ variabili @code{due} e @code{tre} sono convertiti in 
stringhe e
 concatenati insieme.  La stringa risultante @`e riconvertita nel
 numero 23, al quale poi viene aggiunto 4.
 
-@cindex stringa nulla, conversione da tipo numerico a tipo stringa
-@cindex conversione di tipo variabile
-@cindex variabile, conversione di tipo
+@cindex stringa nulla @subentry conversione da tipo numerico a tipo stringa
+@cindex conversione @subentry di tipo di variabile
+@cindex variabili @subentry conversione di tipo
 Se, per qualche ragione, si vuole forzare la conversione di un numero in
 una stringa, basta concatenare a quel numero la stringa nulla, @code{""}.
 Per forzare la conversione di una stringa in un numero, basta aggiungere zero
@@ -12202,7 +12307,7 @@ qualsiasi prefisso numerico della stringa come numero:
 Le stringhe che non possono essere interpretate come numeri validi vengono
 convertite al valore zero.
 
-@cindex @code{CONVFMT}, variabile
+@cindex @code{CONVFMT} (variabile)
 Il modo esatto in cui i numeri sono convertiti in stringhe @`e controllato 
dalla
 variabile predefinita di @command{awk} @code{CONVFMT}
 (@pxref{Variabili predefinite}).  I numeri vengono convertiti usando la
@@ -12218,7 +12323,7 @@ normalmente bastano 17 cifre per esprimere esattamente 
il valore di un numero
 in virgola mobile.@footnote{Per casi eccezionali possono essere richieste fino
 a 752 cifre (!), non sembra che sia il caso di preoccuparsene qui.}
 
-@cindex angolo buio, variabile @code{CONVFMT}
+@cindex angolo buio @subentry variabile @subentry @code{CONVFMT}
 Si possono avere strani risultati se si imposta @code{CONVFMT} a una stringa
 che non indica a @code{sprintf()} come formattare i numeri in virgola mobile
 in un modo utile.  Per esempio, se ci si dimentica la @samp{%} nel formato,
@@ -12239,10 +12344,10 @@ b = a ""
 @value{DARKCORNER}
 
 @sidebar @command{awk} prima di POSIX usava @code{OFMT} per la conversione di 
stringhe
-@cindex POSIX @command{awk}, variabile @code{OFMT} e
-@cindex @code{OFMT}, variabile
-@cindex portabilit@`a, nuovo @command{awk} vs.@: vecchio @command{awk}
-@cindex @command{awk}, nuovo vs.@: vecchio, variabile @code{OFMT}
+@cindex POSIX @command{awk} @subentry @code{OFMT} (variabile)
+@cindex @code{OFMT} (variabile)
+@cindex portabilit@`a @subentry nuovo @command{awk} vs.@: vecchio @command{awk}
+@cindex @command{awk} @subentry nuovo vs.@: vecchio @subentry variabile 
@code{OFMT}
 Prima dello standard POSIX, @command{awk} usava il valore di @code{OFMT} per
 convertire i numeri in stringhe.  @code{OFMT} specifica il formato di output da
 usare per la stampa dei numeri con @code{print}.  @code{CONVFMT} fu introdotto
@@ -12257,7 +12362,7 @@ per separare la semantica della conversione dalla 
semantica della stampa.  Sia
 @subsubsection Le localizzazioni possono influire sulle conversioni
 
 Il luogo dove si @`e pu@`o avere importanza quando si tratta di convertire 
numeri e
-stringhe.  La lingua e i caratteri---la @dfn{localizzazione}---possono
+stringhe.  La lingua e i caratteri --- la @dfn{localizzazione} --- possono
 influire sui formati numerici.  In particolare, per i programmi @command{awk},
 influiscono sui caratteri separatore decimale e separatore delle migliaia.
 La localizzazione @code{"C"}, e la maggior parte delle localizzazioni inglesi,
@@ -12268,7 +12373,7 @@ europee e non inglesi usano la virgola (@samp{,}) come 
separatore dei decimali.
 Le localizzazioni europee spesso usano o lo spazio o il punto come separatore
 delle migliaia, all'occorrenza.
 
-@cindex angolo buio, carattere di separazione dei decimali nelle localizzazioni
+@cindex angolo buio @subentry carattere di separazione dei decimali nelle 
localizzazioni
 Lo standard POSIX prevede che @command{awk} usi sempre il punto come separatore
 dei decimali nel codice sorgente del programma @command{awk}, e per
 gli assegnamenti di variabile da riga di comando (@pxref{Altri argomenti}).
@@ -12299,6 +12404,7 @@ normale, @command{gawk} tratta @samp{4,321} come 4, 
mentre nella localizzazione
 danese @`e trattato come numero completo comprendente la parte frazionaria,
 4.321.
 
+@cindex modalit@`a POSIX 
 Alcune delle prime versioni di @command{gawk} si conformavano completamente con
 quest'aspetto dello standard.  Tuttavia, molti utenti di localizzazioni non
 inglesi si lamentavano di questo comportamento, perch@'e i loro dati usavano il
@@ -12355,8 +12461,8 @@ dei valori forniti da costanti e variabili.
 
 @node Operatori aritmetici
 @subsection Operatori aritmetici
-@cindex aritmetici, operatori
-@cindex operatori aritmetici
+@cindex aritmetici @subentry operatori
+@cindex operatori @subentry aritmetici
 @c @cindex addition
 @c @cindex subtraction
 @c @cindex multiplication
@@ -12395,8 +12501,8 @@ La lista seguente elenca gli operatori aritmetici in 
@command{awk},
 in ordine di precedenza, da quella pi@`u alta a quella pi@`u bassa:
 
 @table @code
-@cindex estensioni comuni, operatore @code{**}
-@cindex POSIX @command{awk}, operatori aritmetici e
+@cindex estensioni comuni @subentry operatore @code{**}
+@cindex POSIX @command{awk} @subentry operatori aritmetici
 @item @var{x} ^ @var{y}
 @itemx @var{x} ** @var{y}
 Elevamento a potenza; @var{x} elevato alla potenza @var{y}.  @samp{2 ^ 3}
@@ -12412,12 +12518,12 @@ Pi@`u unario; l'espressione @`e convertita in un 
numero.
 @item @var{x} * @var{y}
 Moltiplicazione.
 
-@cindex risoluzione di problemi, divisione
-@cindex problemi, risoluzione di, divisione
+@cindex risoluzione di problemi @subentry divisione
+@cindex problemi @subentry risoluzione di @subentry divisione
 @cindex divisione
 @item @var{x} / @var{y}
 Divisione;  poich@'e tutti i numeri in @command{awk} sono numeri in virgola
-mobile, il risultato @emph{non} @`e arrotondato all'intero---@samp{3 / 4} ha il
+mobile, il risultato @emph{non} @`e arrotondato all'intero --- @samp{3 / 4} ha 
il
 valore di 0.75.  (Un errore comune, specialmente tra i programmatori in C, @`e
 quello di dimenticare che @emph{tutti} i numeri in @command{awk} sono in 
virgola mobile,
 e che la divisione di costanti rappresentate da numeri interi produce un
@@ -12438,8 +12544,8 @@ Il pi@`u e il meno unari hanno la stessa precedenza,
 gli operatori di moltiplicazione hanno tutti la stessa precedenza, e
 l'addizione e la sottrazione hanno la stessa precedenza.
 
-@cindex differenze tra @command{awk} e @command{gawk}, operazione di 
modulo-troncamento
-@cindex modulo-troncamento, operazione di
+@cindex differenze tra @command{awk} e @command{gawk} @subentry operazione di 
modulo-troncamento
+@cindex modulo-troncamento @subentry operazione di
 Quando si calcola il resto di @samp{@var{x} % @var{y}},
 il quoziente @`e troncato all'intero e
 moltiplicato per @var{y}. Questo risultato @`e sottratto da @var{x};
@@ -12461,9 +12567,9 @@ In altre implementazioni di @command{awk} il segno del 
resto
 pu@`o essere dipendente dalla macchina.
 @c FIXME !!! what does posix say?
 
-@cindex portabilit@`a, operatore @code{**}
-@cindex @code{*} (asterisco), operatore @code{**}
-@cindex asterisco (@code{*}), operatore @code{**}
+@cindex portabilit@`a @subentry operatore @code{**}
+@cindex @code{*} (asterisco) @subentry operatore @code{**}
+@cindex asterisco (@code{*}) @subentry operatore @code{**}
 @quotation NOTA
 Lo standard POSIX specifica solo l'uso di @samp{^}
 per l'elevamento a potenza.
@@ -12478,8 +12584,8 @@ Per garantire la massima portabilit@`a @`e meglio non 
usare l'operatore @samp{**
 @author Brian Kernighan
 @end quotation
 
-@cindex operatori di stringa
-@cindex stringa, operatori di
+@cindex operatori @subentry di stringa
+@cindex stringa @subentry operatori di
 @cindex concatenare
 C'@`e una sola operazione di stringa: la concatenazione.  Non ha un operatore
 specifico per rappresentarla.  Piuttosto, la concatenazione @`e effettuata
@@ -12503,8 +12609,8 @@ $ @kbd{awk '@{ print "Campo numero uno:" $1 @}' 
mail-list}
 @dots{}
 @end example
 
-@cindex risoluzione di problemi, concatenazione di stringhe
-@cindex problemi, risoluzione di, concatenazione di stringhe
+@cindex risoluzione di problemi @subentry concatenazione di stringhe
+@cindex problemi @subentry risoluzione di @subentry concatenazione di stringhe
 Poich@'e la concatenazione di stringhe non ha un operatore esplicito, @`e 
spesso
 necessario assicurarsi che venga effettuata al momento giusto usando le
 parentesi per racchiudere gli elementi da concatenare.  Per esempio, ci si
@@ -12517,9 +12623,9 @@ file = "file"
 print "qualcosa di significativo" > nome file
 @end example
 
-@cindex Brian Kernighan, @command{awk} di
-@cindex @command{mawk}, programma di utilit@`a
-@cindex programma di utilit@`a @command{mawk}
+@cindex Brian Kernighan @subentry @command{awk} di
+@cindex @command{mawk} (programma di utilit@`a)
+@cindex programma di utilit@`a @subentry @command{mawk}
 @noindent
 Questo produce un errore di sintassi in alcune versioni di
 @command{awk} per Unix.@footnote{Pu@`o capitare che BWK @command{awk},
@@ -12531,8 +12637,8 @@ ma non ci si dovrebbe fare affidamento.}
 print "qualcosa di significativo" > (nome file)
 @end example
 
-@cindex ordine di valutazione, concatenazione
-@cindex valutazione, ordine di, concatenazione
+@cindex ordine di valutazione @subentry concatenazione
+@cindex valutazione @subentry ordine di @subentry concatenazione
 @cindex effetti collaterali
 Si dovrebbero usare le parentesi attorno alle concatenazioni in tutti i
 contesti non comuni, come, per esempio, sul lato destro di @samp{=}.
@@ -12614,11 +12720,11 @@ certi di quel che si ottiene.
 
 @node Operatori di assegnamento
 @subsection Espressioni di assegnamento
-@cindex operatori di assegnamento
-@cindex assegnamento, operatori di
-@cindex espressioni di assegnamento
-@cindex @code{=} (uguale), operatore @code{=}
-@cindex uguale (@code{=}), operatore @code{=}
+@cindex operatori @subentry di assegnamento
+@cindex assegnamento @subentry operatori di
+@cindex espressioni @subentry di assegnamento
+@cindex @code{=} (uguale) @subentry operatore @code{=}
+@cindex uguale (@code{=}) @subentry operatore @code{=}
 Un @dfn{assegnamento} @`e un'espressione che memorizza un valore (generalmente
 diverso da quello che la variabile aveva in precedenza) in una variabile.
 Per esempio, si assegni il valore uno alla variabile @code{z}:
@@ -12642,7 +12748,7 @@ messaggio = "questo " cosa " @`e " predicato
 @end example
 
 @noindent
-@cindex effetti collaterali, espressioni di assegnamento
+@cindex effetti collaterali @subentry espressioni di assegnamento
 Quest'esempio illustra anche la concatenazione di stringhe.
 Il  segno @samp{=} @`e un @dfn{operatore di assegnamento}.  @`E il pi@`u 
semplice
 fra gli operatori di assegnamento perch@'e il valore dell'operando di destra
@@ -12656,8 +12762,8 @@ un @dfn{effetto collaterale}.
 
 @cindex @dfn{lvalue/rvalue}
 @cindex @dfn{rvalue/lvalue}
-@cindex assegnamento, operatori di, @dfn{lvalue/rvalue}
-@cindex operatori di assegnamento
+@cindex assegnamento @subentry operatori di @subentry @dfn{lvalue/rvalue}
+@cindex operatori @subentry di assegnamento
 L'operando di sinistra non dev'essere necessariamente una variabile
 (@pxref{Variabili}); pu@`o essere anche un campo
 (@pxref{Cambiare i campi}) o
@@ -12674,7 +12780,7 @@ produce un nuovo valore che l'assegnamento memorizza 
nella variabile, nel campo
 o nell'elemento di vettore specificati. Tali valori sono chiamati
 @dfn{rvalue}.
 
-@cindex variabili, tipi di
+@cindex variabili @subentry tipi di
 @`E importante notare che le variabili @emph{non} hanno dei tipi permanenti.
 Il tipo di una variabile @`e semplicemente quello di qualsiasi valore le sia 
stato
 assegnato per ultimo.  Nel seguente frammento di programma, la variabile
@@ -12733,8 +12839,8 @@ uno, e poi verificare se @code{x} @`e uguale a uno.  
Per@`o questo stile rende i
 programmi difficili da leggere; una tale nidificazione di assegnamenti dovrebbe
 essere evitata, eccetto forse in un programma usa-e-getta.
 
-@cindex @code{+} (pi@`u), operatore @code{+=}
-@cindex pi@`u (@code{+}), operatore @code{+=}
+@cindex @code{+} (pi@`u) @subentry operatore @code{+=}
+@cindex pi@`u (@code{+}) @subentry operatore @code{+=}
 Accanto a @samp{=}, ci sono diversi altri operatori di assegnamento che
 eseguono calcoli col vecchio valore di una variabile.  Per esempio,
 l'operatore @samp{+=} calcola un nuovo valore aggiungendo il valore sul lato
@@ -12777,8 +12883,8 @@ BEGIN  @{
 @end group
 @end example
 
-@cindex operatori di assegnamento, ordine di valutazione
-@cindex assegnamento, operatori di, ordine di valutazione
+@cindex operatori @subentry di assegnamento @subentry ordine di valutazione
+@cindex assegnamento @subentry operatori di @subentry ordine di valutazione
 @noindent
 @`E praticamente certo che gli indici di @code{pluto} siano differenti, 
perch@'e
 @code{rand()} restituisce valori differenti ogni volta che viene chiamata.
@@ -12816,18 +12922,18 @@ La @ref{table-assign-ops} elenca gli operatori di 
assegnamento aritmetici.  In
 ogni caso, l'operando di destra @`e un'espressione il cui valore @`e 
convertito in
 un numero.
 
-@cindex @code{-} (meno), operatore @code{-=}
-@cindex meno (@code{-}), operatore @code{-=}
-@cindex @code{*} (asterisco), operatore @code{*=}
-@cindex asterisco (@code{*}), operatore @code{*=}
-@cindex @code{/} (barra), operatore @code{/=}
-@cindex barra (@code{/}), operatore @code{/=}
-@cindex @code{%} (percento), operatore @code{%=}
-@cindex percento (@code{%}), operatore @code{%=}
-@cindex @code{^} (circonflesso), operatore @code{^=}
-@cindex circonflesso (@code{^}), operatore @code{^=}
-@cindex @code{*} (asterisco), operatore  @code{**=}
-@cindex asterisco (@code{*}), operatore @code{**=}
+@cindex @code{-} (meno) @subentry operatore @code{-=}
+@cindex meno (@code{-}) @subentry operatore @code{-=}
+@cindex @code{*} (asterisco) @subentry operatore @code{*=}
+@cindex asterisco (@code{*}) @subentry operatore @code{*=}
+@cindex @code{/} (barra) @subentry operatore @code{/=}
+@cindex barra (@code{/}) @subentry operatore @code{/=}
+@cindex @code{%} (percento) @subentry operatore @code{%=}
+@cindex percento (@code{%}) @subentry operatore @code{%=}
+@cindex @code{^} (circonflesso) @subentry operatore @code{^=}
+@cindex circonflesso (@code{^}) @subentry operatore @code{^=}
+@cindex @code{*} (asterisco) @subentry operatore @code{**=}
+@cindex asterisco (@code{*}) @subentry operatore @code{**=}
 @float Tabella,table-assign-ops
 @caption{Operatori di assegnamento aritmetici}
 @multitable @columnfractions .30 .70
@@ -12837,35 +12943,34 @@ un numero.
 @item @var{lvalue} @code{*=} @var{coefficiente} @tab Moltiplica il valore di 
@var{lvalue} per @var{coefficiente}.
 @item @var{lvalue} @code{/=} @var{divisore} @tab Divide il valore di 
@var{lvalue} per @var{divisore}.
 @item @var{lvalue} @code{%=} @var{modulo} @tab Imposta @var{lvalue} al resto 
della sua divisione per @var{modulo}.
-@cindex estensioni comuni, operatore @code{**=}
-@cindex estensioni comuni@comma{} operatore @code{**=}
-@cindex @command{awk}, linguaggio, versione POSIX
+@cindex estensioni comuni @subentry operatore @code{**=}
+@cindex estensioni comuni @subentry operatore @code{**=}
+@cindex @command{awk} @subentry linguaggio @subentry versione POSIX
 @cindex POSIX @command{awk}
 @item @var{lvalue} @code{^=} @var{esponente} @tab Eleva @var{lvalue} alla 
potenza @var{esponente}.
 @item @var{lvalue} @code{**=} @var{esponente} @tab Eleva @var{lvalue} alla 
potenza @var{esponente}. @value{COMMONEXT}
 @end multitable
 @end float
 
-@cindex POSIX @command{awk}, operatore  @code{**=} e
-@cindex portabilit@`a, operatore @code{**=}
+@cindex POSIX @command{awk} @subentry @code{**=} (operatore)
+@cindex portabilit@`a @subentry operatore @code{**=}
 @quotation NOTA
 Soltanto l'operatore  @samp{^=} @`e definito da POSIX.
 Per avere la massima portabilit@`a, non usare l'operatore @samp{**=}.
 @end quotation
 
 @sidebar Ambiguit@`a sintattiche tra @samp{/=} e le espressioni regolari
-@cindex angolo buio, costanti @dfn{regexp}, operatore @code{/=} e
-@cindex @code{/} (barra), operatore @code{/=}, vs. costante @dfn{regexp} 
@code{/=@dots{}/}
-@cindex barra (@code{/}), operatore @code{/=}, vs. costante @dfn{regexp} 
@code{/=@dots{}/}
-@cindex @dfn{regexp}, costanti, @code{/=@dots{}/}, operatore @code{/=} e
+@cindex angolo buio @subentry costanti @dfn{regexp} @subentry operatore 
@code{/=} e
+@cindex @code{/} (barra) @subentry operatore @code{/=} @subentry vs. costante 
@dfn{regexp} @code{/=@dots{}/}
+@cindex barra (@code{/}) @subentry operatore @code{/=} @subentry vs. costante 
@dfn{regexp} @code{/=@dots{}/}
+@cindex @dfn{regexp} @subentry costanti @subentry @code{/=@dots{}/}, operatore 
@code{/=} e
 
 @c derived from email from  "Nelson H. F. Beebe" <address@hidden>
 @c Date: Mon, 1 Sep 1997 13:38:35 -0600 (MDT)
 
-@cindex angolo buio, operatore @code{/=} vs. costante @dfn{regexp} 
@code{/=@dots{}/}
+@cindex angolo buio @subentry operatore @code{/=} vs. costante @dfn{regexp} 
@code{/=@dots{}/}
 @cindex ambiguit@`a sintattica: operatore @code{/=} vs. costante @dfn{regexp} 
@code{/=@dots{}/}
-@cindex sintattica, ambiguit@`a: operatore @code{/=} vs. costante @dfn{regexp} 
@code{/=@dots{}/}
-@cindex @code{/=}, operatore, vs. costante @dfn{regexp} @code{/=@dots{}/}
+@cindex sintattica @subentry ambiguit@`a: operatore @code{/=} vs. costante 
@dfn{regexp} @code{/=@dots{}/}
 C'@`e un'ambiguit@`a sintattica tra l'operatore di assegnamento @code{/=}
 e le costanti @dfn{regexp} il cui primo carattere sia @samp{=}.
 @value{DARKCORNER}
@@ -12894,8 +12999,8 @@ e @command{mawk}.
 @node Operatori di incremento
 @subsection Operatori di incremento e di decremento
 
-@cindex incremento, operatori di
-@cindex operatori di decremento/incremento
+@cindex incremento @subentry operatori di
+@cindex operatori @subentry di decremento/incremento
 Gli @dfn{operatori di incremento} e @dfn{decremento} incrementano o riducono il
 valore di una variabile di uno.  Un operatore di assegnamento pu@`o fare la
 stessa cosa, per cui gli operatori di incremento non aggiungono funzionalit@`a
@@ -12903,9 +13008,9 @@ al inguaggio @command{awk}; in ogni caso, sono delle 
convenienti abbreviazioni
 per operazioni molto comuni.
 
 @cindex effetti collaterali
-@cindex @code{+} (pi@`u), operatore @code{++}
-@cindex pi@`u (@code{+}), operatore @code{++}
-@cindex effetti collaterali, operatori di decremento/incremento
+@cindex @code{+} (pi@`u) @subentry operatore @code{++}
+@cindex pi@`u (@code{+}) @subentry operatore @code{++}
+@cindex effetti collaterali @subentry operatori di decremento/incremento
 L'operatore per aggiungere uno @`e @samp{++}.  Pu@`o essere usato per 
incrementare
 una variabile prima o dopo aver stabilito il suo valore.  Per 
@dfn{preincrementare}
 una variabile @code{v}, si scrive @samp{++v}.  Questo aggiunge uno al valore di
@@ -12936,15 +13041,15 @@ fare con numeri relativamente piccoli (inferiori a
 @end ifnotinfo
 @end ifnottex
 
-@cindex @code{$} (dollaro), incrementare campi e vettori
-@cindex dollaro (@code{$}), incrementare campi e vettori
+@cindex @code{$} (dollaro) @subentry incrementare campi e vettori
+@cindex dollaro (@code{$}) @subentry incrementare campi e vettori
 I campi di un record e gli elementi di un vettore vengono incrementati
 proprio come le
 variabili.  (Si deve usare @samp{$(i++)} quando si deve fare un riferimento a
 un campo e incrementare una variabile allo stesso tempo.  Le parentesi sono
 necessarie a causa della precedenza dell'operatore di riferimento @samp{$}.)
 
-@cindex decremento, operatori di
+@cindex decremento @subentry operatori di
 L'operatore di decremento @samp{--} funziona proprio come @samp{++}, solo che
 sottrae uno anzich@'e aggiungerlo.  Come @samp{++}, si pu@`o usare prima di
 @dfn{lvalue}
@@ -12953,8 +13058,8 @@ Quel che segue @`e un sommario delle espressioni di 
incremento e di
 decremento:
 
 @table @code
-@cindex @code{+} (pi@`u), operatore @code{++}
-@cindex pi@`u (@code{+}), operatore @code{++}
+@cindex @code{+} (pi@`u) @subentry operatore @code{++}
+@cindex pi@`u (@code{+}) @subentry operatore @code{++}
 @item ++@var{lvalue}
 Incrementa @var{lvalue}, restituendo il nuovo valore come
 valore dell'espressione.
@@ -12963,8 +13068,8 @@ valore dell'espressione.
 Incrementa @var{lvalue}, restituendo il @emph{vecchio} valore di @var{lvalue}
 come valore dell'espressione.
 
-@cindex @code{-} (meno), operatore @code{--}
-@cindex meno (@code{-}), operatore @code{--}
+@cindex @code{-} (meno) @subentry operatore @code{--}
+@cindex meno (@code{-}) @subentry operatore @code{--}
 @item --@var{lvalue}
 Decrementa @var{lvalue},  restituendo il nuovo valore come
 valore dell'espressione.
@@ -12980,9 +13085,9 @@ come valore dell'espressione.
 
 @sidebar Ordine di valutazione degli operatori
 @cindex precedenza
-@cindex operatori, precedenza degli
-@cindex portabilit@`a, operatori
-@cindex valutazione, ordine di
+@cindex operatori @subentry precedenza degli
+@cindex portabilit@`a @subentry operatori
+@cindex valutazione @subentry ordine di
 @cindex Marx, Groucho
 @quotation
 @i{Dottore, quando faccio cos@`{@dotless{i}} mi fa male!@*
@@ -13046,12 +13151,12 @@ e come questi valori sono confrontati.
 
 @node Valori di verit@`a
 @subsection Vero e falso in @command{awk}
-@cindex valori di verit@`a
-@cindex logico, valore, vero/falso
-@cindex falso, valore logico (zero o stringa nulla)
-@cindex vero, valore logico (diverso da zero e da stringa nulla)
+@cindex valori @subentry di verit@`a
+@cindex logico @subentry valore @subentry vero/falso
+@cindex falso @subentry valore logico (zero o stringa nulla)
+@cindex vero @subentry valore logico (diverso da zero e da stringa nulla)
 
-@cindex nulle, stringhe
+@cindex nulle @subentry stringhe
 Molti linguaggi di programmazione hanno una particolare rappresentazione per i
 concetti di ``vero'' e ``falso.''  Questi linguaggi usano normalmente le
 costanti speciali @code{true} e @code{false}, o forse i loro equivalenti
@@ -13074,7 +13179,7 @@ BEGIN @{
 @}
 @end example
 
-@cindex angolo buio, @code{"0"} @`e effettivamente vero
+@cindex angolo buio @subentry @code{"0"} @`e effettivamente vero
 C'@`e una conseguenza sorprendente della regola ``non zero o non nullo'':
 la costante di stringa @code{"0"} sta effettivamente per vero, perch@'e
 @`e non nulla.
@@ -13090,14 +13195,14 @@ la costante di stringa @code{"0"} sta effettivamente 
per vero, perch@'e
 @c The Restaurant at the End of the Universe. But I'm going to
 @c leave it alone.
 
-@cindex confronto, espressioni di
-@cindex espressioni di confronto
-@cindex espressioni, ricerca di corrispondenze, si veda espressioni di 
confronto
-@cindex individuazione, espressioni di, si veda espressioni di confronto
-@cindex relazionali, operatori, si veda espressioni di confronto
-@cindex operatori relazionali, si veda espressioni di confronto
-@cindex variabile, tipi di
-@cindex variabili, tipi di, espressioni di confronto e
+@cindex confronto @subentry espressioni di
+@cindex espressioni @subentry di confronto
+@cindex espressioni @subentry ricerca di corrispondenze @seeentry{espressioni 
di confronto}
+@cindex individuare @subentry tramite espressioni @seeentry{espressioni di 
confronto}
+@cindex relazionali @subentry operatori @seeentry{espressioni di confronto}
+@cindex operatori @subentry relazionali @seeentry{espressioni di confronto}
+@cindex variabili @subentry tipi di
+@cindex variabili @subentry tipi di @subentry espressioni di confronto e
 Diversamente che in altri linguaggi di programmazione, le variabili di
 @command{awk} non hanno un tipo fisso. Possono essere sia un numero che una
 stringa, a seconda del valore loro assegnato.
@@ -13202,9 +13307,9 @@ $ @kbd{echo 37 | awk '@{ printf("%s %s < 42\n", $1,}
 Queste sono le regole seguite per determinare quando @command{awk}
 tratta dei dati in input come numeri, e quando li considera stringhe.
 
-@cindex numeriche, stringhe
-@cindex stringhe, numeriche
-@cindex POSIX @command{awk}, stringhe numeriche e
+@cindex numeriche @subentry stringhe
+@cindex stringa @subentry numerica
+@cindex POSIX @command{awk} @subentry stringhe numeriche
 Lo standard POSIX usa il concetto di @dfn{stringa numerica}, per dei dati
 in input che appaiono essere numerici.  Il @samp{37} nell'esempio precedente
 @`e una stringa numerica.  Quindi, qual @`e il tipo di una stringa numerica?
@@ -13361,12 +13466,12 @@ STRNUM  |       string          numeric         
numeric
 
 @end docbook
 
-L'idea di base @`e che l'input dell'utente che appare come numerico---e
-@emph{solo} l'input dell'utente---dovrebbe essere trattato come numerico, anche
+L'idea di base @`e che l'input dell'utente che appare come numerico --- e
+@emph{solo} l'input dell'utente --- dovrebbe essere trattato come numerico, 
anche
 se in realt@`a @`e un insieme di caratteri e quindi anche una stringa.
 Cos@`{@dotless{i}}, ad esempio, la costante di stringa @w{@code{" +3.14"}},
 quando appare nel codice sorgente di un programma,
-@`e una stringa---anche se sembra numerica---e non
+@`e una stringa --- anche se sembra numerica --- e non
 viene @emph{mai} trattato come numero
 ai fini di un confronto.
 
@@ -13417,29 +13522,30 @@ $ @kbd{echo salve 37 | gawk '@{ print typeof($1), 
typeof($2) @}'}
 
 @node Operatori di confronto
 @subsubsection Operatori di confronto
+@cindex operatori @subentry di confronto
 
 Le @dfn{espressioni di confronto} confrontano stringhe o numeri per metterli in
 relazione tra di loro, come ad esempio nella relazione di uguaglianza.  Sono
 scritte usando @dfn{operatori di relazione}, che sono un superinsieme di quelli
 in C.  Sono descritti nella @ref{table-relational-ops}.
 
-@cindex @code{<} (parentesi acuta sinistra), operatore @code{<}
-@cindex parentesi acuta sinistra (@code{<}), operatore @code{<}
-@cindex @code{<} (parentesi acuta sinistra), operatore @code{<=}
-@cindex parentesi acuta sinistra (@code{<}), operatore @code{<=}
-@cindex @code{>} (parentesi acuta destra), operatore @code{>=}
-@cindex parentesi acuta destra (@code{>}), operatore @code{>=}
-@cindex @code{>} (parentesi acuta destra), operatore @code{>}
-@cindex parentesi acuta destra (@code{>}), operatore @code{>}
-@cindex @code{=} (uguale), operatore @code{==}
-@cindex uguale (@code{=}), operatore @code{==}
-@cindex @code{!} (punto esclamativo), operatore @code{!=}
-@cindex punto esclamativo (@code{!}), operatore @code{!=}
-@cindex @code{~} (tilde), operatore @code{~}
-@cindex tilde (@code{~}), operatore @code{~}
-@cindex @code{!} (punto esclamativo), operatore @code{!~}
-@cindex punto esclamativo (@code{!}), operatore @code{!~}
-@cindex @code{in}, operatore
+@cindex @code{<} (parentesi acuta sinistra) @subentry operatore @code{<}
+@cindex parentesi @subentry acuta sinistra (@code{<}) @subentry operatore 
@code{<}
+@cindex @code{<} (parentesi acuta sinistra) @subentry operatore @code{<=}
+@cindex parentesi @subentry acuta sinistra (@code{<}) @subentry operatore 
@code{<=}
+@cindex @code{>} (parentesi acuta destra) @subentry operatore @code{>=}
+@cindex parentesi @subentry acuta destra (@code{>}) @subentry operatore 
@code{>=}
+@cindex @code{>} (parentesi acuta destra) @subentry operatore @code{>}
+@cindex parentesi @subentry acuta destra (@code{>}) @subentry operatore 
@code{>}
+@cindex @code{=} (uguale) @subentry operatore @code{==}
+@cindex uguale (@code{=}) @subentry operatore @code{==}
+@cindex @code{!} (punto esclamativo) @subentry operatore @code{!=}
+@cindex punto esclamativo (@code{!}) @subentry operatore @code{!=}
+@cindex @code{~} (tilde) @subentry operatore @code{~}
+@cindex tilde (@code{~}) @subentry operatore @code{~}
+@cindex @code{!} (punto esclamativo) @subentry operatore @code{!~}
+@cindex punto esclamativo (@code{!}) @subentry operatore @code{!~}
+@cindex @code{in} (operatore)
 @float Tabella,table-relational-ops
 @caption{Operatori di relazione}
 @multitable @columnfractions .23 .77
@@ -13467,8 +13573,8 @@ e cos@`{@dotless{i}} via.  Quindi, @code{"10"} @`e 
minore di @code{"9"}.  Se vi
 stringhe di cui una @`e il prefisso dell'altra, la stringa pi@`u corta @`e 
minore di
 quella pi@`u lunga.  Cos@`{@dotless{i}}, @code{"abc"} @`e minore di 
@code{"abcd"}.
 
-@cindex risoluzione di problemi, operatore @code{==}
-@cindex problemi, risoluzione di, operatore @code{==}
+@cindex risoluzione di problemi @subentry operatore @code{==}
+@cindex problemi @subentry risoluzione di @subentry operatore @code{==}
 @`E molto facile sbagliarsi scrivendo l'operatore @samp{==} e
 omettendo uno dei due caratteri @samp{=}.  Il risultato @`e sempre un codice
 @command{awk} valido, ma il programma non fa quel che si voleva:
@@ -13520,12 +13626,12 @@ $ @kbd{echo 1e2 3 | awk '@{ print ($1 < $2) ? "vero" 
: "falso" @}'}
 @print{} falso
 @end example
 
-@cindex espressioni di confronto, stringa vs.@: @dfn{regexp}
+@cindex espressioni @subentry di confronto @subentry stringa vs.@: @dfn{regexp}
 @c @cindex string comparison vs.@: regexp comparison
 @c @cindex regexp comparison vs.@: string comparison
 @noindent
 il risultato @`e @samp{falso} perch@'e sia @code{$1} che @code{$2}
-sono immessi dall'utente.  Sono stringhe numeriche---quindi hanno entrambe
+sono immessi dall'utente.  Sono stringhe numeriche --- quindi hanno entrambe
 l'attributo @dfn{strnum}, che richiede un confronto di tipo numerico.
 Lo scopo delle regole di confronto e dell'uso di stringhe numeriche @`e quello
 di cercare di produrre il comportamento "meno inaspettato possibile",
@@ -13550,19 +13656,19 @@ x ~ /att/
 ha il valore uno se @code{x} contiene @samp{att}, come
 @code{"Oh, che matto che sono!"}.
 
-@cindex @code{~} (tilde), operatore @code{~}
-@cindex tilde (@code{~}), operatore @code{~}
-@cindex @code{!} (punto esclamativo), operatore @code{!~}
-@cindex punto esclamativo (@code{!}), operatore @code{!~}
+@cindex @code{~} (tilde) @subentry operatore @code{~}
+@cindex tilde (@code{~}) @subentry operatore @code{~}
+@cindex @code{!} (punto esclamativo) @subentry operatore @code{!~}
+@cindex punto esclamativo (@code{!}) @subentry operatore @code{!~}
 L'operando di destra degli operatori @samp{~} e @samp{!~} pu@`o essere sia una
 costante @dfn{regexp} (@code{/}@dots{}@code{/}) che un'espressione ordinaria.
 In quest'ultimo caso, il valore dell'espressione come stringa @`e usato come 
una
 @dfn{regexp} dinamica (@pxref{Uso di @dfn{regexp}}; e
 @pxref{Espressioni regolari calcolate}).
 
-@cindex @command{awk}, costanti @dfn{regexp} e
-@cindex costanti @dfn{regexp}
-@cindex @dfn{regexp}, costanti
+@cindex @command{awk} @subentry costanti @dfn{regexp} e
+@cindex costanti @subentry @dfn{regexp}
+@cindex @dfn{regexp} @subentry costanti
 Un'espressione regolare costante tra due barre @`e di per s@'e anche
 un'espressione.  @code{/@var{regexp}/} @`e un'abbreviazione per la seguente
 espressione di confronto:
@@ -13589,6 +13695,7 @@ diverso dal risultato ottenuto quando si esegue un 
confronto rigorosamente
 dovrebbe funzionare come se le stringhe fossero confrontate usando la
 funzione @code{strcoll()} di C.}
 
+@cindex modalit@`a POSIX 
 Poich@'e questo comportamento differisce sensibilmente dalla pratica corrente,
 @command{gawk} lo implementava solo quando eseguito in modalit@`a POSIX
 (@pxref{Opzioni}).
@@ -13623,6 +13730,7 @@ a <= b && a >= b
 @end example
 @end quotation
 
+@cindex modalit@`a POSIX 
 A partire dalla @value{PVERSION} 4.2, @command{gawk} continua a usare
 l'ordine di collazione locale per @code{<}, @code{<=}, @code{>}
 e @code{>=} solo se eseguito nella modalit@`a POSIX.
@@ -13634,15 +13742,15 @@ and http://austingroupbugs.net/view.php?id=1070.
 
 @node Operatori booleani
 @subsection Espressioni booleane
-@cindex @dfn{and}, operatore logico-booleano
-@cindex @dfn{or}, operatore logico-booleano
-@cindex @dfn{not}, operatore logico-booleano
-@cindex espressioni booleane
-@cindex booleane, espressioni
-@cindex operatori booleani, si veda espressioni booleane
-@cindex booleani, operatori, si veda espressioni booleane
-@cindex logici, operatori, si veda  espressioni booleane
-@cindex operatori logici, si veda espressioni booleane
+@cindex @dfn{and} (operatore logico-booleano)
+@cindex @dfn{or} (operatore logico-booleano)
+@cindex @dfn{not} (operatore logico-booleano)
+@cindex espressioni @subentry booleane
+@cindex booleane @subentry espressioni
+@cindex operatori @subentry booleani @seeentry{espressioni booleane}
+@cindex booleani @subentry operatori @seeentry{espressioni booleane}
+@cindex logico @subentry operatore @seeentry{ espressioni booleane}
+@cindex operatori @subentry logici @seeentry{espressioni booleane}
 
 Un'@dfn{espressione booleana} @`e una combinazione di espressioni di confronto 
o
 espressioni di ricerca, che usa gli operatori booleani "or"
@@ -13674,7 +13782,7 @@ sia @samp{edu} che @samp{li}:
 if ($0 ~ /edu/ && $0 ~ /li/) print
 @end example
 
-@cindex effetti collaterali, operatori booleani
+@cindex effetti collaterali @subentry operatori booleani
 La sottoespressione @var{booleano2} viene valutata solo se @var{booleano1}
 @`e vero.  Questo pu@`o comportare una differenza laddove @var{booleano2} 
contenga
 espressioni che hanno effetti collaterali. Nel caso di @samp{$0 ~ /pippo/ &&
@@ -13713,12 +13821,12 @@ BEGIN @{ if (! ("HOME" in ENVIRON))
 @ref{Visitare elementi}.)
 @end table
 
-@cindex cortocircuito, operatori
-@cindex operatori di cortocircuito
-@cindex @code{&} (e commerciale), operatore @code{&&}
-@cindex e commerciale (@code{&}), operatore @code{&&}
-@cindex @code{|} (barra verticale), operatore @code{||}
-@cindex barra verticale (@code{|}), operatore @code{||}
+@cindex cortocircuito @subentry operatori
+@cindex operatori @subentry di cortocircuito
+@cindex @code{&} (e commerciale) @subentry operatore @code{&&}
+@cindex e commerciale (@code{&}) @subentry operatore @code{&&}
+@cindex @code{|} (barra verticale) @subentry operatore @code{||}
+@cindex barra verticale (@code{|}) @subentry operatore @code{||}
 Gli operatori @samp{&&} e @samp{||} sono chiamati operatori di
 @dfn{cortocircuito} per il modo in cui funzionano.  La valutazione dell'intera
 espressione @`e  "cortocircuitata" se il risultato pu@`o gi@`a essere 
determinato
@@ -13730,11 +13838,11 @@ semplicemente mettendo un ritorno a capo dopo di 
esse.  Per@`o non si pu@`o mett
 un ritorno a capo @emph{prima} di questi operatori senza usare la
 continuazione tramite la barra inversa (@pxref{Istruzioni/Righe}).
 
-@cindex @code{!} (punto esclamativo), operatore @code{!}
-@cindex punto esclamativo (@code{!}), operatore @code{!}
+@cindex @code{!} (punto esclamativo) @subentry operatore @code{!}
+@cindex punto esclamativo (@code{!}) @subentry operatore @code{!}
 @cindex ritorno a capo
-@cindex variabili di tipo indicatore [@dfn{flag}]
-@cindex @dfn{flag} [indicatore], variabili
+@cindex variabili @subentry di tipo indicatore (@dfn{flag})
+@cindex @dfn{flag} (indicatore), variabili di tipo
 Il valore reale di un'espressione che usa l'operatore @samp{!} @`e uno
 o zero, a seconda del valore di verit@`a dell'espressione a cui
 @`e applicato.
@@ -13775,7 +13883,7 @@ if (! @var{qualche condizione} || @var{qualche altra 
condizione}) @{
 @}
 @end example
 
-@cindex @code{next}, istruzione
+@cindex @code{next} (istruzione)
 @quotation NOTA
 L'istruzione @code{next} viene trattata in
 @ref{Istruzione next}.
@@ -13788,9 +13896,9 @@ Il motivo @`e quello di evitare di stampare le righe 
delimitatrici
 
 @node Espressioni condizionali
 @subsection Espressioni condizionali
-@cindex condizionali, espressioni
-@cindex espressioni condizionali
-@cindex espressioni, selezionare
+@cindex condizionali @subentry espressioni
+@cindex espressioni @subentry condizionali
+@cindex espressioni @subentry selezionare
 
 Un'@dfn{espressione condizionale} @`e un tipo particolare di espressione che ha
 tre operandi.  Consente di usare il primo valore dell'espressione per
@@ -13814,7 +13922,7 @@ Per esempio, la seguente espressione produce il valore 
assoluto di @code{x}:
 x >= 0 ? x : -x
 @end example
 
-@cindex effetti collaterali, espressioni condizionali
+@cindex effetti collaterali @subentry espressioni condizionali
 Ogni volta che viene calcolata un'espressione condizionale, solo una delle
 espressioni @var{espr-se-vero} e @var{espr-se-falso} viene usata; l'altra
 @`e ignorata.  Questo @`e importante quando le espressioni hanno effetti
@@ -13838,9 +13946,9 @@ ignorata.
 @end ifnottex
 per maggiori informazioni sui vettori.
 
-@cindex differenze tra @command{awk} e @command{gawk}, continuazione di riga
-@cindex continuazione di riga, @command{gawk}
-@cindex @command{gawk}, continuazione di riga in
+@cindex differenze tra @command{awk} e @command{gawk} @subentry continuazione 
di riga
+@cindex continuazione di riga @subentry @command{gawk}
+@cindex @command{gawk} @subentry continuazione di riga in
 Come estensione minore di @command{gawk},
 un'istruzione che usa @samp{?:} si pu@`o continuare mettendo
 semplicemente un ritorno a capo dopo i due caratteri.
@@ -13852,14 +13960,14 @@ Se viene specificata l'opzione @option{--posix}
 
 @node Chiamate di funzione
 @section Chiamate di funzione
-@cindex chiamata di funzione
+@cindex chiamare @subentry funzione
 
 Una @dfn{funzione} @`e un nome per richiedere un particolare calcolo.
 Il nome permette di richiamare
 la funzione da qualsiasi punto del programma.
 Per esempio, la funzione @code{sqrt()} calcola la radice quadrata di un numero.
 
-@cindex funzioni predefinite
+@cindex funzioni @subentry predefinite
 Un certo numero di funzioni sono @dfn{predefinite}, ossia sono
 disponibili in ogni programma @command{awk}.  La funzione @code{sqrt()} @`e una
 di queste.  @xref{Funzioni predefinite} per un elenco di funzioni
@@ -13870,7 +13978,7 @@ per istruzioni su come farlo.
 Infine, @command{gawk} permette di scrivere funzioni in C o in C++ che possono
 essere chiamate dal proprio programma (@pxref{Estensioni dinamiche}).
 
-@cindex argomenti, nelle chiamate di funzione
+@cindex argomenti @subentry nelle chiamate di funzione
 Una funzione viene utilizzata invocandola tramite un'espressione di
 @dfn{chiamata di funzione}, che consiste nel nome della funzione seguito
 immediatamente da una lista di @dfn{argomenti} tra parentesi.  Gli argomenti
@@ -13885,8 +13993,8 @@ atan2(y, x)            @ii{due argomenti}
 rand()                 @ii{nessun argomento}
 @end example
 
-@cindex risoluzione di problemi, sintassi della chiamata di funzione
-@cindex problemi, risoluzione di, sintassi della chiamata di funzione
+@cindex risoluzione di problemi @subentry sintassi della chiamata di funzione
+@cindex problemi @subentry risoluzione di @subentry sintassi della chiamata di 
funzione
 @quotation ATTENZIONE
 Non ci dev'essere nessuno spazio tra il nome della funzione e la parentesi
 aperta!  Un nome di funzione definita dall'utente pu@`o essere scambiata per
@@ -13925,7 +14033,7 @@ del programma.
 Si rimanda la trattazione di questa funzionalit@`a
 a un secondo momento; si veda @ref{Chiamate indirette}.
 
-@cindex effetti collaterali, chiamate di funzione
+@cindex effetti collaterali @subentry chiamate di funzione
 Come ogni altra espressione, la chiamata di funzione ha un valore, chiamato
 spesso @dfn{valore di ritorno}, che @`e calcolato dalla funzione
 in base agli argomenti dati.  In quest'esempio, il codice di ritorno
@@ -13975,7 +14083,7 @@ $ @kbd{awk -f matchit.awk}
 @node Precedenza
 @section Precedenza degli operatori (Come si nidificano gli operatori)
 @cindex precedenza
-@cindex operatori, precedenza
+@cindex operatori @subentry precedenza
 
 La @dfn{precedenza degli operatori} determina come gli operatori vengono
 raggruppati quando diversi operatori appaiono uno vicino all'altro in
@@ -14025,48 +14133,48 @@ dalla pi@`u alta alla pi@`u bassa:
 @item @code{(}@dots{}@code{)}
 Raggruppamento.
 
-@cindex @code{$} (dollaro), operatore di campo @code{$}
-@cindex dollaro (@code{$}), operatore di campo @code{$}
+@cindex @code{$} (dollaro) @subentry operatore di campo @code{$}
+@cindex dollaro (@code{$}) @subentry operatore di campo @code{$}
 @item @code{$}
 Riferimento a un campo.
 
-@cindex @code{+} (pi@`u), operatore @code{++}
-@cindex pi@`u (@code{+}), operatore @code{++}
-@cindex @code{-} (meno), operatore @code{--}
-@cindex meno (@code{-}), operatore @code{--}
+@cindex @code{+} (pi@`u) @subentry operatore @code{++}
+@cindex pi@`u (@code{+}) @subentry operatore @code{++}
+@cindex @code{-} (meno) @subentry operatore @code{--}
+@cindex meno (@code{-}) @subentry operatore @code{--}
 @item @code{++ --}
 Incremento, decremento.
 
-@cindex @code{^} (circonflesso), operatore @code{^}
-@cindex circonflesso (@code{^}), operatore @code{^}
-@cindex @code{*} (asterisco), operatore @code{**}
-@cindex asterisco (@code{*}), operatore @code{**}
+@cindex @code{^} (circonflesso) @subentry operatore @code{^}
+@cindex circonflesso (@code{^}) @subentry operatore @code{^}
+@cindex @code{*} (asterisco) @subentry operatore @code{**}
+@cindex asterisco (@code{*}) @subentry operatore @code{**}
 @item @code{^ **}
 Elevamento a potenza.  Questi operatori sono raggruppati da destra verso
 sinistra.
 
-@cindex @code{+} (pi@`u), operatore @code{+}
-@cindex pi@`u (@code{+}), operatore @code{+}
-@cindex @code{-} (meno), operatore @code{-}
-@cindex meno (@code{-}), operatore @code{-}
-@cindex @code{!} (punto esclamativo), operatore @code{!}
-@cindex punto esclamativo (@code{!}), operatore @code{!}
+@cindex @code{+} (pi@`u) @subentry operatore @code{+}
+@cindex pi@`u (@code{+}) @subentry operatore @code{+}
+@cindex @code{-} (meno) @subentry operatore @code{-}
+@cindex meno (@code{-}) @subentry operatore @code{-}
+@cindex @code{!} (punto esclamativo) @subentry operatore @code{!}
+@cindex punto esclamativo (@code{!}) @subentry operatore @code{!}
 @item @code{+ - !}
 Pi@`u, meno, ``not'' logico, unari.
 
-@cindex @code{*} (asterisco), operatore @code{*}, come operatore di 
moltiplicazione
-@cindex asterisco (@code{*}), operatore @code{*}, come operatore di 
moltiplicazione
-@cindex @code{/} (barra), operatore @code{/}
-@cindex barra (@code{/}), operatore @code{/}
-@cindex @code{%} (percento), operatore @code{%}
-@cindex percento (@code{%}), operatore @code{%}
+@cindex @code{*} (asterisco) @subentry operatore @code{*} @subentry come 
operatore di moltiplicazione
+@cindex asterisco (@code{*}) @subentry operatore @code{*} @subentry come 
operatore di moltiplicazione
+@cindex @code{/} (barra) @subentry operatore @code{/}
+@cindex barra (@code{/}) @subentry operatore @code{/}
+@cindex @code{%} (percento) @subentry operatore @code{%}
+@cindex percento (@code{%}) @subentry operatore @code{%}
 @item @code{* / %}
 Moltiplicazione, divisione, resto di una divisione.
 
-@cindex @code{+} (pi@`u), operatore @code{+}
-@cindex pi@`u (@code{+}), operatore @code{+}
-@cindex @code{-} (meno), operatore @code{-}
-@cindex meno (@code{-}), operatore @code{-}
+@cindex @code{+} (pi@`u) @subentry operatore @code{+}
+@cindex pi@`u (@code{+}) @subentry operatore @code{+}
+@cindex @code{-} (meno) @subentry operatore @code{-}
+@cindex meno (@code{-}) @subentry operatore @code{-}
 @item @code{+ -}
 Addizione, sottrazione.
 
@@ -14075,27 +14183,27 @@ Non c'@`e un simbolo speciale per la concatenazione.
 Gli operandi sono semplicemente scritti uno accanto all'altro.
 (@pxref{Concatenazione}).
 
-@cindex @code{<} (parentesi acuta sinistra), operatore @code{<}
-@cindex parentesi acuta sinistra (@code{<}), operatore @code{<}
-@cindex @code{<} (parentesi acuta sinistra), operatore @code{<=}
-@cindex parentesi acuta sinistra (@code{<}), operatore @code{<=}
-@cindex @code{>} (parentesi acuta destra), operatore @code{>=}
-@cindex parentesi acuta destra (@code{>}), operatore @code{>=}
-@cindex @code{>} (parentesi acuta destra), operatore @code{>}
-@cindex parentesi acuta destra (@code{>}), operatore @code{>}
-@cindex @code{=} (uguale), operatore @code{==}
-@cindex uguale (@code{=}), operatore @code{==}
-@cindex @code{!} (punto esclamativo), operatore @code{!=}
-@cindex punto esclamativo (@code{!}), operatore @code{!=}
-@cindex @code{>} (parentesi acuta destra), operatore @code{>>} (I/O)
-@cindex parentesi acuta destra (@code{>}), operatore @code{>>} (I/O)
-@cindex operatori, input/output
-@cindex @code{|} (barra verticale), operatore @code{|} (I/O)
-@cindex barra verticale (@code{|}), operatore @code{|} (I/O)
-@cindex operatori, input/output
-@cindex @code{|} (barra verticale), operatore @code{|&} (I/O)
-@cindex barra verticale (@code{|}), operatore @code{|&}  (I/O)
-@cindex operatori, input/output
+@cindex @code{<} (parentesi acuta sinistra) @subentry operatore @code{<}
+@cindex parentesi @subentry acuta sinistra (@code{<}) @subentry operatore 
@code{<}
+@cindex @code{<} (parentesi acuta sinistra) @subentry operatore @code{<=}
+@cindex parentesi @subentry acuta sinistra (@code{<}) @subentry operatore 
@code{<=}
+@cindex @code{>} (parentesi acuta destra) @subentry operatore @code{>=}
+@cindex parentesi @subentry acuta destra (@code{>}) @subentry operatore 
@code{>=}
+@cindex @code{>} (parentesi acuta destra) @subentry operatore @code{>}
+@cindex parentesi @subentry acuta destra (@code{>}) @subentry operatore 
@code{>}
+@cindex @code{=} (uguale) @subentry operatore @code{==}
+@cindex uguale (@code{=}) @subentry operatore @code{==}
+@cindex @code{!} (punto esclamativo) @subentry operatore @code{!=}
+@cindex punto esclamativo (@code{!}) @subentry operatore @code{!=}
+@cindex @code{>} (parentesi acuta destra) @subentry operatore @code{>>} (I/O)
+@cindex parentesi @subentry acuta destra (@code{>}) @subentry operatore 
@code{>>} (I/O)
+@cindex operatori @subentry input/output
+@cindex @code{|} (barra verticale) @subentry operatore @code{|} (I/O)
+@cindex barra verticale (@code{|}) @subentry operatore @code{|} (I/O)
+@cindex operatori @subentry input/output
+@cindex @code{|} (barra verticale) @subentry operatore @code{|&} (I/O)
+@cindex barra verticale (@code{|}) @subentry operatore @code{|&}  (I/O)
+@cindex operatori @subentry input/output
 @item @code{< <= == != > >= >> | |&}
 Operatori relazionali e ridirezione.
 Gli operatori relazionali e le ridirezioni hanno lo stesso livello di
@@ -14103,8 +14211,8 @@ precedenza.  I caratteri come @samp{>} servono sia come 
operatori relazionali
 che come ridirezioni; la distinzione tra i due significati dipende dal
 contesto.
 
-@cindex istruzione @code{print}, operatori I/O nell'
-@cindex istruzione @code{printf}, operatori I/O nell'
+@cindex istruzione @subentry @code{print} @subentry operatori I/O in
+@cindex istruzione @subentry @code{printf} @subentry operatori I/O in
 Si noti che gli operatori di ridirezione I/O nelle istruzioni @code{print} e
 @code{printf} appartengono al livello dell'istruzione, non alle espressioni.
 La ridirezione non produce un'espressione che potrebbe essere l'operando di un
@@ -14114,54 +14222,54 @@ parentesi.  Tali combinazioni generano errori di 
sintassi
 (p.es., @samp{print pippo > a ? b : c}).
 Il modo corretto di scrivere quest'istruzione @`e @samp{print pippo > (a ? b : 
c)}.
 
-@cindex @code{~} (tilde), operatore @code{~}
-@cindex tilde (@code{~}), operatore @code{~}
-@cindex @code{!} (punto esclamativo), operatore @code{!~}
-@cindex punto esclamativo (@code{!}), operatore @code{!~}
+@cindex @code{~} (tilde) @subentry operatore @code{~}
+@cindex tilde (@code{~}) @subentry operatore @code{~}
+@cindex @code{!} (punto esclamativo) @subentry operatore @code{!~}
+@cindex punto esclamativo (@code{!}) @subentry operatore @code{!~}
 @item @code{~ !~}
 Corrispondenza, non corrispondenza.
 
-@cindex @code{in}, operatore
+@cindex @code{in} (operatore)
 @item @code{in}
 Appartenenza a un vettore.
 
-@cindex @code{&} (e commerciale), operatore @code{&&}
-@cindex e commerciale (@code{&}), operatore @code{&&}
+@cindex @code{&} (e commerciale) @subentry operatore @code{&&}
+@cindex e commerciale (@code{&}) @subentry operatore @code{&&}
 @item @code{&&}
 ``and'' logico.
 
-@cindex @code{|} (barra verticale), operatore @code{||}
-@cindex barra verticale (@code{|}), operatore @code{||}
+@cindex @code{|} (barra verticale) @subentry operatore @code{||}
+@cindex barra verticale (@code{|}) @subentry operatore @code{||}
 @item @code{||}
 ``or'' logico.
 
-@cindex @code{?} (punto interrogativo), operatore @code{?:}
-@cindex punto interrogativo (@code{?}), operatore @code{?:}
-@cindex @code{:} (due punti), operatore @code{?:}
-@cindex due punti (@code{:}), operatore @code{?:}
+@cindex @code{?} (punto interrogativo) @subentry operatore @code{?:}
+@cindex punto interrogativo (@code{?}) @subentry operatore @code{?:}
+@cindex @code{:} (due punti) @subentry operatore @code{?:}
+@cindex due punti (@code{:}) @subentry operatore @code{?:}
 @item @code{?:}
 Operatore condizionale.  Questo operatore raggruppa da destra verso sinistra.
 
-@cindex @code{+} (pi@`u), operatore @code{+=}
-@cindex pi@`u (@code{+}), operatore @code{+=}
-@cindex @code{-} (meno), operatore @code{-=}
-@cindex meno (@code{-}), operatore @code{-=}
-@cindex @code{*} (asterisco), operatore @code{*=}
-@cindex asterisco (@code{*}), operatore @code{*=}
-@cindex @code{*} (asterisco), operatore @code{**=}
-@cindex asterisco (@code{*}), operatore @code{**=}
-@cindex @code{/} (barra), operatore @code{/=}
-@cindex barra (@code{/}), operatore @code{/=}
-@cindex @code{%} (percento), operatore @code{%=}
-@cindex percento (@code{%}), operatore @code{%=}
-@cindex @code{^} (circonflesso), operatore @code{^=}
-@cindex circonflesso (@code{^}), operatore @code{^=}
+@cindex @code{+} (pi@`u) @subentry operatore @code{+=}
+@cindex pi@`u (@code{+}) @subentry operatore @code{+=}
+@cindex @code{-} (meno) @subentry operatore @code{-=}
+@cindex meno (@code{-}) @subentry operatore @code{-=}
+@cindex @code{*} (asterisco) @subentry operatore @code{*=}
+@cindex asterisco (@code{*}) @subentry operatore @code{*=}
+@cindex @code{*} (asterisco) @subentry operatore @code{**=}
+@cindex asterisco (@code{*}) @subentry operatore @code{**=}
+@cindex @code{/} (barra) @subentry operatore @code{/=}
+@cindex barra (@code{/}) @subentry operatore @code{/=}
+@cindex @code{%} (percento) @subentry operatore @code{%=}
+@cindex percento (@code{%}) @subentry operatore @code{%=}
+@cindex @code{^} (circonflesso) @subentry operatore @code{^=}
+@cindex circonflesso (@code{^}) @subentry operatore @code{^=}
 @item @code{= += -= *= /= %= ^= **=}
 Assegnamento.  Questi operatori raggruppano da destra verso sinistra.
 @end table
 
-@cindex POSIX @command{awk}, @code{**} e
-@cindex portabilit@`a, operatori, non in POSIX @command{awk}
+@cindex POSIX @command{awk} @subentry @code{**} (operatore)
+@cindex portabilit@`a @subentry operatori @subentry non in POSIX @command{awk}
 @quotation NOTA
 Gli operatori @samp{|&}, @samp{**} e @samp{**=} non sono definiti da POSIX.
 Per la massima portabilit@`a, @`e meglio non usarli.
@@ -14169,7 +14277,7 @@ Per la massima portabilit@`a, @`e meglio non usarli.
 
 @node Localizzazioni
 @section Il luogo fa la differenza
-@cindex localizzazione, definizione di
+@cindex localizzazione @subentry definizione di
 
 I moderni sistemi prevedono la nozione di @dfn{localizzazione}: un modo per
 informare il sistema sulla serie di caratteri e sulla lingua locali.
@@ -14280,8 +14388,8 @@ La localizzazione pu@`o influire sul formato dei dati 
in uscita da un programma
 @node Criteri di ricerca e azioni
 @chapter Criteri di ricerca, azioni e variabili
 @cindex criteri di ricerca
-@cindex @dfn{pattern}, si veda criteri di ricerca
-@cindex espressione di ricerca
+@cindex @dfn{pattern} @seeentry{criteri di ricerca}
+@cindex espressioni @subentry di ricerca
 
 Come gi@`a visto, ogni istruzione @command{awk} consiste di un criterio di
 ricerca [@dfn{pattern}] a cui @`e associata un'azione.  Questo @value{CHAPTER}
@@ -14323,7 +14431,7 @@ costruire qualcosa di utile.
                                 corrisponde a ogni record.
 @end menu
 
-@cindex criteri di ricerca, tipi di
+@cindex criteri di ricerca @subentry tipi di
 I criteri di ricerca in @command{awk} controllano l'esecuzione di
 azioni: un'azione viene eseguita
 quando il criterio di ricerca associato ad essa @`e soddisfatto dal
@@ -14373,8 +14481,8 @@ Il criterio di ricerca vuoto corrisponde a ciascun 
record in input.
 
 @node @dfn{regexp} come criteri di ricerca
 @subsection Espressioni regolari come criteri di ricerca
-@cindex criteri di ricerca, espressioni regolari come
-@cindex espressioni regolari, come criteri di ricerca
+@cindex criteri di ricerca @subentry espressioni regolari come
+@cindex espressioni regolari @subentry come criteri di ricerca
 
 Le espressioni regolari sono uno dei primi tipi di criteri di ricerca
 presentati in questo @value{DOCUMENT}.
@@ -14392,8 +14500,8 @@ END            @{ print personaggi_Disney, "Personaggi 
Disney visti" @}
 
 @node Espressioni come criteri di ricerca
 @subsection Espressioni come criteri di ricerca
-@cindex espressioni regolari, come criteri di ricerca
-@cindex criteri di ricerca, espressioni regolari come
+@cindex espressioni regolari @subentry come criteri di ricerca
+@cindex criteri di ricerca @subentry espressioni regolari come
 
 Qualsiasi espressione @command{awk} pu@`o essere usata come un criterio di
 ricerca @command{awk}.
@@ -14405,8 +14513,8 @@ valore dipende direttamente dal contenuto del record in 
input appena letto;
 altrimenti, dipende solo da quel che @`e accaduto fino a quel momento durante
 l'esecuzione del programma @command{awk}.
 
-@cindex espressioni di confronto, come criteri di ricerca
-@cindex criteri di ricerca, espressioni di confronto come
+@cindex espressioni @subentry di confronto @subentry come criteri di ricerca
+@cindex criteri di ricerca @subentry espressioni di confronto come
 Le espressioni di confronto, che usano gli operatori di confronto descritti in
 @ref{Tipi di variabile e confronti},
 sono un tipo di criterio di ricerca usato frequentemente.
@@ -14419,12 +14527,12 @@ stringa @`e usato come un'espressione regolare 
dinamica
 L'esempio seguente stampa il secondo campo di ogni record in input
 il cui primo campo sia esattamente @samp{li}:
 
-@cindex @code{/} (barra), criteri di ricerca e
-@cindex barra (@code{/}), criteri di ricerca e
-@cindex @code{~} (tilde), operatore @code{~}
-@cindex tilde (@code{~}), operatore @code{~}
-@cindex @code{!} (punto esclamativo), operatore @code{!~}
-@cindex punto esclamativo (@code{!}), operatore @code{!~}
+@cindex @code{/} (barra) @subentry criteri di ricerca e
+@cindex barra (@code{/}) @subentry criteri di ricerca e
+@cindex @code{~} (tilde) @subentry operatore @code{~}
+@cindex tilde (@code{~}) @subentry operatore @code{~}
+@cindex @code{!} (punto esclamativo) @subentry operatore @code{!~}
+@cindex punto esclamativo (@code{!}) @subentry operatore @code{!~}
 @example
 $ @kbd{awk '$1 == "li" @{ print $2 @}' mail-list}
 @end example
@@ -14440,16 +14548,16 @@ $ @kbd{awk '$1 ~ /li/ @{ print $2 @}' mail-list}
 @print{} 555-6699
 @end example
 
-@cindex @dfn{regexp}, costanti, come criteri di ricerca
-@cindex criteri di ricerca, costanti @dfn{regexp} come
+@cindex @dfn{regexp} @subentry costanti @subentry come criteri di ricerca
+@cindex criteri di ricerca @subentry costanti @dfn{regexp} come
 Una costante @dfn{regexp} usata come criterio di ricerca @`e anche un
 caso speciale di criterio di ricerca costituito da un'espressione.
 All'espressione @code{/li/} viene assegnato il valore uno se @samp{li}
 viene trovato nel record in input corrente. Quindi, come criterio di ricerca,
 @code{/li/} individua tutti i record che contengono la stringa @samp{li}.
 
-@cindex espressioni booleane, come criteri di ricerca
-@cindex criteri di ricerca, espressioni booleane come
+@cindex espressioni @subentry booleane @subentry come criteri di ricerca
+@cindex criteri di ricerca @subentry espressioni booleane come
 Anche le espressioni booleane sono frequentemente usate come criteri di
 ricerca.  Se un criterio di ricerca
 individua o no un record in input dipende dalla verifica delle
@@ -14492,10 +14600,10 @@ $ @kbd{awk '! /li/' mail-list}
 @end group
 @end example
 
-@cindex @code{BEGIN}, criterio di ricerca, criteri di ricerca booleani e
-@cindex @code{END}, criterio di ricerca, criteri di ricerca booleani e
-@cindex @code{BEGINFILE}, criterio di ricerca, criteri di ricerca booleani e
-@cindex @code{ENDFILE}, criterio di ricerca, criteri di ricerca booleani e
+@cindex @code{BEGIN} (regola) @subentry criteri di ricerca booleani e
+@cindex @code{END} (regola) @subentry criteri di ricerca booleani e
+@cindex @code{BEGINFILE} (regola) @subentry criteri di ricerca booleani e
+@cindex @code{ENDFILE} (regola) @subentry criteri di ricerca booleani e
 Le sottoespressioni di un'operatore booleano in un criterio di ricerca possono
 essere espressioni regolari costanti, confronti, o qualsiasi altra espressione
 di @command{awk}.  Gli intervalli di ricerca
@@ -14512,8 +14620,8 @@ criteri di ricerca @`e descritto in @ref{Precedenza}.
 @subsection Specificare intervalli di record con i criteri di ricerca
 
 @cindex intervalli di ricerca
-@cindex criteri di ricerca, intervalli nei
-@cindex righe, individuare intervalli di
+@cindex criteri di ricerca @subentry intervalli nei
+@cindex righe @subentry individuare intervalli di
 @cindex @code{,} (virgola), negli intervalli di ricerca
 @cindex virgola (@code{,}), negli intervalli di ricerca
 Un @dfn{intervallo di ricerca} @`e composto da due criteri di ricerca
@@ -14545,7 +14653,7 @@ criterio di ricerca viene @dfn{disattivato} a partire 
dal record seguente.
 Quindi il criterio di ricerca torna a controllare
 @var{inizio_intervallo} per ogni nuovo record.
 
-@cindex @code{if}, istruzione, azioni@comma{} modificabili
+@cindex @code{if} (istruzione) @subentry azioni, modificabili
 Il record che segnala l'inizio dell'intervallo
 di ricerca e quello che segnala la fine di quell'intervallo soddisfano
 @emph{entrambi} il criterio di ricerca.  Se non si vuole agire su tali record
@@ -14572,15 +14680,15 @@ Un tale programma @`e simile a questo:
 @end example
 
 @noindent
-@cindex righe, saltare tra delimitatori
+@cindex righe @subentry saltare tra delimitatori
 @c @cindex @dfn{flag} variables
 Questo programma non funziona, perch@'e l'intervallo di ricerca @`e sia 
attivato
 che disattivato dalla prima riga incontrata, quella costituita da un @samp{%}.
 Per ottenere l'effetto desiderato, si scriva il programma nella maniera che
 segue, utilizzando un @dfn{flag}:
 
-@cindex @code{!} (punto esclamativo), operatore @code{!}
-@cindex punto esclamativo (@code{!}), operatore @code{!}
+@cindex @code{!} (punto esclamativo) @subentry operatore @code{!}
+@cindex punto esclamativo (@code{!}) @subentry operatore @code{!}
 @example
 /^%$/     @{ ignora = ! ignora; next @}
 ignora == 1 @{ next @} # ignora righe quando `ignora' @`e impostato a 1
@@ -14608,17 +14716,17 @@ $ @kbd{echo Yes | gawk '(/1/,/2/) || /Yes/'}
 @error{} gawk: riga com.:1:           ^ syntax error
 @end example
 
-@cindex intervalli di ricerca, continuazione di riga e
-@cindex angolo buio, intervalli di ricerca, continuazione di riga e
+@cindex intervalli di ricerca @subentry continuazione di riga e
+@cindex angolo buio @subentry intervalli di ricerca @subentry continuazione di 
riga e
 Come punto di secondaria importanza, nonostante sia stilisticamente poco 
elegante,
 lo standard POSIX consente di andare a capo dopo la virgola
 in un intervallo di ricerca.  @value{DARKCORNER}
 @node BEGIN/END
 @subsection I criteri di ricerca speciali @code{BEGIN} ed @code{END}
 
-@cindex @code{BEGIN}, criterio di ricerca
-@cindex @code{END}, criterio di ricerca
-@cindex criterio di ricerca @code{END}
+@cindex @code{BEGIN} (regola)
+@cindex @code{END} (regola)
+@cindex regola @subentry @code{END}
 Tutti i criteri di ricerca fin qui descritti servono a individuare dei record
 in input.
 I criteri di ricerca speciali @code{BEGIN} ed @code{END} non hanno questo 
scopo.
@@ -14639,10 +14747,10 @@ da molto tempo.
 @node Usare BEGIN/END
 @subsubsection Azioni di inizializzazione e pulizia
 
-@cindex @code{BEGIN}, criterio di ricerca
-@cindex criterio di ricerca @code{BEGIN}
-@cindex @code{END}, criterio di ricerca
-@cindex criterio di ricerca @code{END}
+@cindex @code{BEGIN} (regola)
+@cindex regola @subentry @code{BEGIN}
+@cindex @code{END} (regola)
+@cindex regola @subentry @code{END}
 Una regola @code{BEGIN} @`e eseguita solo una volta, prima che sia letto il
 primo record in input.  Analogamente, una regola @code{END} @`e eseguita
 solo una volta, dopo che tutto l'input @`e gi@`a stato letto.  Per esempio:
@@ -14656,9 +14764,9 @@ $ @kbd{awk '}
 @print{} "li" @`e presente in 4 record.
 @end example
 
-@cindex @code{BEGIN}, criterio di ricerca, operatori e
-@cindex @code{END}, criterio di ricerca, operatori e
-@cindex criterio di ricerca @code{END}, operatori e
+@cindex @code{BEGIN} (regola) @subentry operatori e
+@cindex @code{END} (regola) @subentry operatori e
+@cindex regola @subentry @code{END} @subentry operatori e
 Questo programma trova il numero di record nel file in input
 @file{mail-list} che contengono la stringa @samp{li}.  La regola @code{BEGIN}
 stampa un titolo per il rapporto.  Non c'@`e bisogno di usare la regola
@@ -14716,7 +14824,7 @@ la regola @code{END} faccia uso  delle variabili 
@code{FNR} e @code{NR}.
 @node I/O e BEGIN/END
 @subsubsection Input/Output dalle regole @code{BEGIN} ed @code{END}
 
-@cindex input/output, dalle regole @code{BEGIN} ed @code{END}
+@cindex input/output @subentry dalle regole @code{BEGIN} ed @code{END}
 Ci sono parecchi punti (talora insidiosi) da tener presente se si fa dell'I/O
 all'interno di una regola @code{BEGIN} o @code{END}.
 Il primo ha a che fare con il valore di @code{$0} in una regola @code{BEGIN}.
@@ -14728,12 +14836,12 @@ Un modo per assegnare un valore effettivo a @code{$0} 
@`e di eseguire un
 comando @code{getline} senza indicare una variabile (@pxref{Getline}).
 Un altro modo @`e semplicemente quello di assegnare un valore a @code{$0}.
 
-@cindex Brian Kernighan, @command{awk} di
-@cindex differenze tra @command{awk} e @command{gawk}, criteri di ricerca 
@code{BEGIN}/@code{END}
-@cindex POSIX @command{awk}, criteri di ricerca @code{BEGIN}/@code{END}
-@cindex @code{print}, istruzione, criteri di ricerca @code{BEGIN}/@code{END} e
-@cindex @code{BEGIN}, criterio di ricerca, istruzione @code{print} e
-@cindex @code{END}, criterio di ricerca, istruzione @code{print} e
+@cindex Brian Kernighan @subentry @command{awk} di
+@cindex differenze tra @command{awk} e @command{gawk} @subentry criteri di 
ricerca @code{BEGIN}/@code{END}
+@cindex POSIX @command{awk} @subentry criteri di ricerca 
@code{BEGIN}/@code{END}
+@cindex @code{print} (istruzione) @subentry criteri di ricerca 
@code{BEGIN}/@code{END} e
+@cindex @code{BEGIN} (regola) @subentry istruzione @code{print} e
+@cindex @code{END} (regola) @subentry istruzione @code{print} e
 Il secondo punto @`e simile al primo, ma in direzione opposta.
 Tradizionalmente, pi@`u che altro per problemi di implementazione, @code{$0}
 e @code{NF} erano @emph{indefiniti} all'interno di una regola @code{END}.
@@ -14760,10 +14868,10 @@ almeno in @command{gawk}.  @`E anche stilisticamente 
inelegante, perch@'e se
 serve una riga vuota in output, il programma dovrebbe stamparne
 una esplicitamente.
 
-@cindex @code{next}, istruzione, criteri di ricerca @code{BEGIN}/@code{END} e
-@cindex @code{nextfile}, istruzione, criteri di ricerca 
@code{BEGIN}/@code{END} e
-@cindex @code{BEGIN}, criterio di ricerca, istruzioni 
@code{next}/@code{nextfile} e
-@cindex @code{END}, criterio di ricerca, istruzioni 
@code{next}/@code{nextfile} e
+@cindex @code{next} (istruzione) @subentry criteri di ricerca 
@code{BEGIN}/@code{END} e
+@cindex @code{nextfile} (istruzione) @subentry criteri di ricerca 
@code{BEGIN}/@code{END} e
+@cindex @code{BEGIN} (regola) @subentry istruzioni @code{next}/@code{nextfile} 
e
+@cindex @code{END} (regola) @subentry istruzioni @code{next}/@code{nextfile} e
 Per finire, le istruzioni @code{next} e @code{nextfile} non sono consentite
 all'interno di una regola @code{BEGIN}, perch@'e il ciclo implicito
 leggi-un-record-e-confrontalo-con-le-regole non @`e ancora iniziato.
@@ -14779,9 +14887,9 @@ Analogamente, tali istruzioni non sono valide 
all'interno di una regola
 
 @node BEGINFILE/ENDFILE
 @subsection I criteri di ricerca speciali @code{BEGINFILE} ed @code{ENDFILE}
-@cindex @code{BEGINFILE}, criterio di ricerca
-@cindex @code{ENDFILE}, criterio di ricerca
-@cindex differenze tra @command{awk} e @command{gawk}, criteri di ricerca 
@code{BEGINFILE}/@code{ENDFILE}
+@cindex @code{BEGINFILE} (regola)
+@cindex @code{ENDFILE} (regola)
+@cindex differenze tra @command{awk} e @command{gawk} @subentry criteri di 
ricerca @code{BEGINFILE}/@code{ENDFILE}
 
 @ifnotinfo
 Questa
@@ -14826,9 +14934,9 @@ nella riga dei comandi non pu@`o essere aperto in 
lettura, il programma
 @command{gawk} viene terminato.  Comunque, questo si pu@`o evitare, per poi
 passare a elaborare il file successivo specificato sulla riga dei comandi.
 
-@cindex @command{gawk}, variabile @code{ERRNO} in
-@cindex @code{ERRNO}, variabile, con criterio di ricerca @code{BEGINFILE}
-@cindex @code{nextfile}, istruzione, criteri di ricerca 
@code{BEGINFILE}/@code{ENDFILE} e
+@cindex @command{gawk} @subentry variabile @subentry @code{ERRNO} in
+@cindex @code{ERRNO} (variabile) @subentry con criterio di ricerca 
@code{BEGINFILE}
+@cindex @code{nextfile} (istruzione) @subentry criteri di ricerca 
@code{BEGINFILE}/@code{ENDFILE} e
 Questo controllo @`e fattibile controllando se la variabile @code{ERRNO} @`e
 diversa dalla stringa nulla; se @`e questo il caso, @command{gawk} non @`e
 riuscito ad aprire il file.  In questo caso il programma pu@`o eseguire
@@ -14859,13 +14967,13 @@ una regola @code{ENDFILE}, l'errore non @`e 
considerato fatale, ma viene
 impostato @code{ERRNO}.  Ci@`o permette di intercettare ed elaborare errori
 di I/O a livello di programma @command{awk}.
 
-@cindex @code{next}, istruzione, criteri di ricerca 
@code{BEGINFILE}/@code{ENDFILE} e
+@cindex @code{next} (istruzione) @subentry criteri di ricerca 
@code{BEGINFILE}/@code{ENDFILE} e
 L'istruzione @code{next} (@pxref{Istruzione next}) non @`e permessa all'interno
 di una regola @code{BEGINFILE} o @code{ENDFILE}.  L'istruzione @code{nextfile}
 @`e consentita solo all'interno di una regola @code{BEGINFILE}, non all'interno
 di una regola @code{ENDFILE}.
 
-@cindex @code{getline}, comando, criteri di ricerca 
@code{BEGINFILE}/@code{ENDFILE} e
+@cindex @code{getline} (comando) @subentry criteri di ricerca 
@code{BEGINFILE}/@code{ENDFILE} e
 L'istruzione @code{getline} (@pxref{Getline}) @`e limitata all'interno sia di
 @code{BEGINFILE} che di @code{ENDFILE}: solo le forme ridirette di
 di @code{getline} sono permesse.
@@ -14899,8 +15007,8 @@ rule to grab it before moving on to the next file.]
 @node Vuoto
 @subsection Il criterio di ricerca vuoto
 
-@cindex vuoto, criterio di ricerca
-@cindex criteri di ricerca vuoti
+@cindex vuoto @subentry criterio di ricerca
+@cindex criteri di ricerca @subentry vuoti
 Un criterio di ricerca vuoto (cio@`e omesso) corrisponde a
 @emph{ogni} record in input.  Per esempio, il programma:
 
@@ -14913,8 +15021,8 @@ stampa il primo campo di ogni record.
 
 @node Usare variabili di shell
 @section Usare variabili di shell in programmi
-@cindex shell, variabili di
-@cindex programmi @command{awk}, variabili di shell in
+@cindex shell @subentry variabili di
+@cindex programmi @command{awk} @subentry variabili di shell nei
 @c @cindex shell and @command{awk} interaction
 
 I programmi @command{awk} sono spesso usati come componenti di programmi pi@`u
@@ -14925,7 +15033,7 @@ individuare.
 Ci sono due modi per rendere disponibile il valore di una variabile di shell
 all'interno di un programma @command{awk}.
 
-@cindex shell, uso di doppio apice
+@cindex shell @subentry uso di doppio apice
 Un modo comune @`e quello di usare i doppi apici per sostituire il valore della
 variabile nel progamma @command{awk} contenuto nello @dfn{script}:
 
@@ -14978,8 +15086,8 @@ La variabile @command{awk} @code{crit} potrebbe avere 
come nome anche
 @code{criterio_di_ricerca}, ma ci@`o potrebbe essere causa di confusione.
 Usare una variabile permette una maggiore flessibilit@`a, poich@'e la variabile
 pu@`o essere usata in ogni parte del
-programma---per stamparla, per indicizzare un vettore, o per qualsiasi altro
-scopo---senza che sia necessario l'artificio di doverla inserire usando gli
+programma --- per stamparla, per indicizzare un vettore, o per qualsiasi altro
+scopo --- senza che sia necessario l'artificio di doverla inserire usando gli
 apici.
 
 @node Panoramica sulle azioni
@@ -15007,12 +15115,12 @@ con il criterio di ricerca.  Quindi, schematicamente, 
un programma
 @dots{}
 @end display
 
-@cindex @code{@{@}} (parentesi graffe), azioni e
-@cindex parentesi graffe (@code{@{@}}), azioni e
-@cindex separatori, per istruzioni in azioni
-@cindex a capo, separatore di istruzioni nelle azioni
-@cindex @code{;} (punto e virgola), separare istruzioni nelle azioni
-@cindex punto e virgola (@code{;}), separare istruzioni nelle azioni
+@cindex @code{@{@}} (parentesi graffe) @subentry azioni e
+@cindex parentesi @subentry graffe (@code{@{@}}) @subentry azioni e
+@cindex separatore di istruzioni @subentry nelle azioni
+@cindex ritorno a capo @subentry separatore di istruzioni nelle azioni
+@cindex @code{;} (punto e virgola) @subentry separare istruzioni nelle azioni
+@cindex punto e virgola (@code{;}) @subentry separare istruzioni nelle azioni
 Un'azione consiste di una o pi@`u @dfn{istruzioni} @command{awk}, racchiuse
 fra parentesi graffe (@samp{@{@r{@dots{}}@}}).  Ogni istruzione specifica
 una cosa da fare.  Le istruzioni sono separate tra loro da dei ritorni a capo o
@@ -15031,8 +15139,8 @@ parentesi graffe.  Un'azione omessa equivale a 
specificare
 I seguenti tipi di istruzione sono disponibili in @command{awk}:
 
 @table @asis
-@cindex effetti collaterali delle istruzioni
-@cindex istruzioni, effetti collaterali delle
+@cindex effetti collaterali @subentry delle istruzioni
+@cindex istruzioni @subentry effetti collaterali delle
 @item Espressioni
 Servono per chiamare funzioni o assegnare valori a variabili
 @iftex
@@ -15082,21 +15190,21 @@ Per eliminare elementi di vettori.
 @node Istruzioni
 @section Istruzioni di controllo nelle azioni
 @cindex istruzioni di controllo
-@cindex controllo, tramite istruzioni, in azioni
-@cindex azioni, istruzioni di controllo in
+@cindex controllo @subentry tramite istruzioni @subentry in azioni
+@cindex azioni @subentry istruzioni di controllo in
 
 Le @dfn{istruzioni di controllo}, come @code{if}, @code{while} e 
cos@`{@dotless{i}} via,
 regolano il flusso di esecuzione nei programmi @command{awk}.  Molte tra
 le istruzioni di controllo di @command{awk} sono modellate sulle
 corrispondenti istruzioni in C.
-@cindex istruzioni composte@comma{} istruzioni di controllo e
-@cindex composte, istruzioni@comma{} istruzioni di controllo e
-@cindex corpo, nelle azioni
-@cindex @code{@{@}} (parentesi graffe), istruzioni, raggruppare
-@cindex parentesi graffe (@code{@{@}}), istruzioni, raggruppare
-@cindex a capo, separatore di istruzioni nelle azioni
-@cindex @code{;} (punto e virgola), separare istruzioni nelle azioni
-@cindex punto e virgola (@code{;}), separare istruzioni nelle azioni
+@cindex istruzioni composte @subentry istruzioni di controllo e
+@cindex composte @subentry istruzioni @subentry istruzioni di controllo e
+@cindex corpo @subentry nelle azioni
+@cindex @code{@{@}} (parentesi graffe) @subentry istruzioni, raggruppare
+@cindex parentesi @subentry graffe (@code{@{@}}) @subentry istruzioni, 
raggruppare
+@cindex ritorno a capo @subentry separatore di istruzioni nelle azioni
+@cindex @code{;} (punto e virgola) @subentry separare istruzioni nelle azioni
+@cindex punto e virgola (@code{;}) @subentry separare istruzioni nelle azioni
 Tutte le istruzioni di controllo iniziano con parole chiave speciali, come
 @code{if} e @code{while}, per distinguerle dalle semplici espressioni.
 Molte istruzioni di controllo contengono altre istruzioni.  Per esempio,
@@ -15132,8 +15240,8 @@ loro con dei ritorni a capo o dei punti e virgola.
 @node Istruzione if
 @subsection L'istruzione @code{if}-@code{else}
 
-@cindex istruzione @code{if}
-@cindex @code{if}, istruzione
+@cindex istruzione @subentry @code{if}
+@cindex @code{if} (istruzione)
 L'istruzione @code{if}-@code{else} @`e quella che serve in @command{awk}
 per prendere decisioni.  @`E simile
 a questa:
@@ -15184,11 +15292,11 @@ questo modo, perch@'e a chi li legge potrebbe 
sfuggire la parola chiave
 
 @node Istruzione while
 @subsection L'istruzione @code{while}
-@cindex @code{while}, istruzione
-@cindex istruzione @code{while}
+@cindex @code{while} (istruzione)
+@cindex istruzione @subentry @code{while}
 @cindex cicli
-@cindex cicli, @code{while}
-@cindex cicli, si veda anche @code{while}, istruzione
+@cindex cicli @subentry @code{while}
+@cindex cicli @seealso{@code{while} (istruzione)}
 
 Nella programmazione, un @dfn{ciclo} @`e una parte di un programma che pu@`o
 essere eseguita due o pi@`u volte consecutivamente.
@@ -15201,7 +15309,7 @@ while (@var{condizione})
   @var{corpo-del-ciclo}
 @end example
 
-@cindex corpo, nei cicli
+@cindex corpo @subentry nei cicli
 @noindent
 @var{corpo-del-ciclo} @`e un'istruzione detta @dfn{corpo} del ciclo,
 e @var{condizione} @`e un'espressione che controlla per quante volte il ciclo
@@ -15256,8 +15364,8 @@ programma @`e di lettura pi@`u difficile se lo si 
omette.
 
 @node Istruzione do
 @subsection L'istruzione @code{do}-@code{while}
-@cindex @code{do}-@code{while}
-@cindex cicli, @code{do}-@code{while}
+@cindex @code{do}-@code{while} (istruzione)
+@cindex cicli @subentry @code{do}-@code{while}
 
 Il ciclo @code{do} @`e una variazione dell'istruzione di ciclo @code{while}.
 Il ciclo @code{do} esegue il @var{corpo-del-ciclo} una volta e poi ripete il
@@ -15302,9 +15410,9 @@ reale; solo occasionalmente @`e davvero necessario 
usare un @code{do}.
 
 @node Istruzione for
 @subsection L'istruzione @code{for}
-@cindex istruzione @code{for}
-@cindex @code{for}, istruzione
-@cindex cicli, @code{for}, iterativi
+@cindex istruzione @subentry @code{for}
+@cindex @code{for} (istruzione)
+@cindex cicli @subentry @code{for} @subentry iterativi
 
 L'istruzione @code{for} rende pi@`u agevole contare le iterazioni di un ciclo.
 La forma generale dell'istruzione @code{for} @`e simile a questa:
@@ -15384,7 +15492,7 @@ while (@var{condizione}) @{
 @}
 @end example
 
-@cindex cicli, istruzione @code{continue} e
+@cindex cicli @subentry istruzione @code{continue} e
 @noindent
 La sola eccezione @`e quando l'istruzione @code{continue}
 (@pxref{Istruzione continue}) @`e usata
@@ -15400,8 +15508,8 @@ Contare il numero di iterazioni @`e
 molto frequente nei cicli.  Pu@`o essere pi@`u facile pensare a questo conto 
come
 parte del ciclo, piuttosto che come qualcosa da fare all'interno del ciclo.
 
-@cindex @code{in}, operatore
-@cindex operatore @code{in}
+@cindex @code{in} (operatore)
+@cindex operatore @subentry @code{in}
 Esiste una versione alternativa al ciclo @code{for}, per esaminare tutti
 gli indici di un vettore:
 
@@ -15416,11 +15524,13 @@ per maggiori informazioni su questa versione del 
ciclo @code{for}.
 
 @node Istruzione switch
 @subsection L'istruzione @code{switch}
-@cindex @code{switch}, istruzione
-@cindex @code{case}, parola chiave
-@cindex parola chiave @code{case}
-@cindex @code{default}, parola chiave
-@cindex parola chiave @code{default}
+@cindex @code{switch} (istruzione)
+@cindex @code{case} @subentry parola chiave
+@cindex @code{case} @subentry @seealso{@code{switch} (istruzione)}
+@cindex parola @subentry chiave @code{case}
+@cindex @code{default} @subentry parola chiave
+@cindex @code{default} @subentry @seealso{@code{switch} (istruzione)}
+@cindex parola @subentry chiave @code{default}
 
 @ifnotinfo
 Questa
@@ -15505,10 +15615,10 @@ chiamare una funzione di nome @code{uso()}.
 
 @node Istruzione break
 @subsection L'istruzione @code{break}
-@cindex @code{break}, istruzione
-@cindex istruzione @code{break}
-@cindex cicli, uscita
-@cindex cicli, istruzione @code{break} e
+@cindex @code{break} (istruzione)
+@cindex istruzione @subentry @code{break}
+@cindex cicli @subentry uscita
+@cindex cicli @subentry istruzione @code{break} e
 
 L'istruzione @code{break} esce dal ciclo pi@`u interno @code{for},
 @code{while} o @code{do} dentro al quale si trova.  L'esempio seguente
@@ -15571,10 +15681,10 @@ Questo argomento @`e trattato in @ref{Istruzione 
switch}.
 @c @cindex @code{break}, outside of loops
 @c @cindex historical features
 @c @cindex @command{awk} language, POSIX version
-@cindex POSIX @command{awk}, @code{break} e
-@cindex angolo buio, istruzione @code{break}
-@cindex @command{gawk}, istruzione @code{break} in
-@cindex Brian Kernighan, @command{awk} di
+@cindex POSIX @command{awk} @subentry @code{break} (istruzione)
+@cindex angolo buio @subentry istruzione @subentry @code{break}
+@cindex @command{gawk} @subentry @code{break} (istruzione) in
+@cindex Brian Kernighan @subentry @command{awk} di
 L'istruzione @code{break} non ha significato se
 usata fuori dal corpo di un ciclo o di un'istruzione @code{switch}.
 Tuttavia, anche se la cosa non @`e mai stata documentata,
@@ -15588,8 +15698,8 @@ e lo stesso fa @command{gawk}.
 @node Istruzione continue
 @subsection L'istruzione @code{continue}
 
-@cindex @code{continue}, istruzione
-@cindex istruzione @code{continue}
+@cindex @code{continue} (istruzione)
+@cindex istruzione @subentry @code{continue}
 Analogamente a @code{break}, l'istruzione @code{continue} @`e usata solo
 all'interno di cicli @code{for}, @code{while} e @code{do}.  L'istruzione
 ignora il resto del corpo del ciclo, facendo s@`{@dotless{i}} che la 
successiva iterazione
@@ -15613,7 +15723,7 @@ BEGIN @{
 @end example
 
 @noindent
-Questo programma stampa tutti i numeri da 0 a 20---tranne il 5, in cui
+Questo programma stampa tutti i numeri da 0 a 20 --- tranne il 5, in cui
 l'istruzione @code{printf} @`e saltata.  Siccome l'incremento @samp{x++}
 non viene saltato, @code{x} non rimane fermo al valore 5.  Si confronti il 
ciclo
 @code{for} dell'esempio precedente con il seguente ciclo @code{while}:
@@ -15635,13 +15745,13 @@ BEGIN @{
 Questo programma inizia un ciclo infinito dopo che @code{x} ha assunto il
 valore 5, poich@'e l'istruzione di incremento (@samp{x++}) non @`e mai 
raggiunta.
 
-@c @cindex @code{continue}, fuori da un ciclo
-@c @cindex funzionalit@`a del passato
-@c @cindex linguaggio @command{awk}, versione POSIX
-@cindex POSIX @command{awk}, istruzione @code{continue} e
-@cindex angolo buio, istruzione @code{continue}
-@cindex @command{gawk}, istruzione @code{continue} in
-@cindex Brian Kernighan, @command{awk} di
+@c @cindex @code{continue}, outside of loops
+@c @cindex historical features
+@c @cindex @command{awk} language, POSIX version
+@cindex POSIX @command{awk} @subentry @code{continue} (istruzione)
+@cindex angolo buio @subentry istruzione @subentry @code{continue}
+@cindex @command{gawk} @subentry @code{continue} (istruzione) in
+@cindex Brian Kernighan @subentry @command{awk} di
 L'istruzione @code{continue} non ha un significato speciale se appare in
 un'istruzione @code{switch}, e non ha alcun significato se usata fuori dal
 corpo di un ciclo.  Le prime versioni di @command{awk} trattavano le
@@ -15660,8 +15770,8 @@ e lo stesso vale per @command{gawk}.
 
 @node Istruzione next
 @subsection L'istruzione @code{next}
-@cindex @code{next}, istruzione
-@cindex istruzione @code{next}
+@cindex @code{next} (istruzione)
+@cindex istruzione @subentry @code{next}
 
 L'istruzione @code{next} fa s@`{@dotless{i}} che @command{awk} termini 
immediatamente
 l'elaborazione del record corrente e proceda a elaborare il record successivo.
@@ -15675,7 +15785,7 @@ successivo immediatamente, ma non altera il flusso del 
controllo in alcun
 modo (cio@`e, il resto dell'azione in esecuzione prosegue con il nuovo record
 in input).
 
-@cindex @command{awk}, programmi, eseguire
+@cindex programmi @command{awk} @subentry eseguire
 Al livello pi@`u alto, l'esecuzione di un programma @command{awk} @`e un ciclo
 che legge un record in input e quindi confronta il criterio di ricerca di
 ciascuna regola con il record stesso.  Se si vede questo ciclo come un
@@ -15710,16 +15820,14 @@ in input, vengono eseguite le eventuali regole 
@code{END} presenti.
 @xref{BEGIN/END}.
 
 L'istruzione @code{next} non @`e consentita all'interno delle regole
-@code{BEGINFILE} ed @code{ENDFILE}.
-@xref{BEGINFILE/ENDFILE}.
+@code{BEGINFILE} ed @code{ENDFILE}. @xref{BEGINFILE/ENDFILE}.
 
-@c @cindex @command{awk} language, POSIX version
 @c @cindex @code{next}, inside a user-defined function
-@cindex @code{BEGIN}, criterio di ricerca, istruzioni 
@code{next}/@code{nextfile} e
-@cindex @code{END}, criterio di ricerca, istruzioni 
@code{next}/@code{nextfile} e
-@cindex POSIX @command{awk}, istruzioni @code{next}/@code{nextfile} e
-@cindex @code{next}, istruzione, in funzioni definite dall'utente
-@cindex funzioni definite dall'utente, istruzioni @code{next}/@code{nextfile} e
+@cindex @code{BEGIN} (regola) @subentry istruzioni @code{next}/@code{nextfile} 
e
+@cindex @code{END} (regola) @subentry istruzioni @code{next}/@code{nextfile} e
+@cindex POSIX @command{awk} @subentry @code{next}/@code{nextfile} (istruzioni)
+@cindex @code{next} (istruzione) @subentry in funzione definita dall'utente
+@cindex funzione definita dall'utente @subentry istruzioni 
@code{next}/@code{nextfile} e
 Secondo lo standard POSIX, il comportamento di @command{awk} @`e indefinito
 se @code{next} @`e usato in una regola @code{BEGIN} o @code{END}.
 @command{gawk} considera questo come un errore di sintassi. Sebbene POSIX
@@ -15733,8 +15841,8 @@ a partire dalla prima regola del programma.
 
 @node Istruzione nextfile
 @subsection L'istruzione @code{nextfile}
-@cindex @code{nextfile}, istruzione
-@cindex istruzione @code{nextfile}
+@cindex @code{nextfile} (istruzione)
+@cindex istruzione @subentry @code{nextfile}
 
 L'istruzione @code{nextfile}
 @`e simile all'istruzione @code{next}.
@@ -15791,11 +15899,11 @@ includerla nello standard POSIX.
 Si veda @uref{http://austingroupbugs.net/view.php?id=607, il sito web 
dell'Austin Group}.
 @end quotation
 
-@cindex funzioni definite dall'utente, istruzioni @code{next}/@code{nextfile} e
-@cindex @code{nextfile}, in funzioni definite dall'utente
-@cindex Brian Kernighan, @command{awk} di
-@cindex @command{mawk}, programma di utilit@`a
-@cindex programma di utilit@`a @command{mawk}
+@cindex funzione definita dall'utente @subentry istruzioni 
@code{next}/@code{nextfile} e
+@cindex @code{nextfile} (istruzione) @subentry in funzioni definite dall'utente
+@cindex Brian Kernighan @subentry @command{awk} di
+@cindex @command{mawk} (programma di utilit@`a)
+@cindex programma di utilit@`a @subentry @command{mawk}
 Le versioni correnti di BWK @command{awk} e @command{mawk}
 entrambe prevedono @code{nextfile}.  Tuttavia, non sono consentite istruzioni
 @code{nextfile} all'interno del corpo delle funzioni
@@ -15809,8 +15917,8 @@ qualsiasi altra istruzione @code{nextfile}.
 @node Istruzione exit
 @subsection L'istruzione @code{exit}
 
-@cindex @code{exit}, istruzione
-@cindex istruzione @code{exit}
+@cindex @code{exit} (istruzione)
+@cindex istruzione @subentry @code{exit}
 L'istruzione @code{exit} fa s@`{@dotless{i}} che @command{awk} termini 
immediatamente
 l'esecuzione della regola corrente e che termini di elaborare l'input;
 qualsiasi input ancora da elaborare @`e ignorato.  L'istruzione @code{exit} @`e
@@ -15820,10 +15928,10 @@ scritta come segue:
 @code{exit} [@var{codice di ritorno}]
 @end display
 
-@cindex @code{BEGIN}, criterio di ricerca, istruzione @code{exit} e
-@cindex criterio di ricerca @code{BEGIN}, istruzione @code{exit} e
-@cindex @code{END}, criterio di ricerca, istruzione @code{exit} e
-@cindex criterio di ricerca @code{END}, istruzione @code{exit} e
+@cindex @code{BEGIN} (regola) @subentry istruzione @code{exit} e
+@cindex regola @subentry @code{BEGIN} @subentry @code{exit} (istruzione) e
+@cindex @code{END} (regola) @subentry istruzione @code{exit} e
+@cindex regola @subentry @code{END} @subentry @code{exit} (istruzione) e
 Quando un'istruzione @code{exit} @`e eseguita all'interno di una regola 
@code{BEGIN},
 il programma termina completamente l'elaborazione.  Nessun record in input
 viene letto.  Tuttavia, se una regola @code{END} @`e presente, come parte
@@ -15846,7 +15954,7 @@ una variabile a un valore diverso da zero, prima di 
invocare l'istruzione
 @xref{Funzione assert}
 per un esempio di questo tipo.
 
-@cindex angolo buio, istruzione @code{exit}
+@cindex angolo buio @subentry istruzione @subentry @code{exit}
 Se si specifica un argomento all'istruzione @code{exit}, il suo valore @`e
 usato come codice di ritorno finale dell'elaborazione @command{awk}.  Se non
 viene specificato alcun argomento,
@@ -15859,7 +15967,7 @@ argomento, @command{awk} usa il codice di ritorno 
specificato in precedenza.
 @value{DARKCORNER}
 @xref{Codice di ritorno} per maggiori informazioni.
 
-@cindex convenzioni di programmazione, istruzione @code{exit}
+@cindex convenzioni di programmazione @subentry istruzione @code{exit}
 Per esempio, si supponga che si sia verificata una condizione di errore
 difficile o impossibile da gestire.  Convenzionalmente, i programmi la
 segnalano terminando con un codice di ritorno diverso da zero.  Un programma
@@ -15891,8 +15999,8 @@ risultati coerenti tra loro in sistemi operativi 
diversi.
 
 @node Variabili predefinite
 @section Variabili predefinite
-@cindex predefinite, variabili
-@cindex variabili predefinite
+@cindex predefinita @subentry variabile
+@cindex variabili @subentry predefinite
 
 La maggior parte delle variabili @command{awk} sono disponibili per essere
 usate dall'utente secondo le proprie esigenze;
@@ -15907,7 +16015,7 @@ maniera desiderata.  Altre variabili sono impostate 
automaticamente da
 @command{awk}, in modo da poter comunicare al programma in esecuzione
 informazioni sul modo di procedere interno di @command{awk}.
 
-@cindex @command{gawk}, variabili predefinite e
+@cindex @command{gawk} @subentry variabili predefinite e
 Questa @value{SECTION} documenta tutte le variabili predefinite di
 @command{gawk}; molte di queste variabili sono anche documentate nei
 @value{CHAPTER} che descrivono le loro aree di influenza.
@@ -15922,8 +16030,8 @@ Questa @value{SECTION} documenta tutte le variabili 
predefinite di
 
 @node Variabili modificabili dall'utente
 @subsection Variabili predefinite modificabili per controllare @command{awk}
-@cindex variabili predefinite, modificabili dall'utente
-@cindex modificabili dall'utente, variabili
+@cindex variabili @subentry predefinite @subentry modificabili dall'utente
+@cindex modificabili dall'utente @subentry variabili
 
 La seguente @`e una lista alfabetica di variabili che @`e possibile modificare 
per
 controllare come @command{awk} gestisce alcuni compiti.
@@ -15936,11 +16044,11 @@ modalit@`a compatibile
 sono menzionate nella descrizione di ogni variabile.)
 
 @table @code
-@cindex @code{BINMODE}, variabile
-@cindex variabile @code{BINMODE}
-@cindex binario, input/output
-@cindex input/output binario
-@cindex differenze tra @command{awk} e @command{gawk}, variabile @code{BINMODE}
+@cindex @code{BINMODE} (variabile)
+@cindex variabile @subentry @code{BINMODE}
+@cindex binario @subentry input/output
+@cindex input/output @subentry binario
+@cindex differenze tra @command{awk} e @command{gawk} @subentry variabile 
@code{BINMODE}
 @item BINMODE #
 Su sistemi non-POSIX, questa variabile specifica l'uso della modalit@`a binaria
 per tutto l'I/O.  I valori numerici di uno, due o tre specificano che i file
@@ -15958,11 +16066,11 @@ devono usare I/O binario.  Ogni altro valore di 
stringa @`e trattato come
 dettaglio in @ref{Uso su PC}.  @command{mawk} (@pxref{Altre versioni})
 prevede questa variabile, ma consente solo valori numerici.
 
-@cindex @code{CONVFMT}, variabile
-@cindex variabile @code{CONVFMT}
-@cindex POSIX @command{awk}, variabile @code{CONVFMT} e
-@cindex numeri, conversione in stringhe
-@cindex stringhe, conversione in numeri
+@cindex @code{CONVFMT} (variabile)
+@cindex variabile @subentry @code{CONVFMT}
+@cindex POSIX @command{awk} @subentry @code{CONVFMT} (variabile)
+@cindex numeri @subentry conversione in stringhe
+@cindex stringa @subentry conversione in numero
 @item @code{CONVFMT}
 Una stringa che controlla la conversione di numeri in
 stringhe (@pxref{Conversione}).
@@ -15972,12 +16080,12 @@ In effetti @`e la stringa passata come primo 
argomento alla funzione
 Il suo valore di default @`e @code{"%.6g"}.
 @code{CONVFMT} @`e stata introdotta dallo standard POSIX.
 
-@cindex @command{gawk}, variabile @code{FIELDWIDTHS} in
-@cindex @code{FIELDWIDTHS}, variabile
-@cindex variabile @code{FIELDWIDTHS}
-@cindex differenze tra @command{awk} e @command{gawk}, variabile 
@code{FIELDWIDTHS}
-@cindex separatori di campo, variabile @code{FIELDWIDTHS} e
-@cindex campo, separatori di, variabile @code{FIELDWIDTHS} e
+@cindex @command{gawk} @subentry variabile @subentry @code{FIELDWIDTHS} in
+@cindex @code{FIELDWIDTHS} (variabile)
+@cindex variabile @subentry @code{FIELDWIDTHS}
+@cindex differenze tra @command{awk} e @command{gawk} @subentry variabile 
@code{FIELDWIDTHS}
+@cindex separatore di campo @subentry variabile @code{FIELDWIDTHS} e
+@cindex campi @subentry separatore di @subentry variabile @code{FIELDWIDTHS} e
 @item FIELDWIDTHS #
 Una lista di posizioni di colonna, separate da spazi, per dire a
 @command{gawk}
@@ -15990,12 +16098,12 @@ Assegnando un valore a @code{FIELDWIDTHS}, le 
variabili @code{FS} e
 @emph{non} vengono usate per effettuare la divisione in campi.
 @xref{Dimensione costante} per maggiori informazioni.
 
-@cindex @command{gawk}, variabile @code{FPAT} in
-@cindex @code{FPAT}, variabile
-@cindex variabile @code{FPAT}
-@cindex differenze tra @command{awk} e @command{gawk}, variabile @code{FPAT}
-@cindex separatori di campo, variabile @code{FPAT} e
-@cindex campo, separatori di, variabile @code{FPAT} e
+@cindex @command{gawk} @subentry variabile @subentry @code{FPAT} in
+@cindex @code{FPAT} (variabile)
+@cindex variabile @subentry @code{FPAT}
+@cindex differenze tra @command{awk} e @command{gawk} @subentry variabile 
@code{FPAT}
+@cindex separatore di campo @subentry variabile @code{FPAT} e
+@cindex campi @subentry separatore di @subentry variabile @code{FPAT} e
 @item FPAT #
 Un'espressione regolare (di tipo stringa) per dire a @command{gawk}
 di creare i campi utilizzando come delimitatore il testo che corrisponde
@@ -16005,10 +16113,10 @@ le variabili @code{FS} e @code{FIELDWIDTHS}
 @emph{non} vengono usate per effettuare la divisione in campi.
 @xref{Separazione in base al contenuto} per maggiori informazioni.
 
-@cindex @code{FS}, variabile
-@cindex variabile @code{FS}
-@cindex campo, separatori di
-@cindex separatori di campo
+@cindex @code{FS} (variabile)
+@cindex variabile @subentry @code{FS}
+@cindex campi @subentry separatore di
+@cindex separatore di campo
 @item FS
 Il separatore dei campi in input (@pxref{Separatori di campo}).
 Il valore pu@`o essere una stringa di un solo carattere o un'espressione
@@ -16021,7 +16129,7 @@ specifica il comportamento quando @code{FS} @`e la 
stringa nulla.
 Nonostante questo, alcune altre versioni di @command{awk} trattano @code{""}
 in modo speciale.)
 
-@cindex POSIX @command{awk}, variabile @code{FS} e
+@cindex POSIX @command{awk} @subentry @code{FS} (variabile)
 Il valore di default @`e @w{@code{" "}}, una stringa consistente in un singolo
 spazio.  In via eccezionale, questo valore significa che qualsiasi sequenza
 di spazi, TAB, e/o ritorni a capo costituisce
@@ -16036,7 +16144,7 @@ l'opzione @option{-F}:
 awk -F, '@var{programma}' @var{file-in-input}
 @end example
 
-@cindex @command{gawk}, separatori di campo e
+@cindex @command{gawk} @subentry separatore di campo e
 Se @command{gawk} sta usando @code{FIELDWIDTHS} o @code{FPAT}
 per separare i campi,
 assegnare un valore a @code{FS} fa s@`{@dotless{i}} che @command{gawk} torni 
alla
@@ -16045,13 +16153,13 @@ Un modo semplice per fare questo
 @`e semplicemente quello di scrivere l'istruzione
 @samp{FS = FS}, aggiungendo magari un commento esplicativo.
 
-@cindex @command{gawk}, variabile @code{IGNORECASE} in
-@cindex @code{IGNORECASE}, variabile
-@cindex variabile @code{IGNORECASE}
-@cindex differenze tra @command{awk} e @command{gawk}, variabile 
@code{IGNORECASE}
-@cindex maiuscolo/minuscolo, confronti tra stringhe e
-@cindex maiuscolo/minuscolo, @dfn{regexp} e
-@cindex espressioni regolari, maiuscolo/minuscolo
+@cindex @command{gawk} @subentry variabile @subentry @code{IGNORECASE} in
+@cindex @code{IGNORECASE} (variabile)
+@cindex variabile @subentry @code{IGNORECASE}
+@cindex differenze tra @command{awk} e @command{gawk} @subentry variabile 
@code{IGNORECASE}
+@cindex maiuscolo/minuscolo @subentry confronti tra stringhe e
+@cindex maiuscolo/minuscolo @subentry @dfn{regexp} e
+@cindex espressioni regolari @subentry maiuscolo/minuscolo
 @item IGNORECASE #
 Se la variabile @code{IGNORECASE} @`e diversa da zero o dalla stringa nulla,
 tutti i confronti tra stringhe
@@ -16069,13 +16177,13 @@ e non influenza la separazione dei campi qualora si 
usi un separatore di campo
 costituito da un unico carattere.
 @xref{Maiuscolo-Minuscolo}.
 
-@cindex @command{gawk}, variabile @code{LINT} in
-@cindex @code{LINT}, variabile
-@cindex variabile @code{LINT}
-@cindex differenze tra @command{awk} e @command{gawk}, variabile @code{LINT}
-@cindex @dfn{lint}, controlli
-@cindex controlli @dfn{lint}
-@item LINT #
+@cindex @command{gawk} @subentry variabile @subentry @code{LINT} in
+@cindex @code{LINT} (variabile)
+@cindex variabile @subentry @code{LINT}
+@cindex differenze tra @command{awk} e @command{gawk} @subentry variabile 
@code{LINT}
+@cindex @dfn{lint} @subentry controlli
+@cindex controllo @subentry @dfn{lint}
+@item LINT o
 Quando questa variabile @`e vera (non uguale a zero e non uguale alla stringa
 nulla), @command{gawk} si comporta come se fosse stata specificata sulla
 riga di comando l'opzione @option{--lint}
@@ -16099,10 +16207,10 @@ diversi aspetti del comportamente di @command{gawk}, 
il controllo
 degli avvertimenti di @dfn{lint} durante l'esecuzione del programma @`e 
indipendente
 dall'implementazione @command{awk} in esecuzione.
 
-@cindex @code{OFMT}, variabile
-@cindex variabile @code{OFMT}
-@cindex numeri, conversione in stringhe
-@cindex stringhe, conversione in numeri
+@cindex @code{OFMT} (variabile)
+@cindex variabile @subentry @code{OFMT}
+@cindex numeri @subentry conversione in stringhe
+@cindex stringa @subentry conversione in numero
 @item OFMT
 @`E questa la stringa che controlla la conversione di numeri in
 stringhe (@pxref{Conversione}) quando li
@@ -16115,45 +16223,45 @@ usavano @code{OFMT} per specificare il formato da 
usare per convertire
 numeri in stringhe in espressioni generali; questo compito @`e ora svolto
 da @code{CONVFMT}.
 
-@cindex funzione @code{sprintf()}, variabile @code{OFMT} e
-@cindex @code{print}, istruzione, variabile @code{OFMT} e
-@cindex istruzione @code{print}, variabile @code{OFMT} e
-@cindex variabile @code{OFS}
-@cindex @code{OFS}, variabile
-@cindex campo, separatori di
-@cindex separatori di campo
+@cindex funzione @subentry @code{sprintf()} (variabile) @code{OFMT} e
+@cindex @code{print} (istruzione) @subentry variabile @code{OFMT} e
+@cindex istruzione @subentry @code{print} @subentry @code{OFMT} (variabile) e
+@cindex variabile @subentry @code{OFS}
+@cindex @code{OFS} (variabile)
+@cindex campi @subentry separatore di
+@cindex separatore di campo
 @item OFS
 @`E il separatore dei campi in output (@pxref{Separatori di output}).  @`E 
ci@`o
 che viene stampato in output per separare i campi stampati da un'istruzione 
@code{print}.
 Il suo valore di default @`e @w{@code{" "}}, una stringa costituita da un solo
 spazio.
 
-@cindex @code{ORS}, variabile
-@cindex variabile @code{ORS}
+@cindex @code{ORS} (variabile)
+@cindex variabile @subentry @code{ORS}
 @item ORS
 Il separatore dei record in output.  Viene stampato alla fine di ogni
 istruzione @code{print}.  Il suo valore di default @`e @code{"\n"},
 il carattere di ritorno a capo.
 (@xref{Separatori di output}.)
 
-@cindex @code{PREC}, variabile
-@cindex variabile @code{PREC}
+@cindex @code{PREC} (variabile)
+@cindex variabile @subentry @code{PREC}
 @item PREC #
 La precisione disponibile nei numeri in virgola mobile a precisione arbitraria,
 per default 53 bit (@pxref{Impostare la precisione}).
 
-@cindex @code{ROUNDMODE}, variabile
-@cindex variabile @code{ROUNDMODE}
+@cindex @code{ROUNDMODE} (variabile)
+@cindex variabile @subentry @code{ROUNDMODE}
 @item ROUNDMODE #
 La modalit@`a di arrotondamento da usare per operazioni aritmetiche a 
precisione
 arbitraria svolte sui numeri, per default @code{"N"}
 (@code{roundTiesToEven} nello standard
 IEEE 754; @pxref{Impostare modo di arrotondare}).
 
-@cindex @code{RS}, variabile
-@cindex variabile @code{RS}
-@cindex separatori di record
-@cindex record, separatori di
+@cindex @code{RS} (variabile)
+@cindex variabile @subentry @code{RS}
+@cindex separatore di record
+@cindex record @subentry separatore di
 @item @code{RS}
 Il separatore tra record in input.  Il suo valore di default @`e una stringa
 contenente il solo carattere di ritorno a capo, il che significa che un record 
in input
@@ -16171,10 +16279,10 @@ se @command{gawk} @`e in modalit@`a compatibile
 (@pxref{Opzioni}),
 @`e usato solo il primo carattere del valore di @code{RS}.
 
-@cindex @code{SUBSEP}, variabile
-@cindex variabile @code{SUBSEP}
-@cindex separatori di indici
-@cindex indici, separatori di
+@cindex @code{SUBSEP} (variabile)
+@cindex variabile @subentry @code{SUBSEP}
+@cindex separatore di indici
+@cindex indici di vettore @subentry separatore di
 @item @code{SUBSEP}
 Il separatore di indici.  Ha il valore di default di
 @code{"\034"} ed @`e usato per separare le parti di cui sono composti gli 
indici
@@ -16183,11 +16291,11 @@ di un vettore multidimensionale.  Quindi, 
l'espressione
 in realt@`a accede a @code{pippo["A\034B"]}
 (@pxref{Vettori multidimensionali}).
 
-@cindex @command{gawk}, variabile @code{TEXTDOMAIN} in
-@cindex @code{TEXTDOMAIN}, variabile
-@cindex variabile @code{TEXTDOMAIN}
-@cindex differenze tra @command{awk} e @command{gawk}, variabile 
@code{TEXTDOMAIN}
-@cindex internazionalizzazione, localizzazione
+@cindex @command{gawk} @subentry variabile @subentry @code{TEXTDOMAIN} in
+@cindex @code{TEXTDOMAIN} (variabile)
+@cindex variabile @subentry @code{TEXTDOMAIN}
+@cindex differenze tra @command{awk} e @command{gawk} @subentry variabile 
@code{TEXTDOMAIN}
+@cindex internazionalizzazione @subentry localizzazione
 @item TEXTDOMAIN #
 Usata per l'internazionalizzazione di programmi a livello di
 @command{awk}.  Imposta il dominio di testo (@dfn{text domain}) di default per 
costanti stringa
@@ -16205,8 +16313,8 @@ Il valore di default di @code{TEXTDOMAIN} @`e 
@code{"messages"}.
 @node Variabili auto-assegnate
 @subsection Variabili predefinite con cui @command{awk} fornisce informazioni
 
-@cindex predefinite, variabili, che forniscono informazioni
-@cindex variabili predefinite, che forniscono informazioni
+@cindex predefinita @subentry variabile @subentry che fornisce informazioni
+@cindex variabili @subentry predefinite @subentry che forniscono informazioni
 Quella che segue @`e una lista in ordine alfabetico di variabili che
 @command{awk} imposta automaticamente in determinate situazioni per
 fornire informazioni a un programma.
@@ -16218,9 +16326,9 @@ modalit@`a compatibile (@pxref{Opzioni}), non hanno un 
significato speciale:
 
 @c @asis for docbook
 @table @asis
-@cindex @code{ARGC}/@code{ARGV}, variabili
-@cindex argomenti, riga di comando
-@cindex riga di comando, argomenti
+@cindex @code{ARGC}/@code{ARGV} (variabili)
+@cindex argomenti @subentry riga di comando
+@cindex riga di comando @subentry argomenti
 @item @code{ARGC}, @code{ARGV}
 Gli argomenti della riga di comando disponibili ai programmi @command{awk}
 sono memorizzati in un vettore di nome
@@ -16250,12 +16358,12 @@ contiene @samp{inventory-shipped} e @code{ARGV[2]} 
contiene
 dell'indice dell'ultimo elemento di @code{ARGV}, perch@'e gli elementi sono
 numerati a partire da zero.
 
-@cindex convenzioni di programmazione, variabili @code{ARGC}/@code{ARGV}
+@cindex convenzioni di programmazione @subentry @code{ARGC}/@code{ARGV} 
(variabili)
 I nomi @code{ARGC} e @code{ARGV}, come pure la convenzione di indicizzare
 il vettore da 0 a @code{ARGC} @minus{} 1, derivano dal modo in cui il
 linguaggio C accede agli argomenti presenti sulla riga di comando.
 
-@cindex angolo buio, valore di @code{ARGV[0]}
+@cindex angolo buio @subentry valore di @code{ARGV[0]}
 Il valore di @code{ARGV[0]} pu@`o variare da sistema a sistema.
 Va anche notato che il programma @emph{non}
 @`e incluso in @code{ARGV}, e non sono incluse neppure le eventuali opzioni di
@@ -16264,9 +16372,9 @@ Va anche notato che il programma @emph{non}
 su come @command{awk} usa queste variabili.
 @value{DARKCORNER}
 
-@cindex @code{ARGIND}, variabile
-@cindex variabile @code{ARGIND}
-@cindex differenze tra @command{awk} e @command{gawk}, variabile @code{ARGIND}
+@cindex @code{ARGIND} (variabile)
+@cindex variabile @subentry @code{ARGIND}
+@cindex differenze tra @command{awk} e @command{gawk} @subentry variabile 
@code{ARGIND}
 @item @code{ARGIND #}
 L'indice in @code{ARGV} del file correntemente in elaborazione.
 Ogni volta che @command{gawk} apre un nuovo @value{DF} per elaborarlo, imposta
@@ -16274,20 +16382,20 @@ Ogni volta che @command{gawk} apre un nuovo 
@value{DF} per elaborarlo, imposta
 Quando @command{gawk} sta elaborando i file in input, il confronto
 @samp{FILENAME == ARGV[ARGIND]} @`e sempre verificato.
 
-@cindex file, elaborazione@comma{} variabile @code{ARGIND} e
+@cindex file @subentry elaborazione di @subentry variabile @code{ARGIND} e
 Questa variabile @`e utile nell'elaborazione dei file; consente di stabilire
 a che punto ci si trova nella lista
 di @value{DF}, e anche di distinguere tra successive occorrenze dello stesso
 @value{FN} sulla riga dei comandi.
 
-@cindex nomi di file, distinguere
+@cindex nomi @subentry di file @subentry distinguere
 Anche se @`e possibile modificare il valore di @code{ARGIND} all'interno del
 programma @command{awk}, @command{gawk} automaticamente lo imposta a un nuovo
 valore quando viene aperto il file successivo.
 
-@cindex @code{ENVIRON}, vettore
-@cindex vettore @code{ENVIRON}
-@cindex variabili d'ambiente, nel vettore @code{ENVIRON}
+@cindex @code{ENVIRON} (vettore)
+@cindex vettore @subentry @code{ENVIRON}
+@cindex variabili d'ambiente @subentry nel vettore @code{ENVIRON}
 @item @code{ENVIRON}
 Un vettore associativo contenente i valori delle variabili d'ambiente.
 Gli indici del vettore sono i nomi delle variabili d'ambiente; gli elementi
@@ -16328,11 +16436,11 @@ le variabili
 @pxref{AWKLIBPATH (Variabile)}).
 @end ifnotdocbook
 
-@cindex @command{gawk}, variabile @code{ERRNO} in
-@cindex @code{ERRNO}, variabile
-@cindex variabile @code{ERRNO}
-@cindex differenze tra @command{awk} e @command{gawk}, variabile @code{ERRNO}
-@cindex gestione errori, variabile @code{ERRNO} e
+@cindex @command{gawk} @subentry variabile @subentry @code{ERRNO} in
+@cindex @code{ERRNO} (variabile)
+@cindex variabile @subentry @code{ERRNO}
+@cindex differenze tra @command{awk} e @command{gawk} @subentry variabile 
@code{ERRNO}
+@cindex gestione errori @subentry variabile @code{ERRNO} e
 @item @code{ERRNO #}
 Se si verifica un errore di sistema durante una ridirezione per @code{getline},
 durante una lettura per @code{getline} o durante un'operazione di
@@ -16359,9 +16467,9 @@ variabile C @code{errno}, @code{PROCINFO["errno"]} 
sar@`a impostato al valore
 di @code{errno}.  Per errori non di sistema, @code{PROCINFO["errno"]} sar@`a
 impostata al valore zero.
 
-@cindex @code{FILENAME}, variabile
-@cindex variabile @code{FILENAME}
-@cindex angolo buio, variabile @code{FILENAME}
+@cindex @code{FILENAME} (variabile)
+@cindex variabile @subentry @code{FILENAME}
+@cindex angolo buio @subentry variabile @subentry @code{FILENAME}
 @item @code{FILENAME}
 Il nome del file in input corrente.  Quando non ci sono @value{DF}
 sulla riga dei comandi, @command{awk} legge dallo standard input e
@@ -16383,16 +16491,16 @@ non ci si dovrebbe poter contare nei programmi.}
 che l'uso di @code{getline} (@pxref{Getline}) all'interno di una regola
 @code{BEGIN} pu@`o implicare l'assegnamento di un valore a @code{FILENAME}.
 
-@cindex @code{FNR}, variabile
-@cindex variabile @code{FNR}
+@cindex @code{FNR} (variabile)
+@cindex variabile @subentry @code{FNR}
 @item @code{FNR}
 Il numero del record corrente nel file corrente.  @command{awk} incrementa
 @code{FNR} ogni volta che legge un nuovo record (@pxref{Record}).
 @command{awk} imposta nuovamente a zero @code{FNR} ogni volta che inizia a
 leggere un nuovo file in input.
 
-@cindex @code{NF}, variabile
-@cindex variabile @code{NF}
+@cindex @code{NF} (variabile)
+@cindex variabile @subentry @code{NF}
 @item @code{NF}
 Il numero di campi nel corrente record in input.
 @code{NF} @`e impostato ogni volta che si legge un nuovo record,
@@ -16405,10 +16513,10 @@ il funzionamento interno di @command{awk}.  In 
particolare, assegnamenti
 a @code{NF} si possono usare per aggiungere o togliere campi dal
 record corrente. @xref{Cambiare i campi}.
 
-@cindex @code{FUNCTAB}, vettore
-@cindex vettore @code{FUNCTAB}
-@cindex @command{gawk}, vettore @code{FUNCTAB} in
-@cindex differenze tra @command{awk} e @command{gawk}, variabile @code{FUNCTAB}
+@cindex @code{FUNCTAB} (vettore)
+@cindex vettore @subentry @code{FUNCTAB}
+@cindex @command{gawk} @subentry vettore @subentry @code{FUNCTAB} in
+@cindex differenze tra @command{awk} e @command{gawk} @subentry variabile 
@code{FUNCTAB}
 @item @code{FUNCTAB #}
 Un vettore i cui indici e i corrispondenti valori sono i nomi di tutte le
 funzioni predefinite, definite dall'utente ed estese, presenti nel programma.
@@ -16419,18 +16527,18 @@ Il tentativo di usare l'istruzione @code{delete} per 
eliminare il vettore
 ogni tentativo di impostare un elemento di @code{FUNCTAB}.
 @end quotation
 
-@cindex @code{NR}, variabile
-@cindex variabile @code{NR}
+@cindex @code{NR} (variabile)
+@cindex variabile @subentry @code{NR}
 @item @code{NR}
 Il numero di record in input che @command{awk} ha elaborato dall'inizio
 dell'esecuzione del programma
 (@pxref{Record}).
 @command{awk} incrementa @code{NR} ogni volta che legge un nuovo record.
 
-@cindex @command{gawk}, vettore @code{PROCINFO} in
-@cindex @code{PROCINFO}, vettore
-@cindex vettore @code{PROCINFO}
-@cindex differenze tra @command{awk} e @command{gawk}, vettore @code{PROCINFO}
+@cindex @command{gawk} @subentry vettore @subentry @code{PROCINFO} in
+@cindex @code{PROCINFO} (vettore)
+@cindex vettore @subentry @code{PROCINFO}
+@cindex differenze tra @command{awk} e @command{gawk} @subentry vettore 
@code{PROCINFO}
 @item @code{PROCINFO #}
 Gli elementi di questo vettore danno accesso a informazioni sul
 programma @command{awk} in esecuzione.
@@ -16439,8 +16547,8 @@ sono sicuramente sempre disponibili:
 
 @table @code
 @item PROCINFO["argv"]
-@cindex argomenti, riga di comando
-@cindex riga di comando, argomenti
+@cindex argomenti @subentry riga di comando
+@cindex riga di comando @subentry argomenti
 Il vettore @code{PROCINFO["argv"]} contiene tutti gli argomenti della riga di
 comando (dopo che l'eventuale elaborazione di valutazione e ridirezione,
 nelle piattaforme in cui ci@`o debba essere fatto a cura del programma), con
@@ -16460,7 +16568,7 @@ Si tenga presente che questo vettore @`e diverso dal 
vettore standard
 @code{ARGV} il quale non include quegli argomenti della riga di comando
 che sono gi@`a stati elaborati da @command{gawk} (@pxref{ARGC e ARGV}).
 
-@cindex effettivo, @dfn{ID di gruppo} dell'utente di @command{gawk}
+@cindex effettivo @subentry @dfn{ID di gruppo} dell'utente di @command{gawk}
 @item PROCINFO["egid"]
 Il valore restituito dalla chiamata di sistema @code{getegid()}.
 
@@ -16485,7 +16593,7 @@ di input tramite API.
 Il valore restituito dalla chiamata di sistema @code{getgid()} .
 
 @item PROCINFO["identifiers"]
-@cindex programma, identificativi in un
+@cindex programma @subentry identificativi in un
 @cindex identificativi in un programma
 Un sottovettore, indicizzato dai nomi di tutti gli identificativi usati
 all'interno del programma @command{awk}.  Un @dfn{identificativo} @`e
@@ -16523,6 +16631,7 @@ vengono pi@`u aggiornati durante l'esecuzione del 
programma.
 
 @item PROCINFO["platform"]
 @cindex piattaforma di esecuzione
+@cindex @code{PROCINFO} (vettore) @subentry ambiente di compilazione
 Quest'elemento restituisce una stringa che indica la piattaforma
 per la quale @command{gawk} @`e stato compilato.  Il valore sar@`a
 uno dei seguenti:
@@ -16567,8 +16676,8 @@ Assegnando un nuovo valore a questo elemento si cambia 
quello di default.
 Il valore restituito dalla chiamata di sistema @code{getuid()}.
 
 @item PROCINFO["version"]
-@cindex versione di @command{gawk}
-@cindex @command{gawk}, versione di
+@cindex versione @subentry di @command{gawk}
+@cindex @command{gawk} @subentry versione di
 La versione di @command{gawk}.
 @end table
 
@@ -16580,19 +16689,19 @@ arbitraria
 
 @table @code
 @item PROCINFO["gmp_version"]
-@cindex versione della libreria GNU MP
+@cindex versione @subentry della libreria GNU MP
 La versione della libreria GNU MP.
 
-@cindex versione della libreria GNU MPFR
+@cindex versione @subentry della libreria GNU MPFR
 @item PROCINFO["mpfr_version"]
 La versione della libreria GNU MPFR.
 
 @item PROCINFO["prec_max"]
-@cindex precisione massima consentita dalla libreria MPFR
+@cindex precisione @subentry massima consentita dalla libreria MPFR
 La massima precisione consentita da MPFR.
 
 @item PROCINFO["prec_min"]
-@cindex precisione minima richiesta dalla libreria MPFR
+@cindex precisione @subentry minima richiesta dalla libreria MPFR
 La precisione minima richiesta da MPFR.
 @end table
 
@@ -16609,15 +16718,15 @@ di @command{gawk} prevede il caricamento dinamico di 
funzioni di estensione
 
 @table @code
 @item PROCINFO["api_major"]
-@cindex versione dell'estensione API @command{gawk}
-@cindex estensione API, numero di versione
+@cindex versione @subentry dell'estensione API @command{gawk}
+@cindex estensione API @subentry numero di versione
 La versione principale dell'estensione API.
 
 @item PROCINFO["api_minor"]
 La versione secondaria dell'estensione API.
 @end table
 
-@cindex gruppi supplementari Unix con @command{gawk}
+@cindex gruppi @subentry Unix supplementari visualizzati in @command{gawk}
 Su alcuni sistemi, ci possono essere elementi nel vettore, da @code{"group1"}
 fino a @code{"group@var{N}"}. @var{N} @`e il numero di
 gruppi supplementari che il processo [Unix] possiede.  Si usi l'operatore
@@ -16670,8 +16779,8 @@ pi@`u avanti; si veda
 @ref{Controllare visita}.
 @end table
 
-@cindex @code{RLENGTH}, variabile
-@cindex variabile @code{RLENGTH}
+@cindex @code{RLENGTH} (variabile)
+@cindex variabile @subentry @code{RLENGTH}
 @item @code{RLENGTH}
 La lunghezza della sottostringa individuata dalla funzione
 @code{match()}
@@ -16681,8 +16790,8 @@ Il suo
 valore @`e la lunghezza della stringa individuata, oppure @minus{}1 se non @`e
 stata trovata alcuna corrispondenza.
 
-@cindex @code{RSTART}, variabile
-@cindex variabile @code{RSTART}
+@cindex @code{RSTART} (variabile)
+@cindex variabile @subentry @code{RSTART}
 @item @code{RSTART}
 L'indice, in caratteri, da cui parte la sottostringa che @`e individuata dalla
 funzione @code{match()}
@@ -16692,19 +16801,19 @@ Il suo
 valore @`e la posizione nella stringa da cui inizia la sottostringa
 individuata, oppure zero, se non @`e stata trovata alcuna corrispondenza.
 
-@cindex @command{gawk}, variabile @code{RT} in
-@cindex @code{RT}, variabile
-@cindex variabile @code{RT}
-@cindex differenze tra @command{awk} e @command{gawk}, variabili 
@code{RS}/@code{RT}
+@cindex @command{gawk} @subentry variabile @subentry @code{RT} in
+@cindex @code{RT} (variabile)
+@cindex variabile @subentry @code{RT}
+@cindex differenze tra @command{awk} e @command{gawk} @subentry variabili 
@code{RS}/@code{RT}
 @item @code{RT #}
 Il testo in input che corrisponde al testo individuato da @code{RS},
 il separatore di record.  Questa variabile viene impostata dopo aver letto
 ciascun record.
 
-@cindex @command{gawk}, vettore @code{SYMTAB} in
-@cindex @code{SYMTAB}, vettore
-@cindex vettore @code{SYMTAB}
-@cindex differenze tra @command{awk} e @command{gawk}, vettore @code{SYMTAB}
+@cindex @command{gawk} @subentry vettore @subentry @code{SYMTAB} in
+@cindex @code{SYMTAB} (vettore)
+@cindex vettore @subentry @code{SYMTAB}
+@cindex differenze tra @command{awk} e @command{gawk} @subentry vettore 
@code{SYMTAB}
 @item @code{SYMTAB #}
 Un vettore i cui indici sono i nomi di tutte le variabili globali e i vettori
 definiti nel programma.  @code{SYMTAB} rende visibile al
@@ -16785,11 +16894,11 @@ sono disponibili come elementi all'interno del 
vettore @code{SYMTAB}.
 @end table
 
 @sidebar Modificare @code{NR} e @code{FNR}
-@cindex @code{NR}, variabile, modifica di
-@cindex variabile @code{NR}, modifica di
-@cindex @code{FNR}, variabile, modifica di
-@cindex variabile @code{FNR}, modifica di
-@cindex angolo buio, variabili @code{FNR}/@code{NR}
+@cindex @code{NR} (variabile) @subentry modifica di
+@cindex variabile @subentry @code{NR} @subentry modifica di
+@cindex @code{FNR} (variabile) @subentry modifica di
+@cindex variabile @subentry @code{FNR} @subentry modifica di
+@cindex angolo buio @subentry variabile @subentry @code{FNR}/@code{NR}
 @command{awk} incrementa le variabili @code{NR} e @code{FNR}
 ogni volta che legge un record, invece che impostarle al valore assoluto del
 numero di record letti.  Ci@`o significa che un programma pu@`o
@@ -16820,10 +16929,10 @@ di @code{FILENAME}.
 
 @node ARGC e ARGV
 @subsection Usare @code{ARGC} e @code{ARGV}
-@cindex @code{ARGC}/@code{ARGV}, variabili, come usarle
-@cindex variabili @code{ARGC}/@code{ARGV}, come usarle
-@cindex argomenti, riga di comando
-@cindex riga di comando, argomenti
+@cindex @code{ARGC}/@code{ARGV} (variabili) @subentry come usarle
+@cindex variabile @subentry @code{ARGC}/@code{ARGV} @subentry utilizzo
+@cindex argomenti @subentry riga di comando
+@cindex riga di comando @subentry argomenti
 
 @iftex
 La
@@ -16945,7 +17054,7 @@ BEGIN @{
 @}
 @end example
 
-@cindex differenze tra @command{awk} e @command{gawk}, variabili 
@code{ARGC}/@code{ARGV}
+@cindex differenze tra @command{awk} e @command{gawk} @subentry variabili 
@code{ARGC}/@code{ARGV}
 Terminare le opzioni di @command{awk} con @option{--} non @`e
 necessario in @command{gawk}. A meno che non si specifichi @option{--posix},
 @command{gawk} inserisce, senza emettere messaggi, ogni opzione non
@@ -17137,8 +17246,8 @@ effettivamente memorizzato all'inizio di un blocco di 
memoria.  L'indice uno
 specifica il secondo elemento, che @`e memorizzato subito dopo il primo 
elemento,
 e cos@`{@dotless{i}} via.  @`E impossibile aggiungere ulteriori elementi al 
vettore, perch@'e
 esso pu@`o contenere solo il numero di elementi dichiarato.
-(Alcuni linguaggi consentono indici iniziali e finali arbitrari---p.es.,
-@samp{15 .. 27}---per@`o la dimensione del vettore rimane fissa una volta che
+(Alcuni linguaggi consentono indici iniziali e finali arbitrari --- p.es.,
+@samp{15 .. 27} --- per@`o la dimensione del vettore rimane fissa una volta che
 il vettore sia stato dichiarato.)
 
 @c 1/2015: Do not put the numeric values into @code. Array element
@@ -17179,10 +17288,10 @@ Vengono memorizzati solo i valori; gli indici sono 
definiti implicitamente
 dall'ordine dei valori. Qui, 8 @`e il valore il cui indice @`e zero, perch@'e 8
 appare nella posizione con zero elementi prima di essa.
 
-@cindex vettori, indicizzazione
-@cindex indicizzare i vettori
-@cindex associativi, vettori
-@cindex vettori associativi
+@cindex vettori @subentry indicizzazione di
+@cindex indici di vettore
+@cindex associativi @subentry vettori
+@cindex vettori @subentry associativi
 I vettori in @command{awk} non sono di questo tipo: sono invece
 @dfn{associativi}.
 Ci@`o significa che ogni vettore @`e un insieme di coppie, ognuna costituita
@@ -17305,8 +17414,8 @@ decimo elemento il cui valore sia @w{@code{"numero 
dieci"}}.  Il risultato sar@`
 @end docbook
 
 @noindent
-@cindex sparsi, vettori
-@cindex vettori sparsi
+@cindex sparsi @subentry vettori
+@cindex vettori @subentry sparsi
 Ora il vettore @`e @dfn{sparso}, il che significa semplicemente che non sono
 usati alcuni indici.  Ha gli elementi 0, 1, 2, 3 e 10, ma mancano gli
 elementi 4, 5, 6, 7, 8 e 9.
@@ -17375,11 +17484,11 @@ indici dei vettori; questo verr@`a trattato in 
maggior dettaglio nella
 Qui sopra, il numero @code{1} non @`e tra doppi apici, perch@'e @command{awk}
 lo converte automaticamente in una stringa.
 
-@cindex @command{gawk}, variabile @code{IGNORECASE} in
-@cindex maiuscolo/minuscolo, distinzione, indici dei vettori e
-@cindex vettori, ordinamento, variabile @code{IGNORECASE} e
-@cindex @code{IGNORECASE}, variabile, indici dei vettori e
-@cindex variabile @code{IGNORECASE}, indici dei vettori e
+@cindex @command{gawk} @subentry variabile @subentry @code{IGNORECASE} in
+@cindex maiuscolo/minuscolo @subentry distinzione @subentry negli indici dei 
vettori
+@cindex vettori @subentry ordinamento @subentry variabile @code{IGNORECASE} e
+@cindex @code{IGNORECASE} (variabile) @subentry indici dei vettori e
+@cindex variabile @subentry @code{IGNORECASE} @subentry indici di vettore e
 Il valore di @code{IGNORECASE} non ha alcun effetto sull'indicizzazione dei
 vettori.  Lo stesso valore di stringa usato per memorizzare un elemento di un
 vettore pu@`o essere usato per richiamarlo.
@@ -17393,9 +17502,9 @@ un elemento @`e indipendente dal numero di elementi nel 
vettore.
 
 @node Visitare elementi
 @subsection Come esaminare un elemento di un vettore
-@cindex vettori, esaminare elementi
-@cindex vettore, elementi di un
-@cindex elementi di un vettore
+@cindex vettori @subentry elementi @subentry esaminare gli
+@cindex vettori @subentry elementi
+@cindex elementi @subentry di vettore
 
 Il modo principale di usare un vettore @`e quello di esaminare uno dei suoi
 elementi.  Un @dfn{riferimento al vettore} @`e un'espressione come questa:
@@ -17416,16 +17525,16 @@ Il valore del riferimento al vettore @`e il valore 
corrente di quell'elemento
 del vettore.  Per esempio, @code{pippo[4.3]} @`e un'espressione che richiama
 l'elemento del vettore @code{pippo} il cui indice @`e @samp{4.3}.
 
-@cindex vettori, elementi non assegnati
-@cindex elementi di vettore non assegnati
-@cindex elementi di vettore vuoti
+@cindex vettori @subentry elementi @subentry non assegnati
+@cindex elementi @subentry di vettore @subentry non assegnati
+@cindex elementi @subentry di vettore @subentry vuoti
 Un riferimento a un elemento di un vettore il cui indice non esiste ancora
 restituisce un valore uguale a @code{""}, la stringa nulla.  Questo comprende
 elementi a cui non @`e stato assegnato un valore ed elementi che sono stati
 eliminati (@pxref{Cancellazione}).
 
-@cindex elementi inesistenti di un vettore
-@cindex vettori, elementi che non esistono
+@cindex elementi @subentry di vettore @subentry inesistenti
+@cindex vettori @subentry elementi @subentry inesistenti
 @quotation NOTA
 Un riferimento a un elemento inesistente crea @emph{automaticamente}
 quell'elemento di vettore, con la stringa nulla come valore.  (In certi casi,
@@ -17447,7 +17556,7 @@ stringa vuota come valore @`e un'operazione valida 
(anche se un po' insolita).
 @end quotation
 
 @c @cindex arrays, @code{in} operator and
-@cindex @code{in}, operatore, verificare se un elemento esiste in un vettore
+@cindex @code{in} (operatore) @subentry verificare se un elemento esiste in un 
vettore
 Per determinare se un elemento con un dato indice esiste in un vettore,
 si usi la seguente espressione:
 
@@ -17455,7 +17564,7 @@ si usi la seguente espressione:
 @var{indice} in @var{vettore}
 @end example
 
-@cindex effetti collaterali, indicizzazione di vettori
+@cindex effetti collaterali @subentry indicizzazione di vettori
 @noindent
 Quest'espressione verifica se lo specifico indice @var{indice} esiste, senza
 l'effetto collaterale di creare quell'elemento nel caso che esso non sia
@@ -17489,8 +17598,8 @@ if (frequenze[2] != "")
 
 @node Impostare elementi
 @subsection Assegnare un valore a elementi di un vettore
-@cindex vettori, elementi, assegnare valori
-@cindex elementi di vettori, assegnare valori
+@cindex vettori @subentry elementi @subentry assegnare valori
+@cindex elementi @subentry di vettore @subentry assegnare valori a
 
 Agli elementi di un vettore possono essere assegnati valori proprio come
 alle variabili di @command{awk}:
@@ -17507,7 +17616,7 @@ a quell'elemento del vettore.
 
 @node Esempio di vettore
 @subsection Esempio semplice di vettore
-@cindex vettori, un esempio sull'uso
+@cindex vettori @subentry esempio sull'uso
 
 Il seguente programma prende una lista di righe, ognuna delle quali inizia con
 un numero di riga, e le stampa in ordine di numero di riga.  I numeri di riga
@@ -17584,10 +17693,10 @@ END @{
 
 @node Visitare un intero vettore
 @subsection Visitare tutti gli elementi di un vettore
-@cindex elementi di vettori, visitare
-@cindex visitare vettori
-@cindex vettori, visitare
-@cindex cicli, @code{for}, visita di un vettore
+@cindex elementi @subentry di vettore @subentry visitare
+@cindex visitare @subentry vettori
+@cindex vettori @subentry visitare
+@cindex cicli @subentry @code{for} @subentry visita di un vettore
 
 Nei programmi che usano vettori, @`e spesso necessario usare un ciclo che
 esegue un'azione su ciascun elemento di un vettore.  In altri linguaggi, dove
@@ -17607,14 +17716,14 @@ for (@var{variabile} in @var{vettore})
 @end example
 
 @noindent
-@cindex @code{in}, operatore, uso in cicli
-@cindex operatore @code{in}, uso in cicli
+@cindex @code{in} (operatore) @subentry uso in cicli
+@cindex operatore @subentry @code{in} @subentry uso in cicli
 Questo ciclo esegue @var{corpo} una volta per ogni indice in @var{vettore} che
 il programma ha usato precedentemente, con la variabile @var{variabile}
 impostata a quell'indice.
 
-@cindex vettori, istruzione @code{for} e
-@cindex @code{for}, istruzione, esecuzione di cicli su un vettore
+@cindex vettori @subentry istruzione @code{for} e
+@cindex @code{for} (istruzione) @subentry esecuzione di cicli su un vettore
 Il seguente programma usa questa forma dell'istruzione @code{for}.  La
 prima regola visita i record in input e tiene nota di quali parole appaiono
 (almeno una volta) nell'input, memorizzando un 1 nel vettore @code{usate} con
@@ -17652,10 +17761,10 @@ END @{
 @xref{Programma utilizzo parole}
 per un esempio di questo tipo pi@`u dettagliato.
 
-@cindex vettori, elementi di, ordine di accesso da parte dell'operatore 
@code{in}
-@cindex elementi di vettori, ordine di accesso da parte dell'operatore 
@code{in}
-@cindex @code{in}, operatore, ordine di accesso dei vettori
-@cindex operatore @code{in}, ordine di accesso dei vettori
+@cindex vettori @subentry elementi @subentry ordine di accesso da parte 
dell'operatore @code{in}
+@cindex elementi @subentry di vettore @subentry ordine di accesso da parte 
dell'operatore @code{in}
+@cindex @code{in} (operatore) @subentry ordine di accesso dei vettori
+@cindex operatore @subentry @code{in} @subentry ordine di accesso dei vettori
 L'ordine nel quale gli elementi del vettore sono esaminati da quest'istruzione
 @`e determinato dalla disposizione interna degli elementi del vettore 
all'interno
 di @command{awk} e nell'@command{awk} standard non pu@`o essere controllato
@@ -17723,8 +17832,8 @@ determina l'ordine in cui il vettore viene attraversato.
 Quest'ordine normalmente @`e basato sull'implementazione interna dei vettori
 e varia da una versione di @command{awk} alla successiva.
 
-@cindex vettori, ordine di visita, controllo dell'
-@cindex controllare l'ordine di visita dei vettori
+@cindex vettori @subentry ordine di visita @subentry controllo dell'
+@cindex controllo @subentry ordine di visita dei vettori
 Spesso, tuttavia, servirebbe fare qualcosa di semplice, come
 ``visitare  il vettore confrontando gli indici in ordine crescente,''
 o ``visitare il vettore confrontando i valori in ordine decrescente.''
@@ -17742,7 +17851,7 @@ dall'utente, da usare per il confronto tra gli elementi 
di un vettore. Questa
 funzionalit@`a avanzata verr@`a descritta in seguito in @ref{Ordinamento di 
vettori}.
 @end itemize
 
-@cindex @code{PROCINFO}, valori di @code{sorted_in}
+@cindex @code{PROCINFO} (vettore) @subentry valori di @code{sorted_in}
 Sono disponibili i seguenti valori speciali per @code{PROCINFO["sorted_in"]}:
 
 @table @code
@@ -17884,11 +17993,11 @@ dei vettori; si veda @ref{Funzioni di ordinamento di 
vettori}.
 @node Indici numerici di vettore
 @section Usare numeri per indicizzare i vettori
 
-@cindex numeri, come indici di vettore
-@cindex indici di vettori, numeri come
-@cindex vettori, indici numerici di
-@cindex variabile @code{CONVFMT}, indici di vettore e
-@cindex @code{CONVFMT}, variabile, indici di vettore e
+@cindex numeri @subentry come indici di vettore
+@cindex indici di vettore @subentry numeri come
+@cindex vettori @subentry indici @subentry numerici
+@cindex variabile @subentry @code{CONVFMT} @subentry indici di vettore e
+@cindex @code{CONVFMT} (variabile) @subentry indici di vettore e
 Un aspetto importante da ricordare riguardo ai vettori @`e che
 @emph{gli indici dei vettori sono sempre stringhe}.
 Quando un valore numerico @`e usato come indice,
@@ -17916,12 +18025,13 @@ indicizza @code{dati} col valore di tipo stringa 
@code{"12.153"}
 Quindi, all'elemento del vettore @code{dati["12.153"]} @`e assegnato il valore
 uno.  Il programma cambia poi
 il valore di @code{CONVFMT}.  La verifica @samp{(xyz in dati)} genera un nuovo
-valore di stringa da @code{xyz}---questa volta @code{"12.15"}---perch@'e il
+valore di stringa da @code{xyz} --- questa volta @code{"12.15"} --- perch@'e il
 valore di @code{CONVFMT} consente solo due cifre decimali.  Questa
 verifica d@`a esito negativo, perch@'e @code{"12.15"} @`e diverso da 
@code{"12.153"}.
 
-@cindex convertire numeri interi che sono indici di vettore
-@cindex numeri interi, indici di vettore
+@cindex conversione @subentry di numeri interi che sono indici di vettore
+@cindex numeri @subentry interi @subentry come indici di vettore
+@cindex interi @subentry indici di vettore
 Secondo le regole di conversione
 (@pxref{Conversione}), i valori numerici interi
 vengono convertiti in stringhe sempre come interi, indipendentemente dal
@@ -17957,10 +18067,10 @@ effetti difficili da individuare sui programmi.
 @node Indici non inizializzati
 @section Usare variabili non inizializzate come indici
 
-@cindex variabili non inizializzate, come indici di vettore
-@cindex non inizializzate, variabili, come indici di vettore
-@cindex indici di vettore, variabili non inizializzate come
-@cindex vettori, indici, variabili non inizializzate come
+@cindex variabili @subentry non inizializzate @subentry come indici di vettore
+@cindex non inizializzate @subentry variabili @subentry come indici di vettore
+@cindex indici di vettore @subentry variabili non inizializzate come
+@cindex vettori @subentry indici @subentry variabili non inizializzate come
 Supponiamo che sia necessario scrivere un programma
 per stampare i dati di input in ordine inverso.
 Un tentativo ragionevole per far ci@`o (con qualche dato di
@@ -18004,12 +18114,12 @@ Qui, @samp{++} forza @code{righe} a essere di tipo 
numerico, rendendo
 quindi il ``vecchio valore'' uno zero numerico. Questo viene poi convertito
 in @code{"0"} come l'indice del vettore.
 
-@cindex indici di vettore, stringhe nulle come
-@cindex nulle, stringhe, come indici di vettore
-@cindex stringhe nulle, come indici di vettore
-@cindex angolo buio, indici di vettori
-@cindex @dfn{lint}, controlli, indici di vettori
-@cindex controlli @dfn{lint}, indici di vettori
+@cindex indici di vettore @subentry stringhe nulle come
+@cindex nulle @subentry stringhe @subentry come indici di vettore
+@cindex stringa nulla @subentry come indice di vettore
+@cindex angolo buio @subentry indici di vettori
+@cindex @dfn{lint} @subentry controlli @subentry indici di vettori
+@cindex controllo @subentry @dfn{lint} @subentry indici di vettori
 Anche se la cosa pu@`o sembrare strana, la stringa nulla
 (@code{""}) @`e un indice di vettore valido.
 @value{DARKCORNER}
@@ -18019,11 +18129,11 @@ come indice.
 
 @node Cancellazione
 @section L'istruzione @code{delete}
-@cindex @code{delete}, istruzione
-@cindex istruzione @code{delete}
-@cindex eliminare elementi di vettori
-@cindex vettori, elementi, eliminazione di
-@cindex elementi di vettori, eliminazione di
+@cindex @code{delete} (istruzione)
+@cindex istruzione @subentry @code{delete}
+@cindex eliminare @subentry elementi di vettori
+@cindex vettori @subentry elementi @subentry eliminazione di
+@cindex elementi @subentry di vettore @subentry eliminazione di
 
 Per rimuovere un singolo elemento da un vettore si usa l'istruzione
 @code{delete}:
@@ -18055,8 +18165,8 @@ if (4 in pippo)
     print "Questo non verr@`a mai stampato"
 @end example
 
-@cindex nulle, stringhe, eliminazione di elementi di un vettore e
-@cindex stringhe nulle, eliminazione di elementi di un vettore e
+@cindex nulle @subentry stringhe @subentry eliminazione di elementi di un 
vettore e
+@cindex stringa nulla @subentry eliminazione di elementi di un vettore e
 @`E importante notare che eliminare un elemento @emph{non} @`e la stessa cosa
 che assegnargli un valore nullo (la stringa vuota, @code{""}).
 Per esempio:
@@ -18069,21 +18179,21 @@ if (4 in pippo)
 @end group
 @end example
 
-@cindex @dfn{lint}, controlli, elementi di vettori
-@cindex controlli @dfn{lint}, elementi di vettori
-@cindex elementi di vettori, controlli @dfn{lint} per
+@cindex @dfn{lint} @subentry controlli @subentry elementi di vettori
+@cindex controllo @subentry @dfn{lint} @subentry elementi di vettori
+@cindex elementi @subentry di vettore @subentry controlli @dfn{lint} per
 Non @`e un errore eliminare un elemento che non esiste.
 Tuttavia, se viene data l'opzione @option{--lint} sulla riga di comando
 (@pxref{Opzioni}),
 @command{gawk} emette un messaggio di avvertimento quando viene eliminato un
 elemento che non @`e presente in un vettore.
 
-@cindex comuni, estensioni, @code{delete} per eliminare interi vettori
-@cindex estensioni comuni@comma{} @code{delete} per eliminare interi vettori
-@cindex vettori, eliminare l'intero contenuto
-@cindex eliminare interi vettori
-@cindex @code{delete}, @var{vettore}
-@cindex differenze tra @command{awk} e @command{gawk}, elementi dei vettori, 
eliminazione
+@cindex comuni @subentry estensioni @subentry @code{delete} per eliminare 
interi vettori
+@cindex estensioni comuni @subentry @code{delete} per eliminare interi vettori
+@cindex vettori @subentry eliminare l'intero contenuto
+@cindex eliminare @subentry interi vettori
+@cindex @code{delete} (istruzione) @subentry eliminare un elemento di un 
vettore
+@cindex differenze tra @command{awk} e @command{gawk} @subentry elementi dei 
vettori @subentry eliminazione
 Tutti gli elementi di un vettore possono essere eliminati con una singola
 istruzione omettendo l'indice nell'istruzione @code{delete},
 in questo modo:
@@ -18101,7 +18211,7 @@ Questa forma dell'istruzione @code{delete} @`e ammessa 
anche
 da BWK @command{awk} e da @command{mawk}, e anche da
 diverse altre implementazioni.
 
-@cindex Brian Kernighan, @command{awk} di
+@cindex Brian Kernighan @subentry @command{awk} di
 @quotation NOTA
 Per molti anni, l'uso di @code{delete} senza un indice era un'estensione
 comune.  A settembre 2012 si @`e deciso di includerla nello
@@ -18109,7 +18219,7 @@ standard POSIX.  Si veda 
@uref{http://austingroupbugs.net/view.php?id=544,
 il sito dell'Austin Group}.
 @end quotation
 
-@cindex portabilit@`a, eliminazione di elementi di un vettore
+@cindex portabilit@`a @subentry eliminazione di elementi di un vettore
 @cindex Brennan, Michael
 La seguente istruzione fornisce un modo portabile, anche se non evidente,
 per svuotare un vettore:@footnote{Un ringraziamento a Michael
@@ -18119,8 +18229,8 @@ Brennan per la segnalazione.}
 split("", vettore)
 @end example
 
-@cindex @code{split()}, funzione, eliminazione di elementi di vettori
-@cindex funzione @code{split()}, eliminazione di elementi di vettori
+@cindex @code{split()} (funzione) @subentry eliminazione di elementi di vettori
+@cindex funzione @subentry @code{split()} @subentry eliminazione di elementi 
di vettori
 La funzione @code{split()}
 (@pxref{Funzioni per stringhe})
 dapprima svuota il vettore indicato. La chiamata chiede di dividere
@@ -18146,9 +18256,9 @@ a = 3
 * Visitare vettori multidimensionali::  Visitare vettori multidimensionali.
 @end menu
 
-@cindex indici di vettori multidimensionali
-@cindex vettori multidimensionali
-@cindex multidimensionali, vettori
+@cindex indici di vettore @subentry multidimensionale
+@cindex vettori @subentry multidimensionali
+@cindex multidimensionali @subentry vettori
 Un @dfn{vettore multidimensionale} @`e un vettore in cui un elemento @`e
 identificato da un insieme di indici invece che da un indice singolo.  Per
 esempio, un vettore bidimenisonale richiede due indici.  Il modo consueto (in
@@ -18156,8 +18266,8 @@ molti linguaggi, compreso @command{awk}) per far 
riferimento a un elemento di
 un vettore multidimensionale chiamato @code{griglia} @`e con
 @code{griglia[@var{x},@var{y}]}.
 
-@cindex @code{SUBSEP}, variabile, vettori multidimensionali e
-@cindex variabile @code{SUBSEP}, vettori multidimensionali e
+@cindex @code{SUBSEP} (variabile) @subentry vettori multidimensionali e
+@cindex variabile @subentry @code{SUBSEP} @subentry vettori multidimensionali e
 I vettori multidimensionali sono resi disponibili in @command{awk} attraverso
 la concatenazione di pi@`u indici in una stringa;
 @command{awk} converte gli indici in stringhe
@@ -18189,7 +18299,7 @@ possono portare a stringhe risultanti ambigue.  
Supponendo che
 @w{@samp{pippo["a", "b@@c"]}} risultano indistinguibili perch@'e entrambi
 sarebbero in realt@`a memorizzati come @samp{pippo["a@@b@@c"]}.
 
-@cindex @code{in}, operatore, verificare se un elemento esiste in un vettore 
multidimensionale
+@cindex @code{in} (operatore) @subentry verificare se un elemento esiste in un 
vettore multidimensionale
 Per verificare se una determinata sequenza di indici esiste in un vettore
 multidimensionale, si usa lo stesso operatore (@code{in}) che viene usato
 per i vettori monodimensionali.  Si scrive l'intera sequenza di indici tra
@@ -18258,9 +18368,9 @@ vettore ``multidimensionale''. Non ce ne pu@`o essere 
una, perch@'e
 vettori o elementi multidimensionali: c'@`e solo una modalit@`a
 multidimensionale per @emph{accedere} a un vettore.
 
-@cindex indici di vettori multidimensionali, visitare gli
-@cindex vettori, multidimensionali, visitare
-@cindex visitare vettori multidimensionali
+@cindex indici di vettore @subentry multidimensionale @subentry visitare gli
+@cindex vettori @subentry multidimensionali @subentry visitare
+@cindex visitare @subentry vettori multidimensionali
 Comunque, se un programma ha un vettore al quale si accede sempre in
 modalit@`a multidimensionale, si pu@`o ottenere il risultato di visitarlo
 combinando l'istruzione di visita @code{for}
@@ -18304,7 +18414,7 @@ La sequenza originale degli indici separati @`e 
ripristinata.
 
 @node Vettori di vettori
 @section Vettori di vettori
-@cindex vettori di vettori
+@cindex vettori @subentry di vettori
 
 @command{gawk} migliora l'accesso ai vettori multidimensionali di
 @command{awk} standard e mette a disposizione dei veri vettori di vettori.
@@ -18538,8 +18648,8 @@ di un vettore @`e esso stesso un sottovettore.
 @node Funzioni
 @chapter Funzioni
 
-@cindex funzioni predefinite
-@cindex predefinite, funzioni
+@cindex funzione @subentry predefinita
+@cindex predefinita @subentry funzione
 Questo @value{CHAPTER} descrive le funzioni predefinite di @command{awk},
 che sono di tre tipi: numeriche, di stringa, e di I/O.
 @command{gawk} mette a disposizione ulteriori tipi di funzioni
@@ -18601,8 +18711,8 @@ si scrive il nome della funzione seguito dai suoi 
argomenti racchiusi
 tra parentesi.  Per esempio, @samp{atan2(y + z, 1)}
 @`e una chiamata alla funzione @code{atan2()} e ha due argomenti.
 
-@cindex convenzioni di programmazione, nelle chiamate di funzione
-@cindex spazio bianco, nelle chiamate di funzione
+@cindex convenzioni di programmazione @subentry nelle chiamate di funzione
+@cindex spazio bianco @subentry nelle chiamate di funzione
 La presenza di spazi bianchi tra il nome della funzione predefinita
 e la parentesi aperta @`e consentita, ma @`e buona norma quella di evitare
 di inserire spazi bianchi in quella posizione.
@@ -18611,10 +18721,10 @@ fra nome funzione e aperta parentesi,
 ed @`e pi@`u semplice evitare errori seguendo una semplice convenzione che
 resta sempre valida: non inserire spazi dopo il nome di una funzione.
 
-@cindex risoluzione di problemi, @command{gawk}, errori fatali@comma{} 
argomenti di funzione e
-@cindex problemi, risoluzione di, @command{gawk}, errori fatali@comma{} 
argomenti di funzione e
-@cindex @command{gawk}, argomenti di funzione e
-@cindex differenze tra @command{awk} e @command{gawk}, argomenti di funzione 
(@command{gawk})
+@cindex risoluzione di problemi @subentry @command{gawk} @subentry errori 
fatali, argomenti di funzione e
+@cindex problemi @subentry risoluzione di @subentry @command{gawk}, errori 
fatali, argomenti di funzione e
+@cindex @command{gawk} @subentry argomenti di funzione e
+@cindex differenze tra @command{awk} e @command{gawk} @subentry argomenti di 
funzione (@command{gawk})
 Ogni funzione predefinita accetta un certo numero di argomenti.
 In alcuni casi, gli argomenti possono essere omessi. I valori di default per
 gli argomenti omessi variano
@@ -18634,9 +18744,9 @@ i = 4
 j = sqrt(i++)
 @end example
 
-@cindex ordine di valutazione, funzioni
-@cindex funzioni predefinite, ordine di valutazione
-@cindex predefinite, funzioni, ordine di valutazione
+@cindex ordine di valutazione @subentry funzioni
+@cindex funzioni @subentry predefinite @subentry ordine di valutazione
+@cindex predefinita @subentry funzione @subentry ordine di valutazione
 @noindent
 la variabile @code{i} @`e incrementata al valore cinque prima di chiamare
 la funzione @code{sqrt()} alla quale viene fornito come parametro il valore
@@ -18659,8 +18769,8 @@ funzione @code{atan2()} @`e chiamata con i due 
argomenti 11 e 10.
 
 @node Funzioni numeriche
 @subsection Funzioni numeriche
-@cindex funzioni numeriche
-@cindex numeriche, funzioni
+@cindex funzioni @subentry numeriche
+@cindex numeriche @subentry funzioni
 
 La seguente lista descrive tutte le
 funzioni predefinite che hanno a che fare con i numeri.
@@ -18691,7 +18801,7 @@ uso.
 
 @item @code{int(@var{x})}
 @cindexawkfunc{int}
-@cindex arrotondamento all'intero pi@`u vicino
+@cindex arrotondare @subentry all'intero pi@`u vicino
 Restituisce l'intero pi@`u vicino a @var{x}, situato tra @var{x} e zero,
 troncato togliendo i decimali.
 Per esempio, @code{int(3)} @`e 3, @code{int(3.9)} @`e 3, @code{int(-3.9)}
@@ -18700,7 +18810,7 @@ Per esempio, @code{int(3)} @`e 3, @code{int(3.9)} @`e 
3, @code{int(-3.9)}
 @ifset INTDIV
 @item @code{intdiv0(@var{numeratore}, @var{denominatore}, @var{risultato})}
 @cindexawkfunc{intdiv0}
-@cindex funzione @code{intdiv0}
+@cindex funzione @subentry @code{intdiv0}
 Esegue una divisione tra numeri interi, simile alla funzione standard C
 @code{div}.  Dapprima, il @code{numeratore} e il
 @code{denominatore} vengono troncati, eliminando la parte decimale,
@@ -18735,7 +18845,7 @@ sia negativo.
 @cindex Beebe, Nelson H.F.@:
 @item @code{rand()}
 @cindexawkfunc{rand}
-@cindex numeri casuali, funzioni @code{rand()}/@code{srand()}
+@cindex numeri @subentry casuali @subentry funzioni 
@code{rand()}/@code{srand()}
 Restituisce un numero casuale.  I valori di @code{rand()} sono
 uniformemente distribuiti tra zero e uno.
 Il valore potrebbe essere zero ma non @`e mai uno.@footnote{La versione C di
@@ -18784,9 +18894,9 @@ function roll(n) @{ return 1 + int(rand() * n) @}
 @}
 @end example
 
-@cindex inizializzazione generazione di numeri casuali
-@cindex numeri casuali, inizializzazione generazione di
-@cindex numeri casuali, seme di
+@cindex inizializzazione @subentry della generazione di numeri casuali
+@cindex numeri @subentry casuali @subentry inizializzazione della generazione 
di
+@cindex numeri @subentry casuali @subentry seme di
 @quotation ATTENZIONE
 Nella maggior parte delle implementazioni di @command{awk}, compreso
 @command{gawk},
@@ -18850,7 +18960,7 @@ a seconda delle implementazioni @command{awk}.
 
 @node Funzioni per stringhe
 @subsection Funzioni di manipolazione di stringhe
-@cindex funzioni di manipolazione di stringhe
+@cindex funzioni @subentry di manipolazione di stringhe
 
 Le funzioni in questa @value{SECTION} leggono o modificano il testo di
 una o pi@`u stringhe.
@@ -18898,13 +19008,13 @@ compatibile (@pxref{Opzioni}):
 @item @code{asort(}@var{sorgente} [@code{,} @var{destinazione} [@code{,} 
@var{come} ] ]@code{) #}
 @itemx @code{asorti(}@var{sorgente} [@code{,} @var{destinazione} [@code{,} 
@var{come} ] ]@code{) #}
 @cindexgawkfunc{asorti}
-@cindex vettori, ordinamento dei
-@cindex ordinamento di vettori
-@cindex vettori, determinare il numero degli elementi
+@cindex vettori @subentry ordinamento
+@cindex ordinamento @subentry di vettori
+@cindex vettori @subentry determinare il numero degli elementi
 @cindexgawkfunc{asort}
-@cindex ordinamento vettori per indici
-@cindex vettori, ordinamento per indici
-@cindex indici di vettori, ordinamento per
+@cindex ordinamento @subentry di vettori @subentry in base agli indici
+@cindex vettori @subentry ordinamento @subentry in base agli indici
+@cindex indici di vettore @subentry ordinamento in base agli
 Queste due funzioni sono abbastanza simili, e quindi sono descritte
 insieme.
 
@@ -18924,7 +19034,7 @@ opzionale @var{destinazione},
 @var{sorgente} @`e copiato in @var{destinazione}.  @var{destinazione}
 viene quindi ordinato, lasciando immodificati gli indici di @var{sorgente}.
 
-@cindex @command{gawk}, variabile @code{IGNORECASE} in
+@cindex @command{gawk} @subentry variabile @subentry @code{IGNORECASE} in
 Nel confronto tra stringhe, la variabile @code{IGNORECASE} influenza
 l'ordinamento
 (@pxref{Funzioni di ordinamento di vettori}).  Se il vettore
@@ -19029,8 +19139,8 @@ In questo caso, @code{$0} @`e la stringa obiettivo di 
default.
 @code{gensub()} restituisce la nuova stringa come risultato, e questa
 @`e passata direttamente a @code{print} per essere stampata.
 
-@c @cindex avvertimenti automatici
-@c @cindex automatici, avvertimenti
+@c @cindex automatic warnings
+@c @cindex warnings, automatic
 Se l'argomento @var{come} @`e una stringa che non inizia con @samp{g} o
 @samp{G}, o se @`e un numero minore o uguale a zero, si effettua solo una
 sostituzione.  Se @var{come} @`e zero, @command{gawk} emette
@@ -19065,8 +19175,8 @@ e il terzo argomento dev'essere modificabile.
 
 @item @code{index(@var{dove}, @var{cosa})}
 @cindexawkfunc{index}
-@cindex ricerca in stringhe
-@cindex trovare sottostringhe in una stringa
+@cindex ricerca @subentry in stringhe
+@cindex trovare @subentry sottostringhe in una stringa
 Ricerca nella stringa @var{dove} la prima occorrenza della stringa @var{cosa},
 e restituisce la posizione in caratteri dell'inizio di quest'occorrenza nella
 stringa @var{dove}.  Si consideri il seguente esempio:
@@ -19079,7 +19189,7 @@ $ @kbd{awk 'BEGIN @{ print index("noccioline", "oli") 
@}'}
 @noindent
 Se @var{cosa} non viene trovato, @code{index()} restituisce zero.
 
-@cindex angolo buio, @dfn{regexp} come secondo argomento di @code{index()}
+@cindex angolo buio @subentry @dfn{regexp} come secondo argomento di 
@code{index()}
 In BWK @command{awk} e @command{gawk},
 @`e un errore fatale usare una costante @dfn{regexp} per @var{cosa}.
 Altre implementazioni lo consentono, considerando semplicemente
@@ -19088,8 +19198,8 @@ la costante @dfn{regexp} come un'espressione che 
significa
 
 @item @code{length(}[@var{stringa}]@code{)}
 @cindexawkfunc{length}
-@cindex stringa, lunghezza di una
-@cindex lunghezza di una stringa
+@cindex stringa @subentry lunghezza di una
+@cindex lunghezza @subentry di una stringa
 Restituisce il numero di caratteri in @var{stringa}.  Se
 @var{stringa} @`e un numero, viene restituita la lunghezza della stringa
 di cifre che rappresenta quel numero.  Per esempio, @code{length("abcde")} @`e
@@ -19109,14 +19219,14 @@ Invece, @code{length(15 * 35)} restituisce tre. In 
questo esempio,
 e 525 @`e quindi convertito alla stringa @code{"525"}, che @`e composta da
 tre caratteri.
 
-@cindex lunghezza di un record in input
-@cindex record in input, lunghezza di un
+@cindex lunghezza @subentry di un record in input
+@cindex record @subentry in input, lunghezza di un
 Se non si specifica alcun argomento, @code{length()} restituisce la
 lunghezza di @code{$0}.
 
 @c @cindex historical features
-@cindex portabilit@`a, funzione @code{length()}
-@cindex POSIX @command{awk}, funzione @code{length()} e
+@cindex portabilit@`a @subentry funzione @code{length()}
+@cindex POSIX @command{awk} @subentry @code{length()} (funzione)
 @quotation NOTA
 In alcune delle prime versioni di @command{awk}, la funzione @code{length()}
 poteva essere richiamata senza alcuna parentesi.  Farlo @`e considerata
@@ -19125,7 +19235,7 @@ per compatibilit@`a con la vecchia prassi.  Per 
garantire la massima
 portabilit@`a ai programmi, @`e meglio mettere sempre le parentesi.
 @end quotation
 
-@cindex angolo buio, funzione @code{length()}
+@cindex angolo buio @subentry funzione @subentry @code{length()}
 Se @code{length()} @`e chiamata con una variabile che non @`e stata usata,
 @command{gawk} considera la variabile come uno scalare.  Altre
 implementazioni di @command{awk} non assegnano nessun tipo alla variabile.
@@ -19147,11 +19257,11 @@ Se @option{--lint} @`e
 stato specificato sulla riga di comando, @command{gawk} emette un
 avvertimento a questo riguardo.
 
-@cindex estensioni comuni, @code{length()} applicato a un vettore
-@cindex comuni, estensioni@comma{} @code{length()} applicato a un vettore
-@cindex differenze tra @command{gawk} e @command{awk}, funzione @code{length()}
-@cindex numero di elementi di un vettore
-@cindex vettore, determinare il numero degli elementi
+@cindex estensioni comuni @subentry @code{length()} applicato a un vettore
+@cindex comuni @subentry estensioni @subentry @code{length()} applicato a un 
vettore
+@cindex differenze tra @command{awk} e @command{gawk} @subentry funzione 
@code{length()}
+@cindex numero @subentry di elementi in un vettore
+@cindex vettori @subentry determinare il numero degli elementi
 In @command{gawk} e in parecchie altre implementazioni @command{awk},
 se l'argomento @`e un vettore, la funzione @code{length()} restituisce il 
numero
 di elementi nel vettore. @value{COMMONEXT}
@@ -19174,8 +19284,8 @@ argomento genera un errore fatale
 
 @item @code{match(@var{stringa}, @var{regexp}} [@code{, @var{vettore}}]@code{)}
 @cindexawkfunc{match}
-@cindex stringa, ricercare espressioni regolari in una
-@cindex ricerca @dfn{regexp} in stringhe
+@cindex stringa @subentry ricercare espressioni regolari in una
+@cindex ricerca @subentry @dfn{regexp} in stringhe
 Ricerca in @var{stringa} la
 sottostringa pi@`u lunga, a partire da sinistra, che corrisponde
 all'espressione regolare @var{regexp} e restituisce la posizione
@@ -19197,12 +19307,15 @@ trattano stringhe e che hanno a che fare con 
espressioni regolari, come
 per @code{match()}, l'ordine @`e lo stesso che per l'operatore @samp{~} :
 @samp{@var{stringa} ~ @var{regexp}}.
 
-@cindex @code{RSTART}, variabile, funzione @code{match()} e
-@cindex variabile @code{RSTART}, funzione @code{match()} e
-@cindex @code{RLENGTH}, variabile, funzione @code{match()} e
-@cindex variabile @code{RLENGTH}, funzione @code{match()} e
-@cindex funzione @code{match()}, variabili @code{RSTART}/@code{RLENGTH}
-@cindex @code{match()}, funzione, variabili @code{RSTART}/@code{RLENGTH}
+@cindex @code{RSTART} (variabile) @subentry funzione @code{match()} e
+@cindex variabile @subentry @code{RSTART} @subentry funzione @code{match()} e
+@cindex @code{RLENGTH} (variabile) @subentry funzione @code{match()} e
+@cindex variabile @subentry @code{RLENGTH} @subentry funzione @code{match()} e
+@cindex funzione @subentry @code{match()} @subentry variabili 
@code{RSTART}/@code{RLENGTH}
+@cindex funzione @subentry @code{match()} @subentry effetti collaterali
+@cindex @code{match()} (funzione) @subentry variabili 
@code{RSTART}/@code{RLENGTH}
+@cindex @code{match()} (funzione) @subentry effetti collaterali
+@cindex effetti collaterali @subentry funzione @subentry @code{match()}
 La funzione @code{match()} imposta la  variabile predefinita @code{RSTART}
 all'indice.
 Imposta anche la variabile predefinita @code{RLENGTH} alla
@@ -19254,7 +19367,7 @@ Corrispondenza di or+e alla posiz. 19 in Il mio 
programma corre
 Corrispondenza di Melvin alla posiz. 1 in Melvin @`e passato da qui.
 @end example
 
-@cindex differenze tra @command{awk} e @command{gawk}, funzione @code{match()}
+@cindex differenze tra @command{awk} e @command{gawk} @subentry funzione 
@code{match()}
 Se @var{vettore} esiste gi@`a, viene cancellato, e quindi l'elemento numero
 zero di @var{vettore} @`e impostato all'intera parte di @var{stringa}
 individuata da @var{regexp}.  Se @var{regexp} contiene parentesi,
@@ -19293,8 +19406,8 @@ fra parentesi, perch@'e non tutte potrebbero aver 
individuato del testo;
 quindi, andrebbero esaminati usando l'operatore @code{in}
 (@pxref{Visitare elementi}).
 
-@cindex risoluzione di problemi, funzione @code{match()}
-@cindex problemi, risoluzione di, funzione @code{match()}
+@cindex risoluzione di problemi @subentry funzione @code{match()}
+@cindex problemi @subentry risoluzione di @subentry funzione @code{match()}
 L'argomento @var{vettore} di @code{match()} @`e un'estensione
 @command{gawk}.  In modalit@`a compatibile
 (@pxref{Opzioni}),
@@ -19363,7 +19476,7 @@ split("cul-de-sac", a, "-", separatori)
 @end example
 
 @noindent
-@cindex stringhe, divisione, esempio
+@cindex stringa @subentry divisione @subentry esempio
 divide la stringa @code{"cul-de-sac"} in tre campi usando @samp{-} come
 separatore.  Il vettore @code{a} ha i seguenti contenuti:
 
@@ -19383,7 +19496,7 @@ seps[2] = "-"
 @noindent
 Il valore restituito da questa chiamata a @code{split()} @`e tre.
 
-@cindex differenze tra @command{awk} e @command{gawk}, funzione @code{split()}
+@cindex differenze tra @command{awk} e @command{gawk} @subentry funzione 
@code{split()}
 Come nella divisione in campi dei record in input, quando il valore di
 @var{separacampo} @`e @w{@code{" "}}, gli spazi bianchi a inizio e fine stringa
 vengono ignorati nell'assegnare valori agli elementi di @var{vettore} ma non 
nel
@@ -19402,7 +19515,7 @@ Anche se @samp{RS = ""} fa s@`{@dotless{i}} che il 
carattere di ritorno a capo s
 separatore di campo,
 questo non influenza il modo in cui @code{split()} divide le stringhe.
 
-@cindex angolo buio, funzione @code{split()}
+@cindex angolo buio @subentry funzione @subentry @code{split()}
 Recenti implementazioni di @command{awk}, incluso @command{gawk},
 consentono che il terzo argomento sia una costante @dfn{regexp}
 (@w{@code{/}@dots{}@code{/}})
@@ -19426,12 +19539,13 @@ non @`e la stringa nulla),
 @var{vettore} ha solo un elemento. Il valore di quell'elemento @`e la
 @var{stringa} originale.
 
-In modalit@`a POSIX (@pxref{Opzioni}), il quarto argomento non @`e disponibile.
+@cindex modalit@`a POSIX 
+In modalit@`a POSIX (@pxref{Opzioni}), il quarto argomento non @`e consentito.
 
 @item @code{sprintf(@var{formato}, @var{espressione1}, @dots{})}
 @cindexawkfunc{sprintf}
-@cindex formattare stringhe
-@cindex stringhe, formattazione
+@cindex formattare @subentry stringhe
+@cindex stringa @subentry formattazione
 Restituisce (senza stamparla) la stringa che @code{printf} avrebbe
 stampato con gli stessi argomenti
 (@pxref{Printf}).
@@ -19445,8 +19559,8 @@ pival = sprintf("pi = %.2f (approx.)", 22/7)
 assegna la stringa @w{@samp{pi = 3.14 (approx.)}} alla variabile @code{pival}.
 
 @cindexgawkfunc{strtonum}
-@cindex conversione di una stringa in un numero
-@cindex stringhe, conversione in numeri
+@cindex conversione @subentry da stringa a numero
+@cindex stringa @subentry conversione in numero
 @item @code{strtonum(@var{stringa}) #}
 Esamina @var{stringa} e restituisce il suo valore numerico.  Se
 @var{stringa} inizia con la cifra @samp{0}, @code{strtonum()} presuppone
@@ -19475,8 +19589,8 @@ localizzazione corrente per riconoscere i numeri
 
 @item @code{sub(@var{regexp}, @var{rimpiazzo}} [@code{, 
@var{obiettivo}}]@code{)}
 @cindexawkfunc{sub}
-@cindex rimpiazzare in una stringa
-@cindex stringa, rimpiazzare in una
+@cindex rimpiazzare @subentry caratteri in una stringa
+@cindex stringa @subentry rimpiazzare in una
 Ricerca in @var{obiettivo}, che @`e visto come una stringa,
 la prima sottostringa pi@`u lunga possibile,
 a partire da sinistra, che corrisponde all'espressione regolare @var{regexp}.
@@ -19558,10 +19672,10 @@ ogni riga con un @samp{&}:
 @{ sub(/\|/, "\\&"); print @}
 @end example
 
-@cindex @code{sub()}, funzione, argomenti di
-@cindex funzione @code{sub()}, argomenti di
-@cindex @code{gsub()}, funzione, argomenti di
-@cindex funzione @code{gsub()}, argomenti di
+@cindex @code{sub()} (funzione) @subentry argomenti di
+@cindex funzione @subentry @code{sub()} @subentry argomenti di
+@cindex @code{gsub()} (funzione) @subentry argomenti di
+@cindex funzione @subentry @code{gsub()} @subentry argomenti di
 Come gi@`a accennato, il terzo argomento di @code{sub()} dev'essere
 una variabile, un campo, o un elemento di vettore.
 Alcune versioni di @command{awk} accettano come terzo argomento
@@ -19576,8 +19690,8 @@ sub(/USA/, "Stati Uniti", "gli USA e il Canada")
 @end example
 
 @noindent
-@cindex risoluzione di problemi, funzioni @code{gsub()}/@code{sub()}
-@cindex problemi, risoluzione di, funzioni @code{gsub()}/@code{sub()}
+@cindex risoluzione di problemi @subentry funzioni @code{gsub()}/@code{sub()}
+@cindex problemi @subentry risoluzione di @subentry funzioni 
@code{gsub()}/@code{sub()}
 Per compatibilit@`a storica, @command{gawk} accetta un tale codice erroneo.
 Tuttavia, l'uso di qualsiasi altra espressione non modificabile
 come terzo parametro causa un errore fatale, e il programma
@@ -19604,7 +19718,7 @@ suffisso @`e restituito anche
 se @var{lunghezza} @`e maggiore del numero di caratteri disponibili
 nella stringa, a partire dal carattere @var{inizio}.
 
-@cindex Brian Kernighan, @command{awk} di
+@cindex Brian Kernighan @subentry @command{awk} di
 Se @var{inizio} @`e minore di uno, @code{substr()} lo tratta come se
 fosse uno. (POSIX non specifica cosa fare in questo caso:
 BWK @command{awk} si comporta cos@`{@dotless{i}}, e quindi @command{gawk} fa 
lo stesso.)
@@ -19613,8 +19727,8 @@ nella stringa, @code{substr()} restituisce la stringa 
nulla.
 Analogamente, se @var{lunghezza} @`e presente ma minore o uguale a zero,
 viene restituita la stringa nulla.
 
-@cindex risoluzione di problemi, funzione @code{substr()}
-@cindex problemi, risoluzione di, funzione @code{substr()}
+@cindex risoluzione di problemi @subentry funzione @code{substr()}
+@cindex problemi @subentry risoluzione di @subentry funzione @code{substr()}
 La stringa restituita da @code{substr()} @emph{non pu@`o} essere
 assegnata.  Quindi, @`e un errore tentare di modificare una porzione di
 una stringa, come si vede nel seguente esempio:
@@ -19633,7 +19747,7 @@ di @code{sub()} o @code{gsub()}:
 gsub(/xyz/, "pdq", substr($0, 5, 20))  # SBAGLIATO
 @end example
 
-@cindex portabilit@`a, funzione @code{substr()}
+@cindex portabilit@`a @subentry funzione @code{substr()}
 (Alcune versioni commerciali di @command{awk} consentono un tale uso di
 @code{substr()}, ma un tale codice non @`e portabile.)
 
@@ -19647,11 +19761,11 @@ stringa = "abcdef"
 stringa = substr(stringa, 1, 2) "CDE" substr(stringa, 6)
 @end example
 
-@cindex maiuscolo/minuscolo, conversione da/a
-@cindex stringhe, convertire maiuscolo/minuscolo
+@cindex maiuscolo/minuscolo @subentry conversione da/a
+@cindex stringa @subentry conversione maiuscolo/minuscolo
 @item @code{tolower(@var{stringa})}
 @cindexawkfunc{tolower}
-@cindex convertire stringa in minuscolo
+@cindex conversione @subentry di stringa in minuscolo
 Restituisce una copia di @var{stringa}, con ogni carattere maiuscolo
 nella stringa rimpiazzato dal suo corrispondente carattere minuscolo.
 I caratteri non alfabetici non vengono modificati.  Per esempio,
@@ -19660,7 +19774,7 @@ I caratteri non alfabetici non vengono modificati.  Per 
esempio,
 
 @item @code{toupper(@var{stringa})}
 @cindexawkfunc{toupper}
-@cindex convertire stringa in maiuscolo
+@cindex conversione @subentry di stringa in maiuscolo
 Restituisce una copia di @var{stringa}, con ogni carattere minuscolo
 nella stringa rimpiazzato dal suo corrispondente carattere maiuscolo.
 I caratteri non alfabetici non vengono modificati.  Per esempio,
@@ -19669,10 +19783,10 @@ I caratteri non alfabetici non vengono modificati.  
Per esempio,
 @end table
 
 @sidebar Individuare la stringa nulla
-@cindex individuare la stringa nulla
-@cindex stringa nulla, individuare la
-@cindex @code{*} (asterisco), operatore @code{*}, individuare la stringa nulla
-@cindex asterisco (@code{*}), operatore @code{*}, individuare la stringa nulla
+@cindex individuare @subentry la stringa nulla
+@cindex stringa nulla @subentry individuare la
+@cindex @code{*} (asterisco) @subentry operatore @code{*} @subentry 
individuare la stringa nulla
+@cindex asterisco (@code{*}) @subentry operatore @code{*} @subentry 
individuare la stringa nulla
 
 In @command{awk}, l'operatore @samp{*} pu@`o individuare la stringa nulla.
 Questo @`e particolarmente importante per le funzioni @code{sub()},
@@ -19692,16 +19806,16 @@ Sebbene questo sia abbastanza sensato, pu@`o 
suscitare una certa sorpresa.
 @subsubsection Ulteriori dettagli su @samp{\} e @samp{&} con @code{sub()}, 
@code{gsub()} e @code{gensub()}
 
 @cindex protezione caratteri nelle funzioni 
@code{gsub()}/@code{gensub()}/@code{sub()}
-@cindex funzione @code{sub()}, protezione caratteri
-@cindex @code{sub()}, funzione, protezione caratteri
-@cindex funzione @code{gsub()}, protezione caratteri
-@cindex @code{gsub()}, funzione, protezione caratteri
-@cindex funzione @code{gensub()} (@command{gawk}), protezione caratteri
-@cindex @code{gensub()}, funzione (@command{gawk}), protezione caratteri
-@cindex @code{\} (barra inversa), @code{gsub()}/@code{gensub()}/@code{sub()} 
funzioni e
-@cindex barra inversa (@code{\}), @code{gsub()}/@code{gensub()}/@code{sub()} 
funzioni e
-@cindex @code{&} (e commerciale), funzioni 
@code{gsub()}/@code{gensub()}/@code{sub()} e
-@cindex e commerciale (@code{&}), funzioni 
@code{gsub()}/@code{gensub()}/@code{sub()} e
+@cindex funzione @subentry @code{sub()} @subentry protezione caratteri
+@cindex @code{sub()} (funzione) @subentry protezione caratteri
+@cindex funzione @subentry @code{gsub()} @subentry protezione caratteri
+@cindex @code{gsub()} (funzione) @subentry protezione caratteri
+@cindex funzione @subentry @code{gensub()} (@command{gawk}) @subentry 
protezione caratteri
+@cindex @code{gensub()} (funzione @command{gawk}) @subentry protezione 
caratteri
+@cindex @code{\} (barra inversa) @subentry 
@code{gsub()}/@code{gensub()}/@code{sub()} funzioni e
+@cindex barra inversa (@code{\}) @subentry 
@code{gsub()}/@code{gensub()}/@code{sub()} funzioni e
+@cindex @code{&} (e commerciale) @subentry funzioni 
@code{gsub()}/@code{gensub()}/@code{sub()} e
+@cindex e commerciale (@code{&}) @subentry funzioni 
@code{gsub()}/@code{gensub()}/@code{sub()} e
 
 @quotation ATTENZIONE
 Si dice che questa sottosezione possa causare dei mal di testa.
@@ -19720,7 +19834,7 @@ Poi c'@`e il momento dell'esecuzione, quello in cui 
@command{awk}
 esamina effettivamente la stringa da sostituire, per determinare cosa
 fare.
 
-@cindex Brian Kernighan, @command{awk} di
+@cindex Brian Kernighan @subentry @command{awk} di
 In entrambi i livelli, @command{awk} ricerca un dato insieme di caratteri
 che possono venire dopo una
 barra inversa.  A livello lessicale, cerca le sequenze di protezione
@@ -19876,7 +19990,7 @@ di quel che ci si attendeva.  Inoltre, la proposta del 
manutentore di
 regole finali risultanti sono un po' pi@`u semplici.  I risultati sono simili,
 tranne che in un caso.
 
-@cindex POSIX @command{awk}, funzioni @code{gsub()}/@code{sub()} e
+@cindex POSIX @command{awk} @subentry @code{gsub()}/@code{sub()} (funzioni)
 Le regole POSIX stabiliscono che @samp{\&} nella stringa di rimpiazzo
 produca il carattere @samp{&}, @samp{\\} produce il carattere @samp{\},
 e che @samp{\} seguito da qualsiasi carattere non @`e speciale; la @samp{\}
@@ -20011,8 +20125,8 @@ da fare delle sostituzioni.
 
 @node Funzioni di I/O
 @subsection Funzioni di Input/Output
-@cindex input/output, funzioni di
-@cindex funzioni di input/output
+@cindex input/output @subentry funzioni di
+@cindex funzioni @subentry di input/output
 
 Le seguenti funzioni riguardano l'input/output (I/O).
 I parametri opzionali sono racchiusi tra parentesi quadre ([ ]):
@@ -20020,7 +20134,7 @@ I parametri opzionali sono racchiusi tra parentesi 
quadre ([ ]):
 @table @asis
 @item @code{close(}@var{nome_file} [@code{,} @var{come}]@code{)}
 @cindexawkfunc{close}
-@cindex file, chiusura
+@cindex file @subentry chiusura di
 @cindex chiudere un file o un coprocesso
 Chiude il file @var{nome_file} in input o in output. Alternativamente,
 l'argomento pu@`o essere un comando della shell usato per creare un
@@ -20051,10 +20165,10 @@ Scrive su disco ogni output contenuto in memoria, 
associato con
 file aperto in scrittura o un comando della shell che ridirige output a
 una @dfn{pipe} o a un coprocesso.
 
-@cindex buffer, scrivere su disco un
-@cindex memoria tampone, scrivere su disco
-@cindex output, bufferizzazione
-@cindex output, nella memoria tampone (buffer)
+@cindex buffer @subentry scrivere su disco un
+@cindex memoria tampone @subentry scrivere su disco
+@cindex output @subentry bufferizzazione
+@cindex output @subentry nella memoria tampone (buffer)
 Molti programmi di utilit@`a @dfn{bufferizzano} il loro output (cio@`e,
 accumulano in memoria record da scrivere in un file su disco o sullo
 schermo, fin quando non arriva il momento giusto per inviare i
@@ -20068,8 +20182,8 @@ Questo @`e lo scopo della funzione @code{fflush()}; 
anche
 @command{gawk} scrive il suo output in un buffer, e la funzione @code{fflush()}
 forza @command{gawk} a svuotare i suoi buffer.
 
-@cindex estensioni comuni, funzione @code{fflush()}
-@cindex Brian Kernighan, @command{awk} di
+@cindex estensioni comuni @subentry funzione @code{fflush()}
+@cindex Brian Kernighan @subentry @command{awk} di
 Brian Kernighan ha aggiunto @code{fflush()} al suo @command{awk} nell'aprile
 1992.  Per due decenni @`e rimasta un'estensione comune. A Dicembre
 2012 @`e stata accettata e inclusa nello standard POSIX.
@@ -20098,8 +20212,8 @@ buffer dello standard output.
 
 @c @cindex automatic warnings
 @c @cindex warnings, automatic
-@cindex risoluzione di problemi, funzione @code{fflush()}
-@cindex problemi, risoluzione di, funzione @code{fflush()}
+@cindex risoluzione di problemi @subentry funzione @code{fflush()}
+@cindex problemi @subentry risoluzione di @subentry funzione @code{fflush()}
 @code{fflush()} restituisce zero se il buffer @`e svuotato con successo;
 altrimenti, restituisce un valore diverso da zero. (@command{gawk}
 restituisce @minus{}1.)
@@ -20118,7 +20232,7 @@ in tal caso, @code{fflush()} restituisce ancora 
@minus{}1.
 @end table
 
 @sidebar Bufferizzazione interattiva e non interattiva
-@cindex bufferizzazione, interattiva vs.@: non interattiva
+@cindex bufferizzazione @subentry interattiva vs.@: non interattiva
 
 A complicare ulteriormente le cose, i problemi di bufferizzazione possono
 peggiorare se il programma eseguito
@@ -20167,7 +20281,7 @@ In questo caso, nessun output viene stampato finch@'e 
non @`e stato battuto il
 @table @asis
 @item @code{system(@var{comando})}
 @cindexawkfunc{system}
-@cindex chiamare comandi di shell
+@cindex chiamare @subentry comando di shell
 @cindex interagire con altri programmi
 Esegue il comando del sistema operativo @var{comando} e quindi
 ritorna al programma @command{awk}.
@@ -20199,10 +20313,10 @@ close("/bin/sh")
 @end example
 
 @noindent
-@cindex risoluzione di problemi, funzione @code{system()}
-@cindex problemi, risoluzione di, funzione @code{system()}
-@cindex @option{--sandbox}, opzione, disabilitare la funzione @code{system()}
-@cindex opzione @option{--sandbox}, disabilitare la funzione @code{system()}
+@cindex risoluzione di problemi @subentry funzione @code{system()}
+@cindex problemi @subentry risoluzione di @subentry funzione @code{system()}
+@cindex @option{--sandbox} (opzione) @subentry disabilitare la funzione 
@code{system()}
+@cindex opzione @subentry @option{--sandbox} @subentry disabilitare la 
funzione @code{system()}
 Tuttavia, nel caso che il programma @command{awk} sia interattivo,
 @code{system()} @`e utile per eseguire grossi programmi autonomi,
 come ad esempio la shell o un programma di modifica testi.
@@ -20257,10 +20371,10 @@ A partire dalla versione di agosto 2018, BWK 
@command{awk} si comporta
 come @command{gawk} per il codice di ritorno della chiamata @code{system()}.
 
 @sidebar Controllare la bufferizzazione dell'output con @code{system()}
-@cindex buffer, scrivere su disco un
-@cindex bufferizzazione, dell'input/output
-@cindex output, bufferizzazione
-@cindex bufferizzazione, dell'output
+@cindex buffer @subentry scrivere su disco un
+@cindex bufferizzazione @subentry dell'input/output
+@cindex output @subentry bufferizzazione
+@cindex bufferizzazione @subentry dell'output
 
 La funzione @code{fflush()} consente un controllo esplicito sulla
 bufferizzazione dell'output per singoli file e @dfn{pipe}.
@@ -20321,15 +20435,15 @@ invocare @code{system()}, l'output sarebbe 
quest'ultimo (quello non voluto).
 
 @node Funzioni di tempo
 @subsection Funzioni per gestire marcature temporali
-@cindex funzioni di tempo
+@cindex funzioni @subentry di tempo
 
 @cindex marcature temporali
-@cindex data e ora, si veda marcature temporali
-@cindex @dfn{log} (registro), file di, marcature temporali nei
-@cindex registro (@dfn{log}), file di, marcature temporali nel
-@cindex file di registro (@dfn{log}), marcature temporali nei
-@cindex @command{gawk}, data e ora (marcature temporali)
-@cindex POSIX @command{awk}, marcature temporali e
+@cindex data e ora @subentry @seealso{marcature temporali}
+@cindex @dfn{log} (registro) @subentry file di @subentry marcature temporali 
nei
+@cindex registro (@dfn{log}) @subentry file di @subentry marcature temporali 
nel
+@cindex file @subentry di registro (@dfn{log}) @subentry marcature temporali 
nei
+@cindex @command{gawk} @subentry data e ora (marcature temporali)
+@cindex POSIX @command{awk} @subentry marcature temporali
 I programmi @command{awk} sono frequentemente usati per elaborare file di
 registro [file con estensione .log], che contengono l'informazione sulla data e
 l'ora (marcatura temporale) in cui un particolare record @`e stato registrato 
sul log.
@@ -20368,9 +20482,9 @@ il che @`e sufficiente per rappresentare date e ore 
fino a inizio 2038
 di date, compresi dei valori negativi per rappresentare delle date
 anteriori all'Epoca.
 
-@cindex @command{date}, programma di utilit@`a GNU
-@cindex programma di utilit@`a @command{date} GNU
-@cindex tempo, ottenerlo
+@cindex @command{date} (programma di utilit@`a GNU)
+@cindex programma di utilit@`a GNU @subentry @command{date}
+@cindex tempo @subentry ottenerlo
 Per facilitare l'elaborazione di tali file di registro, e per produrre
 dei rapporti utili, @command{gawk} prevede le seguenti funzioni per
 lavorare con le marcature temporali.  Si tratta di estensioni @command{gawk};
@@ -20416,15 +20530,15 @@ Se @var{specifiche_data} non contiene elementi in 
numero sufficiente, o se
 la data e ora risultante sono fuori dall'intervallo previsto,
 @code{mktime()} restituisce @minus{}1.
 
-@cindex @command{gawk}, vettore @code{PROCINFO} in
-@cindex @code{PROCINFO}, vettore
-@cindex vettore @code{PROCINFO}
+@cindex @command{gawk} @subentry vettore @subentry @code{PROCINFO} in
+@cindex @code{PROCINFO} (vettore)
+@cindex vettore @subentry @code{PROCINFO}
 @item @code{strftime(}[@var{formato} [@code{,} @var{data_e_ora} [@code{,} 
@var{utc}] ] ]@code{)}
 @cindexgawkfunc{strftime}
-@cindex formato stringa marcature temporali
-@cindex formato stringa data e ora
-@cindex data e ora, formato stringa
-@cindex marcature temporali, formato stringa
+@cindex formato @subentry stringa @subentry marcature temporali
+@cindex formato @subentry stringa @subentry data e ora
+@cindex data e ora @subentry formato stringa
+@cindex marcature temporali @subentry formato stringa
 Formatta la data e ora specificata da @var{data_e_ora} in base alle indicazioni
 contenute nella stringa @var{formato} e restituisce il risultato.
 @`E simile alla funzione omonima in ISO C.
@@ -20450,8 +20564,8 @@ la lista che segue per le varie direttive di 
formattazione.
 @item @code{systime()}
 @cindexgawkfunc{systime}
 @cindex marcature temporali
-@cindex data e ora, si veda marcature temporali
-@cindex data e ora corrente del sistema
+@cindex data e ora @subentry @seealso{marcature temporali}
+@cindex data e ora @subentry corrente del sistema
 Restituisce l'ora corrente come numero di secondi a partire dall'Epoca
 del sistema.  Sui sistemi  aderenti allo standard POSIX, questo @`e il numero
 di secondi trascorsi a partire dal primo gennaio 1970, ora di Greenwich
@@ -20464,9 +20578,9 @@ determinare quanto tempo prima un particolare record 
@`e stato registrato.
 @`E anche possibile produrre record di registro usando il formato
 ``secondi a partire dall'Epoca''.
 
-@cindex conversione di date in marcature temporali
-@cindex date, conversione in marcature temporali
-@cindex marcature temporali, conversione date nelle
+@cindex conversione @subentry di date in marcature temporali
+@cindex date @subentry conversione in marcature temporali
+@cindex marcature temporali @subentry conversione date nelle
 La funzione @code{mktime()} consente di convertire una rappresentazione in
 forma testuale di una data e ora in una marcatura temporale.
 Questo semplifica i confronti prima/dopo tra differenti date e ore, in
@@ -20480,8 +20594,8 @@ letteralmente ci@`o che non @`e una specifica di 
formato nella stringa che viene
 restituita, mentre sostituisce i valori di data e ora a seconda delle
 specifiche di formato contenute nella stringa @var{formato}.
 
-@cindex specificatori di formato, funzione @code{strftime()} di 
(@command{gawk})
-@cindex  formato, specificatori di, funzione @code{strftime()} di 
(@command{gawk})
+@cindex specificatori di formato @subentry funzione @code{strftime()} di 
@command{gawk}
+@cindex  formato @subentry specificatori di @subentry funzione 
@code{strftime()} di @command{gawk}
 Per @code{strftime()} lo standard
 1999 ISO C@footnote{Sfortunatamente,
 non tutte le funzioni @code{strftime()} dei vari sistemi operativi
@@ -20587,7 +20701,7 @@ Luned@`{@dotless{i}} @`e il giorno numero 1.
 Il numero di settimana dell'anno (con la prima domenica dell'anno presa
 come primo giorno della prima settimana) come numero decimale (00--53).
 
-@c @cindex ISO 8601
+@cindex ISO @subentry 8601 (standard per marcature temporali)
 @item %V
 Il numero di settimana dell'anno (con il primo luned@`{@dotless{i}} dell'anno 
preso
 come primo giorno della prima settimana) come numero decimale (01--53).
@@ -20698,9 +20812,9 @@ La data in formato VMS (p.es., @samp{20-JUN-1991}).
 In aggiunta a ci@`o, le notazioni alternative sono riconosciute, ma al
 loro posto sono usate quelle normali.
 
-@cindex @code{date}, programma di utilit@`a POSIX
-@cindex programma di utilit@`a POSIX @code{date}
-@cindex POSIX @command{awk}, programma di utilit@`a @code{date} e
+@cindex @code{date} (programma di utilit@`a POSIX)
+@cindex programma di utilit@`a POSIX @subentry @code{date}
+@cindex POSIX @command{awk} @subentry @code{date} (programma di utilit@`a)
 Il seguente esempio @`e un'implementazione @command{awk} del
 programma di utilit@`a POSIX @command{date}.
 Normalmente, il programma di utilit@`a @command{date} stampa la
@@ -20750,14 +20864,17 @@ gawk 'BEGIN  @{
 
 @node Funzioni a livello di bit
 @subsection Funzioni per operazioni di manipolazione bit
-@cindex bit, funzioni per la manipolazione di
-@cindex manipolazione di bit, funzioni per la
-@cindex funzioni per la manipolazione di bit
-@cindex bit, operazioni sui
-@cindex AND, operazione sui bit
-@cindex OR, operazione sui bit
-@cindex XOR, operazione sui bit
-@cindex operazioni sui bit
+@cindex bit @subentry funzioni per la manipolazione di
+@cindex manipolazione di bit @subentry funzioni per la
+@cindex funzioni @subentry per la manipolazione di bit
+@cindex bit @subentry operazioni sui
+@cindex AND (operazione sui bit)
+@cindex operazione sui bit @subentry AND
+@cindex OR (operazione sui bit)
+@cindex operazione sui bit @subentry OR
+@cindex XOR (operazione sui bit)
+@cindex operazione sui bit @subentry XOR
+@cindex operazione sui bit
 @quotation
 @i{Io posso spiegarlo per te, ma non posso capirlo per te.}
 @author Anonimo
@@ -20882,8 +20999,8 @@ Operandi  | 0 | 1 | 0 | 1 | 0 | 1
 @end docbook
 @end float
 
-@cindex bit, complemento a livello di
-@cindex complemento a livello di bit
+@cindex bit @subentry complemento a livello di
+@cindex complemento sui bit
 Come si vede, il risultato di un'operazione di AND @`e 1 solo quando
 @emph{entrambi} i bit sono 1.
 Il risultato di un'operazione di OR @`e 1 se @emph{almeno un} bit @`e 1.
@@ -20893,10 +21010,10 @@ La successiva operazione @`e il @dfn{complemento}; il 
complemento di 1 @`e 0 e
 il complemento di 0 @`e 1. Quindi, quest'operazione ``inverte'' tutti i bit
 di un dato valore.
 
-@cindex bit, spostamento di
-@cindex spostamento a sinistra, bit a bit
-@cindex spostamento a destra, bit a bit
-@cindex spostamento, bit a bit
+@cindex bit @subentry spostamento di
+@cindex spostamento a sinistra @subentry bit a bit
+@cindex spostamento a destra @subentry bit a bit
+@cindex spostamento @subentry bit a bit
 Infine, due altre operazioni comuni consistono nello spostare i bit
 a sinistra o a destra.
 Per esempio, se si ha una stringa di bit @samp{10111001} e la si sposta
@@ -20911,39 +21028,41 @@ le funzioni predefinite di @command{gawk} che rendono 
disponibili
 le operazioni a livello di bit.
 I parametri opzionali sono racchiusi tra parentesi quadre ([ ]):
 
-@cindex @command{gawk}, operazioni a livello di bit in
+@cindex @command{gawk} @subentry operazioni sui bit in
 @table @asis
 @cindexgawkfunc{and}
-@cindex AND, operazione sui bit
+@cindex AND (operazione sui bit)
+@cindex operazione sui bit @subentry AND
 @item @code{and(}@var{v1}@code{,} @var{v2} [@code{,} @dots{}]@code{)}
 Restituisce l'AND bit a bit degli argomenti.
 Gli argomenti devono essere almeno due.
 
 @cindexgawkfunc{compl}
-@cindex complemento a livello di bit
+@cindex complemento sui bit
+@cindex operazione sui bit @subentry complemento
 @item @code{compl(@var{val})}
 Restituisce il complemento bit a bit di @var{val}.
 
 @cindexgawkfunc{lshift}
-@cindex spostamento a sinistra
 @item @code{lshift(@var{val}, @var{contatore})}
 Restituisce il valore di @var{val}, spostato a sinistra di
 @var{contatore} bit.
 
 @cindexgawkfunc{or}
-@cindex OR, operazione sui bit
+@cindex OR (operazione sui bit)
+@cindex operazione sui bit @subentry OR
 @item @code{or(}@var{v1}@code{,} @var{v2} [@code{,} @dots{}]@code{)}
 Restituisce l'OR bit a bit degli argomenti.
 Gli argomenti devono essere almeno due.
 
 @cindexgawkfunc{rshift}
-@cindex spostamento a destra
 @item @code{rshift(@var{val}, @var{contatore})}
 Restituisce il valore di @var{val}, spostato a destra
 di @var{contatore} bit.
 
 @cindexgawkfunc{xor}
-@cindex XOR, operazione sui bit
+@cindex XOR (operazione sui bit)
+@cindex operazione sui bit @subentry XOR
 @item @code{xor(}@var{v1}@code{,} @var{v2} [@code{,} @dots{}]@code{)}
 Restituisce il XOR bit a bit degli argomenti.
 Gli argomenti devono essere almeno due.
@@ -20959,10 +21078,10 @@ negativo produce un errore fatale.  Si veda la nota a 
lato
 Ecco una funzione definita dall'utente (@pxref{Funzioni definite dall'utente})
 che illustra l'uso di queste funzioni:
 
-@cindex @code{bits2str()}, funzione definita dall'utente
-@cindex funzione definita dall'utente, @code{bits2str()}
-@cindex @code{testbits.awk}, programma
-@cindex programma @code{testbits.awk}
+@cindex @code{bits2str()} @subentry funzione definita dall'utente
+@cindex funzione definita dall'utente @subentry @code{bits2str()}
+@cindex @code{testbits.awk} (programma)
+@cindex programma @subentry @code{testbits.awk}
 @example
 @group
 @c file eg/lib/bits2str.awk
@@ -21035,11 +21154,11 @@ $ @kbd{gawk -f testbits.awk}
 @print{} rshift(0x99, 2) = 0x26 = 00100110
 @end example
 
-@cindex conversione da stringhe a numeri
-@cindex stringhe, conversione
-@cindex numeri, conversione in stringhe
-@cindex conversione da numeri a stringhe
-@cindex numeri, visti come stringhe di bit
+@cindex conversione @subentry da stringa a numero
+@cindex stringa @subentry conversione
+@cindex numeri @subentry conversione in stringhe
+@cindex conversione @subentry da numero a stringa
+@cindex numeri @subentry visti come stringhe di bit
 La funzione @code{bits2str()} trasforma un numero binario in una stringa.
 Inizializzando @code{maschera} a uno otteniamo
 un valore binario in cui il bit pi@`u a destra @`e impostato a
@@ -21137,7 +21256,7 @@ Restituisce il valore 'vero' se @var{x} @`e un vettore. 
Altrimenti, restituisce
 'falso'.
 
 @cindexgawkfunc{typeof}
-@cindex variabile, tipo di una
+@cindex variabili @subentry tipi di
 @cindex tipo di una variabile
 @item typeof(@var{x})
 Restituisce una delle stringhe seguenti, a seconda del tipo di @var{x}:
@@ -21227,11 +21346,11 @@ non ancora tipizzati (untyped) a non ancora assegnati 
(unassigned).
 
 @node Funzioni di internazionalizzazione
 @subsection Funzioni per tradurre stringhe
-@cindex @command{gawk}, funzioni di traduzione di stringhe
-@cindex funzioni di traduzione di stringhe
-@cindex traduzione di stringhe, funzioni di
+@cindex @command{gawk} @subentry funzioni di traduzione di stringhe
+@cindex funzioni @subentry di traduzione di stringhe
+@cindex traduzione di stringhe @subentry funzioni di
 @cindex internazionalizzazione
-@cindex programmi @command{awk}, internazionalizzare
+@cindex programmi @command{awk} @subentry internazionalizzare
 
 @command{gawk} prevede strumenti per internazionalizzare i programmi
 @command{awk}.
@@ -21243,8 +21362,8 @@ I parametri opzionali sono racchiusi tra parentesi 
quadre ([ ]):
 
 @table @asis
 @cindexgawkfunc{bindtextdomain}
-@cindex impostare directory con catalogo messaggi tradotti
-@cindex messaggi tradotti, impostare directory con catalogo
+@cindex impostare @subentry directory con catalogo messaggi tradotti
+@cindex messaggi tradotti @subentry impostare directory con catalogo
 @item @code{bindtextdomain(@var{directory}} [@code{,} @var{dominio}]@code{)}
 Imposta la directory in cui
 @command{gawk} trova i file di traduzione dei messaggi, nel caso in cui
@@ -21280,8 +21399,9 @@ Il valore di default per @var{categoria} @`e 
@code{"LC_MESSAGES"}.
 @node Funzioni definite dall'utente
 @section Funzioni definite dall'utente
 
-@cindex funzioni definite dall'utente
-@cindex utente, funzioni definite dall'
+@cindex funzione definita dall'utente
+@cindex definite dall'utente @subentry @dfn{Si veda} funzioni definite 
dall'utente
+@cindex utente @subentry funzioni definite dall'
 Programmi @command{awk} complessi spesso possono essere semplificati
 definendo delle apposite funzioni personali.
 Le funzioni definite dall'utente sono richiamate allo stesso modo di quelle
@@ -21312,7 +21432,7 @@ di variabili locali @`e semplicemente atroce.}
 @author Brian Kernighan
 @end quotation
 
-@cindex funzioni, definizione di
+@cindex funzioni @subentry definizione di
 @cindex definizione di funzioni
 Definizioni di funzioni possono stare in una posizione qualsiasi tra le regole
 di un programma @command{awk}.  Quindi, la forma generale di un
@@ -21334,10 +21454,10 @@ La definizione di una funzione chiamata @var{nome} 
@`e simile a questa:
 @end group
 @end display
 
-@cindex nomi di funzione
-@cindex funzioni, nomi di
-@cindex limitazioni nei nomi di funzione
-@cindex nomi di funzione, limitazioni nei
+@cindex nomi @subentry di funzione
+@cindex funzioni @subentry nomi di
+@cindex limitazioni @subentry nei nomi di funzione
+@cindex nomi @subentry di funzione @subentry limitazioni nei
 @noindent
 Qui, @var{nome} @`e il nome della funzione da definire.  Un nome di funzione
 valido @`e come un nome di variabile valido: una sequenza di
@@ -21397,15 +21517,15 @@ possono essere in alcuni casi degli argomenti e in 
altri casi
 delle variabili locali.  Un'altra angolatura da cui guardare questo fatto
 @`e che gli argomenti omessi assumono come valore di default la stringa nulla.
 
-@cindex convenzioni di programmazione, nella scrittura di funzioni
-@cindex funzioni, convenzioni di programmazione, nella scrittura di
+@cindex convenzioni di programmazione @subentry nella scrittura di funzioni
+@cindex funzioni @subentry convenzioni di programmazione @subentry nella 
scrittura di
 Solitamente, quando si scrive una funzione, si sa quanti nomi si intendono
 usare per gli argomenti e quanti si vogliono usare come variabili locali.
 @`E una convenzione in uso quella di aggiungere alcuni spazi extra tra gli
 argomenti e le variabili locali, per documentare come va utilizzata quella
 funzione.
 
-@cindex variabili nascoste
+@cindex variabili @subentry nascoste
 @cindex nascondere valori di variabile
 Durante l'esecuzione del corpo della funzione, gli argomenti e i valori
 delle variabili locali
@@ -21421,8 +21541,8 @@ funzione @`e in esecuzione.  Una volta che l'esecuzione 
@`e terminata,
 ritornano accessibili le variabili che erano oscurate
 durante l'esecuzione della funzione.
 
-@cindex ricorsive, funzioni
-@cindex funzioni ricorsive
+@cindex ricorsive @subentry funzioni
+@cindex funzioni @subentry ricorsive
 Il corpo della funzione pu@`o contenere espressioni che chiamano altre
 funzioni.  Tali espressioni possono perfino chiamare direttamente, o
 indirettamente tramite un'altra funzione, la funzione stessa.
@@ -21436,10 +21556,10 @@ che @`e descritta in dettaglio nella @ref{Istruzione 
return}.
 Molti dei successivi esempi in questa @value{SECTION} usano
 l'istruzione @code{return}.
 
-@cindex estensioni comuni, parola chiave @code{func}
+@cindex estensioni comuni @subentry parola chiave @code{func}
 @c @cindex @command{awk} language, POSIX version
 @c @cindex POSIX @command{awk}
-@cindex POSIX @command{awk}, parola chiave @code{function} in
+@cindex POSIX @command{awk} @subentry @code{function} (parola chiave)
 In molte implementazioni di @command{awk}, compreso @command{gawk},
 la parola chiave @code{function} pu@`o essere
 abbreviata come @code{func}. @value{COMMONEXT}
@@ -21464,15 +21584,15 @@ possono essere usate prima che siano state 
definite.@footnote{Questo
 programma in realt@`a non verr@`a eseguito, perch@'e @code{foo()} risulter@`a
 essere una funzione non definita.})
 
-@cindex portabilit@`a, nella definizione di funzioni
+@cindex portabilit@`a @subentry nella definizione di funzioni
 Per essere certi che un programma @command{awk} sia portabile,
 va sempre usata la parola chiave
 @code{function} per definire una funzione.
 
 @node Esempio di funzione
 @subsection Un esempio di definizione di funzione
-@cindex esempio di definizione di funzione
-@cindex funzione, esempio di definizione di
+@cindex esempio @subentry di definizione di funzione
+@cindex funzione @subentry esempio di definizione di
 
 
 Ecco un esempio di funzione definita dall'utente, di nome
@@ -21548,8 +21668,8 @@ In questo caso, la ricorsione termina quando la stringa 
in input @`e
 gi@`a vuota:
 
 @c 8/2014: Thanks to Mike Brennan for the improved formulation
-@cindex @code{rev()}, funzione definita dall'utente
-@cindex funzione definita dall'utente, @code{rev()}
+@cindex @code{rev()} @subentry funzione definita dall'utente
+@cindex funzione definita dall'utente @subentry @code{rev()}
 @example
 function rev(stringa)
 @{
@@ -21576,8 +21696,8 @@ Il seguente esempio usa la funzione predefinita 
@code{strftime()}
 (@pxref{Funzioni di tempo})
 per creare una versione @command{awk} di @code{ctime()}:
 
-@cindex @code{ctime()}, funzione definita dall'utente
-@cindex funzione definita dall'utente, @code{ctime()}
+@cindex @code{ctime()} @subentry funzione definita dall'utente
+@cindex funzione definita dall'utente @subentry @code{ctime()}
 @example
 @c file eg/lib/ctime.awk
 # ctime.awk
@@ -21605,8 +21725,8 @@ e qualche codice a livello utente potrebbe aver 
modificato in precedenza
 @node Chiamata di una funzione
 @subsection Chiamare funzioni definite dall'utente
 
-@cindex funzioni definite dall'utente, chiamare
-@cindex chiamare funzioni definite dall'utente
+@cindex funzione definita dall'utente @subentry chiamare
+@cindex chiamare @subentry funzione definita dall'utente
 @dfn{Chiamare una funzione} significa richiedere l'esecuzione di una
 funzione, la quale svolge il compito per cui @`e stata scritta.
 La chiamata di una funzione @`e un'espressione e il suo valore @`e quello
@@ -21646,8 +21766,8 @@ verrebbe emesso un messaggio di errore.
 @node Campo di validit@`a variabili
 @subsubsection Variabili locali e globali.
 
-@cindex variabili locali, in una funzione
-@cindex locali, variabili, per una funzione
+@cindex variabili @subentry locali @subentry in una funzione
+@cindex locali @subentry variabili, in una funzione
 Diversamente da molti altri linguaggi, non c'@`e modo di
 rendere locale una variabile in un blocco @code{@{} @dots{} @code{@}} di
 @command{awk}, ma si pu@`o rendere locale una variabile di una funzione.  @`E
@@ -21796,7 +21916,7 @@ quando la funzione @`e chiamata, nel rispetto della 
regola seguente:
 se l'argomento @`e una variabile di tipo vettoriale, questa @`e passata
 per riferimento.  Altrimenti, l'argomento @`e passato per valore.
 
-@cindex chiamare per valore
+@cindex chiamare @subentry funzione @subentry per valore
 Passare un argomento per valore significa che quando una funzione @`e chiamata,
 le viene fornita una @emph{copia} del valore di quell'argomento.  Il chiamante
 pu@`o usare una variabile il cui valore calcolato viene passato come 
argomento, ma la
@@ -21837,9 +21957,9 @@ calcolato.  Se la variabile @code{stringa} esiste anche 
al di fuori di
 esterno, perch@'e esso rimane oscurato durante l'esecuzione di
 @code{mia_funzione()} e non pu@`o quindi essere visto o modificato.
 
-@cindex chiamare per riferimento
-@cindex vettori, come parametri di funzione
-@cindex funzioni, vettori come parametri di
+@cindex chiamare @subentry funzione @subentry per riferimento
+@cindex vettori @subentry come parametri di funzione
+@cindex funzioni @subentry vettori come parametri di
 Tuttavia, quando sono dei vettori a fungere da parametri alle funzioni, questi
 @emph{non} vengono copiati.  Invece, il vettore stesso @`e reso disponibile per
 essere manipolato direttamente dalla funzione.  Questo @`e quel che si dice
@@ -21874,8 +21994,8 @@ stampa @samp{a[1] = 1, a[2] = due, a[3] = 3}, perch@'e
 @node Precisazioni sulle funzioni
 @subsubsection Cose a cui prestare attenzione
 
-@cindex indefinite, funzioni
-@cindex funzioni indefinite
+@cindex indefinite @subentry funzioni
+@cindex funzioni @subentry indefinite
 Alcune implementazioni di @command{awk} consentono di chiamare una
 funzione che non @`e stata definita.
 Viene solo emesso un messaggio che descrive il problema al momento
@@ -21900,16 +22020,16 @@ non @`e un problema reale il fatto che
 che @code{pippo()} non sia stato definito.  Solitamente, tuttavia,
 @`e un problema se un programma chiama una funzione indefinita.
 
-@cindex @dfn{lint}, controlli, funzione indefinita
-@cindex controlli @dfn{lint} per funzione indefinita
-@cindex funzione indefinita, controlli @dfn{lint} per
+@cindex @dfn{lint} @subentry controlli @subentry funzione indefinita
+@cindex controllo @subentry @dfn{lint} @subentry per funzione indefinita
+@cindex funzione @subentry indefinita @subentry controlli @dfn{lint} per
 
 Se si specifica l'opzione @option{--lint}
 (@pxref{Opzioni}),
 @command{gawk} elenca le chiamate a funzioni indefinite.
 
-@cindex portabilit@`a, istruzione @code{next} in funzioni definite dall'utente
-@cindex @code{next}, istruzione, in funzioni definite dall'utente
+@cindex portabilit@`a @subentry istruzione @code{next} in funzioni definite 
dall'utente
+@cindex @code{next} (istruzione) @subentry in funzioni definite dall'utente
 Alcune implementazione di @command{awk} emettono un messaggio di errore
 se si usa l'istruzione @code{next}
 o @code{nextfile}
@@ -21961,8 +22081,8 @@ corretto).
 
 @node Istruzione return
 @subsection L'istruzione @code{return}
-@cindex @code{return}, istruzione@comma{} in funzioni definite dall'utente
-@cindex istruzione @code{return}@comma{} in funzioni definite dall'utente
+@cindex @code{return} (istruzione) @subentry in funzioni definite dall'utente
+@cindex istruzione @subentry @code{return} @subentry in funzioni definite 
dall'utente
 
 Come visto in parecchi esempi precedenti,
 il corpo di una funzione definita dall'utente pu@`o contenere un'istruzione
@@ -22016,8 +22136,8 @@ function massimo(vettore,   i, max)
 @}
 @end example
 
-@cindex programmazione, convenzioni di, parametri di funzione
-@cindex convenzioni di programmazione, parametri di funzione
+@cindex programmazione @subentry convenzioni di @subentry parametri di funzione
+@cindex convenzioni di programmazione @subentry parametri di funzione
 @noindent
 La chiamata a @code{massimo()} ha un solo argomento, che @`e il nome di
 un vettore.  Le variabili locali @code{i} e @code{max} non vanno intese
@@ -22103,11 +22223,11 @@ esserne a conoscenza.
 @node Chiamate indirette
 @section Chiamate indirette di funzione
 
-@cindex indiretta, chiamata di funzione
-@cindex chiamata indiretta di funzione
-@cindex funzione, puntatori a
+@cindex indiretta @subentry chiamata di funzione
+@cindex chiamare @subentry funzione @subentry indirettamente
+@cindex funzione @subentry puntatori a
 @cindex puntatori a funzioni
-@cindex differenze tra @command{awk} e @command{gawk}, chiamata indiretta di 
funzione
+@cindex differenze tra @command{awk} e @command{gawk} @subentry chiamata 
indiretta di funzione
 
 Questa sezione descrive un'estensione avanzata, specifica di @command{gawk}.
 
@@ -22161,8 +22281,10 @@ Con la chiamata @dfn{indiretta} di funzione, si pu@`o 
richiedere a @command{gawk
 di usare il @emph{valore} di una variabile come @emph{nome} della funzione da
 chiamare.
 
-@cindex @code{@@}, notazione per la chiamata indiretta di funzioni
-@cindex chiamata indiretta di funzioni, notazione @code{@@}
+@cindex @code{@@} (chiocciola) @subentry @code{@@}-notazione per la chiamata 
indiretta di funzioni
+@cindex chiocciola (@code{@@}) @subentry @code{@@}-notazione per la chiamata 
indiretta di funzioni
+@cindex chiamare @subentry funzione @subentry indirettamente, notazione 
@code{@@}
+@cindex indiretta @subentry chiamata di funzione @subentry @code{@@}-notazione
 La sintassi @`e simile a quella di una normale chiamata di funzione:
 un identificativo, seguito immediatamente da una parentesi aperta,
 qualche argomento, e una parentesi chiusa, con l'aggiunta di un carattere
@@ -22612,8 +22734,8 @@ imparare.  @`E composta dai seguenti capitoli:
 @node Funzioni di libreria
 @chapter Una libreria di funzioni @command{awk}
 @cindex libreria di funzioni @command{awk}
-@cindex funzioni di libreria
-@cindex funzioni definite dall'utente, libreria di
+@cindex funzioni @subentry di libreria
+@cindex funzione definita dall'utente @subentry libreria di
 
 @iftex
 La
@@ -22677,7 +22799,7 @@ generale, e volesse metterle a disposizione della 
comunit@`a degli utenti di
 @ref{Come contribuire}.
 @end ifclear
 
-@cindex portabilit@`a, programmi di esempio
+@cindex portabilit@`a @subentry programmi di esempio
 I programmi contenuti in questo @value{CHAPTER} e in
 @ref{Programmi di esempio},
 utilizzano anche le funzionalit@`a specifiche di @command{gawk}.
@@ -22698,9 +22820,9 @@ per evitare di leggere gli input ancora non letti dal 
file in input corrente.
 
 @item
 @c 12/2000: Thanks to Nelson Beebe for pointing out the output issue.
-@cindex distinzione maiuscolo/minuscolo, programmi di esempio
-@cindex @code{IGNORECASE}, variabile, nei programmi di esempio
-@cindex variabile @code{IGNORECASE}, nei programmi di esempio
+@cindex distinzione maiuscolo/minuscolo @subentry programmi di esempio
+@cindex @code{IGNORECASE} (variabile) @subentry programmi di esempio
+@cindex variabile @subentry @code{IGNORECASE} @subentry programmi di esempio
 Infine, alcuni dei programmi scelgono di ignorare la distinzione tra maiuscolo 
e
 minuscolo nei loro input, assegnando il valore uno a @code{IGNORECASE}.
 Si pu@`o ottenere quasi lo stesso effetto@footnote{I risultati non sono 
identici.
@@ -22739,21 +22861,21 @@ di tipo stringa usate nei confronti utilizzano solo 
lettere minuscole.
 @node Nomi di variabili di libreria
 @section Dare un nome a variabili globali in funzioni di libreria
 
-@cindex nomi di vettore/variabile
-@cindex nomi di funzione
+@cindex nomi @subentry di vettore/variabile
+@cindex nomi @subentry di funzione
 @cindex questioni sui nomi permessi
-@cindex nomi permessi, questioni sui
-@cindex programmi @command{awk}, documentazione
-@cindex documentazione, di programmi @command{awk}
+@cindex nomi @subentry permessi @subentry questioni sui
+@cindex programmi @command{awk} @subentry documentazione dei
+@cindex programmi @command{awk} @subentry documentazione dei
 Per come si @`e sviluppato il linguaggio @command{awk}, le variabili sono
 o @dfn{globali} (usabili dall'intero programma) o @dfn{locali} (usabili solo
 in una specifica funzione).  Non c'@`e uno stato intermedio analogo alle
 variabili @code{statiche} in C.
 
-@cindex variabili globali, per funzioni di libreria
-@cindex globali, variabili, per funzioni di libreria
-@cindex private, variabili
-@cindex variabili private
+@cindex variabili @subentry globali @subentry per funzioni di libreria
+@cindex globali @subentry variabili @subentry per funzioni di libreria
+@cindex private @subentry variabili
+@cindex variabili @subentry private
 Le funzioni di libreria hanno spesso necessit@`a di avere variabili globali da
 usare per conservare informazioni di stato tra successive chiamate alla
 funzione; per esempio, la variabile di @code{getopt()} @code{_opti}
@@ -22768,8 +22890,8 @@ un utente.  Per esempio, un nome come @code{i} o 
@code{j} non @`e una buona
 scelta, perch@'e i programmi a livello utente usano spesso nomi di variabile 
come
 questi per le proprie elaborazioni.
 
-@cindex convenzioni di programmazione, nomi di variabili private
-@cindex programmazione, convenzioni di, nomi di variabili private
+@cindex convenzioni di programmazione @subentry nomi di variabili private
+@cindex programmazione @subentry convenzioni di @subentry nomi di variabili 
private
 I programmi di esempio mostrati in questo @value{CHAPTER} usano per le
 loro variabili private nomi che iniziano con un trattino basso(@samp{_}).
 Generalmente gli utenti
@@ -22777,8 +22899,8 @@ non usano trattini bassi iniziali nei nomi di 
variabile, cos@`{@dotless{i}} ques
 riduce le possibilit@`a che il nome di variabile coincida con un nome usato
 nel programma dell'utente.
 
-@cindex @code{_} (trattino basso), nei nomi di variabili private
-@cindex trattino basso (@code{_}), nei nomi di variabili private
+@cindex @code{_} (trattino basso) @subentry nei nomi di variabili private
+@cindex trattino basso (@code{_}) @subentry nei nomi di variabili private
 Inoltre, parecchie funzioni di libreria usano un prefisso che suggerisce
 quale funzione o gruppo di funzioni usa quelle variabili; per esempio,
 @code{_pw_byname()} nelle routine che consultano la lista degli utenti
@@ -22802,8 +22924,8 @@ mentre il fatto che
 il nome della variabile non @`e tutto in lettere maiuscole indica che la 
variabile
 non @`e una delle variabili predefinite di @command{awk}, come @code{FS}.
 
-@cindex @option{--dump-variables}, opzione, uso per funzioni di libreria
-@cindex opzione @option{--dump-variables}, uso per funzioni di libreria
+@cindex @option{--dump-variables} (opzione) @subentry uso per funzioni di 
libreria
+@cindex opzione @subentry @option{--dump-variables} @subentry uso per funzioni 
di libreria
 @`E importante anche che @emph{tutte} le variabili nelle funzioni di libreria
 che non abbiano la necessit@`a di essere
 conservate per tutta la durata del
@@ -22823,9 +22945,9 @@ function lib_func(x, y,    l1, l2)
 @}
 @end example
 
-@cindex vettori associativi, funzioni di libreria e
-@cindex libreria di funzioni @command{awk}, vettori associativi e
-@cindex funzioni, libreria di, vettori associativi e
+@cindex vettori @subentry associativi @subentry funzioni di libreria e
+@cindex libreria di funzioni @command{awk} @subentry vettori associativi e
+@cindex funzioni @subentry libreria di @subentry vettori associativi e
 @cindex Tcl
 Una differente convenzione, comune nella comunit@`a Tcl, @`e quella di usare un
 solo vettore associativo che contiene i valori necessari alle funzioni di
@@ -22981,11 +23103,11 @@ predefinita @code{strtonum()}.
 @subsection Asserzioni
 
 @cindex asserzioni
-@cindex @code{assert()}, funzione (libreria C)
-@cindex funzione @code{assert()} (libreria C)
-@cindex libreria di funzioni @command{awk}, asserzioni
-@cindex funzioni, libreria di, asserzioni
-@cindex @command{awk}, asserzioni in programmi lunghi
+@cindex @code{assert()} @subentry funzione di libreria C
+@cindex funzione di libreria C @subentry @code{assert()}
+@cindex libreria di funzioni @command{awk} @subentry asserzioni
+@cindex funzioni @subentry libreria di @subentry asserzioni
+@cindex programmi @command{awk} @subentry asserzioni in programmi lunghi
 Quando si scrivono grossi programmi, spesso @`e utile sapere se
 una condizione o una serie di condizioni @`e verificata oppure no.
 Prima di procedere
@@ -23018,8 +23140,8 @@ Se l'asserzione @`e falsa, il programma stampa un 
messaggio simile a questo:
 prog.c:5: asserzione falsa: `a <= 5 && b >= 17.1'
 @end example
 
-@cindex @code{assert()}, funzione definita dall'utente
-@cindex funzione definita dall'utente, @code{assert()}
+@cindex @code{assert()} @subentry funzione definita dall'utente
+@cindex funzione definita dall'utente @subentry @code{assert()}
 Il linguaggio C rende possibile trasformare questa condizione in una stringa
 da
 usare per stampare il messaggio di diagnosi.  Ci@`o in @command{awk} non @`e
@@ -23095,8 +23217,8 @@ Se l'asserzione non @`e verificata, si vedr@`a un 
messaggio simile a questo:
 mydata:1357: asserzione falsa: a <= 5 && b >= 17.1
 @end example
 
-@cindex @code{END}, criterio di ricerca, funzione definita dall'utente 
@code{assert()} e
-@cindex criterio di ricerca @code{END}, funzione definita dall'utente 
@code{assert()} e
+@cindex @code{END} (regola) @subentry funzione definita dall'utente 
@code{assert()} e
+@cindex regola @subentry @code{END} @subentry funzione definita dall'utente 
@code{assert()} e
 C'@`e un piccolo problema con questa versione di @code{assert()}.
 Come visto, una regola @code{END} viene automaticamente aggiunta al programma
 che chiama @code{assert()}.  Normalmente, se un programma consiste
@@ -23106,8 +23228,8 @@ vengono letti. Tuttavia, ora che il programma ha una 
regola @code{END},
 (@pxref{Usare BEGIN/END}), provocando  molto probabilmente la sospensione del
 programma come se rimanesse in attesa di input.
 
-@cindex @code{BEGIN}, criterio di ricerca, funzione definita dall'utente 
@code{assert()} e
-@cindex criterio di ricerca @code{BEGIN}, funzione definita dall'utente 
@code{assert()} e
+@cindex @code{BEGIN} (regola) @subentry funzione definita dall'utente 
@code{assert()} e
+@cindex regola @subentry @code{BEGIN} @subentry funzione definita dall'utente 
@code{assert()} e
 C'@`e un modo per aggirare questo problema:
 assicurarsi che la regola @code{BEGIN} termini sempre
 con un'istruzione @code{exit}.
@@ -23115,16 +23237,16 @@ con un'istruzione @code{exit}.
 @node Funzione round
 @subsection Arrotondamento di numeri
 
-@cindex arrotondare numeri
-@cindex numeri, arrotondamento di
-@cindex libreria di funzioni @command{awk}, arrotondamento di numeri
-@cindex funzioni, libreria di, arrotondamento di numeri
-@cindex @code{print}, istruzione, funzione @code{sprintf()} e
-@cindex istruzione @code{print}, funzione @code{sprintf()} e
-@cindex @code{printf}, istruzione, funzione @code{sprintf()} e
-@cindex istruzione @code{printf}, funzione @code{sprintf()} e
-@cindex @code{sprintf()}, funzione, istruzioni @code{print}/@code{printf} e
-@cindex funzione @code{sprintf()}, istruzioni @code{print}/@code{printf} e
+@cindex arrotondare @subentry numeri
+@cindex numeri @subentry arrotondamento
+@cindex libreria di funzioni @command{awk} @subentry arrotondamento di numeri
+@cindex funzioni @subentry libreria di @subentry arrotondamento di numeri
+@cindex @code{print} (istruzione) @subentry funzione @code{sprintf()} e
+@cindex istruzione @subentry @code{print} @subentry funzione @code{sprintf()} e
+@cindex @code{printf} (istruzione) @subentry funzione @code{sprintf()} e
+@cindex istruzione @subentry @code{printf} @subentry funzione @code{sprintf()} 
e
+@cindex @code{sprintf()} (funzione) @subentry istruzioni 
@code{print}/@code{printf} e
+@cindex funzione @subentry @code{sprintf()} @subentry istruzioni 
@code{print}/@code{printf} e
 Il modo in cui @code{printf} e @code{sprintf()}
 (@pxref{Printf})
 effettuano l'arrotondamento spesso dipende dalla subroutine C @code{sprintf()}
@@ -23139,8 +23261,8 @@ arrotondamento tradizionale; potrebbe essere utile nel 
caso in cui
 l'istruzione @code{printf}
 di @command{awk} che si sta usando faccia degli arrotondamenti statistici:
 
-@cindex @code{round()}, funzione definita dall'utente
-@cindex funzione definita dall'utente, @code{round()}
+@cindex @code{round()} @subentry funzione definita dall'utente
+@cindex funzione definita dall'utente @subentry @code{round()}
 @example
 @c file eg/lib/round.awk
 # round.awk --- effettua arrotondamento tradizionale
@@ -23188,10 +23310,10 @@ function round(x,   ival, aval, frazione)
 
 @node Funzione random Cliff
 @subsection Il generatore di numeri casuali Cliff
-@cindex numeri casuali, generatore Cliff
-@cindex Cliff, generatore di numeri casuali
-@cindex casuali, numeri, generatore Cliff di
-@cindex funzioni, libreria di, numeri casuali Cliff
+@cindex numeri @subentry casuali @subentry generatore Cliff
+@cindex Cliff @subentry generatore di numeri casuali
+@cindex casuali @subentry numeri @subentry generatore Cliff di
+@cindex funzioni @subentry libreria di @subentry numeri casuali Cliff
 
 Il
 @uref{http://mathworld.wolfram.com/CliffRandomNumberGenerator.html, generatore 
di numeri casuali Cliff}
@@ -23200,8 +23322,8 @@ del rumore per la casualit@`a non mostrando di avere 
alcuna struttura.''
 @`E programmato in modo molto semplice, in meno di 10 righe di codice
 @command{awk}:
 
-@cindex @code{cliff_rand()}, funzione definita dall'utente
-@cindex funzione definita dall'utente, @code{cliff_rand()}
+@cindex @code{cliff_rand()} @subentry funzione definita dall'utente
+@cindex funzione definita dall'utente @subentry @code{cliff_rand()}
 @example
 @c file eg/lib/cliff_rand.awk
 # cliff_rand.awk --- generare numeri casuali con algoritmo di Cliff
@@ -23236,10 +23358,10 @@ non @`e abbastanza casuale, si pu@`o tentare di usare 
al suo posto questa funzio
 @node Funzioni ordinali
 @subsection Tradurre tra caratteri e numeri
 
-@cindex libreria di funzioni @command{awk}, valori di carattere come numeri
-@cindex funzioni, libreria di, valori di carattere come numeri
-@cindex carattere, valore come numero
-@cindex numeri, come valori di carattere
+@cindex libreria di funzioni @command{awk} @subentry valori di carattere come 
numeri
+@cindex funzioni @subentry libreria di @subentry valori di carattere come 
numeri
+@cindex caratteri @subentry valore come numero
+@cindex numeri @subentry come valori di carattere
 Un'implementazione commerciale di @command{awk} fornisce una funzione
 predefinita @code{ord()}, che prende un carattere e restituisce il valore
 numerico per quel carattere nella rappresentazione dei caratteri
@@ -23253,12 +23375,12 @@ Entrambe le funzioni si possono scrivere molto bene 
usando @command{awk};
 non vi @`e nessun reale motivo per inglobarle come funzioni predefinite
 @command{awk}:
 
-@cindex @code{ord()}, funzione definita dall'utente
-@cindex funzione definita dall'utente, @code{ord()}
-@cindex @code{chr()}, funzione definita dall'utente
-@cindex funzione definita dall'utente, @code{chr()}
-@cindex @code{_ord_init()}, funzione definita dall'utente
-@cindex funzione definita dall'utente, @code{_ord_init()}
+@cindex @code{ord()} @subentry funzione definita dall'utente
+@cindex funzione definita dall'utente @subentry @code{ord()}
+@cindex @code{chr()} @subentry funzione definita dall'utente
+@cindex funzione definita dall'utente @subentry @code{chr()}
+@cindex @code{_ord_init()} @subentry funzione definita dall'utente
+@cindex funzione definita dall'utente @subentry @code{_ord_init()}
 @example
 @c file eg/lib/ord.awk
 # ord.awk --- implementa ord e chr
@@ -23306,8 +23428,8 @@ function _ord_init(    basso, alto, i, t)
 @cindex ASCII
 @cindex EBCDIC
 @cindex Unicode
-@cindex bit di parit@`a (in ASCII)
-@cindex @dfn{mark}, bit di parit@`a (in ASCII)
+@cindex bit @subentry di parit@`a (in ASCII)
+@cindex @dfn{mark} (bit di parit@`a in ASCII)
 Alcune spiegazioni riguardo ai numeri usati da @code{_ord_init()}
 non guastano.
 La serie di caratteri pi@`u importante oggi in uso @`e nota come
@@ -23372,10 +23494,10 @@ la funzione.  @`E commentato, per poter essere 
eventualmente usato in produzione
 @node Funzione join
 @subsection Trasformare un vettore in una sola stringa
 
-@cindex libreria di funzioni @command{awk}, trasformare vettori in stringhe
-@cindex funzioni, libreria di, trasformare vettori in stringhe
-@cindex stringhe, trasformare vettori in
-@cindex vettori, trasformare in stringhe
+@cindex libreria di funzioni @command{awk} @subentry trasformare vettori in 
stringhe
+@cindex funzioni @subentry libreria di @subentry trasformare vettori in 
stringhe
+@cindex stringa @subentry trasformare vettore in
+@cindex vettori @subentry trasformare in stringhe
 Quando si fanno elaborazioni su stringhe, spesso @`e utile poter unire
 tutte le stringhe di un vettore in una lunga stringa.  La funzione seguente,
 @code{join()}, svolge questo compito.  Verr@`a utilizzata nel seguito in 
diversi
@@ -23396,8 +23518,8 @@ siano numerici---una supposizione logica, dato che il 
vettore probabilmente @`e
 stato creato con @code{split()}
 (@pxref{Funzioni per stringhe}):
 
-@cindex @code{join()}, funzione definita dall'utente
-@cindex funzione definita dall'utente, @code{join()}
+@cindex @code{join()} @subentry funzione definita dall'utente
+@cindex funzione definita dall'utente @subentry @code{join()}
 @example
 @c file eg/lib/join.awk
 # join.awk --- trasforma un vettore in una stringa
@@ -23442,11 +23564,11 @@ sulle stringhe pi@`u difficili di quanto potrebbero 
essere.}
 @node Funzione getlocaltime
 @subsection Gestione dell'ora del giorno
 
-@cindex libreria di funzioni @command{awk}, gestire ora del giorno (marcature 
temporali)
-@cindex funzioni, libreria di, gestione delle ore del giorno
-@cindex data e ora, formattate
-@cindex marcature temporali, formattate
-@cindex ora del giorno, gestire
+@cindex libreria di funzioni @command{awk} @subentry gestire ora del giorno 
(marcature temporali)
+@cindex funzioni @subentry libreria di @subentry gestione delle ore del giorno
+@cindex data e ora @subentry formattazione
+@cindex marcature temporali @subentry formattate
+@cindex ora del giorno @subentry gestire
 Le funzioni @code{systime()} e @code{strftime()} descritte nella
 @ref{Funzioni di tempo}
 forniscono la funzionalit@`a minima necessaria per visualizzare l'ora del 
giorno
@@ -23458,8 +23580,8 @@ La seguente funzione, @code{getlocaltime()}, riempie un 
vettore fornito
 dall'utente con informazioni sul tempo preformattate.  Restituisce una stringa
 con data e ora corrente formattata come nel programma di utilit@`a 
@command{date}:
 
-@cindex @code{getlocaltime()}, funzione definita dall'utente
-@cindex funzione definita dall'utente, @code{getlocaltime()}
+@cindex @code{getlocaltime()} @subentry funzione definita dall'utente
+@cindex funzione definita dall'utente @subentry @code{getlocaltime()}
 @example
 @c file eg/lib/gettime.awk
 # getlocaltime.awk --- ottiene l'ora del giorno in un formato usabile
@@ -23575,8 +23697,8 @@ Funziona, ma non @`e detto che sia efficiente.
 La funzione seguente, basata su un suggerimento di Denis Shirokov,
 legge l'intero contenuto del file in un colpo solo:
 
-@cindex @code{readfile()}, funzione definita dall'utente
-@cindex funzione definita dall'utente, @code{readfile()}
+@cindex @code{readfile()} @subentry funzione definita dall'utente
+@cindex funzione definita dall'utente @subentry @code{readfile()}
 @example
 @c file eg/lib/readfile.awk
 # readfile.awk --- legge un intero file in un colpo solo
@@ -23716,10 +23838,10 @@ function shell_quote(s,             # parametro
 @node Gestione File Dati
 @section Gestione di @value{DF}
 
-@cindex file, gestione di
+@cindex file @subentry gestione di
 @cindex gestione di file
-@cindex libreria di funzioni @command{awk}, gestire file di dati
-@cindex funzioni, libreria di, gestire file di dati
+@cindex libreria di funzioni @command{awk} @subentry gestire file di dati
+@cindex funzioni @subentry libreria di @subentry gestire file di dati
 Questa @value{SECTION} presenta funzioni utili per gestire
 @value{DF} da riga di comando.
 
@@ -23737,8 +23859,8 @@ Questa @value{SECTION} presenta funzioni utili per 
gestire
 @node Funzione filetrans
 @subsection Trovare i limiti dei @value{DF}
 
-@cindex file, gestione di, limiti dei file-dati
-@cindex file, inizializzazione e pulizia
+@cindex file @subentry gestione di @subentry limiti dei file-dati
+@cindex file @subentry inizializzazione e pulizia
 Ognuna delle regole @code{BEGIN} ed @code{END} viene eseguita esattamente
 solo una volta, rispettivamente all'inizio e alla fine del programma
 @command{awk} (@pxref{BEGIN/END}).
@@ -23809,10 +23931,10 @@ regola @code{END} contenuta nel programma 
``principale'',
 chiamata per prima.  Ancora una volta, l'utilit@`a di poter avere pi@`u regole
 @code{BEGIN} ed @code{END} dovrebbe risultare chiara.
 
-@cindex @code{a_inizio_file()}, funzione definita dall'utente
-@cindex funzione definita dall'utente, @code{a_inizio_file()}
-@cindex @code{a_fine_file()}, funzione definita dall'utente
-@cindex funzione definita dall'utente, @code{a_fine_file()}
+@cindex @code{a_inizio_file()} @subentry funzione definita dall'utente
+@cindex funzione definita dall'utente @subentry @code{a_inizio_file()}
+@cindex @code{a_fine_file()} @subentry funzione definita dall'utente
+@cindex funzione definita dall'utente @subentry @code{a_fine_file()}
 Se lo stesso @value{DF} compare due volte di fila sulla riga di comando,
 @code{a_fine_file()} e @code{a_inizio_file()} non vengono eseguite alla fine 
del primo
 passaggio e all'inizio del secondo passaggio.
@@ -23874,8 +23996,7 @@ riferimento alla @ref{BEGINFILE/ENDFILE}.
 @node Funzione rewind
 @subsection Rileggere il file corrente
 
-@cindex file, leggere un
-@cindex file, rileggere un
+@cindex file @subentry rileggere
 Un'altra richiesta per una nuova funzione predefinita @`e stata per
 una funzione per rileggere il file corrente.
 L'utente che l'ha richiesta non voleva dover usare @code{getline}
@@ -23887,8 +24008,8 @@ fare in modo di chiudere il corrente file in input 
immediatamente
 e ricominciare a leggerlo dall'inizio.
 In mancanza di un nome migliore, chiameremo la funzione @code{rewind()}:
 
-@cindex @code{rewind()}, funzione definita dall'utente
-@cindex funzione definita dall'utente, @code{rewind()}
+@cindex @code{rewind()} @subentry funzione definita dall'utente
+@cindex funzione definita dall'utente @subentry @code{rewind()}
 @example
 @c file eg/lib/rewind.awk
 # rewind.awk --- ricarica il file corrente e ricomincia a leggerlo
@@ -23962,9 +24083,9 @@ $ @kbd{gawk -f rewind.awk -f test.awk dati }
 @node Controllo di file
 @subsection Controllare che i @value{DF} siano leggibili
 
-@cindex risoluzione di problemi, leggibilit@`a file-dati
-@cindex leggibilit@`a, file-dati@comma{} controllare la
-@cindex file, non elaborare
+@cindex risoluzione di problemi @subentry leggibilit@`a file-dati
+@cindex leggibilit@`a @subentry di un file-dati @subentry controllare la
+@cindex file @subentry non elaborare
 Normalmente, se si fornisce ad @command{awk} un @value{DF} che non @`e 
leggibile,
 il programma
 si arresta con un errore fatale.  Ci sono casi in cui sarebbe preferibile
@@ -23975,7 +24096,7 @@ Tuttavia, il codice qui proposto fornisce una soluzione 
portabile.}
 Si pu@`o far questo facendo precedere il proprio programma @command{awk} dal
 seguente programma:
 
-@cindex @code{readable.awk}, programma
+@cindex @code{readable.awk} (programma)
 @example
 @c file eg/lib/readable.awk
 # readable.awk --- file di libreria per saltare file non leggibili
@@ -24004,9 +24125,9 @@ BEGIN @{
 @c endfile
 @end example
 
-@cindex risoluzione di problemi, funzione @code{getline}
-@cindex comando @code{getline}, risoluzione di problemi
-@cindex @code{getline}, comando, risoluzione di problemi
+@cindex risoluzione di problemi @subentry funzione @code{getline}
+@cindex comando @subentry @code{getline} @subentry risoluzione di problemi
+@cindex @code{getline} (comando) @subentry risoluzione di problemi
 Questo codice funziona, perch@'e l'errore di @code{getline} non @`e fatale.
 Rimuovendo l'elemento da @code{ARGV} con @code{delete}
 si tralascia il file (perch@'e non @`e pi@`u nella lista).
@@ -24039,7 +24160,7 @@ Usando la variabile @code{ARGIND} di @command{gawk}
 di nome @code{zerofile()} che l'utente deve fornire.  Gli argomenti passati
 sono il @value{FN} e la posizione del file in @code{ARGV}:
 
-@cindex @code{zerofile.awk}, programma
+@cindex @code{zerofile.awk} (programma)
 @example
 @c file eg/lib/zerofile.awk
 # zerofile.awk --- file di libreria per elaborare file in input vuoti
@@ -24089,9 +24210,9 @@ condizione del ciclo @code{for}, la verifica  usa 
l'operatore @samp{<=}, non
 @node Ignorare assegnamenti di variabili
 @subsection Trattare assegnamenti di variabile come @value{FNS}
 
-@cindex assegnamenti di variabile, visti come nomi di file
-@cindex file, nomi di, assegnamenti di variabile visti come
-@cindex nomi di file, assegnamenti di variabile visti come
+@cindex assegnamento @subentry di variabile @subentry visti come nomi di file
+@cindex file @subentry nomi di @subentry assegnamenti di variabile visti come
+@cindex nomi @subentry di file @subentry assegnamenti di variabile visti come
 Occasionalmente, potrebbe essere pi@`u opportuno che @command{awk} non elabori 
gli
 assegnamenti di variabile presenti sulla riga di comando
 (@pxref{Opzioni di assegnamento}).
@@ -24103,8 +24224,8 @@ Alcuni utenti hanno suggerito un'opzione aggiuntiva da 
riga di comando per
 Comunque, poche righe di codice di programmazione in un file di libreria
 hanno lo stesso effetto:
 
-@cindex @code{noassign.awk}, programma
-@cindex programma @code{noassign.awk}
+@cindex @code{noassign.awk} (programma)
+@cindex programma @subentry @code{noassign.awk}
 @example
 @c file eg/lib/noassign.awk
 # noassign.awk --- file di libreria per evitare la necessit@`a
@@ -24155,12 +24276,12 @@ non vengono modificati.
 @node Funzione getopt
 @section Elaborare opzioni specificate sulla riga di comando
 
-@cindex libreria di funzioni @command{awk}, opzioni sulla riga di comando
-@cindex funzioni, libreria di, opzioni sulla riga di comando
-@cindex riga di comando, opzioni, elaborazione di
-@cindex opzioni sulla riga di comando, elaborazione di
-@cindex funzioni, libreria di, libreria C
-@cindex argomenti, elaborazione di
+@cindex libreria di funzioni @command{awk} @subentry opzioni sulla riga di 
comando
+@cindex funzioni @subentry libreria di @subentry opzioni sulla riga di comando
+@cindex riga di comando @subentry opzioni @subentry elaborazione di
+@cindex opzioni @subentry sulla riga di comando @subentry elaborazione di
+@cindex funzioni @subentry di libreria C
+@cindex argomenti @subentry elaborazione di
 La maggior parte dei programmi di utilit@`a su sistemi compatibili con POSIX
 prevedono opzioni presenti sulla riga di comando che possono essere usate per
 cambiare il modo in cui un programma si comporta.  @command{awk} @`e un 
esempio di
@@ -24174,8 +24295,8 @@ come separatore di campo.  La prima occorrenza, sulla 
riga di comando, di
 @option{--} o di una stringa che non inizia con @samp{-} segnala la fine
 delle opzioni.
 
-@cindex @code{getopt()}, funzione (libreria C)
-@cindex funzione @code{getopt()} (libreria C)
+@cindex @code{getopt()} @subentry funzione di libreria C
+@cindex funzione di libreria C @subentry @code{getopt()}
 I moderni sistemi Unix hanno una funzione C chiamata @code{getopt()} per
 elaborare gli argomenti presenti
 sulla riga di comando.  Il programmatore fornisce una
@@ -24291,8 +24412,8 @@ dividere le stringhe in caratteri singoli usando 
@code{""} come separatore.
 La spiegazione della funzione viene data
 man mano che si elencano i pezzi di codice che la compongono:
 
-@cindex @code{getopt()}, funzione definita dall'utente
-@cindex funzione definita dall'utente, @code{getopt()}
+@cindex @code{getopt()} @subentry funzione definita dall'utente
+@cindex funzione definita dall'utente @subentry @code{getopt()}
 @example
 @c file eg/lib/getopt.awk
 # getopt.awk --- imita in awk la funzione di libreria C getopt(3)
@@ -24336,8 +24457,8 @@ chiamata con una stringa di opzioni (il parametro 
@code{opzioni}).  Se
 @code{opzioni} ha lunghezza zero, @code{getopt()} restituisce immediatamente
 @minus{}1:
 
-@cindex @code{getopt()}, funzione definita dall'utente
-@cindex funzione definita dall'utente, @code{getopt()}
+@cindex @code{getopt()} @subentry funzione definita dall'utente
+@cindex funzione definita dall'utente @subentry @code{getopt()}
 @example
 @c file eg/lib/getopt.awk
 function getopt(argc, argv, opzioni,    unaopz, i)
@@ -24551,12 +24672,12 @@ usano @code{getopt()} per elaborare i propri 
argomenti.
 @node Funzioni Passwd
 @section Leggere la lista degli utenti
 
-@cindex libreria di funzioni @command{awk}, leggere la lista degli utenti
-@cindex funzioni, libreria di, leggera la lista degli utenti
-@cindex utenti, leggere la lista degli
-@cindex lista degli utenti@comma{} leggere la
-@cindex @code{PROCINFO}, vettore
-@cindex vettore @code{PROCINFO}
+@cindex libreria di funzioni @command{awk} @subentry leggere la lista degli 
utenti
+@cindex funzioni @subentry libreria di @subentry leggere la lista degli utenti
+@cindex utenti @subentry leggere la lista degli
+@cindex lista degli utenti @subentry leggere la
+@cindex @code{PROCINFO} (vettore)
+@cindex vettore @subentry @code{PROCINFO}
 Il vettore @code{PROCINFO}
 (@pxref{Variabili predefinite})
 d@`a accesso ai numeri ID reale ed effettivo dell'utente e del gruppo e, se
@@ -24568,15 +24689,15 @@ sull'utente associate con i numeri ID dell'utente e 
del gruppo.  Questa
 dalla lista gli utenti.  @xref{Funzioni Group} per una raccolta di
 funzioni simili per ottenere informazioni dalla lista dei gruppi.
 
-@cindex @code{getpwent()}, funzione (libreria C)
-@cindex funzione @code{getpwent()} (libreria C)
-@cindex @code{getpwent()}, funzione definita dall'utente
-@cindex funzione definita dall'utente, @code{getpwent()}
-@cindex utenti, informazioni riguardo agli, ottenere
-@cindex login, informazioni
-@cindex account, informazioni sugli
-@cindex password, file delle
-@cindex file delle password
+@cindex @code{getpwent()} @subentry funzione di libreria C
+@cindex funzione di libreria C @subentry @code{getpwent()}
+@cindex @code{getpwent()} @subentry funzione definita dall'utente
+@cindex funzione definita dall'utente @subentry @code{getpwent()}
+@cindex utenti @subentry informazioni riguardo agli @subentry ottenere
+@cindex login @subentry informazioni
+@cindex account @subentry informazioni sugli
+@cindex password @subentry file delle
+@cindex file @subentry delle password
 Lo standard POSIX non definisce il file dove sono mantenute le informazioni
 degli utenti.  Invece, fornisce il file d'intestazione @code{<pwd.h>}
 e diverse @dfn{subroutine} del linguaggio C per ottenere informazioni sugli
@@ -24590,7 +24711,7 @@ un file non accessibile dall'utente normale. La 
struttura del file
 @file{/etc/passwd} @`e rimasta la stessa, ma al posto del campo @dfn{password}
 c'@`e una @code{x}.}
 
-@cindex @command{pwcat}, programma
+@cindex @command{pwcat} (programma)
 Sebbene un programma @command{awk} possa semplicemente leggere
 @file{/etc/passwd} direttamente, questo file pu@`o non contenere tutte le
 informazioni su tutti gli utenti del sistema.@footnote{Capita spesso che le
@@ -24713,8 +24834,8 @@ comunemente una shell, come Bash.
 Di seguito si riportano alcune righe di un possibile output di @command{pwcat}:
 
 @cindex Jacobs, Andrew
-@cindex Robbins, Arnold
-@cindex Robbins, Miriam
+@cindex Robbins @subentry Arnold
+@cindex Robbins @subentry Miriam
 @example
 $ @kbd{pwcat}
 @print{} root:x:0:1:Operator:/:/bin/sh
@@ -24732,8 +24853,8 @@ Dopo quest'introduzione, di seguito si riporta un 
gruppo di funzioni per
 ottenere informazioni sugli utenti.  Ci sono diverse funzioni, che
 corrispondono alle omonime funzioni C:
 
-@cindex @code{_pw_init()}, funzione definita dall'utente
-@cindex funzione definita dall'utente, @code{_pw_init()}
+@cindex @code{_pw_init()} @subentry funzione definita dall'utente
+@cindex funzione definita dall'utente @subentry @code{_pw_init()}
 @example
 @c file eg/lib/passwdawk.in
 # passwd.awk --- accedere alle informazioni del file delle password
@@ -24787,8 +24908,8 @@ function _pw_init(    oldfs, oldrs, olddol0, pwcat, 
using_fw, using_fpat)
 @c endfile
 @end example
 
-@cindex @code{BEGIN}, criterio di ricerca, programma @code{pwcat}
-@cindex criterio di ricerca @code{BEGIN}, programma @code{pwcat}
+@cindex @code{BEGIN} (regola) @subentry programma @code{pwcat}
+@cindex regola @subentry @code{BEGIN} @subentry programma @code{pwcat}
 La regola @code{BEGIN} imposta una variabile privata col nome
 della directory in cui si
 trova @command{pwcat}.
@@ -24805,10 +24926,10 @@ La variabile @code{_pw_inizializzato} @`e usata per
 efficienza, poich@'e in questo modo @code{_pw_init()}
 viene chiamata solo una volta.
 
-@cindex @code{PROCINFO}, vettore, verificare la divisione in campi
-@cindex vettore @code{PROCINFO}, verificare la divisione in campi
-@cindex @code{getline}, comando, funzione definita dall'utente, 
@code{_pw_init()}
-@cindex comando @code{getline}, funzione definita dall'utente, 
@code{_pw_init()}
+@cindex @code{PROCINFO} (vettore) @subentry verificare la divisione in campi
+@cindex vettore @subentry @code{PROCINFO} @subentry verificare la divisione in 
campi
+@cindex @code{getline} (comando) @subentry funzione definita dall'utente, 
@code{_pw_init()}
+@cindex comando @subentry @code{getline} @subentry funzione definita 
dall'utente, @code{_pw_init()}
 Poich@'e questa funzione usa @code{getline} per leggere informazioni da
 @command{pwcat}, dapprima salva i valori di @code{FS}, @code{RS} e @code{$0}.
 Annota nella variabile @code{using_fw} se la suddivisione in campi
@@ -24835,16 +24956,16 @@ impostando @code{@w{_pw_inizializzato}} a uno, e 
ripristinando @code{FS}
 se necessario), @code{RS} e @code{$0}.
 L'uso di @code{@w{_pw_contatore}} verr@`a spiegato a breve.
 
-@cindex @code{getpwnam()}, funzione (libreria C)
-@cindex funzione @code{getpwnam()} (libreria C)
+@cindex @code{getpwnam()} @subentry funzione di libreria C
+@cindex funzione di libreria C @subentry @code{getpwnam()}
 La funzione @code{getpwnam()} ha un nome utente come argomento di tipo
 stringa. Se
 quell'utente @`e presente nella lista, restituisce la riga appropriata.
 Altrimenti, il riferimento a un elemento inesistente del vettore
 aggiunge al vettore stesso un elemento il cui valore @`e la stringa nulla:
 
-@cindex @code{getpwnam()}, funzione definita dall'utente
-@cindex funzione definita dall'utente, @code{getpwnam()}
+@cindex @code{getpwnam()} @subentry funzione definita dall'utente
+@cindex funzione definita dall'utente @subentry @code{getpwnam()}
 @example
 @group
 @c file eg/lib/passwdawk.in
@@ -24857,15 +24978,15 @@ function getpwnam(nome)
 @end group
 @end example
 
-@cindex @code{getpwuid()}, funzione (libreria C)
-@cindex funzione @code{getpwuid()} (libreria C)
+@cindex @code{getpwuid()} @subentry funzione di libreria C
+@cindex funzione di libreria C @subentry @code{getpwuid()}
 In modo simile, la funzione @code{getpwuid()} ha per argomento
 il numero ID di un utente.
 Se un utente con quel numero si trova nella lista, restituisce la riga
 appropriata. Altrimenti restituisce la stringa nulla:
 
-@cindex @code{getpwuid()}, funzione definita dall'utente
-@cindex funzione definita dall'utente, @code{getpwuid()}
+@cindex @code{getpwuid()} @subentry funzione definita dall'utente
+@cindex funzione definita dall'utente @subentry @code{getpwuid()}
 @example
 @c file eg/lib/passwdawk.in
 function getpwuid(uid)
@@ -24876,14 +24997,14 @@ function getpwuid(uid)
 @c endfile
 @end example
 
-@cindex @code{getpwent()}, funzione (libreria C)
-@cindex funzione @code{getpwent()} (libreria C)
+@cindex @code{getpwent()} @subentry funzione di libreria C
+@cindex funzione di libreria C @subentry @code{getpwent()}
 La funzione @code{getpwent()} scorre semplicemnte la lista, un elemento
 alla volta.  Usa @code{_pw_contatore} per tener traccia della posizione 
corrente
 nel vettore @code{_pw_bycount}:
 
-@cindex @code{getpwent()}, funzione definita dall'utente
-@cindex funzione definita dall'utente, @code{getpwent()}
+@cindex @code{getpwent()} @subentry funzione definita dall'utente
+@cindex funzione definita dall'utente @subentry @code{getpwent()}
 @example
 @c file eg/lib/passwdawk.in
 function getpwent()
@@ -24896,13 +25017,13 @@ function getpwent()
 @c endfile
 @end example
 
-@cindex @code{endpwent()}, funzione (libreria C)
-@cindex funzione @code{endpwent()} (libreria C)
+@cindex @code{endpwent()} @subentry funzione di libreria C
+@cindex funzione di libreria C @subentry @code{endpwent()}
 La funzione @code{@w{endpwent()}} reimposta @code{@w{_pw_contatore}} a zero,
 in modo che chiamate successive a @code{getpwent()} ricomincino da capo:
 
-@cindex @code{endpwent()}, funzione definita dall'utente
-@cindex funzione definita dall'utente, @code{endpwent()}
+@cindex @code{endpwent()} @subentry funzione definita dall'utente
+@cindex funzione definita dall'utente @subentry @code{endpwent()}
 @example
 @c file eg/lib/passwdawk.in
 function endpwent()
@@ -24951,19 +25072,19 @@ usa queste funzioni.
 @node Funzioni Group
 @section Leggere la lista dei gruppi
 
-@cindex libreria di funzioni @command{awk}, leggere la lista dei gruppi
-@cindex funzioni, libreria di, leggere la lista dei gruppi
-@cindex gruppi, lista dei, leggere la
-@cindex lista dei gruppi, leggere la
-@cindex @code{PROCINFO}, vettore, appartenenza a gruppi e
-@cindex @code{getgrent()}, funzione (libreria C)
-@cindex funzione @code{getgrent()} (libreria C)
-@cindex @code{getgrent()}, funzione definita dall'utente
-@cindex funzione definita dall'utente, @code{getgrent()}
-@cindex gruppi@comma{} informazioni su
-@cindex account, informazioni sugli
-@cindex gruppi, file dei
-@cindex file dei gruppi
+@cindex libreria di funzioni @command{awk} @subentry leggere la lista dei 
gruppi
+@cindex funzioni @subentry libreria di @subentry leggere la lista dei gruppi
+@cindex gruppi @subentry lista dei @subentry leggere la
+@cindex lista dei gruppi @subentry leggere la
+@cindex @code{PROCINFO} (vettore) @subentry appartenenza a gruppi e
+@cindex @code{getgrent()} @subentry funzione di libreria C
+@cindex funzione di libreria C @subentry @code{getgrent()}
+@cindex @code{getgrent()} @subentry funzione definita dall'utente
+@cindex funzione definita dall'utente @subentry @code{getgrent()}
+@cindex gruppi @subentry informazioni sui
+@cindex account @subentry informazioni sugli
+@cindex gruppi @subentry file dei
+@cindex file @subentry dei gruppi
 Molto di quel che @`e stato detto
 @iftex
 nella
@@ -24986,8 +25107,8 @@ piccolo programma in C che genera la lista dei gruppi 
come suo output.
 @command{grcat}, un programma in C che fornisce la lista dei gruppi,
 @`e il seguente:
 
-@cindex @command{grcat}, programma C
-@cindex programma C, @command{grcat}
+@cindex @command{grcat} (programma C)
+@cindex programma C @subentry @command{grcat}
 @example
 @c file eg/lib/grcat.c
 /*
@@ -25115,10 +25236,10 @@ Qui ci sono le funzioni per ottenere informazioni 
relative alla lista dei
 gruppi.  Ce ne sono diverse, costruite sul modello delle omonime funzioni della
 libreria C:
 
-@cindex @code{getline}, comando, funzione definita dall'utente, 
@code{_gr_init()}
-@cindex comando @code{getline}, funzione definita dall'utente, 
@code{_gr_init()}
-@cindex @code{_gr_init()}, funzione definita dall'utente
-@cindex funzione definita dall'utente, @code{_gr_init()}
+@cindex @code{getline} (comando) @subentry funzione definita dall'utente, 
@code{_gr_init()}
+@cindex comando @subentry @code{getline} @subentry funzione definita 
dall'utente, @code{_gr_init()}
+@cindex @code{_gr_init()} @subentry funzione definita dall'utente
+@cindex funzione definita dall'utente @subentry @code{_gr_init()}
 @example
 @c file eg/lib/groupawk.in
 # group.awk --- funzioni per il trattamento del file dei gruppi
@@ -25235,16 +25356,16 @@ Infine, @code{_gr_init()} chiude la @dfn{pipe} a 
@command{grcat}, ripristina
 @code{$0}, inizializza @code{_gr_contatore} a zero
 (per essere usato pi@`u tardi), e rende @code{_gr_inizializzato} diverso da 
zero.
 
-@cindex @code{getgrnam()}, funzione (libreria C)
-@cindex funzione @code{getgrnam()} (libreria C)
+@cindex @code{getgrnam()} @subentry funzione di libreria C
+@cindex funzione di libreria C @subentry @code{getgrnam()}
 La funzione @code{getgrnam()} ha come argomento un nome di gruppo, e se quel
 gruppo esiste, viene restituito.
 
 Altrimenti, il riferimento a un elemento inesistente del vettore
 aggiunge al vettore stesso un elemento il cui valore @`e la stringa nulla:
 
-@cindex @code{getgrnam()}, funzione definita dall'utente
-@cindex funzione definita dall'utente, @code{getgrnam()}
+@cindex @code{getgrnam()} @subentry funzione definita dall'utente
+@cindex funzione definita dall'utente @subentry @code{getgrnam()}
 @example
 @c file eg/lib/groupawk.in
 function getgrnam(group)
@@ -25255,13 +25376,13 @@ function getgrnam(group)
 @c endfile
 @end example
 
-@cindex @code{getgrgid()}, funzione (libreria C)
-@cindex funzione @code{getgrgid()} (libreria C)
+@cindex @code{getgrgid()} @subentry funzione di libreria C
+@cindex funzione di libreria C @subentry @code{getgrgid()}
 La funzione @code{getgrgid()} @`e simile; ha come argomento un numero ID di
 gruppo e controlla le informazioni assiciate con quell'ID di gruppo:
 
-@cindex @code{getgrgid()}, funzione definita dall'utente
-@cindex funzione definita dall'utente, @code{getgrgid()}
+@cindex @code{getgrgid()} @subentry funzione definita dall'utente
+@cindex funzione definita dall'utente @subentry @code{getgrgid()}
 @example
 @c file eg/lib/groupawk.in
 function getgrgid(gid)
@@ -25272,13 +25393,13 @@ function getgrgid(gid)
 @c endfile
 @end example
 
-@cindex @code{getgruser()}, funzione (libreria C)
-@cindex funzione @code{getgruser()} (libreria C)
+@cindex @code{getgruser()} @subentry funzione di libreria C
+@cindex funzione di libreria C @subentry @code{getgruser()}
 La funzione @code{getgruser()} non ha un equivalente in C. Ha come argomento un
 nome-utente e restituisce l'elenco dei gruppi di cui l'utente @`e membro:
 
-@cindex @code{getgruser()}, funzione definita dall'utente
-@cindex funzione definita dall'utente, @code{getgruser()}
+@cindex @code{getgruser()} @subentry funzione definita dall'utente
+@cindex funzione definita dall'utente @subentry @code{getgruser()}
 @example
 @c file eg/lib/groupawk.in
 function getgruser(user)
@@ -25289,13 +25410,13 @@ function getgruser(user)
 @c endfile
 @end example
 
-@cindex @code{getgrent()}, funzione (libreria C)
-@cindex funzione @code{getgrent()} (libreria C)
+@cindex @code{getgrent()} @subentry funzione di libreria C
+@cindex funzione di libreria C @subentry @code{getgrent()}
 La funzione @code{getgrent()} scorre la lista un elemento alla volta.
 Usa @code{_gr_contatore} per ricordare la posizione corrente nella lista:
 
-@cindex @code{getgrent()}, funzione definita dall'utente
-@cindex funzione definita dall'utente, @code{getgrent()}
+@cindex @code{getgrent()} @subentry funzione definita dall'utente
+@cindex funzione definita dall'utente @subentry @code{getgrent()}
 @example
 @c file eg/lib/groupawk.in
 function getgrent()
@@ -25310,13 +25431,13 @@ function getgrent()
 @c endfile
 @end example
 
-@cindex @code{endgrent()}, funzione (libreria C)
-@cindex funzione @code{endgrent()} (libreria C)
+@cindex @code{endgrent()} @subentry funzione di libreria C
+@cindex funzione di libreria C @subentry @code{endgrent()}
 La funzione @code{endgrent()} reimposta @code{_gr_contatore} a zero in modo che
 @code{getgrent()} possa ricominciare da capo:
 
-@cindex @code{endgrent()}, funzione definita dall'utente
-@cindex funzione definita dall'utente, @code{endgrent()}
+@cindex @code{endgrent()} @subentry funzione definita dall'utente
+@cindex funzione definita dall'utente @subentry @code{endgrent()}
 @example
 @c file eg/lib/groupawk.in
 function endgrent()
@@ -25358,8 +25479,8 @@ un vettore, stampando gli indici e i valori di ogni 
elemento.
 Viene chiamata col vettore e con una stringa che contiene il nome
 del vettore:
 
-@cindex @code{walk_array()}, funzione definita dall'utente
-@cindex funzione definita dall'utente, @code{walk_array()}
+@cindex @code{walk_array()} @subentry funzione definita dall'utente
+@cindex funzione definita dall'utente @subentry @code{walk_array()}
 @example
 @c file eg/lib/walkarray.awk
 function walk_array(vett, nome,      i)
@@ -25595,9 +25716,8 @@ output identico a quello della versione originale.
 
 @node Programmi di esempio
 @chapter Programmi utili scritti in @command{awk}
-@cindex @command{awk}, programmi, esempi di
-@cindex programmi @command{awk}, esempi di
-@cindex esempi di programmi @command{awk}
+@cindex programmi @command{awk} @subentry esempi di
+@cindex esempio @subentry di programma @command{awk}
 
 @c FULLXREF ON
 @iftex
@@ -25680,8 +25800,8 @@ cut.awk -- -c1-8 i_miei_file > risultati
 
 @node Cloni
 @section Reinventare la ruota per divertimento e profitto
-@cindex programmi POSIX, implementazione in @command{awk}
-@cindex POSIX, programmi, implementazione in @command{awk}
+@cindex programmi POSIX @subentry implementazione in @command{awk}
+@cindex POSIX @subentry programmi @subentry implementazione in @command{awk}
 
 Questa @value{SECTION} presenta un certo numero di programmi di utilit@`a
 POSIX implementati in @command{awk}.  Riscrivere questi programmi in
@@ -25712,10 +25832,10 @@ I programmi sono presentati in ordine alfabetico.
 @node Programma cut
 @subsection Ritagliare campi e colonne
 
-@cindex @command{cut}, programma di utilit@`a
-@cindex programma di utilit@`a @command{cut}
-@cindex campi, ritagliare
-@cindex colonne, ritagliare
+@cindex @command{cut} (programma di utilit@`a)
+@cindex programma di utilit@`a @subentry @command{cut}
+@cindex campi @subentry ritagliare
+@cindex colonne @subentry ritagliare
 Il programma di utilit@`a @command{cut} seleziona, o ``taglia'' (@dfn{cut}),
 caratteri o campi dal suo standard input e li
 spedisce al suo standard output.
@@ -25766,8 +25886,8 @@ di libreria necessarie, e una funzione 
@code{sintassi()} che stampa un
 messaggio ed esce.  @code{sintassi()} @`e chiamato se si specificano degli
 argomenti non validi:
 
-@cindex @code{cut.awk}, programma
-@cindex programma @code{cut.awk}
+@cindex @code{cut.awk} (programma)
+@cindex programma @subentry @code{cut.awk}
 @example
 @c file eg/prog/cut.awk
 # cut.awk --- implementa cut in awk
@@ -25801,10 +25921,10 @@ function sintassi()
 @c endfile
 @end example
 
-@cindex @code{BEGIN}, criterio di ricerca, eseguire programmi @command{awk} e
-@cindex criterio di ricerca @code{BEGIN}, eseguire programmi @command{awk} e
-@cindex @code{FS}, variabile, eseguire programmi @command{awk} e
-@cindex variabile @code{FS}, eseguire programmi @command{awk} e
+@cindex @code{BEGIN} (regola) @subentry eseguire programmi @command{awk} e
+@cindex regola @subentry @code{BEGIN} @subentry eseguire programmi 
@command{awk} e
+@cindex @code{FS} (variabile) @subentry eseguire programmi @command{awk} e
+@cindex variabile @subentry @code{FS} @subentry eseguire programmi 
@command{awk} e
 Subito dopo c'@`e una regola @code{BEGIN} che analizza le opzioni della riga
 di comando.
 Questa regola imposta @code{FS} a un solo carattere TAB, perch@'e quello @`e
@@ -25852,8 +25972,8 @@ BEGIN @{
 @c endfile
 @end example
 
-@cindex separatori di campo, spazi come
-@cindex spazi come separatori di campo
+@cindex separatore di campo @subentry spazi come
+@cindex spazi @subentry come separatore di campo
 Nella scrittura del codice si deve porre particolare attenzione quando il
 delimitatore di campo @`e uno spazio.  Usare
 un semplice spazio (@code{@w{" "}}) come valore per @code{FS} @`e
@@ -26048,11 +26168,11 @@ di suddividere la riga in input in singoli caratteri.
 @node Programma egrep
 @subsection Ricercare espressioni regolari nei file
 
-@cindex espressioni regolari, ricerca di
-@cindex ricercare, in file, espressioni regolari
-@cindex file, ricercare espressioni regolari nei
-@cindex @command{egrep}, programma di utilit@`a
-@cindex programma di utilit@`a @command{egrep}
+@cindex espressioni regolari @subentry ricerca di
+@cindex ricerca @subentry in file @subentry di espressioni regolari
+@cindex file @subentry ricercare espressioni regolari nei
+@cindex @command{egrep} (programma di utilit@`a)
+@cindex programma di utilit@`a @subentry @command{egrep}
 Il programma di utilit@`a @command{egrep} ricerca occorrenze di espressioni
 regolari all'interno di file.  Usa
 espressioni regolari che sono quasi identiche a quelle disponibili in
@@ -26119,8 +26239,8 @@ da implementare con @command{gawk}; basta usare la 
variabile predefinita
 @code{IGNORECASE}
 (@pxref{Variabili predefinite}):
 
-@cindex @code{egrep.awk}, programma
-@cindex programma @code{egrep.awk}
+@cindex @code{egrep.awk} (programma)
+@cindex programma @subentry @code{egrep.awk}
 @example
 @c file eg/prog/egrep.awk
 # egrep.awk --- simula egrep in awk
@@ -26294,8 +26414,8 @@ possiamo stampare il @value{FN}, e quindi saltare al 
file successivo con
 Infine, ogni riga viene stampata, preceduta, se necessario, dal @value{FN} e
 dai due punti (@code{:}):
 
-@cindex @code{!} (punto esclamativo), operatore @code{!}
-@cindex punto esclamativo (@code{!}), operatore @code{!}
+@cindex @code{!} (punto esclamativo) @subentry operatore @code{!}
+@cindex punto esclamativo (@code{!}) @subentry operatore @code{!}
 @example
 @c file eg/prog/egrep.awk
 @{
@@ -26356,10 +26476,10 @@ function sintassi()
 @node Programma id
 @subsection Stampare informazioni sull'utente
 
-@cindex stampare informazioni utente
-@cindex utenti, informazioni riguardo agli, stampare
-@cindex @command{id}, programma di utilit@`a
-@cindex programma di utilit@`a @command{id}
+@cindex stampare @subentry informazioni utente
+@cindex utenti @subentry informazioni riguardo agli @subentry stampare
+@cindex @command{id} (programma di utilit@`a)
+@cindex programma di utilit@`a @subentry @command{id}
 Il programma di utilit@`a @command{id} elenca i numeri identificativi (ID)
 reali ed effettivi di un utente, e l'insieme dei gruppi a cui l'utente
 appartiene, se ve ne sono.
@@ -26373,8 +26493,8 @@ $ @kbd{id}
 @print{} uid=1000(arnold) gid=1000(arnold) 
groups=1000(arnold),4(adm),7(lp),27(sudo)
 @end example
 
-@cindex @code{PROCINFO}, vettore, @dfn{process ID} di utente e di gruppo e
-@cindex vettore @code{PROCINFO}, @dfn{process ID} di utente e di gruppo e
+@cindex @code{PROCINFO} (vettore) @subentry @dfn{process ID} di utente e di 
gruppo e
+@cindex vettore @subentry @code{PROCINFO} @subentry @dfn{process ID} di utente 
e di gruppo e
 Questa informazione @`e parte di ci@`o che @`e reso disponibile dal vettore
 @code{PROCINFO} di @command{gawk} (@pxref{Variabili predefinite}).
 Comunque, il programma di utilit@`a @command{id} fornisce un output pi@`u
@@ -26402,8 +26522,8 @@ l'ID reale dell'utente @`e divisa in parti, separate 
tra loro da @samp{:}.
 Il nome @`e il primo campo.  Un codice analogo @`e usato per l'ID effettivo, e
 per i numeri che descrivono i gruppi:
 
-@cindex @code{id.awk}, programma
-@cindex programma @code{id.awk}
+@cindex @code{id.awk} (programma)
+@cindex programma @subentry @code{id.awk}
 @example
 @c file eg/prog/id.awk
 # id.awk --- implement id in awk
@@ -26509,9 +26629,9 @@ consente di risparmiare parecchie righe di programma.
 
 @c FIXME: One day, update to current POSIX version of split
 
-@cindex file, splitting
-@cindex @code{split}, programma di utilit@`a
-@cindex programma di utilit@`a @code{split}
+@cindex file @subentry suddividere
+@cindex @code{split} (programma di utilit@`a)
+@cindex programma di utilit@`a @subentry @code{split}
 Il programma @command{split} divide grossi file di testo in pezzi pi@`u 
piccoli.
 La sua sintassi @`e la seguente:@footnote{Questo @`e la sintassi tradizionale.
 La versione POSIX del comando ha una sintassi differente, ma per lo scopo di
@@ -26544,8 +26664,8 @@ numero in questione pu@`o apparire negativo, lo si fa 
diventare positivo, e
 viene usato per contare le righe.  Il nome del @value{DF} @`e per ora ignorato
 e l'ultimo argomento @`e usato come prefisso per i @value{FNS} in output:
 
-@cindex @code{split.awk}, programma di utilit@`a
-@cindex programma di utilit@`a @code{split.awk}
+@cindex @code{split.awk} (programma)
+@cindex programma @subentry @code{split.awk}
 @example
 @c file eg/prog/split.awk
 # split.awk --- comando split scritto in awk
@@ -26659,10 +26779,10 @@ anche il problema posto dalla codifica EBCDIC.
 @node Programma tee
 @subsection Inviare l'output su pi@`u di un file
 
-@cindex file, multipli@comma{} duplicare l'output su
-@cindex output, duplicarlo su pi@`u file
-@cindex @code{tee}, programma di utilit@`a
-@cindex programma di utilit@`a @code{tee}
+@cindex file @subentry multipli @subentry duplicare l'output su
+@cindex output @subentry duplicarlo su pi@`u file
+@cindex @code{tee} (programma di utilit@`a)
+@cindex programma di utilit@`a @subentry @code{tee}
 Il programma @code{tee} @`e noto come @dfn{pipe fitting} (tubo secondario).
 @code{tee} copia il suo standard input al suo standard output e inoltre lo
 duplica scrivendo sui file indicati nella riga di comando.  La sua sintassi
@@ -26681,8 +26801,8 @@ sulla riga di comando, in un vettore di nome 
@code{copia}.
 @code{tee} non pu@`o usare @code{ARGV} direttamente, perch@'e @command{awk} 
tenta
 di elaborare ogni @value{FN} in @code{ARGV} come dati in input.
 
-@cindex flag, variabili di tipo
-@cindex variabili di tipo indicatore [@dfn{flag}]
+@cindex @dfn{flag} (indicatore), variabili di tipo
+@cindex variabili @subentry di tipo indicatore (@dfn{flag})
 Se il primo argomento @`e @option{-a}, la variabile flag
 @code{append} viene impostata a vero, e sia @code{ARGV[1]} che
 @code{copia[1]} vengono cancellati. Se @code{ARGC} @`e minore di due, nessun
@@ -26691,8 +26811,8 @@ esce.
 Infine, @command{awk} viene obbligato a leggere lo standard input
 impostando @code{ARGV[1]} al valore @code{"-"} e @code{ARGC} a due:
 
-@cindex @code{tee.awk}, programma di utilit@`a
-@cindex programma di utilit@`a @code{tee.awk}
+@cindex @code{tee.awk} (programma)
+@cindex programma @subentry @code{tee.awk}
 @example
 @c file eg/prog/tee.awk
 # tee.awk --- tee in awk
@@ -26790,10 +26910,10 @@ END @{
 
 @c FIXME: One day, update to current POSIX version of uniq
 
-@cindex stampare righe di testo non duplicate
-@cindex testo@comma{} stampare, righe non duplicate di
-@cindex @command{uniq}, programma di utilit@`a
-@cindex programma di utilit@`a @command{uniq}
+@cindex stampare @subentry righe di testo non duplicate
+@cindex testo @subentry stampare @subentry righe non duplicate di
+@cindex @command{uniq} (programma di utilit@`a)
+@cindex programma di utilit@`a @subentry @command{uniq}
 Il programma di utilit@`a @command{uniq} legge righe di dati ordinati sul suo
 standard input, e per default rimuove righe duplicate.  In altre parole,
 stampa solo righe uniche; da cui il
@@ -26862,8 +26982,8 @@ ripetute che quelle non ripetute.  Il file di output, 
se specificato, @`e
 assegnato a @code{file_output}.  In precedenza, @code{file_output} @`e
 inizializzato allo standard output, @file{/dev/stdout}:
 
-@cindex @code{uniq.awk}, programma di utilit@`a
-@cindex programma di utilit@`a @code{uniq.awk}
+@cindex @code{uniq.awk} (programma)
+@cindex programma @subentry @code{uniq.awk}
 @example
 @c file eg/prog/uniq.awk
 @group
@@ -27083,12 +27203,12 @@ programma per seguite questo suggerimento.
 @c FIXME: One day, update to current POSIX version of wc
 
 @cindex contare
-@cindex file in input, contare elementi nel
-@cindex parole, contare le
-@cindex caratteri, contare i
-@cindex righe, contare le
-@cindex @command{wc}, programma di utilit@`a
-@cindex programma di utilit@`a @command{wc}
+@cindex input @subentry contare elementi nel
+@cindex parole @subentry contare le
+@cindex caratteri @subentry contare i
+@cindex righe @subentry contare le
+@cindex @command{wc} (programma di utilit@`a)
+@cindex programma di utilit@`a @subentry @command{wc}
 Il programma di utilit@`a @command{wc} (@dfn{word count}, contatore di parole)
 conta righe, parole, e caratteri in uno o pi@`u file in input. La sua sintassi
 @`e la seguente:
@@ -27135,8 +27255,8 @@ La regola @code{BEGIN} si occupa degli argomenti.  La 
variabile
 @code{stampa_totale} @`e vera se pi@`u di un file @`e presente sulla
 riga di comando:
 
-@cindex @code{wc.awk}, programma di utilit@`a
-@cindex programma di utilit@`a @code{wc.awk}
+@cindex @code{wc.awk} (programma)
+@cindex programma @subentry @code{wc.awk}
 @example
 @c file eg/prog/wc.awk
 # wc.awk --- conta righe, parole, caratteri
@@ -27292,9 +27412,9 @@ Si spera che siano interessanti e divertenti.
 @node Programma dupword
 @subsection Trovare parole duplicate in un documento
 
-@cindex parole duplicate, ricerca di
-@cindex ricerca di parole
-@cindex documenti@comma{} ricerca in
+@cindex parole @subentry duplicate @subentry ricerca di
+@cindex ricerca @subentry di parole
+@cindex documenti @subentry ricerca in
 Un errore comune quando si scrive un testo lungo @`e quello di ripetere
 accidentalmente delle parole.  Tipicamente lo si pu@`o vedere in testi del tipo
 ``questo questo programma fa quanto segue@dots{}''  Quando il testo @`e 
pubblicato in rete, spesso
@@ -27328,8 +27448,8 @@ Se, dopo aver rimosso tutta la punteggiatura, non 
rimane alcun campo, il
 record corrente @`e saltato.  In caso contrario, il programma esegue il ciclo
 per ogni parola, confrontandola con quella che la precede:
 
-@cindex @code{dupword.awk}, programma
-@cindex programma @code{dupword.awk}
+@cindex @code{dupword.awk} (programma)
+@cindex programma @subentry @code{dupword.awk}
 @example
 @c file eg/prog/dupword.awk
 # dupword.awk --- trova parole duplicate in un testo
@@ -27364,8 +27484,8 @@ per ogni parola, confrontandola con quella che la 
precede:
 
 @node Programma alarm
 @subsection Un programma di sveglia
-@cindex insonnia, cura per
-@cindex Robbins, Arnold
+@cindex insonnia @subentry cura per
+@cindex Robbins @subentry Arnold
 @quotation
 @i{Nessuna cura contro l'insonnia @`e efficace quanto una sveglia che suona.}
 @author Arnold Robbins
@@ -27397,8 +27517,8 @@ Aharon Robbins <address@hidden> wrote:
 @author Erik Quanstrom
 @end quotation
 
-@cindex tempo, sveglia, programma di esempio
-@cindex sveglia, programma di esempio
+@cindex tempo @subentry sveglia @subentry programma di esempio
+@cindex sveglia @subentry programma di esempio
 Il seguente programma @`e un semplice programma di ``sveglia''.
 Si pu@`o specificare un'ora del giorno e un messaggio opzionale.  All'ora
 specificata, il programma stampa il messaggio sullo standard output. Inoltre,
@@ -27414,6 +27534,7 @@ da
 @end ifnottex
 @ref{Funzione getlocaltime}.
 
+@cindex ASCII
 Tutto il lavoro @`e svolto nella regola @code{BEGIN}.  La prima parte @`e
 il controllo degli argomenti e l'impostazione dei valori di default:
 l'intervallo prima di ripetere, il contatore, e il messaggio da stampare.
@@ -27427,8 +27548,8 @@ Per amor di variet@`a, questo programma usa 
un'istruzione @code{switch}
 con una serie di istruzioni @code{if}-@code{else}.
 Ecco il programma:
 
-@cindex @code{alarm.awk}, programma
-@cindex programma @code{alarm.awk}
+@cindex @code{alarm.awk} (programma)
+@cindex programma @subentry @code{alarm.awk}
 @example
 @c file eg/prog/alarm.awk
 # alarm.awk --- impostare una sveglia
@@ -27530,8 +27651,8 @@ prima di far scattare la sveglia:
 @c endfile
 @end example
 
-@cindex @command{sleep}, programma di utilit@`a
-@cindex programma di utilit@`a @command{sleep}
+@cindex @command{sleep} (programma di utilit@`a)
+@cindex programma di utilit@`a @subentry @command{sleep}
 Infine, il programma usa la funzione @code{system()}
 (@pxref{Funzioni di I/O})
 per chiamare il programma di utilit@`a @command{sleep}.  Il programma di 
utilit@`a
@@ -27565,10 +27686,10 @@ per ritardare per il numero di secondi necessario:
 @node Programma translate
 @subsection Rimpiazzare o eliminare caratteri
 
-@cindex caratteri, rimpiazzare
-@cindex rimpiazzare caratteri
-@cindex @command{tr}, programma di utilit@`a
-@cindex programma di utilit@`a @command{tr}
+@cindex caratteri @subentry rimpiazzare
+@cindex rimpiazzare @subentry caratteri in un file
+@cindex @command{tr} (programma di utilit@`a)
+@cindex programma di utilit@`a @subentry @command{tr}
 Il programma di utilit@`a di sistema @command{tr} rimpiazza caratteri.  Per
 esempio, @`e spesso usato per trasformare lettere maiuscole in lettere 
minuscole
 in vista di ulteriori elaborazioni:
@@ -27634,8 +27755,8 @@ come stringa.  Il programma principale imposta due 
variabili globali, @code{DA}
 Infine, la regola di elaborazione si limita a chiamare @code{traducilo()}
 per ogni record:
 
-@cindex @code{translate.awk}, programma
-@cindex programma @code{translate.awk}
+@cindex @code{translate.awk} (programma)
+@cindex programma @subentry @code{translate.awk}
 @example
 @c file eg/prog/translate.awk
 # translate.awk --- fa cose simili al comando tr
@@ -27724,8 +27845,8 @@ trarre ispirazione dal codice di @file{cut.awk} 
(@pxref{Programma cut}).
 @node Programma labels
 @subsection Stampare etichette per lettere
 
-@cindex stampare etichette per lettera
-@cindex etichette per lettera@comma{} stampare
+@cindex stampare @subentry etichette per lettera
+@cindex etichette per lettera @subentry stampare
 Ecco un programma ``del mondo-reale''@footnote{``Del mondo-reale'' @`e definito
 come ``un programma effettivamente usato per realizzare qualcosa''.}.
 Questo @dfn{script} legge elenchi di nomi e indirizzi, e genera etichette per
@@ -27793,8 +27914,8 @@ La regola @code{END} si occupa di stampare l'ultima 
pagina di
 etichette; @`e improbabile che il numero di indirizzi da stampare sia un
 multiplo esatto di 20:
 
-@cindex @code{labels.awk}, programma
-@cindex programma @code{labels.awk}
+@cindex @code{labels.awk} (programma)
+@cindex programma @subentry @code{labels.awk}
 @example
 @c file eg/prog/labels.awk
 # labels.awk --- stampare etichette per lettera
@@ -27862,7 +27983,7 @@ END @{
 @node Programma utilizzo parole
 @subsection Generare statistiche sulla frequenza d'uso delle parole
 
-@cindex parole, statistica utilizzo delle
+@cindex parole @subentry statistica utilizzo delle
 @cindex statistica utilizzo delle parole
 
 Quando si lavora con una grande quantit@`a di testo, pu@`o essere interessante
@@ -27929,8 +28050,8 @@ interessati a sapere quali parole ricorrono pi@`u di 
frequente, o ad avere
 una tabella in ordine alfabetico che mostra quante volte ricorre ogni parola.
 @end itemize
 
-@cindex @command{sort}, programma di utilit@`a
-@cindex programma di utilit@`a @command{sort}
+@cindex @command{sort} (programma di utilit@`a)
+@cindex programma di utilit@`a @subentry @command{sort}
 Il primo problema si pu@`o risolvere usando @code{tolower()} per rimuovere la
 distinzione maiuscolo/minuscolo.  Il secondo problema si pu@`o risolvere usando
 @code{gsub()} per rimuovere i caratteri di interpunzione.  Infine, per
@@ -27938,8 +28059,8 @@ risolvere il terzo problema si pu@`o usare il programma 
di utilit@`a
 @command{sort} per elaborare l'output dello @dfn{script} @command{awk}.  Ecco 
la
 nuova versione del programma:
 
-@cindex @code{wordfreq.awk}, programma
-@cindex programma @code{wordfreq.awk}
+@cindex @code{wordfreq.awk} (programma)
+@cindex programma @subentry @code{wordfreq.awk}
 @example
 @c file eg/prog/wordfreq.awk
 # wordfreq.awk --- stampa la lista con la frequenza delle parole
@@ -28010,7 +28131,7 @@ informazioni su come usare il programma @command{sort}.
 @node Programma riordino diario
 @subsection Eliminare duplicati da un file non ordinato
 
-@cindex righe, duplicate@comma{} rimuovere
+@cindex righe @subentry duplicate @subentry rimuovere
 @cindex rimuovere righe duplicate
 Il programma @command{uniq}
 (@pxref{Programma uniq})
@@ -28036,8 +28157,8 @@ incontrate.
 La regola @code{END} stampa semplicemente le righe, in ordine:
 
 @cindex Rakitzis, Byron
-@cindex @code{histsort.awk}, programma
-@cindex programma @code{histsort.awk}
+@cindex @code{histsort.awk} (programma)
+@cindex programma @subentry @code{histsort.awk}
 @example
 @c file eg/prog/histsort.awk
 # histsort.awk --- compatta un file della cronologia dei comandi della shell
@@ -28084,9 +28205,9 @@ riga @`e stata trovata.
 @node Programma extract
 @subsection Estrarre programmi da un file sorgente Texinfo
 
-@cindex Texinfo, estrarre programma da file sorgente
+@cindex Texinfo @subentry estrarre programma da file sorgente
 @cindex estrarre programma da file sorgente Texinfo
-@cindex file Texinfo, estrarre programma da
+@cindex file @subentry Texinfo @subentry estrarre programma da
 @ifnotinfo
 Sia questo capitolo che il precedente
 (@ref{Funzioni di libreria})
@@ -28117,7 +28238,7 @@ e anche 
@uref{https://www.gnu.org/software/texinfo/manual/texinfo/, online}.)
 @end ifnotinfo
 @ifinfo
 (Il linguaggio Texinfo @`e descritto esaurientemente, a partire da
-@inforef{Top, , Texinfo, texinfo,Texinfo---The GNU Documentation Format}.)
+@inforef{Top, , Texinfo, texinfo,Texinfo --- The GNU Documentation Format}.)
 @end ifinfo
 
 Per quel che ci riguarda, @`e sufficiente sapere tre cose riguardo ai file di
@@ -28196,8 +28317,8 @@ stato fornito un comando (@code{NF} dev'essere almeno 
tre) e controllando
 anche che il comando termini con un codice di ritorno uguale a zero, che sta
 a significare che tutto @`e andato bene:
 
-@cindex @code{extract.awk}, programma
-@cindex programma @code{extract.awk}
+@cindex @code{extract.awk} (programma)
+@cindex programma @subentry @code{extract.awk}
 @example
 @c file eg/prog/extract.awk
 # extract.awk --- estrae file ed esegue programmi dal file Texinfo
@@ -28367,10 +28488,10 @@ function fine_file_inattesa()
 @node Programma sed semplice
 @subsection Un semplice editor di flusso
 
-@cindex @command{sed}, programma di utilit@`a
-@cindex programma di utilit@`a @command{sed}
+@cindex @command{sed} (programma di utilit@`a)
+@cindex programma di utilit@`a @subentry @command{sed}
 @cindex editori di flusso
-@cindex flusso, editori di
+@cindex flusso @subentry editori di
 Il programma di utilit@`a @command{sed} @`e un @dfn{editore di flusso},
 ovvero un programma che legge un flusso di dati, lo modifica, e scrive il file
 cos@`{@dotless{i}} modificato.
@@ -28398,8 +28519,8 @@ come un nome di @value{DF} da elaborare. Se non ne 
viene fornito alcuno, si
 usa lo standard input:
 
 @cindex Brennan, Michael
-@cindex @command{awksed.awk}, programma
-@cindex programma @command{awksed.awk}
+@cindex @command{awksed.awk} (programma)
+@cindex programma @subentry @command{awksed.awk}
 @c @cindex simple stream editor
 @c @cindex stream editor, simple
 @example
@@ -28485,8 +28606,8 @@ usando @code{print} o @code{printf} come richiesto, a 
seconda del valore di
 @node Programma igawk
 @subsection Una maniera facile per usare funzioni di libreria
 
-@cindex libreria di funzioni @command{awk}, programma di esempio per usare
-@cindex funzioni, librerie di, programma di esempio per usare
+@cindex libreria di funzioni @command{awk} @subentry programma di esempio per 
usare una
+@cindex funzioni @subentry libreria di @subentry programma di esempio per 
usare una
 @iftex
 Nella
 @end iftex
@@ -28649,8 +28770,8 @@ la variabile di shell
 
 Il programma @`e il seguente:
 
-@cindex @code{igawk.sh}, programma
-@cindex programma @code{igawk.sh}
+@cindex @code{igawk.sh} (programma)
+@cindex programma @subentry @code{igawk.sh}
 @example
 @c file eg/prog/igawk.sh
 #! /bin/sh
@@ -28974,7 +29095,7 @@ permettere l'uso di programmi @command{awk} come 
@dfn{script} Web CGI.}
 @node Programma anagram
 @subsection Trovare anagrammi da una lista di parole
 
-@cindex anagrammi, trovare
+@cindex anagrammi @subentry trovare
 Un'interessante sfida per il programmatore @`e quella di cercare 
@dfn{anagrammi} in una
 lista di parole (come
 @file{/usr/share/dict/italian} presente in molti sistemi GNU/Linux).
@@ -28994,8 +29115,8 @@ Il programma seguente usa vettori di vettori per riunire
 parole con la stessa firma,  e l'ordinamento di vettori per stampare le
 parole trovate in ordine alfabetico:
 
-@cindex @code{anagram.awk}, programma
-@cindex programma @code{anagram.awk}
+@cindex @code{anagram.awk} (programma)
+@cindex programma @subentry @code{anagram.awk}
 @example
 @c file eg/prog/anagram.awk
 # anagram.awk --- Un'implementazione dell'algoritmo per trovare anagrammi
@@ -29110,8 +29231,8 @@ barili librai
 @node Programma signature
 @subsection E ora per qualcosa di completamente differente
 
-@cindex @code{signature}, programma
-@cindex programma @code{signature}
+@cindex @code{signature} (programma)
+@cindex programma @subentry @code{signature}
 @cindex Brini, Davide
 Il programma seguente @`e stato scritto da Davide Brini
 @c (@email{dave_br@@gmx.com})
@@ -29397,10 +29518,10 @@ semplifica notevolmente le cose.  Quale problema @`e 
peraltro generato cos@`{@do
 facendo?
 @c answer, reading from "-" o /dev/stdin
 
-@cindex percorso di ricerca per file sorgente
-@cindex ricerca, percorso di, per file sorgente
-@cindex file sorgente, percorso di ricerca per
-@cindex directory, ricerca
+@cindex percorso di ricerca @subentry per file sorgente
+@cindex ricerca @subentry percorso di, per file sorgente
+@cindex file @subentry sorgente @subentry percorso di ricerca per
+@cindex directory @subentry ricerca
 @item
 Come ulteriore esempio dell'idea che non sempre @`e necessario aggiungere
 nuove funzionalit@`a a un programma, si consideri l'idea di avere due file in
@@ -29468,8 +29589,8 @@ Contiene i seguenti capitoli:
 
 @node Funzionalit@`a avanzate
 @chapter Funzionalit@`a avanzate di @command{gawk}
-@cindex @command{gawk}, funzionalit@`a avanzate
-@cindex avanzate, funzionalit@`a, di @command{gawk}
+@cindex @command{gawk} @subentry funzionalit@`a avanzate
+@cindex avanzate @subentry funzionalit@`a @subentry di @command{gawk}
 @ignore
 Contributed by: Peter Langston <pud!address@hidden>
 
@@ -29551,10 +29672,11 @@ tratta della capacit@`a di aggiungere dinamicamente 
nuove funzioni predefinite a
 
 @node Dati non decimali
 @section Consentire dati di input non decimali
-@cindex opzione @option{--non-decimal-data}
-@c @cindex funzionalit@`a avanzate, dati di input non decimali
-@cindex input, dati non decimali
-@cindex costanti, non decimali
+@cindex opzione @subentry @option{--non-decimal-data}
+@cindex @option{--non-decimal-data} (opzione)
+@c @cindex funzionalit@`a @subentry avanzate, dati di input non decimali
+@cindex input @subentry dati non decimali
+@cindex costanti @subentry non decimali
 
 Se si esegue @command{gawk} con l'opzione @option{--non-decimal-data},
 si possono avere valori in base diversa da dieci nei dati di input:
@@ -29593,9 +29715,10 @@ e poich@'e l'uso di questa funzionalit@`a pu@`o 
portare a risultati inattesi, il
 comportamento di default @`e quello lasciarla disabilitata.  Se si vuole, la si
 deve richiedere esplicitamente.
 
-@cindex programmazione, convenzioni di, opzione @code{--non-decimal-data}
-@cindex @option{--non-decimal-data}, opzione, funzione @code{strtonum()} e
-@cindex @code{strtonum()}, funzione (@command{gawk}), opzione 
@code{--non-decimal-data} e
+@cindex programmazione @subentry convenzioni di @subentry opzione 
@code{--non-decimal-data}
+@cindex @option{--non-decimal-data} (opzione) @subentry funzione 
@code{strtonum()} e
+@cindex opzione @subentry @option{--non-decimal-data} @subentry funzione 
@code{strtonum()} e
+@cindex @code{strtonum()} (funzione @command{gawk}) @subentry opzione 
@code{--non-decimal-data} e
 @quotation ATTENZIONE
 @emph{L'uso di questa opzione non @`e consigliata.}
 Pu@`o provocare errori molto seri eseguendo vecchi programmi.
@@ -29897,6 +30020,7 @@ produzione dovrebbe usare la funzione @code{isarray()}
 (@pxref{Funzioni per i tipi})
 per controllare ci@`o, e scegliere un ordinamento preciso per i sottovettori.
 
+@cindex modalit@`a POSIX 
 Tutti gli ordinamenti basati su @code{PROCINFO["sorted_in"]}
 sono disabilitati in modalit@`a POSIX,
 perch@'e il vettore @code{PROCINFO} in questo caso non @`e speciale.
@@ -29913,15 +30037,20 @@ ordinato di vettori non @`e il default.
 @node Funzioni di ordinamento di vettori
 @subsection Ordinare valori e indici di un vettore con @command{gawk}
 
-@cindex vettori, ordinamento dei
+@cindex vettori @subentry ordinamento @subentry @code{asort()} (funzione 
@command{gawk})
+@cindex vettori @subentry ordinamento @subentry @code{asorti()} (funzione 
@command{gawk})
 @cindexgawkfunc{asort}
-@cindex @code{asort()}, funzione (@command{gawk}), ordinamento di vettori
-@cindex funzione @code{asort()} (@command{gawk}), ordinamento di vettori
+@cindex @code{asort()} (funzione @command{gawk}) @subentry ordinamento di 
vettori
+@cindex funzione @subentry @code{asort()} (@command{gawk}) @subentry 
ordinamento di vettori
+@cindex @code{asort()} (funzione @command{gawk}) @subentry effetti collaterali
+@cindex funzione @subentry @code{asort()} (@command{gawk}) @subentry effetti 
collaterali
 @cindexgawkfunc{asorti}
-@cindex @code{asorti()}, funzione (@command{gawk}), ordinamento di vettori
-@cindex funzione @code{asorti()} (@command{gawk}), ordinamento di vettori
-@cindex @code{sort()}, funzione, ordinamento di vettori
-@cindex funzione @code{sort()}, ordinamento di vettori
+@cindex @code{asorti()} (funzione @command{gawk}) @subentry ordinamento di 
vettori
+@cindex funzione @subentry @code{asorti()} (@command{gawk}) @subentry 
ordinamento di vettori
+@cindex @code{asorti()} (funzione @command{gawk}) @subentry effetti collaterali
+@cindex funzione @subentry @code{asorti()} (@command{gawk}) @subentry effetti 
collaterali
+@cindex @code{sort()} (funzione) @subentry ordinamento di vettori
+@cindex funzione @subentry @code{sort()} @subentry ordinamento di vettori
 Nella maggior parte delle implementazioni di @command{awk}, ordinare un vettore
 richiede una funzione @code{sort()}.  Questo pu@`o essere istruttivo per 
provare
 diversi algoritmi di ordinamento, ma normalmente non @`e questo lo scopo del
@@ -29945,8 +30074,10 @@ via.  Il confronto di default @`e basato sul tipo di 
elementi
 Tutti i valori numerici vengono prima dei valori di stringa,
 che a loro volta vengono prima di tutti i sottovettori.
 
-@cindex effetti collaterali, funzione @code{asort()}
-@cindex funzione @code{asort()}, effetti collaterali
+@cindex effetti collaterali @subentry funzione @subentry @code{asort()}
+@cindex funzione @subentry @code{asort()} @subentry effetti collaterali
+@cindex effetti collaterali @subentry funzione @subentry @code{asorti()}
+@cindex funzione @subentry @code{asorti()} @subentry effetti collaterali
 Un effetto collaterale rilevante nel chiamare @code{asort()} @`e che
 @emph{gli indici originali del vettore vengono persi irreparabilmente}.
 Poich@'e questo non sempre @`e opportuno, @code{asort()} accetta un
@@ -30006,7 +30137,7 @@ loro ordine finale e li usa per riempire il vettore 
risultato, mentre
 @code{asorti()} prende gli @emph{indici} nel loro ordine finale e li usa per
 riempire il vettore risultato.
 
-@cindex conteggio riferimenti, ordinamento vettori
+@cindex conteggio riferimenti @subentry ordinamento vettori
 @quotation NOTA
 Copiare indici ed elementi non @`e dispendioso in termini di memoria.
 Internamente, @command{gawk} mantiene un @dfn{conteggio dei riferimenti} ai
@@ -30017,10 +30148,10 @@ valori che esiste in memoria.
 @end quotation
 
 @c Document It And Call It A Feature. Sigh.
-@cindex @command{gawk}, variabile @code{IGNORECASE} in
-@cindex vettori, ordinamento, variabile @code{IGNORECASE} e
-@cindex @code{IGNORECASE}, variabile, funzioni di ordinamento dei vettori e
-@cindex variabile @code{IGNORECASE}, funzioni di ordinamento dei vettori e
+@cindex @command{gawk} @subentry variabile @subentry @code{IGNORECASE} in
+@cindex vettori @subentry ordinamento @subentry variabile @code{IGNORECASE} e
+@cindex @code{IGNORECASE} (variabile) @subentry funzioni di ordinamento dei 
vettori e
+@cindex variabile @subentry @code{IGNORECASE} @subentry funzioni di 
ordinamento dei vettori e
 Poich@'e @code{IGNORECASE} influenza i confronti tra stringhe, il valore di
 @code{IGNORECASE} influisce anche sull'ordinamento sia con @code{asort()} che
 con @code{asorti()}.
@@ -30093,7 +30224,7 @@ $ @kbd{gawk -f confronta_in_minuscolo.awk}
 @c 8/2014. Neither Mike nor BWK saw this as relevant. Commenting it out.
 @ignore
 @cindex Brennan, Michael
-@cindex programmers, attractiveness of
+@cindex programmers @subentry attractiveness of
 @smallexample
 @c Path: 
cssun.mathcs.emory.edu!gatech!newsxfer3.itd.umich.edu!news-peer.sprintlink.net!news-sea-19.sprintlink.net!news-in-west.sprintlink.net!news.sprintlink.net!Sprint!204.94.52.5!news.whidbey.com!brennan
 From: brennan@@whidbey.com (Mike Brennan)
@@ -30123,8 +30254,8 @@ Mike Brennan
 @end smallexample
 @end ignore
 
-@cindex funzionalit@`a avanzate, processi@comma{} comunicare con
-@cindex processi, comunicazioni bidirezionali con
+@cindex funzionalit@`a @subentry avanzate @subentry processi, comunicare con
+@cindex processi @subentry comunicazioni bidirezionali con
 Spesso @`e utile poter
 inviare dati a un programma separato che
 li elabori e in seguito leggere il risultato.  Questo pu@`o essere sempre
@@ -30154,11 +30285,11 @@ generare @value{FNS} unici. Questo @`e un punto 
valido; tuttavia, i file
 temporanei rimangono pi@`u difficili da usare delle @dfn{pipe} bidirezionali.} 
@c 8/2014
 
 @cindex coprocessi
-@cindex input/output bidirezionale
-@cindex @code{|} (barra verticale), operatore @code{|&} (I/O)
-@cindex barra verticale (@code{|}), operatore @code{|&} (I/O)
-@cindex @command{csh}, comando, operatore @code{|&}, confronto con
-@cindex comando @command{csh}, operatore @code{|&}, confronto con
+@cindex input/output @subentry bidirezionale
+@cindex @code{|} (barra verticale) @subentry operatore @code{|&} (I/O)
+@cindex barra verticale (@code{|}) @subentry operatore @code{|&} (I/O)
+@cindex @command{csh} (comando di utilit@`a) @subentry operatore @code{|&}, 
confronto con
+@cindex comando @subentry @command{csh} @subentry operatore @code{|&}, 
confronto con
 Comunque, con @command{gawk}, @`e possibile aprire una @dfn{pipe}
 @emph{bidirezionale}
 verso un altro processo.  Il secondo processo @`e chiamato @dfn{coprocesso},
@@ -30197,10 +30328,10 @@ figlio separatamente.
 
 @cindex stalli
 @cindex abbracci mortali
-@cindex @dfn{deadlocks}, vedi stalli
-@cindex bufferizzazione, dell'input/output
-@cindex input/output, bufferizzazione
-@cindex @code{getline}, comando, stalli e
+@cindex @dfn{deadlocks} @subentry vedi stalli
+@cindex bufferizzazione @subentry dell'input/output
+@cindex input/output @subentry bufferizzazione
+@cindex @code{getline} (comando) @subentry stalli e
 @item
 La permanenza in memoria (bufferizzazione) dell'I/O del sottoprocesso potrebbe
 essere un problema.  @command{gawk} automaticamente scrive su disco tutto
@@ -30213,8 +30344,8 @@ processo rimane in attesa
 che l'altro processo faccia qualcosa.
 @end itemize
 
-@cindex @code{close()}, funzione, @dfn{pipe} bidirezionali e
-@cindex funzione @code{close()}, @dfn{pipe} bidirezionali e
+@cindex @code{close()} (funzione) @subentry @dfn{pipe} bidirezionali e
+@cindex funzione @subentry @code{close()} @subentry @dfn{pipe} bidirezionali e
 @`E possibile chiudere una @dfn{pipe} bidirezionale con un coprocesso solo in 
una
 direzione, fornendo un secondo argomento, @code{"to"} o @code{"from"}, alla
 funzione @code{close()} (@pxref{Chiusura file e @dfn{pipe}}).
@@ -30222,8 +30353,8 @@ Queste stringhe dicono a @command{gawk} di chiudere la 
@dfn{pipe}, rispettivamen
 nella direzione che invia i dati al coprocesso e nella direzione che legge da
 esso.
 
-@cindex @command{sort}, programma di utilit@`a, coprocessi e
-@cindex programma di utilit@`a @command{sort}, coprocessi e
+@cindex @command{sort} (programma di utilit@`a) @subentry coprocessi e
+@cindex programma di utilit@`a @subentry @command{sort} @subentry coprocessi e
 Questo @`e particolarmente necessario per usare il programma di utilit@`a
 di sistema @command{sort} come parte di un coprocesso;
 @command{sort} deve leggere @emph{tutti} i dati di input
@@ -30259,6 +30390,7 @@ un'indicazione di fine-file.  Questo fa in modo che 
@command{sort} ordini i
 dati e scriva i dati ordinati nel programma @command{gawk}.  Una volta che
 tutti i dati sono stati letti, @command{gawk} termina il coprocesso ed esce.
 
+@cindex ASCII
 Come nota a margine, l'assegnamento @samp{LC_ALL=C} nel comando @command{sort}
 assicura che @command{sort} usi l'ordinamento tradizionale di Unix (ASCII).
 Ci@`o non @`e strettamente necessario in questo caso, ma @`e bene sapere come 
farlo.
@@ -30285,9 +30417,9 @@ o @code{getline}.
 @xref{Continuazione dopo errori} per ulteriori informazioni.
 @end quotation
 
-@cindex @command{gawk}, vettore @code{PROCINFO} in
-@cindex @code{PROCINFO}, vettore, comunicazioni attraverso le @dfn{pty} e
-@cindex vettore @code{PROCINFO}, comunicazioni attraverso le @dfn{pty} e
+@cindex @command{gawk} @subentry vettore @subentry @code{PROCINFO} in
+@cindex @code{PROCINFO} (vettore) @subentry comunicazioni attraverso le 
@dfn{pty} e
+@cindex vettore @subentry @code{PROCINFO} @subentry comunicazioni attraverso 
le @dfn{pty} e
 Per le comunicazioni bidirezionali si possono anche usare delle pseudo 
@dfn{tty}
 (@dfn{pty}) al posto delle @dfn{pipe}, se il sistema in uso le prevede.
 Questo vien fatto, a seconda del comando da usare, impostando un elemento
@@ -30382,17 +30514,17 @@ E ora, magicamente, funziona!
 
 @node Reti TCP/IP
 @section Usare @command{gawk} per la programmazione di rete
-@cindex funzionalit@`a avanzate, programmazione di rete
-@cindex avanzate, funzionalit@`a, programmazione di rete
-@cindex reti, programmazione di
+@cindex funzionalit@`a @subentry avanzate @subentry programmazione di rete
+@cindex avanzate @subentry funzionalit@`a @subentry programmazione di rete
+@cindex reti @subentry programmazione di
 @cindex TCP/IP
 @cindex @code{/inet/@dots{}}, file speciali (in @command{gawk})
-@cindex file speciali @code{/inet/@dots{}} (in @command{gawk})
+@cindex file @subentry speciali @subentry @code{/inet/@dots{}} (in 
@command{gawk})
 @cindex @code{/inet4/@dots{}}, file speciali (in @command{gawk})
-@cindex file speciali @code{/inet4/@dots{}} (in @command{gawk})
+@cindex file @subentry speciali @subentry @code{/inet4/@dots{}} (in 
@command{gawk})
 @cindex @code{/inet6/@dots{}}, file speciali (in @command{gawk})
-@cindex file speciali @code{/inet6/@dots{}} (in @command{gawk})
-@cindex @code{EMRED}
+@cindex file @subentry speciali @subentry @code{/inet6/@dots{}} (in 
@command{gawk})
+@cindex @code{EMRED} (codice di errore di fantasia)
 @ifnotdocbook
 @quotation
 @code{EMRED}:@*
@@ -30451,8 +30583,8 @@ Il protocollo da usare sull'IP.  Questo dev'essere o 
@samp{tcp} o
 TCP dovrebbe venir usato per la maggior parte delle applicazioni.
 
 @item porta-locale
-@cindex @code{getaddrinfo()}, funzione (libreria C)
-@cindex funzione @code{getaddrinfo()} (libreria C)
+@cindex @code{getaddrinfo()} @subentry funzione di libreria C
+@cindex funzione di libreria C @subentry @code{getaddrinfo()}
 Il numero di porta TCP o UDP da usare.  Si usa un numero di porta di valore
 @samp{0} quando si vuole che sia il sistema a scegliere una porta.
 Questo @`e quel che si dovrebbe fare quando si scrive un'applicazione
@@ -30471,9 +30603,9 @@ Anche in questo caso, si usi @samp{0} se non ci sono 
preferenze,
 o alternativamente, un nome di servizio comunemente noto.
 @end table
 
-@cindex @command{gawk}, variabile @code{ERRNO} in
-@cindex @code{ERRNO}, variabile
-@cindex variabile @code{ERRNO}
+@cindex @command{gawk} @subentry variabile @subentry @code{ERRNO} in
+@cindex @code{ERRNO} (variabile)
+@cindex variabile @subentry @code{ERRNO}
 @quotation NOTA
 Un insuccesso nell'apertura di un socket bidirezionale dar@`a luogo alla
 segnalazione di un errore non fatale al codice chiamante.
@@ -30520,10 +30652,10 @@ per accedere ai servizi disponibili su Secure Socket 
Layer
 
 @node Profilare
 @section Profilare i propri programmi @command{awk}
-@cindex @command{awk}, programmi, profilare
+@cindex programmi @command{awk} @subentry profilare
 @cindex profilare programmi @command{awk}
-@cindex @code{awkprof.out}, file
-@cindex file @code{awkprof.out}
+@cindex @code{awkprof.out} @subentry file
+@cindex file @subentry @file{awkprof.out}
 
 @`E possibile tener traccia dell'esecuzione dei propri programmi @command{awk}.
 Ci@`o si pu@`o fare passando l'opzione @option{--profile} a @command{gawk}.
@@ -30531,8 +30663,8 @@ Al termine dell'esecuzione, @command{gawk} crea un 
profilo del programma in un
 file chiamato @file{awkprof.out}.  A causa dell'attivit@`a di profilazione
 l'esecuzione del programma @`e pi@`u lenta fino al 45% rispetto al normale.
 
-@cindex @option{--profile}, opzione
-@cindex opzione @option{--profile}
+@cindex @option{--profile} (opzione)
+@cindex opzione @subentry @option{--profile}
 Come mostrato nel seguente esempio,
 l'opzione @option{--profile} pu@`o essere usata per cambiare il nome del file
 su cui @command{gawk} scriver@`a il profilo:
@@ -30593,10 +30725,10 @@ del profilatore di @command{gawk} su questo programma 
e sui dati (quest'esempio
 dimostra anche che i programmatori di @command{awk} a volte si alzano molto
 presto al mattino per lavorare):
 
-@cindex @code{BEGIN}, criterio di ricerca, profilazione e
-@cindex criterio di ricerca @code{BEGIN}, profilazione e
-@cindex @code{END}, criterio di ricerca, profilazione e
-@cindex criterio di ricerca @code{END}, profilazione e
+@cindex @code{BEGIN} (regola) @subentry profilazione e
+@cindex regola @subentry @code{BEGIN} @subentry profilazione e
+@cindex @code{END} (regola) @subentry profilazione e
+@cindex regola @subentry @code{END} @subentry profilazione e
 @example
     # profilo gawk, creato Mon Sep 29 05:16:21 2014
 
@@ -30661,7 +30793,7 @@ Le regole @code{BEGIN} ed @code{END} multiple 
conservano le loro
 distinte identit@`a, cos@`{@dotless{i}} come le regole @code{BEGINFILE} ed 
@code{ENDFILE}
 multiple.
 
-@cindex criteri di ricerca, conteggi, in un profilo
+@cindex criteri di ricerca @subentry conteggi in un profilo
 @item
 Le regole criterio di ricerca--azione hanno due conteggi.
 Il primo conteggio, a sinistra della regola, mostra quante volte
@@ -30681,7 +30813,7 @@ c'@`e un conteggio che mostra quante volte la 
condizione @`e stata trovata vera.
 Il conteggio per @code{else} indica
 quante volte la verifica non ha avuto successo.
 
-@cindex cicli, conteggi per l'intestazione, in un profilo
+@cindex cicli @subentry conteggi per l'intestazione @subentry in un profilo
 @item
 Il conteggio per un ciclo (come @code{for}
 o @code{while}) mostra quante volte il test del ciclo @`e stato eseguito.
@@ -30689,8 +30821,7 @@ o @code{while}) mostra quante volte il test del ciclo 
@`e stato eseguito.
 istruzione in una regola per determinare quante volte la regola @`e stata
 eseguita.  Se la prima istruzione @`e un ciclo, il conteggio @`e ingannevole.)
 
-@cindex funzioni definite dall'utente, conteggi@comma{} in un profilo
-@cindex definite dall'utente, funzioni, conteggi@comma{} in un profilo
+@cindex funzione definita dall'utente @subentry conteggi @subentry in un 
profilo
 @item
 Per le funzioni definite dall'utente, il conteggio vicino alla parola chiave
 @code{function} indica quante volte la funzione @`e stata chiamata.
@@ -30698,14 +30829,14 @@ I conteggi vicino alle istruzioni nel corpo mostrano 
quante volte
 quelle istruzioni sono state eseguite.
 
 @cindex @code{@{@}} (parentesi graffe)
-@cindex parentesi graffe (@code{@{@}})
+@cindex parentesi @subentry graffe (@code{@{@}})
 @item
 L'impaginazione usa lo stile ``K&R'' con le tabulazioni.
 Le parentesi graffe sono usate dappertutto, anche dove il corpo di un
 @code{if}, di un @code{else} o di un ciclo @`e formato da un'unica istruzione.
 
-@cindex @code{()} (parentesi), in un profilo
-@cindex parentesi (@code{()}), in un profilo
+@cindex @code{()} (parentesi) @subentry in un profilo
+@cindex parentesi @subentry (@code{()}) @subentry in un profilo
 @item
 Le parentesi vengono usate solo dov'@`e necessario, come si rileva dalla
 struttura del programma e dalle regole di precedenza.
@@ -30761,9 +30892,10 @@ che @`e corretto, ma probabilmente inatteso.
 (Se un programma usa sia @samp{print $0} che un semplice
 @samp{print}, tale differenza @`e mantenuta.)
 
-@cindex profilare programmi @command{awk}, dinamicamente
-@cindex @command{gawk}, programma, profilazione dinamica
-@cindex profilazione dinamica
+@cindex profilare programmi @command{awk} @subentry dinamicamente
+@cindex @command{gawk} @subentry programma @subentry profilazione dinamica
+@cindex @command{gawk} @subentry profilare programmi
+@cindex profilazione @subentry dinamica
 Oltre a creare profili una volta completato il programma,
 @command{gawk} pu@`o generare un profilo mentre @`e in esecuzione.
 Questo @`e utile se il proprio programma @command{awk} entra in un ciclo
@@ -30776,11 +30908,11 @@ $ @kbd{gawk --profile -f mioprog &}
 [1] 13992
 @end example
 
-@cindex @command{kill}, comando@comma{} profilazione dinamica e
-@cindex comando @command{kill}@comma{} profilazione dinamica e
-@cindex @code{USR1}, segnale, per profilazione dinamica
-@cindex @code{SIGUSR1}, segnale, per profilazione dinamica
-@cindex segnali @code{USR1}/@code{SIGUSR1}, per profilazione
+@cindex @command{kill} (comando) @subentry profilazione dinamica e
+@cindex comando @subentry @command{kill} @subentry profilazione dinamica e
+@cindex @code{USR1} (segnale) @subentry per profilazione dinamica
+@cindex @code{SIGUSR1} (segnale) (per profilazione dinamica)
+@cindex segnali @subentry @code{USR1}/@code{SIGUSR1} (per profilazione)
 @noindent
 La shell stampa un numero di job e il numero di ID del relativo processo;
 in questo caso, 13992.  Si usi il comando @command{kill} per inviare il
@@ -30811,18 +30943,18 @@ Si pu@`o inviare a @command{gawk} il segnale 
@code{USR1} quante volte si vuole.
 Ogni volta, il profilo e la traccia della chiamata alla funzione vengono
 aggiunte in fondo al file di profilo creato.
 
-@cindex @code{HUP}, segnale, per profilazione dinamica
-@cindex @code{SIGHUP}, segnale, per profilazione dinamica
-@cindex segnali @code{HUP}/@code{SIGHUP}, per profilazione
+@cindex @code{HUP} (segnale) @subentry per profilazione dinamica
+@cindex @code{SIGHUP} (segnale) (per profilazione dinamica)
+@cindex segnali @subentry @code{HUP}/@code{SIGHUP} (per profilazione)
 Se si usa il segnale @code{HUP} invece del segnale @code{USR1}, @command{gawk}
 genera il profilo e la traccia della chiamata alla funzione ed esce.
 
-@cindex @code{INT}, segnale (MS-Windows)
-@cindex @code{SIGINT}, segnale (MS-Windows)
-@cindex segnali @code{INT}/@code{SIGINT} (MS-Windows)
-@cindex @code{QUIT}, segnale (MS-Windows)
-@cindex @code{SIGQUIT}, segnale (MS-Windows)
-@cindex segnali @code{QUIT}/@code{SIGQUIT} (MS-Windows)
+@cindex @code{INT} (segnale) (MS-Windows)
+@cindex @code{SIGINT} (segnale) (MS-Windows)
+@cindex segnali @subentry @code{INT}/@code{SIGINT} (MS-Windows)
+@cindex @code{QUIT} (segnale) (MS-Windows)
+@cindex @code{SIGQUIT} (segnale) (MS-Windows)
+@cindex segnali @subentry @code{QUIT}/@code{SIGQUIT} (MS-Windows)
 Quando @command{gawk} viene eseguito sui sistemi MS-Windows, usa i segnali
 @code{INT} e @code{QUIT} per generare il profilo, e nel
 caso del segnale @code{INT}, @command{gawk} esce.  Questo perch@'e
@@ -30842,8 +30974,8 @@ Una volta, l'opzione @option{--pretty-print} eseguiva 
anche il programma.
 Ora non pi@`u.
 @end quotation
 
-@cindex profilazione, differenza rispetto alla stampa elegante
-@cindex stampa elegante, differenza rispetto alla profilazione
+@cindex profilazione @subentry differenza rispetto alla stampa elegante
+@cindex stampa elegante @subentry differenza rispetto alla profilazione
 C'@`e una differenza significativa tra l'output creato durante la profilazione,
 e quello creato durante la stampa elegante.  L'output della stampa elegante
 preserva i commenti originali che erano nel programma, anche se la loro
@@ -30936,9 +31068,9 @@ ci@`o avrebbe avuto come risultato un incremento delle 
vendite.
 Per questo motivo, l'internazionalizzazione e la localizzazione
 di programmi e sistemi software @`e divenuta una pratica comune.
 
-@cindex internazionalizzazione, localizzazione
-@cindex @command{gawk}, internazionalizzazione e, si veda 
internazionalizzazione
-@cindex internazionalizzazione, localizzazione, @command{gawk} e
+@cindex internazionalizzazione @subentry localizzazione
+@cindex @command{gawk} @subentry internazionalizzazione e 
@seeentry{internazionalizzazione}
+@cindex internazionalizzazione @subentry localizzazione @subentry 
@command{gawk} e
 Per molti anni la possibilit@`a di fornire l'internazionalizzazione
 era sostanzialmente limitata ai programmi scritti in C e C++.
 Questo @value{CHAPTER} descrive la libreria @dfn{ad hoc} utilizzata da
@@ -30964,8 +31096,9 @@ non sono pi@`u obbligati a scrivere in C o C++ quando 
l'internazionalizzazione
 @node I18N e L10N
 @section Internazionalizzazione e localizzazione
 
-@cindex internazionalizzazione di programmi @command{awk}
-@cindex localizzazione, si veda internazionalizzazione@comma{} localizzazione
+@cindex programmi @command{awk} @subentry internazionalizzare
+@cindex internazionalizzazione @subentry di programmi @command{awk}
+@cindex localizzazione @seealso{internazionalizzazione}
 @cindex localizzazione
 @dfn{Internazionalizzazione} significa scrivere (o modificare) un programma
 una volta sola,
@@ -30982,8 +31115,8 @@ relative al modo di leggere e di stampare dati di tipo 
numerico o valutario.
 @node Utilizzare @command{gettext}
 @section Il comando GNU @command{gettext}
 
-@cindex internazionalizzare un programma
-@cindex @command{gettext}, libreria
+@cindex internazionalizzazione @subentry di programmi @command{awk}
+@cindex @command{gettext} @subentry libreria
 @cindex libreria @command{gettext}
 @command{gawk} usa il comando GNU @command{gettext} per rendere disponibili
 le proprie funzionalit@`a di internazionalizzazione.
@@ -30996,7 +31129,7 @@ non supporta il comando GNU @command{gettext}.
 Per questo motivo, queste funzionalit@`a non sono disponibili nel caso
 si stia lavorando con uno di questi sistemi operativi. Siamo spiacenti.}
 
-@cindex portabilit@`a, libreria @command{gettext} e
+@cindex portabilit@`a @subentry libreria @command{gettext} e
 Quando si usa il comando GNU @command{gettext}, ogni applicazione ha il
 proprio @dfn{dominio di testo}.  Questo @`e un nome unico come,
 p.es., @samp{kpilot} o @samp{gawk},
@@ -31021,17 +31154,17 @@ necessita di traduzione.
 (P.es., l'opzione di @command{gawk} @option{--profile}
 dovrebbe restare immutata, a prescindere dalla lingua locale).
 
-@cindex @code{textdomain()}, funzione (libreria C)
-@cindex funzione @code{textdomain()} (libreria C)
+@cindex @code{textdomain()} @subentry funzione di libreria C
+@cindex funzione di libreria C @subentry @code{textdomain()}
 @item
 Il programmatore indica il dominio di testo dell'applicazione
 (@command{"guide"}) alla libreria @command{gettext},
 chiamando la funzione @code{textdomain()}.
 
-@cindex @code{.pot}, file
-@cindex file @code{.pot}
-@cindex @dfn{portable object template} (.pot), file
-@cindex file, @dfn{portable object template} (.pot)
+@cindex @file{.pot} (file)
+@cindex file @subentry @file{.pot}
+@cindex @dfn{portable object template} (@file{.pot}) (file)
+@cindex file @subentry @dfn{portable object template} (@file{.pot})
 @item
 I messaggi dell'applicazione che vanno tradotti sono estratti dal codice
 sorgente e messi in un file di tipo
@@ -31045,24 +31178,24 @@ tradotta @`e una stringa nulla).
 Il messaggio originale (normalmente in inglese) @`e utilizzato come chiave
 di riferimento per le traduzioni.
 
-@cindex @code{.po}, file
-@cindex file @code{.po}
-@cindex @dfn{portable object} file (.po)
-@cindex file, @dfn{portable object} (.po)
+@cindex @file{.po} (file)
+@cindex file @subentry @file{.po}
+@cindex @dfn{portable object} file (@file{.po})
+@cindex file @subentry @dfn{portable object} (@file{.po})
 @item
 Per ogni lingua per cui sia disponibile un traduttore, il file
 @file{guide.pot} @`e copiato in un file di tipo
 @dfn{portable object}
 [oggetto portabile]
-(dal suffisso @code{.po})
+(dal suffisso @file{.po})
 e le traduzioni sono effettuate su quel file,
 che viene distribuito con l'applicazione.
 Per esempio, potrebbe esserci un file @file{it.po} per la traduzione italiana.
 
-@cindex @code{.gmo}, file
-@cindex file @code{.gmo}
-@cindex @dfn{message object} file (.mo)
-@cindex file, @dfn{message object} (.mo)
+@cindex @file{.gmo} (file)
+@cindex file @subentry @file{.gmo}
+@cindex @dfn{message object} file (@file{.mo})
+@cindex file @subentry @dfn{message object} (@file{.mo})
 @item
 Il file @file{.po} di ogni lingua @`e convertito in un formato binario,
 detto @dfn{message object} (file @file{.gmo}).
@@ -31074,17 +31207,17 @@ traduzioni quando l'applicazione viene eseguita.
 Quando @command{guide} @`e compilato e installato, i file binari contenenti le
 traduzioni sono installati in una directory standard.
 
-@cindex @code{bindtextdomain()}, funzione (libreria C)
-@cindex funzione @code{bindtextdomain()} (libreria C)
+@cindex @code{bindtextdomain()} @subentry funzione di libreria C
+@cindex funzione di libreria C @subentry @code{bindtextdomain()}
 @item
 Durante la fase di prova e sviluppo, @`e possibile chiedere a @command{gettext}
 di usare un file @file{.gmo} in una directory diversa da quella standard,
 usando la funzione @code{bindtextdomain()}.
 
-@cindex @code{.gmo}, file, specificare la directory di
-@cindex file @code{.gmo}, specificare la directory di
-@cindex @dfn{message object} file (.mo), specificare la directory di
-@cindex file, @dfn{message object} (.mo), specificare la directory di
+@cindex @file{.gmo} (file) @subentry specificare la directory di
+@cindex file @subentry @file{.gmo} @subentry specificare la directory di
+@cindex @dfn{message object} file (@file{.mo}) @subentry specificare la 
directory di
+@cindex file @subentry @dfn{message object} (@file{.mo}) @subentry specificare 
la directory di
 @item
 Quando viene eseguito, il programma @command{awk} @command{guide} cerca ogni
 stringa da tradurre facendo una chiamata a @code{gettext()}.  La stringa
@@ -31097,8 +31230,8 @@ testo diverso da quello proprio dell'applicazione, 
senza dover altalenare fra
 questo secondo dominio e quello dell'applicazione.
 @end enumerate
 
-@cindex @code{gettext()}, funzione (libreria C)
-@cindex funzione @code{gettext()} (libreria C)
+@cindex @code{gettext()} @subentry funzione di libreria C
+@cindex funzione di libreria C @subentry @code{gettext()}
 In C (o C++), la marcatura della stringa la ricerca dinamica
 della traduzione si fanno inserendo ogni stringa da tradurre in una chiamata
 a @code{gettext()}:
@@ -31110,8 +31243,8 @@ printf("%s", gettext("Don't Panic!\n"));
 Gli strumenti software che estraggono messaggi dal codice sorgente
 individuano tutte le stringhe racchiuse nelle chiamate a @code{gettext()}.
 
-@cindex @code{_} (trattino basso), macro C
-@cindex trattino basso (@code{_}), macro C
+@cindex @code{_} (trattino basso) @subentry macro C
+@cindex trattino basso (@code{_}) @subentry macro C
 Gli sviluppatori del comando GNU @command{gettext}, riconoscendo che
 continuare a immettere @samp{gettext(@dots{})} @`e sia faticoso che poco
 elegante da vedere, usano la macro @samp{_} (un trattino basso) per
@@ -31125,10 +31258,11 @@ facilitare la cosa:
 printf("%s", _("Don't Panic!\n"));
 @end example
 
-@cindex internazionalizzazione, localizzazione, categorie di localizzazione
-@cindex @command{gettext}, libreria, categorie di localizzazione
-@cindex libreria @command{gettext}, categorie di localizzazione
-@cindex categorie di localizzazione
+@cindex internazionalizzazione @subentry localizzazione @subentry categorie di 
localizzazione
+@cindex @command{gettext} @subentry libreria @subentry categorie di 
localizzazione
+@cindex libreria @command{gettext} @subentry categorie di localizzazione
+@cindex categoria di localizzazione
+@cindex localizzazione @subentry categorie di
 @noindent
 Questo permette di ridurre la digitazione extra a solo tre caratteri per
 ogni stringa da tradurre e inoltre migliora di molto la leggibit@`a.
@@ -31138,24 +31272,24 @@ legate a una particolare localizzazione.
 Le categorie di localizzazione note a @command{gettext} sono:
 
 @table @code
-@cindex @code{LC_MESSAGES}, categoria di localizzazione
-@cindex categoria di localizzazione @code{LC_MESSAGES}
+@cindex @code{LC_MESSAGES} (variabile d'ambiente) @subentry categoria di 
localizzazione
+@cindex categoria di localizzazione @subentry @code{LC_MESSAGES} (variabile 
d'ambiente)
 @item LC_MESSAGES
 Testo dei messaggi.  Questa @`e la categoria di default usata all'interno di
 @command{gettext}, ma @`e possibile specificarne esplicitamente una differente,
 se necessario.  (Questo non @`e quasi mai necessario.)
 
 @cindex ordinare caratteri in lingue differenti
-@cindex @code{LC_COLLATE}, categoria di localizzazione
-@cindex categoria di localizzazione @code{LC_COLLATE}
+@cindex @code{LC_COLLATE} (variabile d'ambiente) @subentry categoria di 
localizzazione
+@cindex categoria di localizzazione @subentry @code{LC_COLLATE} (variabile 
d'ambiente)
 @item LC_COLLATE
 Informazioni sull'ordinamento alfabetico (cio@`e, come caratteri diversi e/o
 gruppi di carattere sono ordinati in un dato linguaggio).
 @c ad esempio i vari caratteri accentati in italiano, vanno ordinati
 @c insieme alla loro lettera "principale" (e @`e @'e).
 
-@cindex @code{LC_CTYPE}, categoria di localizzazione
-@cindex categoria di localizzazione @code{LC_CTYPE}
+@cindex @code{LC_CTYPE} (variabile d'ambiente) @subentry categoria di 
localizzazione
+@cindex categoria di localizzazione @subentry @code{LC_CTYPE} (variabile 
d'ambiente)
 @item LC_CTYPE
 Informazioni sui singoli caratteri (alfabetico, numerico, maiuscolo
 o minuscolo, etc.), come pure sulla codifica dei caratteri.
@@ -31173,19 +31307,21 @@ definite nello standard POSIX, nelle espressioni 
regolari,
 come p. es. @code{/[[:alnum:]]/}
 (@pxref{Espressioni tra parentesi quadre}).
 
-@cindex informazioni di tipo monetario, localizzazione
-@cindex monete, simboli di, nella localizzazione
-@cindex simboli di monete, nella localizzazione
-@cindex monete, rappresentazioni di, nella localizzazione
-@cindex rappresentazioni di monete, nella localizzazione
-@cindex @code{LC_MONETARY}, categoria di localizzazione
-@cindex categoria di localizzazione @code{LC_MONETARY}
+@cindex informazioni di tipo monetario @subentry localizzazione
+@cindex monete @subentry simboli di (nella localizzazione)
+@cindex simboli di monete (nella localizzazione)
+@cindex monete @subentry rappresentazioni di (nella localizzazione)
+@cindex internazionalizzazione @subentry localizzazione @subentry informazioni 
di tipo monetario
+@cindex internazionalizzazione @subentry localizzazione @subentry simboli di 
monete
+@cindex rappresentazioni di monete (nella localizzazione)
+@cindex @code{LC_MONETARY} (variabile d'ambiente) @subentry categoria di 
localizzazione
+@cindex categoria di localizzazione @subentry @code{LC_MONETARY} (variabile 
d'ambiente)
 @item LC_MONETARY
 Le informazioni di tipo monetario, quali il simbolo della moneta, e se
 il simbolo va prima o dopo il valore numerico.
 
-@cindex @code{LC_NUMERIC}, categoria di localizzazione
-@cindex categoria di localizzazione @code{LC_NUMERIC}
+@cindex @code{LC_NUMERIC} (variabile d'ambiente) @subentry categoria di 
localizzazione
+@cindex categoria di localizzazione @subentry @code{LC_NUMERIC} (variabile 
d'ambiente)
 @item LC_NUMERIC
 Informazioni di tipo numerico, quali il carattere da usare per separare le
 cifre decimali e quello per separare le migliaia.@footnote{Gli americani usano
@@ -31193,26 +31329,26 @@ una virgola ogni tre cifre decimali, e un punto per 
separare la parte decimale
 di un numero, mentre molti europei (fra cui gli italiani) fanno esattamente
 l'opposto: 1,234.56 invece che 1.234,56.}
 
-@cindex tempo, localizzazione e
-@cindex date, informazioni relative alla localizzazione
-@cindex @code{LC_TIME}, categoria di localizzazione
-@cindex categoria di localizzazione @code{LC_TIME}
+@cindex tempo @subentry localizzazione e
+@cindex date @subentry informazioni relative alla localizzazione
+@cindex @code{LC_TIME} (variabile d'ambiente) @subentry categoria di 
localizzazione
+@cindex categoria di localizzazione @subentry @code{LC_TIME} (variabile 
d'ambiente)
 @item LC_TIME
 Informazioni relative alle date e alle ore,
 come l'uso di ore nel formato a 12 ore oppure a 24 ore, il mese stampato
 prima o dopo il giorno in una data, le abbreviazioni dei mesi nella lingua
 locale, e cos@`{@dotless{i}} via.
 
-@cindex @code{LC_ALL}, categoria di localizzazione
-@cindex categoria di localizzazione @code{LC_ALL}
+@cindex @code{LC_ALL} (variabile d'ambiente) @subentry categoria di 
localizzazione
+@cindex categoria di localizzazione @subentry @code{LC_ALL} (variabile 
d'ambiente)
 @item LC_ALL
 Tutte le categorie viste sopra.  (Non molto utile nel contesto del comando
 @command{gettext}.)
 @end table
 
 @quotation NOTA
-@cindex @env{LANGUAGE}, variabile d'ambiente
-@cindex variabile d'ambiente @env{LANGUAGE}
+@cindex @env{LANGUAGE} (variabile d'ambiente)
+@cindex variabili d'ambiente @subentry @env{LANGUAGE}
 Come descritto in @ref{Localizzazioni}, le variabili d'ambiente
 che hanno lo stesso nome delle categorie di localizzazione
 (@env{LC_CTYPE}, @env{LC_ALL}, etc.) influenzano il comportamento di
@@ -31230,6 +31366,8 @@ definita, e, in questo caso, va usato il comando 
@command{unset}
 per rimuoverla.
 @end quotation
 
+@cindex @env{GAWK_LOCALE_DIR} (variabile d'ambiente)
+@cindex variabili d'ambiente @subentry @env{GAWK_LOCALE_DIR}
 Per il test di traduzioni dei messaggi inviati da @command{gawk} stesso, si 
pu@`o
 impostare la variabile d'ambiente @env{GAWK_LOCALE_DIR}.  Si veda la
 documentazione per la funzione C @code{bindtextdomain()}, e si veda anche
@@ -31237,21 +31375,21 @@ documentazione per la funzione C 
@code{bindtextdomain()}, e si veda anche
 
 @node I18N per programmatore
 @section Internazionalizzare programmi @command{awk}
-@cindex programmi @command{awk}, internazionalizzare
-@cindex internazionalizzazione di programmi @command{awk}
+@cindex programmi @command{awk} @subentry internazionalizzare
+@cindex internazionalizzazione @subentry di programmi @command{awk}
 
 @command{gawk} prevede le seguenti variabili per l'internazionalizzazione:
 
 @table @code
-@cindex @code{TEXTDOMAIN}, variabile
-@cindex variabile @code{TEXTDOMAIN}
+@cindex @code{TEXTDOMAIN} (variabile)
+@cindex variabile @subentry @code{TEXTDOMAIN}
 @item TEXTDOMAIN
 Questa variabile indica il dominio di testo dell'applicazione.
 Per compatibilit@`a con il comando GNU @command{gettext}, il valore di default
 @`e @code{"messages"}.
 
-@cindex internazionalizzazione, localizzazione, stringhe marcate
-@cindex stringhe, marcare per localizzazione
+@cindex internazionalizzazione @subentry localizzazione @subentry stringhe 
marcate
+@cindex stringa @subentry marcata @subentry per localizzazione
 @item _"questo @`e un messaggio da tradurre"
 Costanti di tipo stringa marcate con un trattino basso iniziale
 sono candidate per essere tradotte al momento dell'esecuzione del
@@ -31306,10 +31444,10 @@ Il valore di default per @var{categoria} @`e 
@code{"LC_MESSAGES"}.
 Valgono le stesse osservazioni riguardo all'ordine degli argomenti
 fatte a proposito della funzione @code{dcgettext()}.
 
-@cindex @code{.gmo}, file, specificare la directory di
-@cindex file @code{.gmo}, specificare la directory di
-@cindex @dfn{message object} file (.mo), specificare la directory di
-@cindex file, @dfn{message object} (.mo), specificare la directory di
+@cindex @file{.gmo} (file) @subentry specificare la directory di
+@cindex file @subentry @file{.gmo} @subentry specificare la directory di
+@cindex @dfn{message object} file (@file{.mo}) @subentry specificare la 
directory di
+@cindex file @subentry @dfn{message object} (@file{.mo}) @subentry specificare 
la directory di
 @cindexgawkfunc{bindtextdomain}
 @item @code{bindtextdomain(@var{directory}} [@code{,} @var{dominio} ]@code{)}
 Cambia la directory nella quale
@@ -31328,10 +31466,10 @@ Per usare queste funzionalit@`a in un programma 
@command{awk},
 va seguita la procedura qui indicata:
 
 @enumerate
-@cindex @code{BEGIN}, criterio di ricerca, variabile @code{TEXTDOMAIN} e
-@cindex criterio di ricerca @code{BEGIN}, variabile @code{TEXTDOMAIN} e
-@cindex @code{TEXTDOMAIN}, variabile, criterio di ricerca @code{BEGIN} e
-@cindex variabile @code{TEXTDOMAIN}, criterio di ricerca @code{BEGIN} e
+@cindex @code{BEGIN} (regola) @subentry variabile @code{TEXTDOMAIN} e
+@cindex regola @subentry @code{BEGIN} @subentry variabile @code{TEXTDOMAIN} e
+@cindex @code{TEXTDOMAIN} (variabile) @subentry @code{BEGIN} (regola) e
+@cindex variabile @subentry @code{TEXTDOMAIN} @subentry @code{BEGIN} (regola) e
 @item
 Impostare la variabile @code{TEXTDOMAIN} al dominio di testo del
 programma.  @`E meglio fare ci@`o all'interno di una regola @code{BEGIN}
@@ -31346,8 +31484,8 @@ BEGIN @{
 @}
 @end example
 
-@cindex @code{_} (trattino basso), stringa traducibile
-@cindex trattino basso (@code{_}), stringa traducibile
+@cindex @code{_} (trattino basso) @subentry stringa traducibile
+@cindex trattino basso (@code{_}) @subentry stringa traducibile
 @item
 Marcare tutte le stringhe traducibili anteponendo loro un
 trattino basso (@samp{_}). Il trattino  @emph{deve} essere adiacente ai
@@ -31393,7 +31531,7 @@ printf(messaggio, numero_clienti)
 @end example
 
 
-@cindex @code{LC_MESSAGES}, categoria di localizzazione, funzione 
@code{bindtextdomain()} di (@command{gawk})
+@cindex @code{LC_MESSAGES} (variabile d'ambiente) @subentry categoria di 
localizzazione @subentry funzione @code{bindtextdomain()} di (@command{gawk})
 @item
 In fase di sviluppo, si pu@`o scegliere di tenere il file @file{.gmo}
 in una directory a parte, solo per provarlo.  Ci@`o si fa
@@ -31421,10 +31559,10 @@ e usare traduzioni nei programmi @command{awk}.
 @node I18N per traduttore
 @section Traduzione dei programmi @command{awk}
 
-@cindex @code{.po}, file
-@cindex file @code{.po}
-@cindex @dfn{portable object} file (.po)
-@cindex file, @dfn{portable object} (.po)
+@cindex @file{.po} (file)
+@cindex file @subentry @file{.po}
+@cindex @dfn{portable object} file (@file{.po})
+@cindex file @subentry @dfn{portable object} (@file{.po})
 Dopo aver marcato le stringhe che si desidera tradurre in un programma,
 queste vanno estratte per creare il file iniziale @file{.pot}.
 Durante la traduzione, @`e spesso utile modificare l'ordine nel quale
@@ -31444,17 +31582,17 @@ in fase di esecuzione.
 
 @node Estrazione di stringhe
 @subsection Estrarre stringhe marcate
-@cindex stringhe, estrazione di
-@cindex @option{--gen-pot}, opzione
-@cindex opzione @option{--gen-pot}
-@cindex opzioni sulla riga di comando, estrazione stringhe
-@cindex riga di comando, opzioni, estrazione stringhe
-@cindex stringhe marcate, estrazione di (internazionalizzazione)
-@cindex marcate, estrazione di stringhe (internazionalizzazione)
+@cindex stringa @subentry estrazione di
+@cindex @option{--gen-pot} (opzione)
+@cindex opzione @subentry @option{--gen-pot}
+@cindex opzioni @subentry sulla riga di comando @subentry estrazione stringhe
+@cindex riga di comando @subentry opzioni @subentry estrazione stringhe
+@cindex stringa @subentry marcata @subentry estrazione di 
(internazionalizzazione)
+@cindex marcate @subentry estrazione di stringhe (internazionalizzazione)
 @cindex estrazione di stringhe marcate (internazionalizzazione)
 
-@cindex @option{--gen-pot}, opzione
-@cindex opzione @option{--gen-pot}
+@cindex @option{--gen-pot} (opzione)
+@cindex opzione @subentry @option{--gen-pot}
 Una volta che il programma @command{awk} funziona, e tutte le stringhe
 sono state marcate ed @`e stato impostato (e forse fissato) il dominio di
 testo, @`e ora di preparare le traduzioni.
@@ -31465,8 +31603,8 @@ si crea il file iniziale @file{.pot}:
 gawk --gen-pot -f guide.awk > guide.pot
 @end example
 
-@cindex @code{xgettext}, programma di utilit@`a
-@cindex programma di utilit@`a @code{xgettext}
+@cindex @code{xgettext} (programma di utilit@`a)
+@cindex programma di utilit@`a @subentry @code{xgettext}
 Quando viene chiamato specificando @option{--gen-pot}, @command{gawk} non
 esegue il programma.  Il programma viene esaminato come al solito, e tutte
 le stringhe che sono state marcate per essere tradotte vengono scritte nello
@@ -31488,10 +31626,10 @@ traduzioni per il programma @command{guide}.
 @node Ordinamento di printf
 @subsection Riordinare argomenti di @code{printf}
 
-@cindex @code{printf}, istruzione, specificatori di posizione
-@cindex istruzione @code{printf}, specificatori posizionali
-@cindex posizionali, specificatori, istruzione @code{printf}
-@cindex specificatori posizionali, istruzione @code{printf}
+@cindex @code{printf} (istruzione) @subentry specificatori di posizione
+@cindex istruzione @subentry @code{printf} @subentry specificatori di posizione
+@cindex posizione @subentry specificatori di @subentry istruzione @code{printf}
+@cindex specificatori di posizione @subentry istruzione @code{printf}
 Le stringhe di formattazione per @code{printf} e @code{sprintf()}
 (@pxref{Printf})
 hanno un problema speciale con le traduzioni.
@@ -31517,13 +31655,13 @@ nella chiamata a @code{printf}.
 
 Per risolvere questo problema, gli specificatori di formato di @code{printf}
 possono avere un elemento in pi@`u, opzionale, detto @dfn{specificatore
-posizionale}.  Per esempio:
+di posizione}.  Per esempio:
 
 @example
 "%2$d @`e la lunghezza della stringa `%1$s'\n"
 @end example
 
-Qui, lo specificatore posizionale consiste in un numero intero, che indica
+Qui, lo specificatore di posizione consiste in un numero intero, che indica
 quale argomento utilizzare, seguito da un carattere @samp{$}.
 I numeri partono da uno, e la stringa di formattazione vera e propria
 @emph{non} @`e inclusa.  Quindi, nell'esempio seguente, @samp{stringa} @`e
@@ -31538,10 +31676,10 @@ $ @kbd{gawk 'BEGIN @{}
 @print{} 16 caratteri compongono "Non v\47allarmate!"
 @end example
 
-Se presenti, gli specificatori posizionali precedono, nella specifica di
+Se presenti, gli specificatori di posizione precedono, nella specifica di
 formato, i flag, la larghezza del campo e/o la precisione.
 
-Gli specificatori posizionali possono essere usati anche se si specifica una
+Gli specificatori di posizione possono essere usati anche se si specifica una
 larghezza dinamica dei campi, e della capacit@`a di precisione:
 
 @example
@@ -31554,19 +31692,19 @@ $ @kbd{gawk 'BEGIN @{}
 @end example
 
 @quotation NOTA
-Se si usa @samp{*} con uno specificatore posizionale, il carattere @samp{*}
+Se si usa @samp{*} con uno specificatore di posizione, il carattere @samp{*}
 viene per primo, seguito dal numero che indica la posizione, a sua volta
 seguito dal @samp{$}.
 Ci@`o pu@`o parere poco intuitivo.
 @end quotation
 
-@cindex istruzione @code{printf}, specificatori posizionali, frammisti a 
formati standard
-@cindex @code{printf}, istruzione, specificatori posizionali, frammisti a 
formati standard
-@cindex specificatori posizionali, istruzione @code{printf}, frammisti a 
formati standard
-@cindex formato, specificatori di, frammisti a specificatori posizionali non 
standard
-@cindex specificatori di formato, frammisti a specificatori posizionali non 
standard
+@cindex istruzione @subentry @code{printf} @subentry specificatori di 
posizione, frammisti a formati standard
+@cindex @code{printf} (istruzione) @subentry specificatori di posizione 
@subentry frammisti a formati standard
+@cindex specificatori di posizione @subentry istruzione @code{printf} 
@subentry frammisti a formati standard
+@cindex formato @subentry specificatori di posizione @subentry frammisti a 
specificatori non standard
+@cindex specificatori di formato @subentry frammisti a specificatori di 
posizione non standard
 @command{gawk} non consente di mischiare specificatori di formato standard
-con altri contenenti degli specificatori posizionali in una stessa stringa di
+con altri contenenti degli specificatori di posizione in una stessa stringa di
 formato:
 
 @example
@@ -31585,7 +31723,7 @@ Rimane sempre una pessima idea quella di tentare di 
mischiare i formati,
 anche se @command{gawk} non riesce ad accorgersene.
 @end quotation
 
-Sebbene gli specificatori posizionali possano essere usati direttamente nei
+Sebbene gli specificatori di posizione possano essere usati direttamente nei
 programmi @command{awk}, il motivo per cui sono stati introdotti @`e perch@'e
 siano d'aiuto nel produrre traduzioni corrette della stringa di
 formattazione in lingue differenti da quella nella quale il programma @`e stato
@@ -31594,8 +31732,8 @@ originariamente scritto.
 @node Portabilit@`a nell'I18N
 @subsection Problemi di portabilit@`a a livello di @command{awk}
 
-@cindex portabilit@`a, internazionalizzazione e
-@cindex internazionalizzazione, localizzazione, portabilit@`a e
+@cindex portabilit@`a @subentry internazionalizzazione e
+@cindex internazionalizzazione @subentry localizzazione @subentry 
portabilit@`a e
 Le funzionalit@`a di internazionalizzazione di @command{gawk} sono state
 appositamente implementate per avere il minimo impatto possibile sulla
 portabilit@`a, verso altre versioni di @command{awk}, dei programmi
@@ -31617,8 +31755,8 @@ Per il modo in cui @`e scritto, non funzioner@`a con 
altre versioni di
 Tuttavia, @`e in realt@`a quasi portabile, e richiede modifiche minime:
 
 @itemize @value{BULLET}
-@cindex @code{TEXTDOMAIN}, variabile, portabilit@`a e
-@cindex variabile @code{TEXTDOMAIN}, portabilit@`a e
+@cindex @code{TEXTDOMAIN} (variabile) @subentry portabilit@`a e
+@cindex variabile @subentry @code{TEXTDOMAIN} @subentry portabilit@`a e
 @item
 Le assegnazioni di valori a @code{TEXTDOMAIN} non avranno effetto alcuno,
 perch@'e @code{TEXTDOMAIN} non @`e una variabile speciale in altre
@@ -31640,12 +31778,12 @@ pu@`o essere reso eseguibile, ma
 tutti i messaggi verranno inviati nella lingua originale del programma.
 Per esempio:
 
-@cindex @code{bindtextdomain()}, funzione (@command{gawk}), portabilit@`a e
-@cindex funzione @code{bindtextdomain()} (@command{gawk}), portabilit@`a e
-@cindex @code{dcgettext()}, funzione (@command{gawk}), portabilit@`a e
-@cindex funzione @code{dcgettext()} (@command{gawk}), portabilit@`a e
-@cindex @code{dcngettext()}, funzione (@command{gawk}), portabilit@`a e
-@cindex funzione @code{dcngettext()} (@command{gawk}), portabilit@`a e
+@cindex @code{bindtextdomain()} (funzione @command{gawk}) @subentry 
portabilit@`a e
+@cindex funzione @subentry @code{bindtextdomain()} (@command{gawk}) @subentry 
portabilit@`a e
+@cindex @code{dcgettext()} (funzione @command{gawk}) @subentry portabilit@`a e
+@cindex funzione @subentry @code{dcgettext()} (@command{gawk}) @subentry 
portabilit@`a e
+@cindex @code{dcngettext()} (funzione @command{gawk}) @subentry portabilit@`a e
+@cindex funzione @subentry @code{dcngettext()} (@command{gawk}) @subentry 
portabilit@`a e
 @example
 @c file eg/lib/libintl.awk
 function bindtextdomain(dir, domain)
@@ -31666,17 +31804,17 @@ function dcngettext(string1, string2, number, domain, 
category)
 @end example
 
 @item
-L'uso di specificazioni posizionali in @code{printf} o
+L'uso di specificazioni di posizione in @code{printf} o
 @code{sprintf()} @emph{non} @`e portabile.
 Per supportare @code{gettext()} nella programmazione in linguaggio C,
-molte versioni C di @code{sprintf()} supportano specificatori posizionali.
+molte versioni C di @code{sprintf()} supportano specificatori di posizione.
 Ma la cosa funziona solo se nella chiamata di funzione sono stati specificati
 argomenti a sufficienza.  Molte
 versioni di @command{awk} passano i formati e gli argomenti di @code{printf},
 senza modificarli, alla funzione di libreria in linguaggio C @code{sprintf()},
 ma solo un formato e un argomento alla volta.  Quel che succede se si usa una
-specificazione posizionale resta indeterminato.
-Tuttavia, poich@'e le specificazioni posizionali sono usate principalmente
+specificazione di posizione resta indeterminato.
+Tuttavia, poich@'e le specificazioni di posizione sono usate principalmente
 per le stringhe di formattazione @emph{tradotte}, e poich@'e le versioni
 non-GNU di @command{awk} non utilizzano mai le stringhe tradotte, ci@`o non
 dovrebbe, in pratica, causare problemi.
@@ -31762,7 +31900,6 @@ msgstr "Like, the scoop is"
 @c endfile
 @end example
 
-@cindex Linux
 @cindex GNU/Linux
 @quotation NOTA
 Le istruzione che seguono valgono per un ambiente GNU/Linux con la
@@ -31779,6 +31916,14 @@ La directory ha un nome del tipo 
@file{@var{locale}/LC_MESSAGES}, dove
 @var{locale} @`e un nome di localizzazione noto alle routine C
 di @command{gettext}.
 
+@cindex @env{LANGUAGE} (variabile d'ambiente)
+@cindex variabili d'ambiente @subentry @env{LANGUAGE}
+@cindex @env{LC_ALL} (variabile d'ambiente)
+@cindex variabili d'ambiente @subentry @env{LC_ALL}
+@cindex @env{LANG} (variabile d'ambiente)
+@cindex variabili d'ambiente @subentry @env{LANG}
+@cindex @env{LC_MESSAGES} (variabile d'ambiente)
+@cindex variabili d'ambiente @subentry @env{LC_MESSAGES}
 Come sapere quale localizzazione usare?  Le routine C di @command{gettext}
 usano quattro variabili d'ambiente.  Esse sono, nell'ordine:
 @env{$LANGUAGE}, @env{$LC_ALL}, @env{$LANG}, e
@@ -31799,16 +31944,16 @@ Il passo succesivo @`e creare le directory:
 $ @kbd{mkdir en_US.UTF-8 en_US.UTF-8/LC_MESSAGES}
 @end example
 
-@cindex @code{.po}, file, conversione in @code{.mo}
-@cindex file @code{.po}, conversione in @code{.mo}
-@cindex @code{.mo}, file, conversione da @code{.po}
-@cindex file @code{.mo}, conversione da @code{.po}
-@cindex @dfn{portable object} file (.po), conversione in @dfn{message object} 
file
-@cindex file, @dfn{portable object} (.po), conversione in @dfn{message object} 
file
-@cindex @dfn{message object} file (.mo), conversione da @dfn{portable object} 
file
-@cindex file, @dfn{message object} (.mo), conversione da @dfn{portable object} 
file
-@cindex @command{msgfmt}, programma di utilit@`a
-@cindex programma di utilit@`a @command{msgfmt}
+@cindex @file{.po} (file) @subentry conversione in @file{.mo}
+@cindex file @subentry @file{.po} @subentry conversione in @file{.mo}
+@cindex @file{.mo} (file) @subentry conversione da @file{.po}
+@cindex file @subentry @file{.mo} @subentry conversione da @file{.po}
+@cindex @dfn{portable object} file (@file{.po}) @subentry conversione in 
@dfn{message object} file
+@cindex file @subentry @dfn{portable object} (@file{.po}) @subentry 
conversione in @dfn{message object} file
+@cindex @dfn{message object} file (@file{.mo}) @subentry conversione da 
@dfn{portable object} file
+@cindex file @subentry @dfn{message object} (@file{.mo}) @subentry conversione 
da @dfn{portable object} file
+@cindex @command{msgfmt} (programma di utilit@`a)
+@cindex programma di utilit@`a @subentry @command{msgfmt}
 Il programma di utilit@`a @command{msgfmt} effettua la conversione del file
 leggibile, in formato testo, @file{.po} nel file, in formato binario,
 @file{.mo}.
@@ -31891,7 +32036,7 @@ compilati in file @file{.gmo} che saranno usati in fase 
di
 esecuzione del programma.
 
 @item
-@`E possibile usare specificazioni posizionali con le istruzioni
+@`E possibile usare specificazioni di posizione con le istruzioni
 @code{sprintf()} e @code{printf} per modificare la posizione del valore
 degli argomenti nelle stringhe di formato e nell'output.  Ci@`o @`e utile nella
 traduzione di stringhe di
@@ -31911,7 +32056,8 @@ esecuzione.
 
 @node Debugger
 @chapter Effettuare il debug dei programmi @command{awk}
-@cindex debug dei programmi @command{awk}
+@cindex debug @subentry dei programmi @command{awk}
+@cindex programmi @command{awk} @subentry debug dei
 
 @c The original text for this chapter was contributed by Efraim Yawitz.
 
@@ -31963,7 +32109,7 @@ In quel caso, cosa ci si pu@`o aspettare da un tale 
strumento?  La risposta
 dipende dal linguaggio su cui si effettua il debug, comunque in generale ci si
 pu@`o attendere almeno questo:
 
-@cindex debugger, funzionalit@`a del
+@cindex debugger @subentry funzionalit@`a del
 @itemize @value{BULLET}
 @item
 La possibilit@`a di osservare l'esecuzione delle istruzioni di un programma una
@@ -31997,18 +32143,18 @@ l'autore, o anche di un programma scritto da altri).
 @node Terminologia nel debug
 @subsection Concetti fondamentali sul debug
 
-@cindex debugger, terminologia
+@cindex debugger @subentry terminologia
 Prima di entrare nei dettagli, dobbiamo introdurre diversi
 importanti concetti che valgono per tutti i debugger.
 La seguente lista definisce i termini usati nel resto di
 questo @value{CHAPTER}:
 
 @table @dfn
-@cindex @dfn{stack} di chiamata (debugger)
-@cindex debugger, @dfn{stack} di chiamata
-@cindex debugger, pila di chiamata
+@cindex @dfn{stack} (pila) delle chiamate @subentry nel debugger
+@cindex debugger @subentry @dfn{stack} di chiamata
+@cindex debugger @subentry pila di chiamata
 @cindex @dfn{stack frame} (debugger)
-@cindex debugger, @dfn{stack frame}
+@cindex debugger @subentry @dfn{stack frame}
 @item Stack frame
 Durante la loro esecuzione i programmi normalmente chiamano delle funzioni.
 Una funzione pu@`o  a sua volta chiamarne un'altra, o pu@`o richiamare se 
stessa
@@ -32033,10 +32179,10 @@ invocata.  I comandi che stampano la pila delle 
chiamate stampano anche le
 informazioni su ogni @dfn{stack frame} (come vedremo pi@`u avanti in 
dettaglio).
 
 @item Punto d'interruzione
-@cindex @dfn{breakpoint} (debugger)
-@cindex punto d'interruzione (debugger)
-@cindex debugger, @dfn{breakpoint}
-@cindex debugger, punto d'interruzione
+@cindex @code{breakpoint} (comando del debugger)
+@cindex punto d'interruzione @subentry (@code{breakpoint})
+@cindex debugger @subentry @code{breakpoint}
+@cindex debugger @subentry punto d'interruzione
 Durante le operazioni di debug, spesso si preferisce lasciare che il programma
 venga eseguito finch@'e non raggiunge un certo punto, e da quel punto in poi si
 continua l'esecuzione un'istruzione alla volta.  Il modo per farlo @`e quello 
di
@@ -32048,9 +32194,9 @@ vogliono.
 
 @item Punto d'osservazione
 @cindex @dfn{watchpoint} (debugger)
-@cindex punto d'interruzione (debugger)
-@cindex debugger, @dfn{watchpoint}
-@cindex debugger, punto d'interruzione
+@cindex punto d'osservazione @subetry(@code{watchpoint})
+@cindex debugger @subentry @code{watchpoint}
+@cindex debugger @subentry punto d'osservazione
 Un punto d'osservazione @`e simile a un punto d'interruzione.  La differenza 
@`e
 che i punti d'interruzione sono orientati attorno al codice; fermano il
 programma quando viene raggiunto un certo punto nel codice.  Un punto
@@ -32088,8 +32234,8 @@ macchina.}
 
 @node Esempio di sessione di debug
 @section Esempio di sessione di debug di @command{gawk}
-@cindex esempio di sessione di debug
-@cindex debug, esempio di sessione
+@cindex esempio @subentry di sessione di debug
+@cindex debug @subentry esempio di sessione
 
 Per illustrare l'uso di @command{gawk} come debugger, vediamo un esempio di
 sessione di debug.  Come esempio verr@`a usata un'implementazione @command{awk}
@@ -32105,8 +32251,8 @@ uniq}).
 @node Invocazione del debugger
 @subsection Come avviare il debugger
 @cindex avviare il debugger
-@cindex debugger, come avviarlo
-@cindex debugger, comandi del, si veda comando del debugger
+@cindex debugger @subentry come avviarlo
+@cindex debugger @subentry comandi del @seeentry{comando del debugger}
 
 Per avviare il debugger in @command{gawk} si richiama il comando esattamente
 come al solito, specificando solo un'opzione aggiuntiva,
@@ -32131,7 +32277,7 @@ programma nella riga di comando al debugger piuttosto 
che come parte del
 comando @code{run} al prompt del debugger.)
 L'opzione @option{-1} @`e un'opzione per @file{uniq.awk}.
 
-@cindex debugger, prompt
+@cindex debugger @subentry prompt
 @cindex prompt del debugger
 Invece di eseguire direttamente il programma sul @file{file_di_input}, come
 @command{gawk} farebbe normalmente, il debugger semplicemente carica
@@ -32182,13 +32328,13 @@ ragionevole per un punto d'interruzione in 
@file{uniq.awk} @`e all'inizio della
 funzione @code{se_sono_uguali()}, che confronta la riga corrente con la 
precedente.
 Per impostare il punto d'interruzione, usare il comando @code{b} 
(@dfn{breakpoint}):
 
-@cindex debugger, impostare un punto d'interruzione
-@cindex @code{breakpoint}, comando del debugger
-@cindex comando del debugger, @code{breakpoint}
-@cindex @code{break}, comando del debugger
-@cindex comando del debugger, @code{break}
-@cindex @code{b}, comando del debugger
-@cindex comando del debugger, @code{b}
+@cindex debugger @subentry impostare un punto d'interruzione
+@cindex @code{breakpoint} (comando del debugger)
+@cindex comando del debugger @subentry @code{breakpoint}
+@cindex @code{break} (comando del debugger)
+@cindex comando del debugger @subentry @code{break}
+@cindex @code{b} (comando del debugger)
+@cindex comando del debugger @subentry @code{b} (alias per @code{break})
 @example
 gawk> @kbd{b se_sono_uguali}
 @print{} Breakpoint 1 impostato al file `uniq.awk', riga 63
@@ -32198,9 +32344,9 @@ Il debugger mostra il file e il numero di riga dove si 
trova il punto
 d'interruzione.  Ora bisogna immettere @samp{r} o @samp{run} e il programma
 viene eseguito fino al primo punto d'interruzione:
 
-@cindex debugger, eseguire il programma
-@cindex comando del debugger, @code{run}
-@cindex @code{run}, comando del debugger
+@cindex debugger @subentry eseguire il programma
+@cindex comando del debugger @subentry @code{run}
+@cindex @code{run} (comando del debugger)
 @example
 gawk> @kbd{r}
 @print{} Partenza del programma:
@@ -32217,11 +32363,11 @@ Prima di tutto, vediamo come siamo arrivati a questo 
punto.  Sulla riga di
 comando battiamo @samp{bt} (che sta per ``backtrace''), e il debugger risponde
 con un listato degli @dfn{stack frame} correnti:
 
-@cindex debugger, elementi pila, visualizzazione
-@cindex comando del debugger, @code{bt}
-@cindex @code{bt}, comando del debugger
-@cindex comando del debugger, @code{backtrace}
-@cindex @code{backtrace}, comando del debugger
+@cindex debugger @subentry elementi pila @subentry visualizzazione
+@cindex comando del debugger @subentry @code{bt} (alias per @code{backtrace})
+@cindex @code{bt} (comando del debugger) @subentry (alias per @code{backtrace})
+@cindex comando del debugger @subentry @code{backtrace}
+@cindex @code{backtrace} (comando del debugger)
 @example
 gawk> @kbd{bt}
 @print{} #0  se_sono_uguali(n, m, campi_ultima, campi_corrente,
@@ -32243,10 +32389,10 @@ alcune variabili.  Immaginiamo di battere @samp{p n}
 @code{n}, un parametro di @code{se_sono_uguali()}.  In realt@`a, il debugger
 ci d@`a:
 
-@cindex comando del debugger, @code{print}
-@cindex @code{print}, comando del debugger
-@cindex comando del debugger, @code{p}
-@cindex @code{p}, comando del debugger
+@cindex comando del debugger @subentry @code{print}
+@cindex @code{print} (comando del debugger)
+@cindex comando del debugger @subentry @code{p} (alias per @code{print})
+@cindex @code{p} (comando del debugger) @subentry (alias per @code{print})
 @example
 gawk> @kbd{p n}
 @print{} n = untyped variable
@@ -32298,10 +32444,10 @@ ulteriormente, iniziamo a ``scorrere una ad una'' le 
righe di
 @code{se_sono_uguali()}.  Cominciamo col battere @samp{n} (per ``next''
 [successivo]):
 
-@cindex comando del debugger, @code{n}
-@cindex @code{n}, comando del debugger
-@cindex comando del debugger, @code{next}
-@cindex @code{next}, comando del debugger
+@cindex comando del debugger @subentry @code{n} (alias per @code{next})
+@cindex @code{n} (comando del debugger) @subentry (alias per @code{next})
+@cindex comando del debugger @subentry @code{next}
+@cindex @code{next} (comando del debugger)
 @example
 @group
 gawk> @kbd{n}
@@ -32349,8 +32495,8 @@ del vettore.
 
 Una prima possibilit@`a @`e quella di usare degli indici:
 
-@cindex debugger, stampare singoli elementi di un vettore
-@cindex stampare singoli elementi di un vettore, nel debugger
+@cindex debugger @subentry stampare singoli elementi di un vettore
+@cindex stampare @subentry singoli elementi di un vettore @subentry nel 
debugger
 @example
 gawk> @kbd{p vettore_ultima[0]}
 @print{} "0" non presente nel vettore `vettore_ultima'
@@ -32368,8 +32514,8 @@ Questo metodo sarebbe piuttosto lento per un vettore 
con 100 elementi, per cui
 @command{gawk} fornisce una scorciatoia (che fa venire in mente un altro
 linguaggio che non nominiamo):
 
-@cindex debugger, stampare tutti gli elementi di un vettore
-@cindex stampare tutti gli elementi di un vettore, nel debugger
+@cindex debugger @subentry stampare tutti gli elementi di un vettore
+@cindex stampare @subentry tutti gli elementi di un vettore @subentry nel 
debugger
 @example
 gawk> @kbd{p @@vettore_ultima}
 @print{} vettore_ultima["1"] = "awk,"
@@ -32451,8 +32597,8 @@ Ottenere informazioni
 Comandi vari
 @end itemize
 
-@cindex debugger, ripetere dei comandi
-@cindex ripetere dei comandi, nel debugger
+@cindex debugger @subentry ripetere dei comandi
+@cindex ripetere dei comandi @subentry nel debugger
 Ciascuna di esse @`e trattata
 @ifnotinfo
 nelle seguenti
@@ -32489,13 +32635,13 @@ programma verr@`a eseguito come se non fosse sotto il 
debugger.  I comandi per
 controllare i punti d'interruzione sono:
 
 @table @asis
-@cindex comando del debugger, @code{b} (alias per @code{break})
-@cindex comando del debugger, @code{break}
-@cindex @code{break}, comando del debugger
-@cindex @code{b}, comando del debugger (alias per @code{break})
-@cindex impostare un punto d'interruzione
-@cindex breakpoint, impostare
-@cindex punto d'interruzione (breakpoint), impostare
+@cindex comando del debugger @subentry @code{b} (alias per @code{break})
+@cindex comando del debugger @subentry @code{break}
+@cindex @code{break} (comando del debugger)
+@cindex @code{b} (comando del debugger) @subentry (alias per @code{break})
+@cindex impostare @subentry un punto d'interruzione
+@cindex @code{breakpoint} (comando del debugger) @subentry impostare
+@cindex punto d'interruzione @subentry (@code{break}) @subentry impostare
 @item @code{break} [[@var{nome-file}@code{:}]@var{n} | @var{funzione}] 
[@code{"@var{espressione}"}]
 @itemx @code{b} [[@var{nome-file}@code{:}]@var{n} | @var{funzione}] 
[@code{"@var{espressione}"}]
 Senza argomenti, imposta un punto d'interruzione alla prossima istruzione
@@ -32529,11 +32675,11 @@ valuta ogni volta che viene raggiunto quel punto 
d'interruzione. Se la
 condizione @`e vera, il debugger ferma l'esecuzione e rimane in attesa di un
 comando. Altrimenti, continua l'esecuzione del programma.
 
-@cindex comando del debugger, @code{clear}
-@cindex @code{clear}, comando del debugger
-@cindex cancellare punto d'interruzione, in una determinata posizione
-@cindex punto d'interruzione, cancellare in una determinata posizione
-@cindex breakpoint in una determinata posizione, cancellare
+@cindex comando del debugger @subentry @code{clear}
+@cindex @code{clear} (comando del debugger)
+@cindex cancellare punto d'interruzione @subentry in una determinata posizione
+@cindex punto d'interruzione @subentry (@code{breakpoint}) @subentry 
cancellare in una determinata posizione
+@cindex @code{breakpoint} (comando del debugger) @subentry in una determinata 
posizione @subentry cancellare
 @item @code{clear} [[@var{nome-file}@code{:}]@var{n} | @var{funzione}]
 Senza argomenti, cancella ogni eventuale punto d'interruzione all'istruzione
 successiva
@@ -32557,8 +32703,8 @@ Cancella il punto (o i punti) d'interruzione 
impostato/i all'ingresso della
 funzione @var{funzione}.
 @end table
 
-@cindex comando del debugger, @code{condition}
-@cindex @code{condition}, comando del debugger
+@cindex comando del debugger @subentry @code{condition}
+@cindex @code{condition} (comando del debugger)
 @cindex condizione dei punti d'interruzione
 @item @code{condition} @var{n} @code{"@var{espressione}"}
 Aggiunge una condizione al punto d'interruzione o al punto d'osservazione
@@ -32571,31 +32717,31 @@ della condizione non viene specificata, tutte le 
condizioni esistenti vengono
 rimosse (cio@`e, il punto d'interruzione o di osservazione viene considerato
 incondizionato).
 
-@cindex comando del debugger, @code{d} (alias per @code{delete})
-@cindex comando del debugger, @code{delete}
-@cindex @code{delete}, comando del debugger
-@cindex @code{d}, comando del debugger (alias per @code{delete})
-@cindex cancellare punto d'interruzione, per numero
-@cindex punto d'interruzione, cancellare per numero
-@cindex breakpoint, cancellare per numero
+@cindex comando del debugger @subentry @code{d} (alias per @code{delete})
+@cindex comando del debugger @subentry @code{delete}
+@cindex @code{delete} (comando del debugger)
+@cindex @code{d} (comando del debugger) @subentry (alias per @code{delete})
+@cindex cancellare punto d'interruzione @subentry per numero
+@cindex punto d'interruzione @subentry (@code{breakpoint}) @subentry 
cancellare per numero
+@cindex @code{breakpoint} (comando del debugger) @subentry cancellare per 
numero
 @item @code{delete} [@var{n1 n2} @dots{}] [@var{n}--@var{m}]
 @itemx @code{d} [@var{n1 n2} @dots{}] [@var{n}--@var{m}]
 Cancella i punti d'interruzione specificati o un intervallo di punti
 d'interruzione. Se non vengono forniti argomenti, cancella tutti i
 punti d'interruzione esistenti.
 
-@cindex comando del debugger, @code{disable}
-@cindex @code{disable}, comando del debugger
+@cindex comando del debugger @subentry @code{disable}
+@cindex @code{disable} (comando del debugger)
 @cindex disabilitare punto d'interruzione
-@cindex punto d'interruzione, come disabilitare o abilitare
+@cindex punto d'interruzione @subentry (@code{disable}) @subentry come 
disabilitare o abilitare
 @item @code{disable} [@var{n1 n2} @dots{} | @var{n}--@var{m}]
 Disabilita punti d'interruzione specificati o un intervallo di essi. Senza
 argomenti, disabilita tutti i punti d'interruzione.
 
-@cindex comando del debugger, @code{e} (alias per @code{enable})
-@cindex comando del debugger, @code{enable}
-@cindex @code{enable}, comando del debugger
-@cindex @code{e}, comando del debugger (alias per @code{enable})
+@cindex comando del debugger @subentry @code{e} (alias per @code{enable})
+@cindex comando del debugger @subentry @code{enable}
+@cindex @code{enable} (comando del debugger)
+@cindex @code{e} (comando del debugger) @subentry (alias per @code{enable})
 @cindex abilitare un punto d'interruzione
 @item @code{enable} [@code{del} | @code{once}] [@var{n1 n2} @dots{}] 
[@var{n}--@var{m}]
 @itemx @code{e} [@code{del} | @code{once}] [@var{n1 n2} @dots{}] 
[@var{n}--@var{m}]
@@ -32614,19 +32760,19 @@ Abilita dei punti d'interruzione @dfn{una tantum}, 
poi li cancella quando il
 programma si ferma in quel punto.
 @end table
 
-@cindex comando del debugger, @code{ignore}
-@cindex @code{ignore}, comando del debugger
+@cindex comando del debugger @subentry @code{ignore}
+@cindex @code{ignore} (comando del debugger)
 @cindex ignorare un punto d'interruzione
 @item @code{ignore} @var{n} @var{contatore}
 Ignora il punto d'interruzione numero @var{n} le successive
 @var{contatore} volte in cui viene raggiunto.
 
-@cindex comando del debugger, @code{t} (alias per @code{tbreak})
-@cindex comando del debugger, @code{tbreak}
-@cindex @code{tbreak}, comando del debugger
-@cindex @code{t}, comando del debugger (alias per @code{tbreak})
-@cindex punto d'interruzione temporaneo
-@cindex temporaneo, punto d'interruzione
+@cindex comando del debugger @subentry @code{t} (alias per @code{tbreak})
+@cindex comando del debugger @subentry @code{tbreak}
+@cindex @code{tbreak} (comando del debugger)
+@cindex @code{t} (comando del debugger) @subentry (alias per @code{tbreak})
+@cindex punto d'interruzione @subentry (@code{tbreak}) temporaneo
+@cindex temporaneo @subentry punto d'interruzione
 @item @code{tbreak} [[@var{nome-file}@code{:}]@var{n} | @var{funzione}]
 @itemx @code{t} [[@var{nome-file}@code{:}]@var{n} | @var{funzione}]
 Imposta un punto d'interruzione temporaneo (abilitato solo per la prima volta
@@ -32641,13 +32787,13 @@ programma, osservando il suo comportamento.  Ci sono 
pi@`u comandi per
 controllare l'esecuzione del programma di quelli visti nei precedenti esempi:
 
 @table @asis
-@cindex comando del debugger, @code{commands}
-@cindex @code{commands}, comando del debugger
-@cindex comando del debugger, @code{silent}
-@cindex @code{silent}, comando del debugger
-@cindex comando del debugger, @code{end}
-@cindex @code{end}, comando del debugger
-@cindex punto d'interruzione, comandi
+@cindex comando del debugger @subentry @code{commands}
+@cindex @code{commands} (comando del debugger)
+@cindex comando del debugger @subentry @code{silent}
+@cindex @code{silent} (comando del debugger)
+@cindex comando del debugger @subentry @code{end}
+@cindex @code{end} (comando del debugger)
+@cindex punto d'interruzione @subentry comandi da eseguire al
 @cindex comandi da eseguire al punto d'interruzione
 @item @code{commands} [@var{n}]
 @itemx @code{silent}
@@ -32676,11 +32822,11 @@ gawk> @kbd{commands}
 gawk>
 @end example
 
-@cindex comando del debugger, @code{c} (alias per @code{continue})
-@cindex comando del debugger, @code{continue}
-@cindex continuare esecuzione programma, nel debugger
-@cindex debugger, continuare esecuzione programma
-@cindex @code{continue}, comando del debugger
+@cindex comando del debugger @subentry @code{c} (alias per @code{continue})
+@cindex comando del debugger @subentry @code{continue}
+@cindex continuare esecuzione programma @subentry nel debugger
+@cindex debugger @subentry continuare esecuzione programma
+@cindex @code{continue} (comando del debugger)
 @item @code{continue} [@var{contatore}]
 @itemx @code{c} [@var{contatore}]
 Riprende l'esecuzione del programma. Se si riparte da un punto d'interruzione
@@ -32688,33 +32834,33 @@ e viene specificato @var{contatore}, il punto 
d'interruzione in quella
 posizione viene ignorato per le prossime @var{contatore} volte prima di
 fermarsi nuovamente.
 
-@cindex comando del debugger, @code{finish}
-@cindex @code{finish}, comando del debugger
+@cindex comando del debugger @subentry @code{finish}
+@cindex @code{finish} (comando del debugger)
 @item @code{finish}
 Esegue fino a quando lo stack frame selezionato completa l'esecuzione.
 Stampa il valore restituito.
 
-@cindex comando del debugger, @code{n} (alias per @code{next})
-@cindex comando del debugger, @code{next}
-@cindex @code{next}, comando del debugger
-@cindex @code{n}, comando del debugger (alias per @code{next})
-@cindex esecuzione di un solo passo, nel debugger
+@cindex comando del debugger @subentry @code{n} (alias per @code{next})
+@cindex comando del debugger @subentry @code{next}
+@cindex @code{next} (comando del debugger)
+@cindex @code{n} (comando del debugger) @subentry (alias per @code{next})
+@cindex esecuzione di un solo passo @subentry nel debugger
 @item @code{next} [@var{contatore}]
 @itemx @code{n} [@var{contatore}]
 Continua l'esecuzione alla successiva riga sorgente, saltando le chiamate di
 funzione.  L'argomento @var{contatore} controlla il numero di ripetizioni
 dell'azione, come in @code{step}.
 
-@cindex comando del debugger, @code{ni} (alias per @code{nexti})
-@cindex comando del debugger, @code{nexti}
-@cindex @code{nexti}, comando del debugger
-@cindex @code{ni}, comando del debugger (alias for @code{nexti})
+@cindex comando del debugger @subentry @code{ni} (alias per @code{nexti})
+@cindex comando del debugger @subentry @code{nexti}
+@cindex @code{nexti} (comando del debugger)
+@cindex @code{ni} (comando del debugger) @subentry (alias for @code{nexti})
 @item @code{nexti} [@var{contatore}]
 @itemx @code{ni} [@var{contatore}]
 Esegue una o @var{contatore} istruzioni, comprese le chiamate di funzione.
 
-@cindex comando del debugger, @code{return}
-@cindex @code{return}, comando del debugger
+@cindex comando del debugger @subentry @code{return}
+@cindex @code{return} (comando del debugger)
 @item @code{return} [@var{valore}]
 Cancella l'esecuzione di una chiamata di funzione. Se @var{valore} (una
 stringa o un numero) viene specificato, @`e usato come codice di ritorno della
@@ -32723,10 +32869,10 @@ correntemente in esecuzione; cio@`e, il frame numero 
0), ignora tutti i frame
 pi@`u interni di quello selezionato, e il chiamante del frame selezionato
 diventa il frame pi@`u interno.
 
-@cindex comando del debugger, @code{r} (alias per @code{run})
-@cindex comando del debugger, @code{run}
-@cindex @code{run}, comando del debugger
-@cindex @code{r}, comando del debugger (alias per @code{run})
+@cindex comando del debugger @subentry @code{r} (alias per @code{run})
+@cindex comando del debugger @subentry @code{run}
+@cindex @code{run} (comando del debugger)
+@cindex @code{r} (comando del debugger) @subentry (alias per @code{run})
 @item @code{run}
 @itemx @code{r}
 Avvia/riavvia l'esecuzione del programma. Quando il programma viene riavviato,
@@ -32734,10 +32880,10 @@ il debugger mantiene i punti d'interruzione e di 
osservazione, la cronologia
 dei comandi, la visualizzazione automatica di variabili, e le opzioni del
 debugger.
 
-@cindex comando del debugger, @code{s} (alias per @code{step})
-@cindex comando del debugger, @code{step}
-@cindex @code{step}, comando del debugger
-@cindex @code{s}, comando del debugger (alias per @code{step})
+@cindex comando del debugger @subentry @code{s} (alias per @code{step})
+@cindex comando del debugger @subentry @code{step}
+@cindex @code{step} (comando del debugger)
+@cindex @code{s} (comando del debugger) @subentry (alias per @code{step})
 @item @code{step} [@var{contatore}]
 @itemx @code{s} [@var{contatore}]
 Continua l'esecuzione finch@'e il controllo non raggiunge una diversa riga del
@@ -32746,10 +32892,10 @@ all'interno della riga.  Se viene fornito l'argomento 
@var{contatore},
 esegue il numero di istruzioni specificate prima di fermarsi, a meno che non
 s'imbatta in un punto d'interruzione o di osservazione.
 
-@cindex comando del debugger, @code{si} (alias per @code{stepi})
-@cindex comando del debugger, @code{stepi}
-@cindex @code{stepi}, comando del debugger
-@cindex @code{si}, comando del debugger (alias per @code{stepi})
+@cindex comando del debugger @subentry @code{si} (alias per @code{stepi})
+@cindex comando del debugger @subentry @code{stepi}
+@cindex @code{stepi} (comando del debugger)
+@cindex @code{si} (comando del debugger) @subentry (alias per @code{stepi})
 @item @code{stepi} [@var{contatore}]
 @itemx @code{si} [@var{contatore}]
 Esegue una o @var{contatore} istruzioni, comprese le chiamate di funzione.
@@ -32757,10 +32903,10 @@ Esegue una o @var{contatore} istruzioni, comprese le 
chiamate di funzione.
 si veda l'output mostrato sotto @code{dump} nella
 @ref{Comandi vari del debugger}.)
 
-@cindex comando del debugger, @code{u} (alias per @code{until})
-@cindex comando del debugger, @code{until}
-@cindex @code{until}, comando del debugger
-@cindex @code{u}, comando del debugger (alias per @code{until})
+@cindex comando del debugger @subentry @code{u} (alias per @code{until})
+@cindex comando del debugger @subentry @code{until}
+@cindex @code{until} (comando del debugger)
+@cindex @code{u} (comando del debugger) @subentry (alias per @code{until})
 @item @code{until} [[@var{nome-file}@code{:}]@var{n} | @var{funzione}]
 @itemx @code{u} [[@var{nome-file}@code{:}]@var{n} | @var{funzione}]
 Senza argomenti, prosegue l'esecuzione finch@'e non viene raggiunta una riga
@@ -32776,8 +32922,8 @@ lo @dfn{stack frame} corrente non termina l'esecuzione.
 I comandi per vedere e modificare variabili all'interno di @command{gawk} sono:
 
 @table @asis
-@cindex comando del debugger, @code{display}
-@cindex @code{display}, comando del debugger
+@cindex comando del debugger @subentry @code{display}
+@cindex @code{display} (comando del debugger)
 @item @code{display} [@var{var} | @code{$}@var{n}]
 Aggiunge la variabile @var{var} (o il campo @code{$@var{n}}) alla lista di
 visualizzazione.  Il valore della variabile o del campo @`e visualizzato ogni
@@ -32798,9 +32944,9 @@ raggiunge un contesto dove la variabile con quel nome 
non esiste pi@`u.
 Senza argomenti, @code{display} mostra i valori correnti degli elementi della
 lista.
 
-@cindex comando del debugger, @code{eval}
-@cindex @code{eval}, comando del debugger
-@cindex valutare espressioni, nel debugger
+@cindex comando del debugger @subentry @code{eval}
+@cindex @code{eval} (comando del debugger)
+@cindex valutare espressioni @subentry nel debugger
 @item @code{eval "@var{istruzioni awk}"}
 Valuta @var{istruzioni awk} nel contesto del programma in esecuzione.
 Si pu@`o fare qualsiasi cosa che un programma @command{awk} farebbe: assegnare
@@ -32825,11 +32971,11 @@ definire
 ``variabili locali'' che esistono nel contesto delle @var{istruzioni awk},
 invece di usare variabili o parametri di funzione gi@`a definiti nel programma.
 
-@cindex comando del debugger, @code{p} (alias per @code{print})
-@cindex comando del debugger, @code{print}
-@cindex @code{print}, comando del debugger
-@cindex @code{p}, comando del debugger (alias per @code{print})
-@cindex stampare variabili, nel debugger
+@cindex comando del debugger @subentry @code{p} (alias per @code{print})
+@cindex comando del debugger @subentry @code{print}
+@cindex @code{print} (comando del debugger)
+@cindex @code{p} (comando del debugger) @subentry (alias per @code{print})
+@cindex stampare @subentry variabili @subentry nel debugger
 @item @code{print} @var{var1}[@code{,} @var{var2} @dots{}]
 @itemx @code{p} @var{var1}[@code{,} @var{var2} @dots{}]
 Stampa i valori di una o pi@`u variabili o campi di @command{gawk}.
@@ -32855,8 +33001,8 @@ gawk> @kbd{print @@a}
 L'esempio stampa gli indici e i corrispondenti valori di tutti gli elementi
 del vettore @code{a}.
 
-@cindex comando del debugger, @code{printf}
-@cindex @code{printf}, comando del debugger
+@cindex comando del debugger @subentry @code{printf}
+@cindex @code{printf} (comando del debugger)
 @item @code{printf} @var{formato} [@code{,} @var{arg} @dots{}]
 Stampa un testo formattato. Il @var{formato} pu@`o includere sequenze di
 protezione, come @samp{\n}
@@ -32864,9 +33010,9 @@ protezione, come @samp{\n}
 Non viene stampato nessun ritorno a capo che non sia stato specificato
 esplicitamente.
 
-@cindex comando del debugger, @code{set}
-@cindex @code{set}, comando del debugger
-@cindex assegnare valori a variabili, nel debugger
+@cindex comando del debugger @subentry @code{set}
+@cindex @code{set} (comando del debugger)
+@cindex assegnamento @subentry di valori a variabili, nel debugger
 @item @code{set} @var{var}@code{=}@var{valore}
 Assegna un valore costante (numero o stringa) a una variabile o a un campo di
 @command{awk}.
@@ -32876,11 +33022,11 @@ I valori di stringa devono essere racchiusi tra doppi 
apici
 Si possono impostare anche delle variabili speciali di @command{awk}, come
 @code{FS}, @code{NF}, @code{NR}, e cos@`{@dotless{i}} via.
 
-@cindex comando del debugger, @code{w} (alias per @code{watch})
-@cindex comando del debugger, @code{watch}
-@cindex @code{watch}, comando del debugger
-@cindex @code{w}, comando del debugger (alias per @code{watch})
-@cindex impostare un punto d'osservazione
+@cindex comando del debugger @subentry @code{w} (alias per @code{watch})
+@cindex comando del debugger @subentry @code{watch}
+@cindex @code{watch} (comando del debugger)
+@cindex @code{w} (comando del debugger) @subentry (alias per @code{watch})
+@cindex impostare @subentry un punto d'osservazione
 @item @code{watch} @var{var} | @code{$}@var{n} [@code{"@var{espressione}"}]
 @itemx @code{w} @var{var} | @code{$}@var{n} [@code{"@var{espressione}"}]
 Aggiunge la variabile @var{var} (o il campo @code{$@var{n}}) alla lista dei
@@ -32895,15 +33041,15 @@ ogni volta che viene raggiunto il punto 
d'osservazione.  Se la condizione @`e
 vera, il debugger interrompe l'esecuzione e rimane in attesa di un comando.
 Altrimenti, @command{gawk} prosegue nell'esecuzione del programma.
 
-@cindex comando del debugger, @code{undisplay}
-@cindex @code{undisplay}, comando del debugger
-@cindex interruzione visualizzazioni automatiche, nel debugger
+@cindex comando del debugger @subentry @code{undisplay}
+@cindex @code{undisplay} (comando del debugger)
+@cindex interruzione visualizzazioni automatiche @subentry nel debugger
 @item @code{undisplay} [@var{n}]
 Rimuove l'elemento numero @var{n} (o tutti gli elementi, se non vi sono
 argomenti) dalla lista delle visualizzazioni automatiche.
 
-@cindex comando del debugger, @code{unwatch}
-@cindex @code{unwatch}, comando del debugger
+@cindex comando del debugger @subentry @code{unwatch}
+@cindex @code{unwatch} (comando del debugger)
 @cindex cancellare punto d'osservazione
 @item @code{unwatch} [@var{n}]
 Rimuove l'elemento numero @var{n} (o tutti gli elementi, se non vi sono
@@ -32922,16 +33068,16 @@ all'interno della pila per vedere qual era lo stato 
delle cose nelle funzioni
 che hanno chiamato quella in cui ci si trova.  I comandi per far questo sono:
 
 @table @asis
-@cindex comando del debugger, @code{bt} (alias per @code{backtrace})
-@cindex comando del debugger, @code{backtrace}
-@cindex comando del debugger, @code{where} (alias per @code{backtrace})
-@cindex @code{backtrace}, comando del debugger
-@cindex @code{bt}, comando del debugger (alias per @code{backtrace})
-@cindex @code{where}, comando del debugger (alias per @code{backtrace})
-@cindex chiamate, @dfn{stack} (pila) delle, mostrare nel debugger
-@cindex @dfn{stack} (pila) delle chiamate, mostrare nel debugger
-@cindex pila (@dfn{stack}) delle chiamate, mostrare nel debugger
-@cindex tracciatura a ritroso, mostrare nel debugger
+@cindex comando del debugger @subentry @code{bt} (alias per @code{backtrace})
+@cindex comando del debugger @subentry @code{backtrace}
+@cindex comando del debugger @subentry @code{where} (alias per 
@code{backtrace})
+@cindex @code{backtrace} (comando del debugger)
+@cindex @code{bt} (comando del debugger) @subentry (alias per @code{backtrace})
+@cindex @code{where} (comando del debugger) @subentry (alias per 
@code{backtrace})
+@cindex descrizione di @subentry @dfn{stack}, pila delle @subentry nel debugger
+@cindex @dfn{stack} (pila) delle chiamate @subentry visualizzare nel debugger
+@cindex pila (@dfn{stack}) delle chiamate @subentry visualizzare nel debugger
+@cindex tracciatura a ritroso @subentry mostrare nel debugger
 @item @code{backtrace} [@var{contatore}]
 @itemx @code{bt} [@var{contatore}]
 @itemx @code{where} [@var{contatore}]
@@ -32943,16 +33089,16 @@ ritroso mostra il nome e gli argomenti di ciascuna 
funzione, il sorgente
 viene mantenuto per i vecchi utenti di GDB che potrebbero essere abituati a
 quel comando.
 
-@cindex comando del debugger, @code{down}
-@cindex @code{down}, comando del debugger
+@cindex comando del debugger @subentry @code{down}
+@cindex @code{down} (comando del debugger)
 @item @code{down} [@var{contatore}]
 Sposta @var{contatore} (default 1) frame sotto la pila verso il frame pi@`u 
interno.
 Poi seleziona e stampa il frame.
 
-@cindex comando del debugger, @code{f} (alias per @code{frame})
-@cindex comando del debugger, @code{frame}
-@cindex @code{frame}, comando del debugger
-@cindex @code{f}, comando del debugger (alias per @code{frame})
+@cindex comando del debugger @subentry @code{f} (alias per @code{frame})
+@cindex comando del debugger @subentry @code{frame}
+@cindex @code{frame} (comando del debugger)
+@cindex @code{f} (comando del debugger) @subentry (alias per @code{frame})
 @item @code{frame} [@var{n}]
 @itemx @code{f} [@var{n}]
 Seleziona e stampa lo @dfn{stack frame} @var{n}.  Il frame 0 @`e quello
@@ -32962,8 +33108,8 @@ col numero pi@`u alto @`e quello per il programma 
principale.  Le informazioni
 stampate comprendono il numero di frame, i nomi delle funzioni e degli
 argomenti, i file sorgenti e le righe sorgenti.
 
-@cindex comando del debugger, @code{up}
-@cindex @code{up}, comando del debugger
+@cindex comando del debugger @subentry @code{up}
+@cindex @code{up} (comando del debugger)
 @item @code{up} [@var{contatore}]
 Sposta @var{contatore} (default 1) frame sopra la pila verso il frame pi@`u
 esterno.  Poi seleziona e stampa il frame.
@@ -32980,10 +33126,10 @@ quest'informazione, chiamato convenientemente 
@code{info}.  @code{info}
 sapere:
 
 @table @asis
-@cindex comando del debugger, @code{i} (alias per @code{info})
-@cindex comando del debugger, @code{info}
-@cindex @code{info}, comando del debugger
-@cindex @code{i}, comando del debugger (alias per @code{info})
+@cindex comando del debugger @subentry @code{i} (alias per @code{info})
+@cindex comando del debugger @subentry @code{info}
+@cindex @code{info} (comando del debugger)
+@cindex @code{i} (comando del debugger) @subentry (alias per @code{info})
 @item @code{info} @var{cosa}
 @itemx @code{i} @var{cosa}
 Il valore di @var{cosa} dovrebbe essere uno dei seguenti:
@@ -32991,39 +33137,40 @@ Il valore di @var{cosa} dovrebbe essere uno dei 
seguenti:
 @c nested table
 @table @code
 @item args
-@cindex mostrare argomenti delle funzioni, nel debugger
-@cindex debugger, mostrare argomenti delle funzioni
+@cindex mostrare nel debugger @subentry argomenti delle funzioni
+@cindex debugger @subentry mostrare argomenti delle funzioni
 Elenca gli argomenti del frame selezionato.
 
 @item break
-@cindex mostrare punti d'interruzione, nel debugger
-@cindex debugger, mostrare punti d'interruzione
+@cindex mostrare nel debugger @subentry punti d'interruzione
+@cindex debugger @subentry mostrare punti d'interruzione
 Elenca tutti i punti d'interruzione attualmente impostati.
 
 @item display
-@cindex visualizzazioni automatiche, nel debugger
-@cindex debugger, visualizzazioni automatiche
+@cindex visualizzazioni automatiche @subentry nel debugger
+@cindex debugger @subentry visualizzazioni automatiche
 Elenca tutti gli elementi della lista delle visualizzazioni automatiche.
 
 @item frame
-@cindex descrizione degli @dfn{stack frame} delle chiamate, nel debugger
-@cindex debugger, descrizione degli @dfn{stack frame} delle chiamate
+@cindex descrizione di @subentry @dfn{stack frame} delle chiamate @subentry 
nel debugger
+@cindex debugger @subentry descrizione degli @dfn{stack frame} delle chiamate
 D@`a una descrizione degli @dfn{stack frame} selezionati.
 
 @item functions
-@cindex elencare definizioni delle funzioni, nel debugger
-@cindex debugger, elencare definizioni delle funzioni
+@cindex elencare @subentry definizioni delle funzioni @subentry nel debugger
+@cindex debugger @subentry elencare definizioni delle funzioni
 Elenca tutte le definizioni delle funzioni compresi i @value{FNS} e
 i numeri di riga.
 
 @item locals
-@cindex mostrare variabili locali, nel debugger
-@cindex debugger, mostrare variabili locali
+@cindex mostrare nel debugger @subentry variabili locali
+@cindex debugger @subentry mostrare variabili locali
 Elenca le variabili locali dei frame selezionati.
 
 @item source
-@cindex mostrare il nome del file sorgente corrente, nel debugger
-@cindex debugger, mostrare il nome del file sorgente corrente
+@cindex mostrare nel debugger @subentry nome del file sorgente corrente
+@cindex debugger @subentry mostrare il nome del file sorgente corrente
+@cindex file @subentry sorgente corrente, mostrare nel debugger
 Stampa il nome del file sorgente corrente.  Ogni volta che il programma si
 interrompe, il file sorgente corrente @`e il file che contiene l'istruzione
 corrente.  Quando il debugger viene avviato per la prima volta, il file
@@ -33032,18 +33179,18 @@ Il comando @samp{list 
@var{nome-file}:@var{numero-riga}} pu@`o essere usato in
 qualsiasi momento per cambiare il sorgente corrente.
 
 @item sources
-@cindex mostrare tutti i file sorgente, nel debugger
-@cindex debugger, mostrare tutti i file sorgenti
-Elenca tutti i sorgenti del programma.
+@cindex mostrare nel debugger @subentry nome di tutti i file sorgente
+@cindex debugger @subentry mostrare il nome di tutti i file sorgente
+Elenca tutti i file sorgente del programma.
 
 @item variables
-@cindex elencare tutte le variabili locali, nel debugger
-@cindex debugger, elencare tutte le variabili locali
+@cindex elencare @subentry tutte le variabili locali @subentry nel debugger
+@cindex debugger @subentry elencare tutte le variabili locali
 Elenca tutte le variabili locali.
 
 @item watch
-@cindex mostrare i punti d'osservazione, nel debugger
-@cindex debugger, mostrare i punti d'osservazione
+@cindex mostrare nel debugger @subentry punti d'osservazione
+@cindex debugger @subentry mostrare i punti d'osservazione
 Elenca tutti gli elementi della lista dei punti d'osservazione.
 @end table
 @end table
@@ -33053,12 +33200,12 @@ salvare lo stato del debugger e la capacit@`a di 
eseguire comandi del debugger
 da un file.  I comandi sono:
 
 @table @asis
-@cindex comando del debugger, @code{o} (alias per @code{option})
-@cindex comando del debugger, @code{option}
-@cindex @code{option}, comando del debugger
-@cindex @code{o}, comando del debugger (alias per @code{option})
+@cindex comando del debugger @subentry @code{o} (alias per @code{option})
+@cindex comando del debugger @subentry @code{option}
+@cindex @code{option} (comando del debugger)
+@cindex @code{o} (comando del debugger) @subentry (alias per @code{option})
 @cindex visualizzare le opzioni del debugger
-@cindex debugger, opzioni del
+@cindex debugger @subentry opzioni del
 @item @code{option} [@var{nome}[@code{=}@var{valore}]]
 @itemx @code{o} [@var{nome}[@code{=}@var{valore}]]
 Senza argomenti, visualizza le opzioni del debugger disponibili e i loro valori
@@ -33071,56 +33218,57 @@ Le opzioni disponibili sono:
 @c asis for docbook
 @table @asis
 @item @code{history_size}
-@cindex debugger, dimensione della cronologia
+@cindex debugger @subentry dimensione della cronologia
 Imposta il numero massimo di righe da mantenere nel file della cronologia
 @file{./.gawk_history}.  Il valore di default @`e 100.
 
 @item @code{listsize}
-@cindex debugger, numero di righe nella lista di default
+@cindex debugger @subentry numero di righe nella lista di default
 Specifica il numero di righe che @code{list} deve stampare. Il valore di
 default @`e 15.
 
 @item @code{outfile}
-@cindex ridirezionare l'output di @command{gawk}, nel debugger
-@cindex debugger, ridirezionare l'output di @command{gawk}
+@cindex ridirezionare l'output di @command{gawk} @subentry nel debugger
+@cindex debugger @subentry ridirezionare l'output di @command{gawk}
 Invia l'output di @command{gawk} in un file; l'output del debugger @`e
 visualizzato comunque anche
 nello standard output. Assegnare come valore stringa vuota (@code{""})
 reimposta l'output solo allo standard output.
 
 @item @code{prompt}
-@cindex debugger, prompt
+@cindex debugger @subentry prompt
+@cindex prompt del debugger
 Cambia la riga per l'immissione dei comandi del debugger.  Il valore di
 default @`e @samp{@w{gawk> }}.
 
 @item @code{save_history} [@code{on} | @code{off}]
-@cindex debugger, file della cronologia
+@cindex debugger @subentry file della cronologia
 Salva la cronologia dei comandi nel file @file{./.gawk_history}.
 L'impostazione di default @`e @code{on}.
 
 @item @code{save_options} [@code{on} | @code{off}]
-@cindex salvataggio opzioni, nel debugger
-@cindex debugger, salvataggio opzioni
+@cindex salvataggio opzioni @subentry nel debugger
+@cindex debugger @subentry salvataggio opzioni
 Salva le opzioni correnti nel file @file{./.gawkrc} all'uscita.
 L'impostazione di default @`e @code{on}.
 Le opzioni sono lette di nuovo all'avvio della sessione successiva.
 
 @item @code{trace} [@code{on} | @code{off}]
-@cindex istruzioni, tener traccia delle, nel debugger
-@cindex debugger, tener traccia delle istruzioni
+@cindex istruzioni @subentry tener traccia delle @subentry nel debugger
+@cindex debugger @subentry tener traccia delle istruzioni
 Attiva o disattiva il tracciamento delle istruzioni. L'impostazione di default
 @`e @code{off}.
 @end table
 
-@cindex debugger, salvare dei comandi su un file
-@cindex salvare dei comandi su un file, nel debugger
+@cindex debugger @subentry salvare dei comandi su un file
+@cindex salvare dei comandi su un file @subentry nel debugger
 @item @code{save} @var{nome-file}
 Salva i comandi eseguiti nella sessione corrente nel @value{FN} indicato,
 in modo da poterli ripetere in seguito usando il comando @command{source}.
 
 @item @code{source} @var{nome-file}
-@cindex debugger, leggere comandi da un file
-@cindex leggere comandi da un file, nel debugger
+@cindex debugger @subentry leggere comandi da un file
+@cindex leggere @subentry comandi da un file nel debugger
 Esegue comandi contenuti in un file; un errore in un comando non impedisce
 l'esecuzione dei comandi successivi.  In un file di comandi sono consentiti
 i commenti (righe che iniziano con @samp{#}).
@@ -33144,8 +33292,8 @@ Ci sono alcuni altri comandi che non rientrano nelle 
precedenti categorie,
 come i seguenti:
 
 @table @asis
-@cindex comando del debugger, @code{dump}
-@cindex @code{dump}, comando del debugger
+@cindex comando del debugger @subentry @code{dump}
+@cindex @code{dump} (comando del debugger)
 @item @code{dump} [@var{nome-file}]
 Riversa il @dfn{byte code} del programma nello standard output o nel file
 definito in @var{nome-file}.  Questo stampa una rappresentazione delle
@@ -33208,28 +33356,28 @@ gawk>
 @end group
 @end smallexample
 
-@cindex comando del debugger, @code{exit}
-@cindex @code{exit}, comando del debugger
+@cindex comando del debugger @subentry @code{exit}
+@cindex @code{exit} (comando del debugger)
 @cindex uscire dal debugger
-@cindex debugger, uscire dal
+@cindex debugger @subentry uscire dal
 @item @code{exit}
 Esce dal debugger.
 Si veda la voce @samp{quit}, pi@`u avanti in quest'elenco.
 
-@cindex comando del debugger, @code{h} (alias per @code{help})
-@cindex comando del debugger, @code{help}
-@cindex @code{help}, comando del debugger
-@cindex @code{h}, comando del debugger (alias per @code{help})
+@cindex comando del debugger @subentry @code{h} (alias per @code{help})
+@cindex comando del debugger @subentry @code{help}
+@cindex @code{help} (comando del debugger)
+@cindex @code{h} (comando del debugger) @subentry (alias per @code{help})
 @item @code{help}
 @itemx @code{h}
 Stampa una lista di tutti i comandi del debugger di @command{gawk} con un breve
 sommario su come usarli.  @samp{help @var{comando}} stampa l'informazione sul
 comando @var{comando}.
 
-@cindex comando del debugger, @code{l} (alias per @code{list})
-@cindex comando del debugger, @code{list}
-@cindex @code{list}, comando del debugger
-@cindex @code{l}, comando del debugger (alias per @code{list})
+@cindex comando del debugger @subentry @code{l} (alias per @code{list})
+@cindex comando del debugger @subentry @code{list}
+@cindex @code{list} (comando del debugger)
+@cindex @code{l} (comando del debugger) @subentry (alias per @code{list})
 @item @code{list} [@code{-} | @code{+} | @var{n} | 
@var{nome-file}@code{:}@var{n} | @var{n}--@var{m} | @var{funzione}]
 @itemx @code{l} [@code{-} | @code{+} | @var{n} | 
@var{nome-file}@code{:}@var{n} | @var{n}--@var{m} | @var{funzione}]
 Stampa le righe specificate (per default 15) dal file sorgente corrente
@@ -33260,12 +33408,12 @@ Stampa righe centrate attorno all'inizio della 
funzione @var{function}.
 Questo comando pu@`o cambiare il file sorgente corrente.
 @end table
 
-@cindex comando del debugger, @code{q} (alias per @code{quit})
-@cindex comando del debugger, @code{quit}
-@cindex @code{quit}, comando del debugger
-@cindex @code{q}, comando del debugger (alias per @code{quit})
+@cindex comando del debugger @subentry @code{q} (alias per @code{quit})
+@cindex comando del debugger @subentry @code{quit}
+@cindex @code{quit} (comando del debugger)
+@cindex @code{q} (comando del debugger) @subentry (alias per @code{quit})
 @cindex uscire dal debugger
-@cindex debugger, uscire dal
+@cindex debugger @subentry uscire dal
 @item @code{quit}
 @itemx @code{q}
 Esce dal debugger.  Fare il debug @`e divertente, ma noi tutti a volte
@@ -33275,8 +33423,8 @@ prima, se si sta eseguendo un programma, il debugger 
avverte quando si batte
 @samp{q} o @samp{quit}, in modo da essere sicuri di voler realmente abbandonare
 il debug.
 
-@cindex comando del debugger, @code{trace}
-@cindex @code{trace}, comando del debugger
+@cindex comando del debugger @subentry @code{trace}
+@cindex @code{trace} (comando del debugger)
 @item @code{trace} [@code{on} | @code{off}]
 Abilita o disabilita la stampa continua delle istruzioni che si stanno per
 eseguire, assieme alle righe di @command{awk} che implementano.
@@ -33291,10 +33439,10 @@ familiari.
 
 @node Supporto per Readline
 @section Supporto per Readline
-@cindex completamento dei comandi, nel debugger
-@cindex debugger, completamento dei comandi nel
-@cindex espansione della cronologia, nel debugger
-@cindex debugger, espansione della cronologia
+@cindex completamento dei comandi @subentry nel debugger
+@cindex debugger @subentry completamento dei comandi nel
+@cindex espansione della cronologia @subentry nel debugger
+@cindex debugger @subentry espansione della cronologia
 
 Se @command{gawk} @`e compilato con
 @uref{http://cnswww.cns.cwru.edu/php/chet/readline/readline.html, la libreria
@@ -33334,8 +33482,8 @@ e
 @node Limitazioni
 @section Limitazioni
 
-@cindex debugger, limitazioni
-@cindex limitazioni del debugger
+@cindex debugger @subentry limitazioni
+@cindex limitazioni @subentry del debugger
 Si spera che il lettore trovi il debugger di @command{gawk} utile e piacevole
 da usare, ma come accade per ogni programma, specialmente nelle sue prime
 versioni, ha ancora delle limitazioni.  Quelle di cui @`e bene essere al 
corrente sono:
@@ -33557,10 +33705,10 @@ Chi ne trovasse, @`e pregato di notificarlo 
(@xref{Bug}).
 @node Spazio-dei-nomi globale
 @section Lo spazio-dei-nomi globale in @command{awk} standard
 
-@cindex spazio-dei-nomi, definizione
-@cindex spazio-dei-nomi, globale, in @command{awk} standard
+@cindex spazio-dei-nomi @subentry definizione
+@cindex spazio-dei-nomi @subentry globale @subentry in @command{awk} standard
 In @command{awk} standard, esiste un unico @dfn{spazio-dei-nomi} globale.
-Ci@`o significa che @emph{tutti} i nomi di funzione e i nomi di variabili 
+Ci@`o significa che @emph{tutti} i nomi di funzione e i nomi di variabili
 globali devono essere unici.
 Per esempio, due differenti file sorgenti di @command{awk},
 se usati insieme,
@@ -33577,8 +33725,8 @@ incidentalmente entrare in conflitto con le variabili 
globali
 ``private'' proprie di un'altra libreria
 (@pxref{Nomi di variabili di libreria}).
 
-@cindex pacchetto, definizione di
-@cindex modulo, definizione di
+@cindex pacchetto @subentry definizione di
+@cindex modulo @subentry definizione di
 Molti altri linguaggi di programmazione risolvono questo problema rendendo
 disponibile qualche tipo di controllo sullo spazio-dei-nomi: un modo per
 poter stabilire che ``questa funzione @`e nello spazio-dei-nomi @var{xxx},
@@ -33597,12 +33745,13 @@ spazi-dei-nomi separati fra loro.
 @node Nomi qualificati
 @section Nomi qualificati
 
-@cindex nome qualificato, definizione di
-@cindex qualificato, nome, definizione di
-@cindex spazio-dei-nomi, nomi qualificati
-@cindex @code{::}, spazio-dei-nomi, separatore
-@cindex nome del componente
-@cindex componente, nome del
+@cindex nomi @subentry qualificati (in uno spazio-dei-nomi) @subentry 
definizione di
+@cindex qualificato @subentry nome @subentry definizione di
+@cindex spazio-dei-nomi @subentry nomi qualificati
+@cindex @code{:} (due punti) @subentry @code{::} @subentry separatore 
spazio-dei-nomi
+@cindex due punti (@code{:}) @subentry @code{::} (separatore spazio-dei-nomi)
+@cindex nomi @subentry di componente (in uno spazio-dei-nomi)
+@cindex componente @subentry spazio-dei-nomi @subentry nome del
 Un @dfn{nome qualificato} @`e un identificativo composto
 dal nome di uno spazio-dei-nomi, da un separatore di spazio-dei-nomi
 (i due caratteri @code{::}), e dal nome di un @dfn{componente}.
@@ -33619,7 +33768,7 @@ operatore.  Non @`e consentito inserire degli spazi di 
separazione fra il
 nome dello spazio-dei-nomi, la notazione @code{::}, e il nome del componente.
 @end quotation
 
-@cindex nome qualificato, uso del
+@cindex nomi @subentry qualificati (in uno spazio-dei-nomi)
 @`E necessario usare nomi qualificati, in uno spazio-dei-nomi, per accedere
 a variabili e funzioni in un altro spazio-dei-nomi.  Ci@`o @`e particolarmente
 importante quando si usano nomi di variabile come indici del vettore
@@ -33630,15 +33779,15 @@ e quando si effettuano chiamate di funzione indirette
 @node Spazio-dei-nomi di default
 @section Lo spazio-dei-nomi di default
 
-@cindex spazio-dei-nomi, default
-@cindex spazio-dei-nomi, @code{awk}
-@cindex @code{awk}, spazio-dei-nomi
+@cindex spazio-dei-nomi @subentry default
+@cindex spazio-dei-nomi @subentry @code{awk}
+@cindex @code{awk} @subentry spazio-dei-nomi
 Lo spazio-dei-nomi di default, ovviamente, @`e @code{awk}.
 Tutte le variabili predefinite di @command{awk} e di @command{gawk}
 sono in questo spazio-dei-nomi, e quindi hanno nomi qualificati come
 @code{awk::ARGC}, @code{awk::NF}, e cos@`{@dotless{i}} via.
 
-@cindex nomi in maiuscolo, spazio-dei-nomi dei
+@cindex nomi @subentry scritti in maiuscolo @subentry sempre nello 
spazio-dei-nomi @code{awk}
 Inoltre, anche se si sta utilizzando uno spazio-dei-nomi differente
 nel file sorgente correntemente in uso
 (@pxref{Cambiare lo spazio-dei-nomi}), @command{gawk}
@@ -33651,9 +33800,12 @@ Ci@`o rende anche pi@`u scorrevole il codice stesso.
 @node Cambiare lo spazio-dei-nomi
 @section Come cambiare lo spazio-dei-nomi
 
-@cindex spazio-dei-nomi, cambiare lo
-@cindex @code{@@namespace}, direttiva
-@cindex direttiva @code{@@namespace}
+@cindex spazio-dei-nomi @subentry cambiare lo
+@cindex cambiare @subentry lo spazio-dei-nomi
+@cindex @code{@@} (chiocciola) @subentry @code{@@namespace} (direttiva)
+@cindex chiocciola (@code{@@}) @subentry @code{@@namespace} (direttiva)
+@cindex direttiva @subentry @code{@@namespace}
+@cindex @code{@@} (chiocciola) @subentry @code{@@namespace} (direttiva)
 Per impostare lo spazio-dei-nomi corrente, si usi una direttiva
 @code{@@namespace}
 al livello principale del programma interessato:
@@ -33682,8 +33834,8 @@ dell'esecuzione del programma.
 Ci@`o va compreso e messo in conto in anticipo.
 @end quotation
 
-@cindex spazio-dei-nomi, implicito
-@cindex implicito, spazio-dei-nomi
+@cindex spazio-dei-nomi @subentry implicito
+@cindex implicito @subentry spazio-dei-nomi
 Ogni file sorgente designato dalle opzioni
 @option{-i} e @option{-f} inizia con una direttiva implicita
 @samp{@@namespace "awk"}.  Analogamente, ogni parte di codice
@@ -33691,8 +33843,10 @@ immesso nella riga di comando, usando l'opzione 
@option{-e}
 ha la stessa implicita direttiva iniziale
 (@pxref{Opzioni}).
 
-@cindex spazio-dei-nomi corrente, cambiare e ripristinare
-@cindex corrente, spazio-dei-nomi, cambiare e ripristinare
+@cindex spazio-dei-nomi @subentry corrente @subentry cambiare e ripristinare
+@cindex cambiare @subentry lo spazio-dei-nomi corrente
+@cindex ripristinare @subentry spazio-dei-nomi corrente
+@cindex corrente @subentry spazio-dei-nomi @subentry cambiare e ripristinare
 I file inclusi con la direttiva @code{@@include} (@pxref{Includere file})
 ``cambiano'' (@dfn{push}) e ``ripristinano'' (@dfn{pop})
 lo spazio-dei-nomi corrente.  Ossia, ogni @code{@@include} salva
@@ -33703,20 +33857,25 @@ Quando @command{gawk} termina di elaborare il file 
incluso,
 lo spazio-dei-nomi salvato @`e ripristinato e l'elaborazione prosegue
 da dove era stata sospesa nel file originale.
 
-@cindex @code{@@namespace}, non riguarda @code{BEGIN}@comma{} 
@code{BEGINFILE}, @code{END}, ed @code{ENDFILE}
-@cindex @code{BEGIN}, regola, ordine di esecuzione non alterato da 
@code{@@namespace}
-@cindex @code{BEGINFILE}, regola, ordine di esecuzione non alterato da 
@code{@@namespace}
-@cindex @code{END}, regola, ordine di esecuzione non alterato da 
@code{@@namespace}
-@cindex @code{ENDFILE}, regola, ordine di esecuzione non alterato da 
@code{@@namespace}
+@cindex @code{@@} (chiocciola) @subentry @code{@@namespace} (direttiva) 
@subentry non riguarda @code{BEGIN}, @code{BEGINFILE}, @code{END}, ed 
@code{ENDFILE}
+@cindex chiocciola (@code{@@}) @subentry @code{@@namespace} (direttiva) 
@subentry non riguarda @code{BEGIN}, @code{BEGINFILE}, @code{END}, ed 
@code{ENDFILE}
+@cindex @code{BEGIN} (regola) @subentry ordine di esecuzione non alterato da 
@code{@@namespace}
+@cindex @code{BEGINFILE} (regola) @subentry ordine di esecuzione non alterato 
da @code{@@namespace}
+@cindex @code{END} (regola) @subentry ordine di esecuzione non alterato da 
@code{@@namespace}
+@cindex @code{ENDFILE} (regola) @subentry ordine di esecuzione non alterato da 
@code{@@namespace}
+@cindex @code{@@} (chiocciola) @subentry @code{@@namespace} (direttiva)
+@cindex chiocciola (@code{@@}) @subentry @code{@@namespace} (direttiva)
 L'uso di @code{@@namespace} non ha influenza sull'ordine di esecuzione delle
 regole @code{BEGIN}, @code{BEGINFILE}, @code{END}, e @code{ENDFILE}.
 
 @node Regole per i nomi
 @section Regole per assegnare nomi a uno spazio-dei-nomi e ai suoi componenti
 
-@cindex nomi, regole per assegnare, agli spazi-dei-nomi e ai loro componenti
-@cindex spazio-dei-nomi, nomi, regole per assegnare
-@cindex componenti di uno spazio-dei-nomi, regole per assegnare i nomi
+@cindex nomi @subentry regole per assegnarli @subentry agli spazi-dei-nomi e 
ai loro componenti
+@cindex spazio-dei-nomi @subentry regole per assegnare i nomi
+@c not "component names" to merge with other index entry
+@cindex spazio-dei-nomi @subentry componenti @subentry regole per assegnare i 
nomi
+@cindex componente @subentry spazio-dei-nomi @subentry regole per assegnare i 
nomi
 Alcune regole vanno seguite nell'attribuire i nomi a uno spazio-dei-nomi
 e alle sue componenti.
 
@@ -33791,9 +33950,9 @@ nomi molto utile.
 @node Gestione interna dei nomi
 @section Come i nomi sono gestiti internamente
 
-@cindex nomi, gestione dei
-@cindex @code{awk} spazio-dei-nomi, memoria che contiene i nomi identificativi
-@cindex @code{awk} spazio-dei-nomi, utilizzo per chiamate indirette di funzione
+@cindex nomi @subentry gestione (in uno spazio-dei-nomi)
+@cindex @code{awk} @subentry spazio-dei-nomi @subentry memoria che contiene i 
nomi identificativi
+@cindex @code{awk} @subentry spazio-dei-nomi @subentry utilizzo per chiamate 
indirette di funzione
 Per compatibilit@`a all'indietro, tutti gli identificatvi nello spazio-dei-nomi
 @code{awk} sono memorizzati internamente come identificativi senza qualifica
 (ossia, senza il prefisso @samp{awk::}).  Ci@`o ha importanza principalmente
@@ -33826,7 +33985,7 @@ function calcola()        @ii{Il nome vero di questa 
funzione @`e} rapporto::com
 @node Esempio di spazio-dei-nomi
 @section Esempio di codice che usa uno spazio-dei-nomi
 
-@cindex spazio-dei-nomi, esempio di codice
+@cindex spazio-dei-nomi @subentry esempio di codice
 L'esempio seguente @`e una versione riveduta dell'insieme di
 script sviluppati in @ref{Funzioni Passwd};
 l@`{@dotless{i}} si pu@`o trovare la descrizione del funzionamento del codice.
@@ -33961,10 +34120,10 @@ Questo
 @value{SECTION} tratta brevemente di come la funzionalit@`a spazio-dei-nomi
 interagisce con altre importanti funzionalit@`a di @command{gawk}.
 
-@cindex spazio-dei-nomi, interazione con la profilazione
-@cindex spazio-dei-nomi, interazione con la stampa elegante
-@cindex profilazione, interazione con spazio-dei-nomi
-@cindex stampa elegante, interazione con spazio-dei-nomi
+@cindex spazio-dei-nomi @subentry interazione con la profilazione
+@cindex spazio-dei-nomi @subentry interazione con la stampa elegante
+@cindex profilazione @subentry interazione con spazio-dei-nomi
+@cindex stampa elegante @subentry interazione con spazio-dei-nomi
 La profilazione e la stampa elegante (@pxref{Profilare}) sono state
 migliorate per trattare gli spazi-dei-nomi e le regole per assegnare nomi in
 uno spazio-dei-nomi @ref{Regole per i nomi}.
@@ -33975,17 +34134,17 @@ In questo modo i nomi dei componenti sono degli
 identificativi semplici, senza dover usare dappertutto degli
 identificativi qualificati.
 
-@cindex spazio-dei-nomi, interazioen con il debugger
-@cindex debugger, interazione con lo spazio-dei-nomi
+@cindex spazio-dei-nomi @subentry interazione con il debugger
+@cindex debugger @subentry interazione con lo spazio-dei-nomi
 L'interazione con il debugger (@pxref{Debugging}) non @`e cambiata
 (almeno fino al momento in cui questo libro @`e stato scritto).
 Alcuni campi interni sono stati modificati per tener conto
 degli spazi-dei-nomi, e il comando @code{dump} del debugger
 @`e stato modificato per lo stesso motivo.
 
-@cindex spazio-dei-nomi, interazione con l'estensione API
-@cindex estensione API, interazione con lo spazio-dei-nomi
-@cindex API, estensione, interazione con lo spazio-dei-nomi
+@cindex spazio-dei-nomi @subentry interazione con l'estensione API
+@cindex estensione API @subentry interazione con lo spazio-dei-nomi
+@cindex API (estensione) @subentry interazione con lo spazio-dei-nomi
 L'estensione API (@pxref{Estensioni dinamiche}) ha sempre previsto
 di avere funzioni in uno spazio-dei-nomi differente, sebbene ci@`o
 non fosse stato ancora implementato.  Tuttavia, le routine di
@@ -34030,7 +34189,7 @@ Questo vale soprattutto per la profilazione / stampa 
elegante
 (@pxref{Profilare}) e per le funzionalit@`a relative alle
 estensioni (@pxref{Estensioni dinamiche}).
 
-@cindex spazio-dei-nomi, compatibilit@`a all'indietro
+@cindex spazio-dei-nomi @subentry compatibilit@`a all'indietro
 @item
 Complessivamente, la funzionalit@`a spazio-dei-nomi @`e stata progettata e
 implementata avendo come preoccupazione quella di mantenere la compatibilit@`a
@@ -34041,10 +34200,10 @@ su una versione di @command{gawk} che abbia la 
funzionalit@`a spazio-dei-nomi.
 
 @node Calcolo con precisione arbitraria
 @chapter Calcolo con precisione arbitraria con @command{gawk}
-@cindex precisione arbitraria
-@cindex precisione multipla
-@cindex precisione infinita
-@cindex virgola mobile, numeri in@comma{} precisione arbitraria
+@cindex precisione @subentry arbitraria
+@cindex precisione @subentry multipla
+@cindex precisione @subentry infinita
+@cindex virgola mobile @subentry numeri in @subentry precisione arbitraria
 
 In questo @value{CHAPTER} si introducono alcuni concetti base su come i
 computer
@@ -34121,9 +34280,10 @@ parte frazionaria, come 1, 42, o @minus{}17.
 Il vantaggio dei numeri interi @`e che essi rappresentano dei valori in maniera
 esatta.  Lo svantaggio @`e che i numeri rappresentabili sono limitati.
 
-@cindex senza segno, interi
-@cindex segno, interi senza
-@cindex interi senza segno
+@cindex senza segno @subentry interi
+@cindex segno @subentry interi senza
+@cindex interi @subentry senza segno
+@cindex numeri @subentry interi @subentry senza segno
 Nei calcolatori, i valori interi sono di due tipi: @dfn{con segno} e
 @dfn{senza segno}.  I valori con segno possono essere negativi o positivi,
 mentre i valori senza segno sono sempre maggiori o uguali a zero.
@@ -34132,8 +34292,8 @@ Nei sistemi informatici, il calcolo con valori interi 
@`e esatto, ma il possibil
 campo di variazione dei valori @`e limitato.  L'elaborazione con numeri interi 
@`e
 pi@`u veloce di quella con numeri in virgola mobile.
 
-@cindex virgola mobile, numeri in
-@cindex numeri in virgola mobile
+@cindex virgola mobile @subentry numeri in
+@cindex numeri @subentry in virgola mobile
 @item La matematica coi numeri in virgola mobile
 I numeri in virgola mobile rappresentano quelli che a scuola sono chiamati
 numeri ``reali'' (cio@`e, quelli che hanno una parte frazionaria, come
@@ -34147,15 +34307,15 @@ nell'hardware dell'elaboratore, entro un intervallo 
di valori limitato.
 Ci sono inoltre librerie di programmi che consentono calcoli, usando numeri in
 virgola mobile, di precisione arbitraria.
 
-@cindex virgola mobile, numeri in@comma{} precisione singola
-@cindex virgola mobile, numeri in@comma{} precisione doppia
-@cindex virgola mobile, numeri in@comma{} precisione arbitraria
-@cindex precisione singola
-@cindex precisione doppia
-@cindex precisione arbitraria
-@cindex singola, precisione
-@cindex doppia, precisione
-@cindex arbitraria, precisione
+@cindex virgola mobile @subentry numeri in @subentry precisione singola
+@cindex virgola mobile @subentry numeri in @subentry precisione doppia
+@cindex virgola mobile @subentry numeri in @subentry precisione arbitraria
+@cindex precisione @subentry singola
+@cindex precisione @subentry doppia
+@cindex precisione @subentry arbitraria
+@cindex singola @subentry precisione
+@cindex doppia precisione
+@cindex arbitraria @subentry precisione
 POSIX @command{awk} usa numeri in virgola mobile a @dfn{doppia precisione},
 che possono gestire pi@`u cifre rispetto ai numeri in virgola mobile a
 @dfn{singola precisione}.  @command{gawk} ha inoltre funzionalit@`a, descritte
@@ -34730,8 +34890,8 @@ $ @kbd{gawk -M 'BEGIN @{ PREC = 113; printf("%0.25f\n", 
1/10) @}'}
 @node Impostare modo di arrotondare
 @subsection Impostare la modalit@`a di arrotondamento
 
-@cindex @code{ROUNDMODE}, variable
-@cindex variabile @code{ROUNDMODE}
+@cindex @code{ROUNDMODE} (variabile)
+@cindex variabile @subentry @code{ROUNDMODE}
 La variabile @code{ROUNDMODE} permette di controllare a livello di programma
 la modalit@`a di arrotondamento.
 La corrispondenza tra @code{ROUNDMODE} e le modalit@`a di arrotondamento IEEE
@@ -34859,9 +35019,9 @@ cambiando la modalit@`a di arrotondamento.
 
 @node Interi a precisione arbitraria
 @section Aritmetica dei numeri interi a precisione arbitraria con 
@command{gawk}
-@cindex numeri interi a precisione arbitraria
-@cindex interi a precisione arbitraria
-@cindex precisione arbitraria, interi a
+@cindex numeri @subentry interi @subentry a precisione arbitraria
+@cindex interi @subentry a precisione arbitraria
+@cindex precisione @subentry arbitraria @subentry interi a
 
 Quando viene specificata l'opzione @option{-M},
 @command{gawk} esegue tutti i calcoli sui numeri interi usando gli interi a
@@ -34918,7 +35078,7 @@ Il risultato di un'operazione aritmetica tra un intero 
e un valore in virgola
 mobile @`e un valore in virgola mobile con precisione uguale alla precisione di
 lavoro.  Il seguente programma calcola l'ottavo termine nella successione di
 Sylvester@footnote{Weisstein, Eric W.
-@cite{Sylvester's Sequence}. From MathWorld---A Wolfram Web Resource
+@cite{Sylvester's Sequence}. From MathWorld --- A Wolfram Web Resource
 @w{(@url{http://mathworld.wolfram.com/SylvestersSequence.html}).}}
 usando una ricorrenza:
 
@@ -35102,8 +35262,8 @@ Si veda
 @node Controllare disponibilit@`a MPFR
 @section Come controllare se MPFR @`e disponibile
 
-@cindex MPFR, controllare se disponibile
-@cindex controllare disponibilit@`a MPFR
+@cindex MPFR @subentry controllare disponibilit@`a
+@cindex controllo @subentry disponibilit@`a MPFR
 Occasionalmente, potrebbe essere utile controllare se @command{gawk} sia stato
 chiamato specificando l'opzione @option{-M}, che consente di effettuare
 calcoli aritmetici di precisione arbitraria.
@@ -35266,6 +35426,7 @@ $ @kbd{echo 0xDeadBeef | gawk '@{ print $1 + 0 @}'}
 speciali. Cos@`{@dotless{i}}, @samp{+nan} e @samp{+NaN} sono la stessa cosa.
 @end itemize
 
+@cindex POSIX @subentry modalit@`a
 Oltre a gestire l'input, @command{gawk} deve anche stampare valori
 ``corretti'' in output, quando un valore sia NaN o infinito.
 A partire dalla @value{PVERSION} 4.2.2, per tali valori
@@ -35352,8 +35513,8 @@ necessaria.
 
 @node Estensioni dinamiche
 @chapter Scrivere estensioni per @command{gawk}
-@cindex estensioni caricate dinamicamente
-@cindex dinamiche, estensioni
+@cindex estensioni @subentry caricare @subentry dinamicamente
+@cindex dinamiche @subentry estensioni
 
 @`E possibile aggiungere nuove funzioni, scritte in C o C++, a @command{gawk}
 usando librerie caricate dinamicamente.  Questa funzionalit@`a @`e disponibile
@@ -35587,8 +35748,8 @@ funzionalit@`a utilizzate nell'estensione.  
(Discrepanze tra le versioni
 
 @node Descrizione dell'estensione API
 @section Una descrizione completa dell'API
-@cindex estensione, API
-@cindex API, estensione
+@cindex estensione API
+@cindex API (estensione)
 
 Il codice sorgente scritto in C o C++ per un'estensione deve includere il
 file di intestazione
@@ -35831,7 +35992,7 @@ Questo
 @node Tipi di dati generali
 @subsection I tipi di dati di impiego generale
 
-@cindex Robbins, Arnold
+@cindex Robbins @subentry Arnold
 @cindex Ramey, Chet
 @quotation
 @i{Ho un vero rapporto di amore/odio con le @dfn{unioni}.}
@@ -36093,8 +36254,8 @@ di @command{gawk} e riduce il tempo richiesto per 
creare il valore.
 @node Funzioni di allocazione memoria
 @subsection Funzioni per allocare memoria e macro di servizio
 @cindex allocare memoria per estensioni
-@cindex estensioni, allocare memoria per
-@cindex memoria, allocare per estensioni
+@cindex estensioni @subentry allocare memoria per
+@cindex memoria @subentry allocare per estensioni
 
 L'API fornisce alcune funzioni per effettuare @dfn{allocazioni di memoria}
 che possono essere passate a @command{gawk}, e anche un certo numero di
@@ -36311,7 +36472,7 @@ dati ottenuti in precedenza tramite una chiamata a
 @node Funzioni di registrazione
 @subsection Funzioni di registrazione
 @cindex registrazione di estensione
-@cindex estensione, registrazione di
+@cindex estensioni @subentry registrazione di
 
 Questa @value{SECTION} descrive le funzioni dell'API per
 registrare parti di un'estensione con @command{gawk}.
@@ -36515,9 +36676,9 @@ registrate, quando viene invocato specificando 
l'opzione @option{--version}.
 
 @node Analizzatori di input
 @subsubsection Analizzatori di input personalizzati
-@cindex personalizzato, analizzatore di input
+@cindex personalizzato @subentry analizzatore di input
 @cindex analizzatore di input personalizzato
-@cindex input, analizzatore di, personalizzato
+@cindex input @subentry analizzatore di @subentry personalizzato
 
 Per default, @command{gawk} legge file di testo come input.  Il valore della
 variabile @code{RS} @`e usato per determinare la fine di un record, e subito
@@ -36857,12 +37018,12 @@ Per un esempio si pu@`o vedere l'estensione di 
esempio @code{readdir_test}.
 
 @node Processori di output
 @subsubsection Registrare un processore di output
-@cindex personalizzato, processore di output
-@cindex processore di output personalizzato
-@cindex output, processore di, personalizzato
+@cindex personalizzato @subentry processore di output
+@cindex processore di output @subentry personalizzato
+@cindex output @subentry processore di @subentry personalizzato
 
 @cindex processore di output
-@cindex output, processore di
+@cindex output @subentry processore di
 Un @dfn{processore di output} @`e l'immagine riflessa di un
 analizzatore di input.
 Consente a un'estensione di prendere il controllo dell'output
@@ -36986,9 +37147,9 @@ Registra il processore di output puntato da 
@code{output_wrapper} con
 
 @node Processori bidirezionali
 @subsubsection Registrare un processore bidirezionale
-@cindex personalizzato, processore bidirezionale
+@cindex personalizzato @subentry processore bidirezionale
 @cindex processore bidirezionale personalizzato
-@cindex bidirezionale, processore  personalizzato
+@cindex bidirezionale @subentry processore  personalizzato
 
 Un @dfn{processore bidirezionale} combina un analizzatore di input e
 un processore di output per un I/O
@@ -37049,9 +37210,9 @@ Registra il processore bidirezionale puntato da 
@code{two_way_processor} con
 
 @node Stampare messaggi
 @subsection Stampare messaggi dalle estensioni
-@cindex stampare messaggi dalle estensioni
-@cindex messaggi, stampare dalle estensioni
-@cindex estensioni, stampare messaggi dalle
+@cindex stampare @subentry messaggi dalle estensioni
+@cindex messaggi @subentry stampare dalle estensioni
+@cindex estensioni @subentry stampare messaggi dalle
 
 @`E possibile stampare diversi tipi di messaggi di avvertimento da
 un'estensione, come qui spiegato.  Si noti che, per queste funzioni,
@@ -37335,8 +37496,8 @@ per ulteriori informazioni riguardo alla creazione di 
vettori.
 @node Accedere alla tabella simboli
 @subsection Accedere alla Tabella dei simboli
 @cindex accedere alle variabili globali dalle estensioni
-@cindex variabili globali, accesso dalle estensioni
-@cindex estensioni, accesso alle variabili globali
+@cindex variabili @subentry globali @subentry accesso dalle estensioni
+@cindex estensioni @subentry accesso alle variabili globali
 
 Due insiemi di routine permettono di accedere alle variabili globali,
 e un insieme consente di creare e rilasciare dei valori nascosti.
@@ -37661,8 +37822,8 @@ la funzione @code{release_value()}.
 
 @node Manipolazione di vettori
 @subsection Manipolazione di vettori
-@cindex vettori, manipolazione nelle estensioni
-@cindex estensioni, manipolazione di vettori nelle
+@cindex vettori @subentry manipolazione nelle estensioni
+@cindex estensioni @subentry manipolazione di vettori nelle
 
 La struttura di dati primaria@footnote{D'accordo, l'unica struttura di dati.}
 in @command{awk} @`e il vettore associativo
@@ -38383,9 +38544,9 @@ insieme contiene informazioni su come @command{gawk} 
@`e stato invocato.
 
 @node Versione dell'estensione
 @subsubsection Costanti e variabili della versione dell'API
-@cindex API, versione dell'estensione
-@cindex versione dell'estensione API @command{gawk}
-@cindex estensione @command{gawk}, versione API
+@cindex API @subentry versione dell'estensione
+@cindex versione @subentry dell'estensione API @command{gawk}
+@cindex estensione API @subentry @command{gawk}, versione API
 
 L'API fornisce sia un numero di versione ``principale'' che uno ``secondario''.
 Le versioni dell'API sono disponibili al momento della compilazione, come
@@ -38503,9 +38664,9 @@ chiama @code{check_mpfr_version()}.
 
 @node Variabili informative di estens. API
 @subsubsection Variabili informative
-@cindex API, variabili informative dell'estensione
-@cindex variabili informative dell'API
-@cindex estensione API, variabili informative
+@cindex API @subentry variabili informative dell'estensione
+@cindex variabili @subentry informative dell'API
+@cindex estensione API @subentry variabili informative
 
 L'API fornisce accesso a parecchie variabili che descrivono
 se le opzioni della riga di comando corrispondenti sono state specificate
@@ -38725,10 +38886,10 @@ C'@`e una nuova API, @code{get_file()}
 
 @node Trovare le estensioni
 @section Come @command{gawk} trova le estensioni compilate
-@cindex estensioni, percorso di ricerca per
-@cindex estensioni, come trovarle
-@cindex trovare le estensioni
-@cindex percorso di ricerca per estensioni
+@cindex estensioni @subentry percorso di ricerca per
+@cindex estensioni @subentry come trovarle
+@cindex trovare @subentry estensioni
+@cindex percorso di ricerca @subentry per estensioni
 
 Le estensioni compilate vanno installate in una directory dove
 @command{gawk} possa trovarle.  Se @command{gawk} @`e configurato e
@@ -38740,8 +38901,8 @@ ricerca di estensioni compilate.
 
 @node Esempio di estensione
 @section Esempio: alcune funzioni per i file
-@cindex estensione, esempio
-@cindex esempio di estensione
+@cindex estensione @subentry esempio
+@cindex esempio @subentry di estensione
 
 @quotation
 @i{In qualunque posto vai, l@`a tu sei.}
@@ -38978,8 +39139,8 @@ static const char *ext_version = "filefuncs extension: 
version 1.0";
 int plugin_is_GPL_compatible;
 @end example
 
-@cindex programmazione, convenzioni di, estensioni @command{gawk}
-@cindex estensioni @command{gawk}, convenzioni di programmazione
+@cindex programmazione @subentry convenzioni di @subentry estensioni 
@command{gawk}
+@cindex estensioni @subentry @command{gawk}, convenzioni di programmazione
 Per convenzione, per una funzione @command{awk} di nome @code{pippo()},
 la funzione C che la implementa @`e chiamata @code{do_pippo()}.  La funzione
 dovrebbe avere due argomenti.  Il primo @`e un numero @code{int}, chiamato
@@ -39338,9 +39499,9 @@ Abbiamo finito!
 @node Usare operazioni interne file
 @subsection Integrare le estensioni
 
-@cindex @command{gawk}, aggiungere funzionalit@`a a
-@cindex funzionalit@`a, aggiungere a @command{gawk}
-@cindex aggiungere funzionalit@`a a @command{gawk}
+@cindex @command{gawk} @subentry aggiungere funzionalit@`a a
+@cindex funzionalit@`a @subentry aggiungere a @command{gawk}
+@cindex aggiungere @subentry funzionalit@`a a @command{gawk}
 Dopo aver scritto il codice, dev'essere possibile aggiungerlo in fase
 di esecuzione all'interprete @command{gawk}.  Per prima cosa, il codice
 va compilato.  Supponendo che le funzioni siano in
@@ -39425,7 +39586,7 @@ $ @kbd{AWKLIBPATH=$PWD gawk -f testff.awk}
 
 @node Esempi di estensione
 @section Le estensioni di esempio incluse nella distribuzione @command{gawk}
-@cindex estensioni distribuite con @command{gawk}
+@cindex estensioni @subentry distribuite con @command{gawk}
 
 Questa @value{SECTION} fornisce una breve panoramica degli esempi di
 estensione inclusi nella distribuzione di @command{gawk}.  Alcune di esse
@@ -39465,16 +39626,16 @@ L'uso @`e il seguente:
 @item @code{@@load "filefuncs"}
 Questo @`e il modo per caricare l'estensione.
 
-@cindex @code{chdir()}, estensione
-@cindex estensione @code{chdir()}
+@cindex @code{chdir()} (estensione)
+@cindex estensione @subentry @code{chdir()}
 @item @code{risultato = chdir("/qualche/directory")}
 La funzione @code{chdir()} invoca a sua volta la chiamata di sistema
 @code{chdir()} per cambiare la directory corrente.  Restituisce zero
 se tutto va bene o un valore minore di zero in caso di errore.
 In quest'ultimo caso, viene aggiornata la variabile @code{ERRNO}.
 
-@cindex @code{stat()}, estensione
-@cindex estensione @code{stat()}
+@cindex @code{stat()} (estensione)
+@cindex estensione @subentry @code{stat()}
 @item @code{risultato = stat("/qualche/percorso", statdata} [@code{, 
follow}]@code{)}
 La funzione @code{stat()} invoca a sua volta la chiamata di sistema
 @code{stat()}.
@@ -39512,7 +39673,7 @@ come quello stampato dal comando
 @command{ls} (per esempio, @code{"-rwxr-xr-x"}) @tab Tutti
 @item @code{"linkval"} @tab Il valore del collegamento simbolico @tab
 Collegamenti simbolici
-@item @code{"type"} @tab Il tipo del file in formato stringa---pu@`o essere
+@item @code{"type"} @tab Il tipo del file in formato stringa --- pu@`o essere
 @code{"file"},
 @code{"blockdev"},
 @code{"chardev"},
@@ -39526,8 +39687,8 @@ o
 (non tutti i sistemi supportano tutti i tipi file) @tab Tutti
 @end multitable
 
-@cindex @code{fts()}, estensione
-@cindex estensione @code{fts()}
+@cindex @code{fts()} (estensione)
+@cindex estensione @subentry @code{fts()}
 @item @code{flags = or(FTS_PHYSICAL, ...)}
 @itemx @code{risultato = fts(pathlist, flags, filedata)}
 Percorre gli alberi di file elencati in @code{pathlist} e riempie il vettore
@@ -39681,8 +39842,8 @@ libreria C @code{fnmatch()}.  Si usa cos@`{@dotless{i}}:
 @item @@load "fnmatch"
 @`E questo il modo per caricare l'estensione.
 
-@cindex @code{fnmatch()}, estensione
-@cindex estensione @code{fnmatch()}
+@cindex @code{fnmatch()} (estensione)
+@cindex estensione @subentry @code{fnmatch()}
 @item risultato = fnmatch(pattern, stringa, flags)
 Il valore restituito @`e zero se tutto va bene, oppure @code{FNM_NOMATCH}
 se la funzione non ha trovato alcuna corrispondenza, o
@@ -39738,8 +39899,8 @@ L'estensione @code{fork} mette a disposizione tre 
funzioni, come segue:
 @item @@load "fork"
 Questo @`e il modo per caricare l'estensione.
 
-@cindex @code{fork()}, estensione
-@cindex estensione @code{fork()}
+@cindex @code{fork()} (estensione)
+@cindex estensione @subentry @code{fork()}
 @item pid = fork()
 Questa funzione crea un nuovo processo. Il valore restituito @`e zero nel
 processo ``figlio'' e il numero che identifica il nuovo processo
@@ -39748,15 +39909,15 @@ in caso di errore. In quest'ultimo caso, @code{ERRNO} 
indica il problema.
 Nel processo figlio, gli elementi @code{PROCINFO["pid"]} e
 @code{PROCINFO["ppid"]} vengono aggiornati per riflettere i valori corretti.
 
-@cindex @code{waitpid()}, estensione
-@cindex estensione @code{waitpid()}
+@cindex @code{waitpid()} (estensione)
+@cindex estensione @subentry @code{waitpid()}
 @item ret = waitpid(pid)
 Questa funzione ha un unico argomento numerico, l'identificativo del processo
 di cui aspettare l'esito. Il codice di ritorno @`e quello restituito dalla
 chiamata di sistema @code{waitpid()}.
 
-@cindex @code{wait()}, estensione
-@cindex estensione @code{wait()}
+@cindex @code{wait()} (estensione)
+@cindex estensione @subentry @code{wait()}
 @item ret = wait()
 Questa funzione attende che il primo processo ``figlio'' termini.
 Il valore restituito @`e quello della chiamata di sistema @code{wait()}.
@@ -39778,8 +39939,8 @@ else
 @node Esempio di estensione Inplace
 @subsection Consentire la modifica in loco dei file
 
-@cindex @code{inplace}, estensione
-@cindex estensione @code{inplace()}
+@cindex @code{inplace} (estensione)
+@cindex estensione @subentry @code{inplace()}
 L'estensione @code{inplace} svolge un lavoro simile a quello
 dell'opzione @option{-i} nel programma di utilit@`a GNU @command{sed},
 che svolge delle funzioni di modifica ``al volo'' su ogni file in input.
@@ -39936,13 +40097,13 @@ L'estensione @code{ordchr} aggiunge due funzioni, di 
nome
 @item @@load "ordchr"
 Questo @`e il modo per caricare l'estensione.
 
-@cindex @code{ord()}, estensione
-@cindex estensione @code{ord()}
+@cindex @code{ord()} (estensione)
+@cindex estensione @subentry @code{ord()}
 @item numero = ord(stringa)
 Restituisce il valore numerico del primo carattere in @code{stringa}.
 
-@cindex @code{Chr}, estensione
-@cindex estensione @code{chr()}
+@cindex @code{Chr} (estensione)
+@cindex estensione @subentry @code{chr()}
 @item char = chr(number)
 Restituisce una stringa il cui primo carattere @`e quello rappresentato
 da @code{number}.
@@ -39965,8 +40126,8 @@ L'estensione @code{readdir} aggiunge un analizzatore di 
input
 per esaminare directory.
 L'uso @`e il seguente:
 
-@cindex @code{readdir}, estensione
-@cindex estensione @code{readdir()}
+@cindex @code{readdir} (estensione)
+@cindex estensione @subentry @code{readdir()}
 @example
 @@load "readdir"
 @end example
@@ -40027,8 +40188,8 @@ come @`e possibile scrivere un processore di output, 
anche se pu@`o essere
 a prima vista vagamente divertente.
 Ecco un esempio:
 
-@cindex @code{revoutput}, estensione
-@cindex estensione @code{revoutput()}
+@cindex @code{revoutput} (estensione)
+@cindex estensione @subentry @code{revoutput()}
 @example
 @@load "revoutput"
 
@@ -40050,8 +40211,8 @@ poi rileggere dal programma @command{awk}.  Il motivo 
per cui @`e stata scritta
 sembrare un programma vagamente divertente.
 Il seguente esempio mostra come usarlo:
 
-@cindex @code{revtwoway}, estensione
-@cindex estensione @code{revtwoway()}
+@cindex @code{revtwoway} (estensione)
+@cindex estensione @subentry @code{revtwoway()}
 @example
 @@load "revtwoway"
 
@@ -40083,16 +40244,16 @@ di nome @code{writea()} e @code{reada()}, come segue:
 @item @@load "rwarray"
 Questo @`e il modo per caricare l'estensione.
 
-@cindex @code{writea()}, estensione
-@cindex estensione @code{writea()}
+@cindex @code{writea()} (estensione)
+@cindex estensione @subentry @code{writea()}
 @item ret = writea(file, vettore)
 Questa funzione ha come argomento una stringa, che @`e il nome del file
 sul quale scaricare il vettore, e il vettore stesso @`e il secondo argomento.
 @code{writea()} @`e in grado di gestire vettori di vettori.  Restituisce il
 valore uno se completa il lavoro o zero se non va a buon fine.
 
-@cindex @code{reada()}, estensione
-@cindex estensione @code{reada()}
+@cindex @code{reada()} (estensione)
+@cindex estensione @subentry @code{reada()}
 @item ret = reada(file, vettore)
 @code{reada()} @`e la funzione inversa di @code{writea()};
 legge il file il cui nome @`e fornito come primo argomento, riempiendo il
@@ -40143,9 +40304,9 @@ di nome @code{readfile()}, e un analizzatore di input:
 @item @@load "readfile"
 Questo @`e il modo per caricare l'estensione.
 
-@cindex @code{readfile()}, estensione
-@cindex estensione @code{readfile()}
-@item risultato = readfile("/qualche/persorso")
+@cindex @code{readfile()} (estensione)
+@cindex estensione @subentry @code{readfile()}
+@item risultato = readfile("/qualche/percorso")
 L'argomento @`e il nome del file da leggere.  Il valore restituito @`e una
 stringa contenente l'intero contenuto del file richiesto.  In caso di errore,
 la funzione restituisce la stringa vuota e imposta @code{ERRNO}.
@@ -40180,8 +40341,8 @@ L'estensione @code{time} aggiunge due funzioni, di nome
 @item @@load "time"
 Questo @`e il modo per caricare l'estensione.
 
-@cindex @code{gettimeofday()}, estensione
-@cindex estensione @code{gettimeofday()}
+@cindex @code{gettimeofday()} (estensione)
+@cindex estensione @subentry @code{gettimeofday()}
 @item ora_corrente = gettimeofday()
 Restituisce il numero di secondi trascorsi dalle ore 00:00 del giorno
 01/01/1970 UTC come valore in virgola mobile.
@@ -40195,8 +40356,8 @@ nella piattaforma in uso, questo @`e il valore 
restituito.  In caso contrario,
 se si sta lavorando con MS-Windows, la chiamata di sistema @`e fatta a
 @code{GetSystemTimeAsFileTime()}.
 
-@cindex @code{sleep()}, estensione
-@cindex estensione @code{sleep()}
+@cindex @code{sleep()} (estensione)
+@cindex estensione @subentry @code{sleep()}
 @item risultato = sleep(@var{secondi})
 Il programma @command{gawk} resta inattivo (dorme) per i @var{secondi}
 specificati.  Se @var{secondi} ha un valore negativo,
@@ -40212,8 +40373,8 @@ ottenere il tempo di attesa richiesto.
 
 @node Esempio di estensione API Test
 @subsection Test per l'API
-@cindex @code{testext}, estensione
-@cindex estensione @code{testext()}
+@cindex @code{testext} (estensione)
+@cindex estensione @subentry @code{testext()}
 
 L'estensione @code{testext} controlla la funzionalit@`a di
 parti dell'estensione API che non sono utilizzate negli altri esempi.
@@ -40225,12 +40386,10 @@ sorgente per maggiori informazioni.
 
 @node gawkextlib
 @section Il progetto @code{gawkextlib}
-@cindex @code{gawkextlib}, estensioni
-@cindex estensioni, @code{gawkextlib}
-@cindex estensioni, dove trovarle
+@cindex estensioni @subentry caricabili @subentry Progetto @code{gawkextlib}
 
-@cindex @code{gawkextlib}, progetto
-@cindex progetto @code{gawkextlib}
+@cindex @code{gawkextlib} (Progetto)
+@cindex progetto @subentry @code{gawkextlib}
 Il progetto @uref{https://sourceforge.net/projects/gawkextlib/, 
@code{gawkextlib}}
 fornisce varie estensioni per @command{gawk}, compresa una per
 l'elaborazione dei file XML.  Questa @`e un'evoluzione del progetto noto come
@@ -40264,8 +40423,8 @@ Estensione analizzatore XML, usando la libreria di 
analisi XML
 @uref{https://expat.sourceforge.net, Expat}
 @end itemize
 
-@cindex @command{git}, programma di utilit@`a
-@cindex programma di utilit@`a @command{git}
+@cindex @command{git} (programma di utilit@`a)
+@cindex programma di utilit@`a @subentry @command{git}
 Si pu@`o scaricare il codice del progetto @code{gawkextlib}
 usando il codice sorgente mantenuto tramite
 @uref{https://git-scm.com, Git}.
@@ -40275,13 +40434,13 @@ Il comando per farlo @`e il seguente:
 git clone git://git.code.sf.net/p/gawkextlib/code gawkextlib-code
 @end example
 
-@cindex RapidJson, libreria per analizzare JSON
-@cindex JSON, RapidJson, libreria per analizzare
+@cindex RapidJson @subentry libreria per analizzare JSON
+@cindex JSON @subentry RapidJson @subentry libreria per analizzare
 Occorre che sia installata la libreria di analisi JSON
 per poter generare e usare l'estensione @code{json}.
 
-@cindex Expat, libreria per analizzare XML
-@cindex XML, Expat, libreria per analizzare
+@cindex Expat @subentry libreria per analizzare XML
+@cindex XML @subentry Expat @subentry libreria per analizzare
 Per poter compilare e usare l'estensione XML, @`e necessario installare
 la libreria di analisi XML @uref{https://expat.sourceforge.net, Expat}.
 
@@ -40592,8 +40751,8 @@ documentazione online}.
 
 @node V7/SVR3.1
 @appendixsec Differenze importanti tra V7 e System V Release 3.1
-@cindex @command{awk}, versioni di
-@cindex @command{awk}, versioni di, differenze tra V7 e SVR3.1
+@cindex @command{awk} @subentry versioni di
+@cindex @command{awk} @subentry versioni di @subentry differenze tra V7 e 
SVR3.1
 
 Il liguaggio @command{awk} si @`e evoluto considerevolmente tra Unix versione
 7 (1978) e la nuova implementazione disponibile a partire da Unix System V
@@ -40683,7 +40842,7 @@ Vettori multidimensionali
 @node SVR4
 @appendixsec Differenze tra le versioni System V Release 3.1 e SVR4
 
-@cindex @command{awk}, versioni di, differenze tra SVR3.1 e SVR4
+@cindex @command{awk} @subentry versioni di @subentry differenze tra SVR3.1 e 
SVR4
 La versione per Unix System V Release 4 (1989) di @command{awk} ha aggiunto
 queste funzionalit@`a (alcune delle quali introdotte da @command{gawk}):
 
@@ -40747,8 +40906,8 @@ effettuato tramite la riga di comando
 
 @node POSIX
 @appendixsec Differenze tra versione SVR4 e POSIX di @command{awk}
-@cindex @command{awk}, versioni di, differenze tra SVR4 e POSIX @command{awk}
-@cindex POSIX @command{awk}, differenze tra versioni @command{awk}
+@cindex @command{awk} @subentry versioni di @subentry differenze tra SVR4 e 
POSIX @command{awk}
+@cindex POSIX @command{awk} @subentry differenze tra versioni @command{awk}
 
 Lo standard POSIX Command Language and Utilities per @command{awk} (1992)
 ha introdotto le seguenti modifiche al linguaggio:
@@ -40807,9 +40966,9 @@ Lo standard POSIX 2008 @`e reperibile online a:
 @node BTL
 @appendixsec Estensioni nell'@command{awk} di Brian Kernighan
 
-@cindex @command{awk}, versioni di, si veda anche Brian Kernighan, 
@command{awk} di
-@cindex estensioni, Brian Kernighan @command{awk}
-@cindex Brian Kernighan, @command{awk} di, estensioni
+@cindex @command{awk} @subentry versioni di @seealso{Brian Kernighan, 
@command{awk} di}
+@cindex estensioni @subentry Brian Kernighan @command{awk}
+@cindex Brian Kernighan @subentry @command{awk} di @subentry estensioni
 @cindex Kernighan, Brian
 Brian Kernighan
 ha reso disponibile la sua versione nel suo sito.
@@ -40855,10 +41014,10 @@ disponibile nel suo @command{awk}.
 @node POSIX/GNU
 @appendixsec Estensioni di @command{gawk} non in POSIX @command{awk}
 
-@cindex modalit@`a compatibile di (@command{gawk}), estensioni nella
-@cindex estensioni nella modalit@`a compatibile di (@command{gawk})
-@cindex estensioni, in @command{gawk}, non in POSIX @command{awk}
-@cindex POSIX, estensioni @command{gawk} non incluse in
+@cindex modalit@`a compatibile di (@command{gawk}) @subentry estensioni nella
+@cindex estensioni @subentry nella modalit@`a compatibile di (@command{gawk})
+@cindex estensioni @subentry in @command{gawk}, non in POSIX @command{awk}
+@cindex POSIX @subentry estensioni @command{gawk} non incluse in
 L'implementazione GNU di @command{gawk} aggiunge molte funzionalit@`a.
 Queste possono essere disabilitate completamente sia con l'opzione
 @option{--traditional} che con l'opzione
@@ -41004,7 +41163,7 @@ per contenere eventuali sottoespressioni individuate 
all'interno di una
 (@pxref{Funzioni per stringhe})
 
 @item
-Specificatori posizionali nei formati di @code{printf} per facilitare
+Specificatori di posizione nei formati di @code{printf} per facilitare
 le traduzioni di messaggi
 (@pxref{Ordinamento di printf})
 
@@ -41488,7 +41647,7 @@ di una @dfn{regexp}
 (@pxref{Funzioni per stringhe}).
 
 @item
-Specificatori posizionali nelle stringhe di formato di @code{printf} per
+Specificatori di posizione nelle stringhe di formato di @code{printf} per
 facilitare la traduzione di messaggi
 (@pxref{Ordinamento di printf}).
 
@@ -41526,7 +41685,7 @@ Le funzioni @code{and()}, @code{or()}, @code{xor()}, 
@code{compl()},
 @end itemize
 
 @item
-@cindex @code{next file} statement
+@cindex @code{next file} (istruzione obsoleta)
 Il supporto per @samp{next file} scritto come due parole @`e stato rimosso
 completamente
 (@pxref{Istruzione nextfile}).
@@ -41758,12 +41917,14 @@ con un possibile miglioramento nei tempi di esecuzione
 @end ifnottex
 
 @item
+@cindex POSIX @subentry modalit@`a
 In aderenza agli standard di codifica GNU, le estensioni dinamiche devono
 definire un simbolo globale che indica che sono compatibili con la
 licenza GPL
 (@pxref{Licenza delle estensioni}).
 
 @item
+@cindex POSIX @subentry modalit@`a
 In modalit@`a POSIX, i confronti tra stringhe usano le funzioni di
 libreria @code{strcoll()} / @code{wcscoll()}
 (@pxref{Confronto POSIX di stringhe}).
@@ -42044,8 +42205,8 @@ dettaglio era stato dimenticato al momento in cui era 
stata preparata la
 @node Estensioni comuni
 @appendixsec Sommario Estensioni Comuni
 
-@cindex estensioni, Brian Kernighan @command{awk}
-@cindex estensioni, @command{mawk}
+@cindex estensioni @subentry Brian Kernighan @command{awk}
+@cindex estensioni @subentry @command{mawk}
 La tabella seguente dettaglia le estensioni comuni supportate
 da @command{gawk}, da Brian Kernighan @command{awk} e da @command{mawk},
 le tre versioni liberamente disponibili pi@`u usate di @command{awk}
@@ -42082,6 +42243,8 @@ Questo
 all'interno di espressioni regolari, le loro relazioni con la localizzazione,
 e l'effetto da ci@`o determinato su diverse versioni di @command{gawk}.
 
+@cindex ASCII
+@cindex EBCDIC
 Gli strumenti originali Unix aventi a che fare con espressioni regolari
 stabilivano che intervalli di caratteri (come @samp{[a-z]}) individuavano
 un carattere qualsiasi tra il primo carattere dell'intervallo e l'ultimo
@@ -42152,6 +42315,7 @@ Un tale risultato dipende dalle impostazioni di 
localizzazione (e quindi
 potrebbe non succedere sul sistema che si sta usando).
 
 @cindex Unicode
+@cindex ASCII
 Considerazioni simili valgono per altri intervalli.  Per esempio, @samp{["-/]}
 @`e perfettamente valido in ASCII, ma non @`e valido in molte localizzazioni
 Unicode, p.es. in @code{en_US.UTF-8}.
@@ -42203,7 +42367,7 @@ In ogni caso @command{gawk} aderisce allo standard 
POSIX.
 
 @node Contributori
 @appendixsec I principali contributori a @command{gawk}
-@cindex @command{gawk}, lista di contributori a
+@cindex @command{gawk} @subentry lista di contributori a
 @quotation
 @i{Riconoscere sempre il merito, se un merito va riconosciuto.}
 @author Anonimo
@@ -42494,7 +42658,7 @@ Juan Manuel Guerrero ha preso in carico la manutenzione 
dellla
 versione DJGPP di @command{gawk}.
 
 @item
-@cindex Robbins, Arnold
+@cindex Robbins @subentry Arnold
 Arnold Robbins
 ha lavorato su @command{gawk} dal 1988, dapprima
 aiutando David Trueman e in seguito, dal 1994 circa, come
@@ -42526,6 +42690,8 @@ Queste estensioni possono essere disabilitate 
specificando l'opzione
 @option{--traditional} o @option{--posix}.
 
 @item
+@cindex ASCII
+@cindex EBCDIC
 L'interazione tra localizzazioni POSIX e individuazione di @dfn{regexp}
 in @command{gawk} @`e stata causa di malintesi nel corso degli anni.  Oggi
 @command{gawk} implementa l'Interpretazione Razionale degli Intervalli
@@ -42547,8 +42713,10 @@ esauriente e attribuisca il giusto riconoscimento 
quando questo @`e dovuto.
 @appendix Installare @command{gawk}
 
 @c last two commas are part of see also
-@cindex sistemi operativi, si veda anche GNU/Linux@comma{} sistemi operativi 
per PC@comma{} Unix
-@cindex @command{gawk}, installare
+@cindex sistemi operativi
+@cindex sistemi operativi @seealso{GNU/Linux}
+@cindex sistemi operativi @seealso{Linux}
+@cindex @command{gawk} @subentry installare
 @cindex installare @command{gawk}
 Quest'appendice contiene istruzioni per installare @command{gawk} sulle
 varie piattaforme supportate dagli sviluppatori.  Lo sviluppatore
@@ -42571,8 +42739,8 @@ della versione specifica di una particolare piattaforma.
 
 @node Distribuzione di Gawk
 @appendixsec La distribuzione di @command{gawk}
-@cindex codice sorgente di @command{gawk}
-@cindex sorgente, codice, @command{gawk}
+@cindex codice sorgente @subentry @command{gawk}
+@cindex sorgente @subentry codice @subentry @command{gawk}
 
 Questa @value{SECTION} spiega come ottenere la distribuzione
 di @command{gawk}, come scompattarla, e cosa @`e contenuto nei vari file
@@ -42586,8 +42754,8 @@ e nelle sottodirectory risultanti.
 
 @node Scaricare
 @appendixsubsec Ottenere la distribuzione di @command{gawk}
-@cindex @command{gawk}, codice sorgente@comma{} ottenere il
-@cindex codice sorgente di @command{gawk}, ottenere il
+@cindex @command{gawk} @subentry codice sorgente @subentry ottenere il
+@cindex codice sorgente @subentry @command{gawk} @subentry ottenere il
 Ci sono due modi per ottenere del software GNU:
 
 @itemize @value{BULLET}
@@ -42670,7 +42838,7 @@ Si dovrebbe sentire un esperto di quel sistema.
 
 @node Contenuti della distribuzione
 @appendixsubsec Contenuti della distribuzione @command{gawk}
-@cindex @command{gawk}, distribuzione di
+@cindex @command{gawk} @subentry distribuzione di
 @cindex distribuzione di @command{gawk}
 
 La distribuzione di @command{gawk} contiene un certo numero di file
@@ -42732,8 +42900,8 @@ sono lasciati indefiniti, o ai quali @command{gawk} non 
pu@`o conformarsi
 pienamente, come pure una lista di specifiche che lo standard POSIX dovrebbe
 contenere, ma che non sono presenti.
 
-@cindex intelligenza artificiale, @command{gawk} e
-@cindex @command{gawk} e l'intelligenza artificiale
+@cindex intelligenza artificiale @subentry @command{gawk} e
+@cindex @command{gawk} @subentry e l'intelligenza artificiale
 @item doc/awkforai.txt
 Puntatori alla bozza originale di un breve articolo
 che spiega perch@'e @command{gawk} @`e un linguaggio adatto alla
@@ -42948,14 +43116,14 @@ usando il comando GNU Autoconf.
 @ifnotinfo
 (Il software Autoconf @`e
 descritto in dettaglio in
-@cite{Autoconf---Generating Automatic Configuration Scripts},
+@cite{Autoconf --- Generating Automatic Configuration Scripts},
 che pu@`o essere trovato in rete sul sito
 @uref{https://www.gnu.org/software/autoconf/manual/index.html,
 della Free Software Foundation}.)
 @end ifnotinfo
 @ifinfo
 (Il software Autoconf @`e descritto in dettaglio a partire da
-@inforef{Top, , Autoconf, autoconf,Autoconf---Generating Automatic 
Configuration Scripts}.)
+@inforef{Top, , Autoconf, autoconf,Autoconf --- Generating Automatic 
Configuration Scripts}.)
 @end ifinfo
 
 Per configurare @command{gawk} basta eseguire @command{configure}:
@@ -43030,34 +43198,34 @@ su altre piattaforme, la posizione corretta pu@`o 
essere differente.
 
 @table @command
 
-@cindex @command{gawkpath_default}, funzione della shell
-@cindex funzione della shell @command{gawkpath_default}
+@cindex @command{gawkpath_default} (funzione della shell)
+@cindex funzione della shell @subentry @command{gawkpath_default}
 @item gawkpath_default
 Ripristina la variabile d'ambiente @env{AWKPATH} al suo valore di default.
 
-@cindex @command{gawkpath_prepend}, funzione della shell
-@cindex funzione della shell @command{gawkpath_prepend}
+@cindex @command{gawkpath_prepend} (funzione della shell)
+@cindex funzione della shell @subentry @command{gawkpath_prepend}
 @item gawkpath_prepend
 Aggiunge l'argomento all'inizio della variabile d'ambiente @env{AWKPATH}.
 
-@cindex @command{gawkpath_append}, funzione della shell
-@cindex funzione della shell @command{gawkpath_append}
+@cindex @command{gawkpath_append} (funzione della shell)
+@cindex funzione della shell @subentry @command{gawkpath_append}
 @item gawkpath_append
 Aggiunge l'argomento alla fine della variabile d'ambiente @env{AWKPATH}.
 
-@cindex @command{gawklibpath_default}, funzione della shell
-@cindex funzione della shell @command{gawklibpath_default}
+@cindex @command{gawklibpath_default} (funzione della shell)
+@cindex funzione della shell @subentry @command{gawklibpath_default}
 @item gawklibpath_default
 Reimposta la variabile d'ambiente @env{AWKLIBPATH} al suo valore di default.
 
-@cindex @command{gawklibpath_prepend}, funzione della shell
-@cindex funzione della shell @command{gawklibpath_prepend}
+@cindex @command{gawklibpath_prepend} (funzione della shell)
+@cindex funzione della shell @subentry @command{gawklibpath_prepend}
 @item gawklibpath_prepend
 Aggiunge l'argomento all'inizio della variabile d'ambiente
 @env{AWKLIBPATH}.
 
-@cindex @command{gawklibpath_append}, funzione della shell
-@cindex funzione della shell @command{gawklibpath_append}
+@cindex @command{gawklibpath_append} (funzione della shell)
+@cindex funzione della shell @subentry @command{gawklibpath_append}
 @item gawklibpath_append
 Aggiunge l'argomento alla fine della variabile d'ambiente
 @env{AWKLIBPATH}.
@@ -43067,8 +43235,9 @@ Aggiunge l'argomento alla fine della variabile 
d'ambiente
 
 @node Ulteriori opzioni di configurazione
 @appendixsubsec Ulteriori opzioni di configurazione
-@cindex @command{gawk}, configurazione, opzioni di
-@cindex configurazione di @command{gawk}, opzioni di
+@cindex @command{gawk} @subentry configurazione @subentry opzioni di
+@cindex configurazione di @command{gawk} @subentry opzioni di
+@cindex opzioni di configurazione @subentry di @command{gawk}
 
 Ci sono parecchie altre opzioni che si possono utilizzare sulla riga
 di comando di @command{configure}
@@ -43076,8 +43245,8 @@ quando si compila @command{gawk} a partire dai 
sorgenti, tra cui:
 
 @table @code
 
-@cindex @option{--disable-extensions}, opzione di configurazione
-@cindex opzione di configurazione @code{--disable-extensions}
+@cindex @option{--disable-extensions} (opzione di configurazione)
+@cindex opzioni di configurazione @subentry @option{--disable-extensions}
 @item --disable-extensions
 Disabilita il meccanismo delle estensioni all'interno di
 @command{gawk}.  Specificando quest'opzione non @`e possibile
@@ -43090,8 +43259,8 @@ su un'altra piattaforma.
 L'azione di default @`e di controllare dinamicamente se le estensioni
 possono essere configurate e compilate.
 
-@cindex @option{--disable-lint}, opzione di configurazione
-@cindex opzione di configurazione @code{--disable-lint}
+@cindex @option{--disable-lint} (opzione di configurazione)
+@cindex opzioni di configurazione @subentry @code{--disable-lint}
 @item --disable-lint
 Disabilitare i controlli @dfn{lint} all'interno di @command{gawk}.  Le opzioni
 @option{--lint} e @option{--lint-old}
@@ -43115,23 +43284,23 @@ Se si usa quest'opzione alcuni dei test di 
funzionalit@`a non avranno successo.
 Quest'opzione potr@`a essere rimossa in futuro.
 @end quotation
 
-@cindex @option{--disable-mpfr}, opzione di configurazione
-@cindex opzione di configurazione @code{--disable-mpfr}
+@cindex @option{--disable-mpfr} (opzione di configurazione)
+@cindex opzioni di configurazione @subentry @code{--disable-mpfr}
 @item --disable-mpfr
 Non effettuare il controllo delle librerie MPFR e GMP.
 Ci@`o pu@`o essere utile principalmente per gli sviluppatori,
 per assicurarsi che tutto funzioni regolarmente nel caso in cui
 il supporto MPFR non sia disponibile.
 
-@cindex @option{--disable-nls}, opzione di configurazione
-@cindex opzione di configurazione @code{--disable-nls}
+@cindex @option{--disable-nls} (opzione di configurazione)
+@cindex opzioni di configurazione @subentry @code{--disable-nls}
 @item --disable-nls
 Non attivare la traduzione automatica dei messaggi.
 Ci@`o normalmente non @`e consigliabile, ma pu@`o apportare qualche lieve
 miglioramento nei tempi di esecuzione di un programma.
 
-@cindex @option{--enable-versioned-extension-dir}, opzione di configurazione
-@cindex opzione di configuzazione @code{--enable-versioned-extension-dir}
+@cindex @option{--enable-versioned-extension-dir} (opzione di configurazione)
+@cindex opzioni di configurazione @subentry 
@code{--enable-versioned-extension-dir}
 @item --enable-versioned-extension-dir
 Usare una directory con l'indicazione della versione per le estensioni.
 Il nome della directory conterr@`a la versione principale e quella
@@ -43147,7 +43316,7 @@ delle opzioni disponibili in @command{configure}.
 @node Filosofia della configurazione
 @appendixsubsec Il processo di configurazione
 
-@cindex @command{gawk}, configurazione di
+@cindex @command{gawk} @subentry configurazione di
 @cindex configurazione di @command{gawk}
 Questa @value{SECTION} interessa solo a chi abbia un minimo di familiarit@`a 
con
 il linguaggio C e con i sistemi operativi di tipo Unix.
@@ -43173,7 +43342,7 @@ corrente.  Per esempio, pu@`o non esserci l'elemento 
@code{st_blksize} nella
 struttura @code{stat}.  In questo caso, @samp{HAVE_STRUCT_STAT_ST_BLKSIZE} @`e
 indefinito.
 
-@cindex @code{custom.h}, file
+@cindex @code{custom.h} (file)
 @`E possible che il compilatore C del sistema in uso "tragga in inganno"
 @command{configure}.  Pu@`o succedere nel caso in cui non viene restituito
 un errore se una funzione di libreria non @`e disponibile.  Per superare questo
@@ -43208,9 +43377,9 @@ vari sistemi non-Unix.
 @node Installazione su PC
 @appendixsubsec Installazione su MS-Windows
 
-@cindex PC, @command{gawk} su sistemi operativi
-@cindex sistemi operativi per PC, @command{gawk} su
-@cindex installare @command{gawk} su sistemi operativi per PC
+@cindex PC @subentry @command{gawk} su sistemi operativi
+@cindex sistemi operativi @subentry per PC @subentry @command{gawk} su
+@cindex installare @command{gawk} @subentry su sistemi operativi per PC
 Questa @value{SECTION} tratta dell'installazione e uso di @command{gawk}
 su macchine con architettura Intel che eseguono qualsiasi versione di
 MS-Windows.
@@ -43232,6 +43401,7 @@ Si veda anche il file @file{README_d/README.pc} nella 
distribuzione.
 
 @node Installazione binaria su PC
 @appendixsubsubsec Installare una distribuzione predisposta per sistemi 
MS-Windows
+@cindex installare @command{gawk} @subentry su MS-Windows
 
 La sola distribuzione binaria predisposta supportata per i sistem MS-Windows
 @`e quella messa a disposizione da Eli Zaretskii
@@ -43247,7 +43417,7 @@ Il file @file{README_d/README.pc} nella distribuzione 
@command{gawk}
 contiene ulteriori annotazioni, e il file @file{pc/Makefile} contiene
 informazioni importanti sulle opzioni di compilazione.
 
-@cindex compilare @command{gawk} per MS-Windows
+@cindex compilare @command{gawk} @subentry per MS-Windows
 Per compilare @command{gawk} per Windows32, occorre copiare i file
 dalla directory @file{pc} (@emph{tranne} il file @file{ChangeLog}) alla
 directory che contiene il resto dei sorgenti di @command{gawk}, e quindi
@@ -43267,8 +43437,8 @@ usando gli strumenti MinGW, scrivere @samp{make 
mingw32}.
 
 @node Uso su PC
 @appendixsubsubsec Usare @command{gawk} su sistemi operativi PC
-@cindex PC, @command{gawk} su sistemi operativi
-@cindex sistemi operativi PC, @command{gawk} su
+@cindex PC @subentry @command{gawk} su sistemi operativi per
+@cindex sistemi operativi @subentry per PC @subentry @command{gawk} su
 
 Sotto MS-Windows, l'ambiente MinGW consente di usare
 sia l'operatore @samp{|&} che le operazioni su rete TCP/IP
@@ -43276,12 +43446,12 @@ sia l'operatore @samp{|&} che le operazioni su rete 
TCP/IP
 L'ambiente DJGPP non consente di usare @samp{|&}.
 
 @cindex percorso di ricerca
-@cindex percorso di ricerca per file sorgente
-@cindex @command{gawk}, versione MS-Windows di
-@cindex @code{;} (punto e virgola), @env{AWKPATH} variabile e
-@cindex punto e virgola (@code{;}), @env{AWKPATH} variabile e
-@cindex @env{AWKPATH}, variabile d'ambiente
-@cindex variabile d'ambiente @env{AWKPATH}
+@cindex percorso di ricerca @subentry per file sorgente
+@cindex @command{gawk} @subentry versione MS-Windows di
+@cindex @code{;} (punto e virgola) @subentry @env{AWKPATH} variabile e
+@cindex punto e virgola (@code{;}) @subentry @env{AWKPATH} variabile e
+@cindex @env{AWKPATH} (variabile d'ambiente)
+@cindex variabili d'ambiente @subentry @env{AWKPATH}
 Le versioni MS-Windows di @command{gawk} ricercano i file di
 programma come descritto in @ref{AWKPATH (Variabile)}.  Comunque, gli elementi
 della variabile @env{AWKPATH} sono separati tra di loro da un punto e virgola
@@ -43289,11 +43459,10 @@ della variabile @env{AWKPATH} sono separati tra di 
loro da un punto e virgola
 Se @env{AWKPATH} @`e non impostata o ha per valore la stringa nulla, il 
percorso
 di ricerca di default @`e @samp{@w{.;c:/lib/awk;c:/gnu/lib/awk}}.
 
-@cindex estensioni comuni, variabile @code{BINMODE}
-@c @cindex extensions, common@comma{} @code{BINMODE} variable
-@cindex differenze tra @command{awk} e @command{gawk}, variabile @code{BINMODE}
-@cindex @code{BINMODE}, variabile
-@cindex variabile @code{BINMODE}
+@cindex estensioni comuni @subentry variabile @code{BINMODE}
+@cindex differenze tra @command{awk} e @command{gawk} @subentry variabile 
@code{BINMODE}
+@cindex @code{BINMODE} (variabile)
+@cindex variabile @subentry @code{BINMODE}
 Sotto MS-Windows,
 @command{gawk} (come molti altri programmi di trattamento testi) converte
 automaticamente la stringa di fine riga @samp{\r\n} in @samp{\n} leggendo 
dall'input
@@ -43394,8 +43563,8 @@ esempio l'impostazione di @code{RS} pu@`o essere 
spostata in una regola
 
 @node Cygwin
 @appendixsubsubsec Usare @command{gawk} in ambiente Cygwin
-@cindex compilare @command{gawk} per Cygwin
-@cindex Cygwin, compilare @command{gawk} per
+@cindex compilare @command{gawk} @subentry per Cygwin
+@cindex Cygwin @subentry compilare @command{gawk} per
 
 @command{gawk} pu@`o essere compilato e usato ``cos@`{@dotless{i}} com'@`e'' 
sotto MS-Windows se
 si opera all'interno dell'ambiente @uref{http://www.cygwin.com, Cygwin}.
@@ -43412,9 +43581,14 @@ make && make check
 
 In confronto a un sistema GNU/Linux sulla stessa macchina, l'esecuzione
 del passo di @samp{configure} sotto Cygwin richiede molto pi@`u tempo.
-Tuttavia si conclude regolarmente, e poi @samp{make} funziona come ci si
+Tuttavia si conclude regolarmente, e poi @samp{make} procede come ci si
 aspetta.
 
+@cindex installare @command{gawk} @subentry su Cygwin
+SI pu@`o anche installare @command{gawk} con la procedura di installazione
+normalmente usata per tutto il software Cygwin.
+In generale, Cygwin fornisce l'ultima versione rilasciata di @command{gawk}.
+
 Le versioni pi@`u recenti di Cygwin aprono tutti i file in modalit@`a binaria.
 Ci@`o implica che si dovrebbe usare @samp{RS = "\r?\n"} per riuscire a
 gestire file di testo MS-Windows in formato standard, in cui ogni riga
@@ -43441,9 +43615,9 @@ automaticamente la conversione di @code{"\r\n"}, mentre 
cos@`{@dotless{i}} non @
 @c now address@hidden
 @c now address@hidden
 
-@cindex @command{gawk}, versione VMS di
-@cindex installare @command{gawk} su VMS
-@cindex VMS, installare @command{gawk} su
+@cindex @command{gawk} @subentry versione VMS di
+@cindex installare @command{gawk} @subentry su VMS
+@cindex VMS @subentry installare @command{gawk} su
 Questa @value{SUBSECTION} descrive come compilare e installare @command{gawk}
 sotto VMS.  Il termine classico ``VMS'' @`e usato qui anche per designare
 OpenVMS.
@@ -43461,8 +43635,8 @@ OpenVMS.
 
 @node Compilazione su VMS
 @appendixsubsubsec Compilare @command{gawk} su VMS
-@cindex compilare @command{gawk} per VMS
-@cindex VMS, compilare @command{gawk} per
+@cindex compilare @command{gawk} @subentry per VMS
+@cindex VMS @subentry compilare @command{gawk} per
 
 Per compilare @command{gawk} sotto VMS, esiste una procedura di comandi
 @code{DCL} che esegue tutti i comandi @code{CC} e @code{LINK} necessari. C'@`e
@@ -43672,8 +43846,8 @@ per forzare un esame dei parametri in stile Unix, 
piuttosto che nella modalit@`a
 parametri, per esempio, pi@`u @value{DF} in input) @`e presente, non c'@`e 
ambiguit@`a,
 e l'opzione @option{--} pu@`o essere omessa.
 
-@cindex codice di ritorno, di @command{gawk}, in VMS
-@cindex exit, codice di ritorno, di @command{gawk}, in VMS
+@cindex codice di ritorno @subentry di @command{gawk} @subentry in VMS
+@cindex @code{exit} (istruzione) @subentry codice di ritorno di 
@command{gawk}, in VMS
 Il valore di @code{exit} @`e un valore in stile Unix e viene trasformato in
 un codice di ritorno VMS all'uscita del programma.
 
@@ -43703,8 +43877,8 @@ un errore fatale come 4, e tutti
 gli altri valori erano restituiti immodificati.  Questa era una violazione
 rispetto alle specifiche di codifica delle condizioni di uscita di VMS.
 
-@cindex numeri in virgola mobile, VAX/VMS
-@cindex VAX/VMS, numeri in virgola mobile,
+@cindex numeri @subentry in virgola mobile @subentry VAX/VMS
+@cindex VAX/VMS @subentry numeri in virgola mobile,
 L'aritmetica in virgola mobile VAX/VMS usa un arrotondamento statistico.
 @xref{Funzione round}.
 
@@ -43714,8 +43888,7 @@ VMS, come VAX/VMS 7.3, non impostano questi nomi logici.
 
 @c @cindex directory search
 @c @cindex path, search
-@cindex percorso di ricerca
-@cindex percorso di ricerca per file sorgente
+@cindex percorso di ricerca @subentry per file sorgente
 Il percorso di ricerca di default, nella ricerca dei file di programma per
 @command{awk} specificati dall'opzione @option{-f}, @`e
 @code{"SYS$DISK:[],AWK_LIBRARY:"}.  Il nome logico @env{AWKPATH} pu@`o essere
@@ -43851,8 +44024,8 @@ Si raccomanda di compilare e usare la versione corrente.
 @end quotation
 @c the radio show, not the book. :-)
 
-@cindex debug, @command{gawk}, segnalare bug
-@cindex risoluzione problemi @command{gawk}, segnalare bug
+@cindex debug @subentry @command{gawk} @subentry segnalare bug
+@cindex risoluzione di problemi @subentry @command{gawk} @subentry segnalare 
bug
 Se si incontrano problemi con @command{gawk} o se si ritiene di aver trovato un
 bug, si raccomanda di segnalarlo agli sviluppatori;
 non c'@`e un impegno preciso a intervenire, ma c'@`e una buona possibilit@`a 
che ci
@@ -43899,10 +44072,10 @@ se il problema @`e un problema di documentazione.
 Questa informazione si pu@`o ottenere con il comando @samp{gawk --version}.
 
 @cindex @code{bug-gawk@@gnu.org} indirizzo per la segnalazione dei bug
-@cindex email, indirizzo per segnalare bug, @code{bug-gawk@@gnu.org}
-@cindex indirizzo email per segnalare bug, @code{bug-gawk@@gnu.org}
-@cindex bug, segnalare, indirizzo email, @code{bug-gawk@@gnu.org}
-@cindex segnalare bug, indirizzo email, @code{bug-gawk@@gnu.org}
+@cindex email @subentry indirizzo per segnalare bug @subentry 
@code{bug-gawk@@gnu.org}
+@cindex indirizzo email per segnalare bug @subentry @code{bug-gawk@@gnu.org}
+@cindex bug @subentry segnalare @subentry indirizzo email, 
@code{bug-gawk@@gnu.org}
+@cindex segnalare bug @subentry indirizzo email @subentry 
@code{bug-gawk@@gnu.org}
 Una volta pronta la descrizione precisa del problema, si spedisca un messaggio
 di posta elettronica a @EMAIL{bug-gawk@@gnu.org,bug-gawk at gnu dot org}.
 
@@ -43952,7 +44125,7 @@ nella corrispondenza con la lista
 @c To: Aharon Robbins <address@hidden>
 @c CC: address@hidden
 Ho iniziato a ignorare Usenet un paio di anni fa, e non me ne sono mai
-pentito.  @`E come quando si parla di sport alla radio---ci si sente
+pentito.  @`E come quando si parla di sport alla radio --- ci si sente
 pi@`u intelligenti per aver lasciato perdere.
 @author Chet Ramey
 @end quotation
@@ -44002,10 +44175,10 @@ Le persone che si occupano delle varie versioni di 
@command{gawk} sono:
 
 @c put the index entries outside the table, for docbook
 @cindex Buening, Andreas
-@cindex Malmberg, John E.
+@cindex Malmberg, John
 @cindex Pitts, Dave
 @cindex G., Daniel Richard
-@cindex Robbins, Arnold
+@cindex Robbins @subentry Arnold
 @cindex Zaretskii, Eli
 @cindex Guerrero, Juan Manuel
 @ifset SMALLPRINT
@@ -44042,8 +44215,8 @@ versione sar@`a rimossa dalla distribuzione.
 
 @node Altre versioni
 @appendixsec Altre implementazioni di @command{awk} liberamente disponibili
-@cindex @command{awk}, implementazioni di
-@cindex implementazioni di @command{awk}
+@cindex @command{awk} @subentry implementazioni di
+@cindex implementazione @subentry di @command{awk}
 @ignore
 From: emory!amc.com!brennan (Michael Brennan)
 Subject: C++ comments in awk programs
@@ -44077,10 +44250,10 @@ Questa @value{SECTION} descrive in breve dove @`e 
possibile trovarle:
 
 @table @asis
 @cindex Kernighan, Brian
-@cindex sorgente, codice, Brian Kernighan @command{awk}
-@cindex codice sorgente, Brian Kernighan @command{awk}
-@cindex @command{awk}, versioni di, si veda anche Brian Kernighan, 
@command{awk} di
-@cindex Brian Kernighan, @command{awk} di, codice sorgente
+@cindex sorgente @subentry codice @subentry Brian Kernighan @command{awk}
+@cindex codice sorgente @subentry Brian Kernighan @command{awk}
+@cindex @command{awk} @subentry versioni di @seealso{Brian Kernighan, 
@command{awk} di}
+@cindex Brian Kernighan @subentry @command{awk} di @subentry codice sorgente
 @item Unix @command{awk}
 Brian Kernighan, uno degli sviluppatori originali di Unix @command{awk},
 ha reso disponibile liberamente la sua implementazione di @command{awk}.
@@ -44112,9 +44285,9 @@ versioni di BWK @command{awk} che @`e riuscito a 
trovare.  @`E disponibile in
 @uref{git://github.com/danfuzz/one-true-awk}.
 
 @cindex Brennan, Michael
-@cindex @command{mawk}, programma di utilit@`a
-@cindex programma di utilit@`a @command{mawk}
-@cindex codice sorgente, @command{mawk}
+@cindex @command{mawk} (programma di utilit@`a)
+@cindex programma di utilit@`a @subentry @command{mawk}
+@cindex codice sorgente @subentry @command{mawk}
 @item @command{mawk}
 Michael Brennan ha scritto un'implementazione indipendente di @command{awk},
 di nome @command{mawk}.  @`E disponibile sotto la licenza
@@ -44150,10 +44323,10 @@ Le sue versioni di sviluppo sono disponibili tramite 
Git dalla pagina GitHub
 @uref{https://github.com/mikebrennan000/mawk-2, del progetto}.
 
 @cindex Sumner, Andrew
-@cindex @command{awka}, compilatore per @command{awk}
-@cindex compilatore per @command{awk}, @command{awka}
-@cindex sorgente, codice, @command{awka}
-@cindex codice sorgente di @command{awka}
+@cindex @command{awka} @subentry compilatore per @command{awk}
+@cindex compilatore per @command{awk} @subentry @command{awka}
+@cindex sorgente @subentry codice @subentry @command{awka}
+@cindex codice sorgente @subentry @command{awka}
 @item @command{awka}
 Scritto da Andrew Sumner,
 @command{awka} traduce i programmi @command{awk} in C, li compila,
@@ -44174,8 +44347,8 @@ codice sorgente dal 2001 circa.
 
 @cindex Beebe, Nelson H.F.@:
 @cindex @command{pawk} (versione con profilazione di Brian Kernighan 
@command{awk})
-@cindex codice sorgente, @command{pawk}
-@cindex sorgente, codice, @command{pawk}
+@cindex codice sorgente @subentry @command{pawk}
+@cindex sorgente @subentry codice @subentry @command{pawk}
 @item @command{pawk}
 Nelson H.F.@: Beebe all'Universit@`a dello Utah ha modificato
 BWK @command{awk} per fornire informazioni di temporizzazione e profilazione.
@@ -44190,8 +44363,8 @@ che in
 
 @item BusyBox @command{awk}
 @cindex BusyBox Awk
-@cindex codice sorgente, BusyBox Awk
-@cindex sorgente, codice, BusyBox Awk
+@cindex codice sorgente @subentry BusyBox Awk
+@cindex sorgente @subentry codice @subentry BusyBox Awk
 BusyBox @`e un programma distribuito con licenza GPL che fornisce versioni
 ridotte di parecchie piccole applicazioni, all'interno di un singolo modulo
 eseguibile.  @`E stato ideato per sistemi
@@ -44203,9 +44376,9 @@ directory @file{/usr/local/bin} del sistema corrente.  
Per ulteriori
 informazioni, si veda @uref{https://busybox.net, la pagina principale del 
progetto}.
 
 @cindex OpenSolaris
-@cindex Solaris, versione POSIX @command{awk}
-@cindex codice sorgente, Solaris @command{awk}
-@cindex sorgente, codice, Solaris @command{awk}
+@cindex Solaris @subentry versione POSIX @command{awk}
+@cindex codice sorgente @subentry Solaris @command{awk}
+@cindex sorgente @subentry codice @subentry Solaris @command{awk}
 @item POSIX @command{awk} per OpenSolaris
 Le versioni di @command{awk} in @file{/usr/xpg4/bin} e @file{/usr/xpg6/bin} su
 Solaris sono @dfn{grosso modo} conformi allo standard POSIX.  Sono basate sul
@@ -44215,10 +44388,9 @@ ore di lavoro.  Rendere questo codice pi@`u 
generalmente portabile (usando gli
 strumenti GNU Autoconf e/o Automake) richiederebbe ulteriore lavoro, che non 
@`e
 stato fin qui compiuto, almeno per quel che risulta a chi scrive.
 
-@cindex Illumos
-@cindex Illumos, @command{awk} conforme a POSIX e
-@cindex codice sorgente, Illumos @command{awk}
-@cindex sorgente, codice, Illumos @command{awk}
+@cindex Illumos @subentry @command{awk} conforme a POSIX e
+@cindex codice sorgente @subentry Illumos @command{awk}
+@cindex sorgente @subentry codice @subentry Illumos @command{awk}
 Il codice sorgente era un tempo disponibile dal sito web OpenSolaris.
 Tuttavia, il progetto @`e terminato, e il sito web chiuso.  Fortunatamente,
 il progetto
@@ -44227,10 +44399,11 @@ mette a disposizione questa implementazione.  Si 
possono vedere i singoli file i
 
@uref{https://github.com/joyent/illumos-joyent/blob/master/usr/src/cmd/awk_xpg4}.
 
 @cindex @command{goawk}
-@cindex Go, implementazione di @command{awk}
-@cindex sorgente, @command{goawk}
-@cindex @command{goawk}, sorgente di
-@cindex linguaggio di programmazione, Go
+@cindex Go @subentry implementazione di @command{awk}
+@cindex sorgente @subentry @command{goawk}
+@cindex @command{goawk} @subentry sorgente di
+@cindex linguaggi di programmazione @subentry Go
+@cindex Go @subentry linguaggio di programmazione
 @item @command{goawk}
 Questo @`e un interpretatore di @command{awk} scritto nel
 @uref{https://golang.org/, Linguaggio di programmazion Go}.
@@ -44241,10 +44414,10 @@ L'autore ha scritto un buon
 che descrive l'implementazione.
 
 @cindex @command{jawk}
-@cindex Java, implementazione di @command{awk}
-@cindex implementazione Java di @command{awk}
-@cindex codice sorgente, @command{jawk}
-@cindex sorgente, codice, @command{jawk}
+@cindex Java @subentry implementazione di @command{awk}
+@cindex implementazione @subentry di @command{awk} in Java
+@cindex codice sorgente @subentry @command{jawk}
+@cindex sorgente @subentry codice @subentry @command{jawk}
 @item @command{jawk}
 Questo @`e un interprete per @command{awk} scritto in Java.  Dichiara di
 essere un interprete completo, anche se, poich@'e usa funzionalit@`a di Java
@@ -44254,14 +44427,15 @@ Ulteriori informazioni sono disponibili sulla
 @uref{https://jawk.sourceforge.net, pagina principale del progetto}.
 
 @item Libmawk
-@cindex @command{libmawk}
-@cindex codice sorgente, @command{libmawk}
-@cindex sorgente, codice, @command{libmawk}
+@cindex @command{libmawk} (interpretatore)
+@cindex codice sorgente @subentry @command{libmawk} (interpretatore)
+@cindex sorgente @subentry codice @subentry @command{libmawk} (interpretatore)
 Questo @`e un interprete @command{awk} incorporabile, derivato da
 @command{mawk}. Per ulteriori informazioni, si veda
 @uref{http://repo.hu/projects/libmawk/}.
 
-@cindex codice sorgente, interpretatore @command{awk} incorporabile
+@cindex codice sorgente @subentry interpretatore @command{awk} incorporabile
+@cindex interpretatore @command{awk} incorporabile @subentry codice sorgente
 @cindex Neacsu, Mircea
 @item @command{awk} incorporabile di Mircea Neacsu
 @item incorporabile, @command{awk}, di Mircea Neacsu
@@ -44270,9 +44444,9 @@ incorporabile, basato su BWK @command{awk}.  @`E 
disponibile
 nel sito @uref{https://github.com/neacsum/awk}.
 
 @item @code{pawk}
-@cindex codice sorgente, @command{pawk} (versione Python)
-@cindex sorgente, codice, @command{pawk} (versione Python)
-@cindex @code{pawk}, implementazione simile ad @command{awk} per Python
+@cindex codice sorgente @subentry @command{pawk} (versione Python)
+@cindex sorgente @subentry codice @subentry @command{pawk} (versione Python)
+@cindex @code{pawk} @subentry implementazione simile ad @command{awk} per 
Python
 Questo @`e un modulo Python che intende introdurre funzionalit@`a di tipo
 @command{awk} in Python.  Si veda @uref{https://github.com/alecthomas/pawk} per
 ulteriori informazioni.  (Questo programma non @`e correlato con la versione
@@ -44280,16 +44454,16 @@ modificata da Nelson Beebe di BWK @command{awk}, 
descritta prima.)
 
 @item @w{QSE @command{awk}}
 @cindex QSE @command{awk}
-@cindex codice sorgente, QSE @command{awk}
-@cindex sorgente, codice, QSE @command{awk}
+@cindex codice sorgente @subentry QSE @command{awk}
+@cindex sorgente @subentry codice @subentry QSE @command{awk}
 Questo @`e un interprete di @command{awk} incorporabile.  Per ulteriori
 informazioni, si veda
 @uref{https://code.google.com/p/qse/}. @c e @uref{http://awk.info/?tools/qse}.
 
 @item @command{QTawk}
 @cindex QuikTrim Awk
-@cindex codice sorgente, QuikTrim Awk
-@cindex sorgente, codice, QuikTrim Awk
+@cindex codice sorgente @subentry QuikTrim Awk
+@cindex sorgente @subentry codice @subentry QuikTrim Awk
 Questa @`e un'implementazione indipendente di @command{awk} distribuita con la
 licenza GPL. Ha un gran numero di estensioni rispetto ad @command{awk}
 standard, e pu@`o non essere sintatticamente compatibile al 100% con esso.  Si
@@ -44356,8 +44530,8 @@ gratuitamente.  Molte rispettano lo standard POSIX; 
altre un po' meno.
 @ifclear FOR_PRINT
 @node Note
 @appendix Note di implementazione
-@cindex @command{gawk}, problemi di implementazione
-@cindex problemi di implementazione, @command{gawk}
+@cindex @command{gawk} @subentry problemi di implementazione
+@cindex problemi di implementazione @subentry @command{gawk}
 
 Quest'appendice contiene informazioni che interessano soprattutto le persone
 che aggiornano e mantengono @command{gawk}.  L'intero contenuto si applica
@@ -44378,11 +44552,11 @@ specificatamente a @command{gawk} e non ad altre 
implementazioni.
 
 @node Modalit@`a di compatibilit@`a
 @appendixsec Compatibilit@`a all'indietro e debug
-@cindex @command{gawk}, problemi di implementazione, compatibilit@`a 
all'indietro
-@cindex @command{gawk}, problemi di implementazione, debug
-@cindex risoluzione di problemi, @command{gawk}
-@cindex problemi, risoluzione di, @command{gawk}
-@cindex problemi di implementazione@comma{} @command{gawk}, debug
+@cindex @command{gawk} @subentry problemi di implementazione @subentry 
compatibilit@`a all'indietro
+@cindex @command{gawk} @subentry problemi di implementazione @subentry debug
+@cindex risoluzione di problemi @subentry @command{gawk}
+@cindex problemi @subentry risoluzione di @subentry @command{gawk}
+@cindex problemi di implementazione @subentry @command{gawk} @subentry debug
 
 @xref{POSIX/GNU},
 per un compendio delle estensioni GNU per il linguaggio e il programma
@@ -44442,8 +44616,8 @@ La
 @ref{Distribuzione di Gawk} descrive come scaricare e installare
 le versioni ufficiali rilasciate di @command{gawk}.
 
-@cindex @command{git}, programma di utilit@`a
-@cindex programma di utilit@`a @command{git}
+@cindex @command{git} (programma di utilit@`a)
+@cindex programma di utilit@`a @subentry @command{git}
 Peraltro, se si intende modificare @command{gawk} e mettere a disposizione le
 modifiche, @`e preferibile lavorare sulla versione in via di sviluppo.  Per far
 ci@`o @`e necessario accedere al deposito del codice sorgente di 
@command{gawk}.
@@ -44478,9 +44652,9 @@ un'estensione Git per lavorare con depositi di sorgenti 
Git.
 @node Aggiungere codice
 @appendixsubsec Aggiungere nuove funzionalit@`a
 
-@cindex @command{gawk}, aggiungere funzionalit@`a a
-@cindex funzionalit@`a, aggiungere a @command{gawk}
-@cindex aggiungere funzionalit@`a a @command{gawk}
+@cindex @command{gawk} @subentry aggiungere funzionalit@`a a
+@cindex funzionalit@`a @subentry aggiungere a @command{gawk}
+@cindex aggiungere @subentry funzionalit@`a a @command{gawk}
 Ognuno @`e libero di aggiungere tutte le nuove funzionalit@`a che vuole a
 @command{gawk}.  Comunque, se si desidera che tali modifiche siano incorporate
 nella distribuzione di @command{gawk}, ci sono parecchi passi da fare per
@@ -44527,7 +44701,7 @@ di iniziare a modificare @command{gawk}.
 @uref{https://www.gnu.org/prep/standards/, Progetto GNU}.
 Sono disponibili anche versioni in formato Texinfo, Info, e DVI.)
 
-@cindex @command{gawk}, stile di codifica in
+@cindex @command{gawk} @subentry stile di codifica in
 @item
 Usare lo stile di codifica @command{gawk}.
 Il codice sorgente in C di @command{gawk} segue le istruzioni dello
@@ -44631,8 +44805,8 @@ in formato @command{man}.
 Si dovr@`a anche firmare un documento liberatorio relativo alle
 modifiche apportate alla documentazione.
 
-@cindex @command{git}, programma di utilit@`a
-@cindex programma di utilit@`a @command{git}
+@cindex @command{git} (programma di utilit@`a)
+@cindex programma di utilit@`a @subentry @command{git}
 @item
 Inviare le modifiche come file di differenze nel formato contestuale unificato.
 Usare @samp{diff -u -r -N} per confrontare i sorgenti originali dell'albero
@@ -44663,8 +44837,8 @@ troppo tempo, potrei anche lasciar perdere la modifica.
 
 @node Nuovi sistemi
 @appendixsubsec Portare @command{gawk} su un nuovo Sistema Operativo
-@cindex portabilit@`a, @command{gawk}
-@cindex sistemi operativi, portare @command{gawk} su altri
+@cindex portabilit@`a @subentry @command{gawk}
+@cindex sistemi operativi @subentry portare @command{gawk} su altri
 
 @cindex portare @command{gawk}
 Se si vuol portare @command{gawk} su di un nuovo sistema operativo, sono
@@ -44748,7 +44922,7 @@ appropriati file @file{gawkmisc.???} da ogni 
sottodirectory.  Anche
 quest'ultimo file va aggiornato.
 
 Ogni file @file{gawkmisc.???} del @dfn{port} ha un suffisso esplicativo
-del tipo di macchina o del sistema operativo in questione---per esempio,
+del tipo di macchina o del sistema operativo in questione --- per esempio,
 @file{pc/gawkmisc.pc} e @file{vms/gawkmisc.vms}. L'uso di suffissi distinti
 invece di un semplice @file{gawkmisc.c}, rende possibile spostare file da
 una sottodirectory propria del @dfn{port} nella sottodirectory principale,
@@ -44785,7 +44959,7 @@ parentesi graffe di proprio gradimento.
 @node File derivati
 @appendixsubsec Perch@'e i file generati sono tenuti in Git
 
-@cindex Git, uso per il codice sorgente di @command{gawk}
+@cindex Git @subentry uso per il codice sorgente di @command{gawk}
 @c From emails written March 22, 2012, to the gawk developers list.
 
 Se si esaminano i sorgenti di @command{gawk} nel deposito Git
@@ -45034,7 +45208,7 @@ Larry
 @end ignore
 @cindex Perl
 @cindex Wall, Larry
-@cindex Robbins, Arnold
+@cindex Robbins @subentry Arnold
 @quotation
 @i{AWK @`e un linguaggio simile a PERL, solo che @`e notevolmente pi@`u 
elegante.}
 @author Arnold Robbins
@@ -45363,8 +45537,8 @@ ed @`e stato rimosso dal codice sorgente nella
 
 @node Concetti fondamentali
 @appendix Concetti fondamentali di programmazione
-@cindex programmazione, concetti di
-@cindex programmazione, concetti di
+@cindex programmazione @subentry concetti di
+@cindex programmazione @subentry concetti di
 
 Quest'@value{APPENDIX} si propone di definire alcuni dei concetti
 e termini fondamentali usati nel resto di questo @value{DOCUMENT}.
@@ -45425,7 +45599,7 @@ sia un programma @dfn{interpretato}.  In quest'ultimo 
caso, un programma
 direttamente eseguibile dal computer, come @command{awk}, legge il
 programma, e quindi usa le istruzioni in esso contenute per elaborare i dati.
 
-@cindex programmazione, passi fondamentali
+@cindex programmazione @subentry passi fondamentali
 Quando si scrive un programma, esso @`e composto normalmente
 dai seguenti insiemi di istruzioni di base,
 @ifnotdocbook
@@ -45500,7 +45674,7 @@ avvolta in una pellicola trasparente per evitare che 
qualcuno la assaggi,
 e inoltre vanno lavati i contenitori e le posate.
 @end table
 
-@cindex Algoritmi
+@cindex algoritmi
 Un @dfn{algoritmo} @`e la descrizione dettagliata della procedura necessaria 
per
 svolgere un compito o per elaborare dati.  Lo si pu@`o paragonare alla ricetta
 per preparare una torta.  I programmi sono il modo con cui un
@@ -45523,8 +45697,8 @@ sono riuniti sotto il nome di ``input/output'' e, ancor 
pi@`u spesso, con
 l'abbreviazione ``I/O''.  (In inglese ``input'' e ``output'' sono spesso usati
 come verbi, nel gergo informatico, al posto di leggere e scrivere.)
 
-@cindex guidato-dai-dati, linguaggio di programmazione
-@cindex linguaggio di programmazione, guidato dai dati
+@cindex guidati-dai-dati @subentry linguaggi di programmazione
+@cindex linguaggi di programmazione @subentry guidati dai dati
 @command{awk} gestisce la lettura dei dati, come anche la divisione in
 record e campi.  Lo scopo del programma dell'utente @`e di dire ad 
@command{awk}
 cosa fare con i dati.  Questo vien fatto descrivendo @dfn{modelli} da
@@ -45545,10 +45719,10 @@ designare il record in input corrente e i campi che 
compongono il record
 stesso.  Si possono inoltre raggruppare molti valori associati tra di loro
 sotto un unico nome, utilizzando un vettore.
 
-@cindex valori numerici
-@cindex valori tipo stringa
-@cindex valori scalari
-@cindex scalari, valori
+@cindex valori @subentry numerici
+@cindex valori @subentry di tipo stringa
+@cindex valori @subentry scalari
+@cindex scalari @subentry valori
 I dati, in particolare in @command{awk}, possono avere valori numerici, come 42
 o 3.1415927, o avere come valore delle stringhe.  Un valore di tipo stringa @`e
 essenzialmente qualsiasi cosa che non sia un numero, per esempio un nome.  Le
@@ -45642,8 +45816,8 @@ ISO C del 1999.
 La situazione in cui due processi che comunicano tra loro sono entrambi 
bloccati, in
 attesa che l'altro processo faccia qualcosa.
 
-@cindex Ada, linguaggio di programmazione
-@cindex linguaggio di programmazione, Ada
+@cindex Ada @subentry linguaggio di programmazione
+@cindex linguaggi di programmazione @subentry Ada
 @item Ada
 Un linguaggio di programmazione originalmente definito dal Department of
 Defense U.S.A.@: per la programmazione integrata. @`E stato progettato per
@@ -45709,9 +45883,10 @@ assegnati sono chiamati @dfn{rvalue}.
 @xref{Operatori di assegnamento}.
 
 @cindex Spencer, Henry
-@cindex @command{sed}, programma di utilit@`a
-@cindex programma di utilit@`a @command{sed}
-@cindex incredibile assembler (@command{aaa}) scritto in @command{awk}
+@cindex @command{sed} (programma di utilit@`a)
+@cindex programma di utilit@`a @subentry @command{sed}
+@cindex amazing @command{awk} assembler (programma @command{aaa})
+@cindex programma @subentry @command{aaa} (amazing @command{awk} assembler)
 @item Assembler incredibilmente scritto in @command{awk}
 Henry Spencer dell'Universit@`a di Toronto ha scritto un assembler adatto a
 molti diversi hardware, usando solo @dfn{script} @command{sed} e
@@ -45823,7 +45998,7 @@ Doug
 Abbreviazione di ``Binary Digit'' [cifra binaria].
 Tutti i valori nella memoria di un computer sono rappresentati nella forma di
 cifre binarie: valori che sono zero o uno.
-Gruppi di bit possono essere interpretati differentemente---come numeri
+Gruppi di bit possono essere interpretati differentemente --- come numeri
 interi, numeri in virgola mobile, dati di tipo carattere, indirizzi di altri
 oggetti contenuti in memoria, o altri dati ancora.
 @command{awk} permette di lavorare con numeri in virgola mobile e stringhe.
@@ -45894,9 +46069,9 @@ la
 @ref{Separazione in base al contenuto}).
 
 @cindex ASCII
-@cindex ISO 8859-1
-@cindex ISO Latin-1
-@cindex caratteri (codifiche macchina di caratteri)
+@cindex ISO @subentry 8859-1 (codifica caratteri)
+@cindex ISO @subentry Latin-1 (codifica caratteri)
+@cindex caratteri @subentry (codifiche macchina di caratteri)
 @cindex insiemi di caratteri (codifiche macchina di caratteri)
 @cindex Unicode
 @item Caratteri
@@ -45912,8 +46087,8 @@ nei sistemi GNU/Linux.
 
 @cindex Kernighan, Brian
 @cindex Bentley, Jon
-@cindex @command{chem}, programma di utilit@`a
-@cindex programma di utilit@`a @command{chem}
+@cindex @command{chem} (programma di utilit@`a)
+@cindex programma di utilit@`a @subentry @command{chem}
 @item CHEM
 Un preprocessore per @command{pic} che legge descrizioni di molecole
 e produce l'input a @command{pic} che serve a disegnarle.
@@ -45988,7 +46163,7 @@ invece di produrre solo un valore.  Espressioni di 
assegnamento,
 incremento e decremento, e invocazioni di funzioni hanno effetti collaterali.
 (@xref{Operatori di assegnamento}).
 
-@cindex epoch, definizione di
+@cindex epoch @subentry definizione di
 @item Epoca [Inizio del tempo in Unix]
 la data usata come ``inizio del tempo'' per i campi che contengono date.
 I valori del tempo nella maggior parte dei dei sistemi sono rappresentati
@@ -46000,6 +46175,7 @@ L'Epoca nei sistemi Unix e POSIX parte dal primo 
gennaio 1970 alle ore
 Si veda anche ``GMT'' e ``UTC''.
 
 @item Esadecimale
+@cindex ASCII
 Notazione per l'aritmetica in base 16, che usa le cifre @code{0}--@code{9} e
 le lettere @code{A}--@code{F}, con @samp{A}
 che rappresenta 10, @samp{B} che rappresenta 11, e cos@`{@dotless{i}} via, 
fino a
@@ -46124,7 +46300,7 @@ Free Documentation License. Si veda ``Licenza 
Documentazione Libera''.
 @item File speciale
 Un @value{FN} interpretato internamente da @command{gawk}, invece che
 gestito direttamente dal sistema operativo in cui viene eseguito
-@command{gawk}---per esempio, @file{/dev/stderr}.
+@command{gawk} --- per esempio, @file{/dev/stderr}.
 (@xref{File speciali}).
 
 @item Flag [Indicatore]
@@ -46139,7 +46315,7 @@ controllate dalle stringhe di formato contenute nelle 
variabili predefinite
 @code{CONVFMT} e @code{OFMT}. (@xref{Lettere di controllo}).
 
 @cindex formattatore incredibilmente duttile (@command{awf})
-@cindex programma @command{awf} (formattatore incredibilmente duttile)
+@cindex programma @subentry @command{awf} (formattatore incredibilmente 
duttile)
 @item Formattatore incredibilmente duttile (@command{awf})
 Henry Spencer all'Universit@`a di Toronto ha scritto un formattatore che
 accetta un ampio sottoassieme dei comandi di formattazione @samp{nroff -ms}
@@ -46202,8 +46378,7 @@ in fase di esecuzione di progranna.
 L'implementazione GNU di @command{awk}.
 
 @cindex GPL (General Public License)
-@cindex General Public License (GPL)
-@cindex GNU General Public License
+@cindex GNU @subentry General Public License
 @item General Public License
 Un documento che descrive le condizioni alle quali @command{gawk} e i suoi
 file sorgenti possono essere distribuiti.  (@xref{Copia}).
@@ -46216,7 +46391,7 @@ Si veda anche ``Epoca'' e ``UTC''.
 
 @cindex FSF (Free Software Foundation)
 @cindex Free Software Foundation (FSF)
-@cindex Progetto GNU
+@cindex progetto @subentry GNU
 @item GNU
 ``GNU's not Unix'' (GNU non @`e Unix).
 Un progetto della Free Software Foundation, ancora in corso, che mira a creare
@@ -46307,13 +46482,13 @@ se una determinata condizione @`e verificata.
 Istruzioni di controllo sono: @code{if}, @code{for}, @code{while}, e @code{do}
 (@pxref{Istruzioni}).
 
-@cindex Java, linguaggio di programmazione
-@cindex linguaggio di programmazione, Java
+@cindex Java @subentry linguaggio di programmazione
+@cindex linguaggi di programmazione @subentry Java
 @item Java
 Un moderno linguaggio di programmazione originalmente sviluppato da Sun
 Microsystems (ora Oracle) che prevede la programmazione orientata agli
 oggetti.  Sebbene normalmente sia implementato compilando le istruzioni
-per una macchina virtuale standard (la JVM---Java Virtual Machine) il
+per una macchina virtuale standard (la JVM --- Java Virtual Machine) il
 linguaggio pu@`o essere compilato per essere eseguito in maniera nativa.
 
 @item Korn Shell
@@ -46328,7 +46503,7 @@ Si veda ``Licenza Documentazione Libera''.
 
 @cindex LGPL (Lesser General Public License)
 @cindex Lesser General Public License (LGPL)
-@cindex GNU Lesser General Public License
+@cindex GNU @subentry Lesser General Public License
 @item Lesser General Public License
 Questo documento descrive i termini nei quali possono essere distribuiti
 degli archivi contenenti librerie in formato eseguibile o oggetti condivisi,
@@ -46597,10 +46772,9 @@ Si veda ``Stringa nulla''.
 Il carattere generato premendo il tasto @kbd{TAB} sulla tastiera.
 Normalmente pu@`o generare sino a otto spazi in output.
 
-@cindex Linux
 @cindex GNU/Linux
 @cindex Unix
-@cindex sistemi operativi basati su BSD
+@cindex sistemi operativi @subentry basati su BSD
 @cindex NetBSD
 @cindex FreeBSD
 @cindex OpenBSD
@@ -46699,7 +46873,7 @@ Copyright @copyright{} 2007 Free Software Foundation, 
Inc. @url{https://fsf.org/
 
 This is an unofficial translation of the GNU General Public License into
 Italian. It was not published by the Free Software Foundation, and does not
-legally state the distribution terms for software that uses the GNU GPL---only
+legally state the distribution terms for software that uses the GNU GPL --- 
only
 the original English text of the GNU GPL does that. However, we hope that this
 translation will help Italian speakers understand the GNU GPL better.
 
@@ -47483,7 +47657,7 @@ leggi 
@url{https://www.gnu.org/philosophy/why-not-lgpl.html}.
 
 @cindex FDL (Free Documentation License)
 @cindex Free Documentation License (FDL)
-@cindex GNU Free Documentation License
+@cindex GNU @subentry Free Documentation License
 
 @c This file is intended to be included within another document,
 @c hence no sectioning command or @node.
@@ -47494,7 +47668,7 @@ Copyright @copyright{} 2000, 2001, 2002, 2007, 2008 
Free Software Foundation, In
 
 This is an unofficial translation of the GNU Free Documentation License into
 Italian. It was not published by the Free Software Foundation, and does not
-legally state the distribution terms for software that uses the GNU FDL---only
+legally state the distribution terms for software that uses the GNU FDL --- 
only
 the original English text of the GNU FDL does that. However, we hope that this
 translation will help Italian speakers understand the GNU FDL better.
 
diff --git a/doc/it/sidebar.awk b/doc/it/sidebar.awk
index d1f3efc..4c0748e 100644
--- a/doc/it/sidebar.awk
+++ b/doc/it/sidebar.awk
@@ -37,7 +37,7 @@ BEGIN {
 
 /^@end[ \t]+sidebar[ \t]*$/ {
        collecting = 0
-       printf "@cindex sidebar, %s\n", title
+       printf "@cindex riquadro @subentry %s\n", title
        printf "@ifdocbook\n"
                printf "@docbook\n"
                printf "<sidebar><title>%s</title>\n", title
diff --git a/doc/it/texinfo.tex b/doc/it/texinfo.tex
index 78b23c1..ca05be3 100644
--- a/doc/it/texinfo.tex
+++ b/doc/it/texinfo.tex
@@ -5257,8 +5257,11 @@ end
 % The default definitions
 \def\sortas#1{}%
 \def\seealso#1{\i{\putwordSeeAlso}\ #1}% for sorted index file only
-\def\putwordSeeAlso{See also}
-\def\seeentry#1{\i{\putwordSee}\ #1}% for sorted index file only
+% for Italian
+\def\putwordSeeAlso{Si veda anche}
+\def\seeentry#1{\i{\putwordSiVeda}\ #1}% for sorted index file only
+\def\putwordSiVeda{Si veda}
+% end for Italian
 
 
 % Given index entry text like "aaa @subentry bbb @sortas{ZZZ}":

-----------------------------------------------------------------------

Summary of changes:
 ChangeLog                        |    4 +
 config.guess                     |    5 +-
 config.sub                       |    2 +-
 doc/ChangeLog                    |    4 +
 doc/it/ChangeLog                 |    6 +
 doc/it/gawktexi.in               | 6048 ++++++++++++++++++++------------------
 doc/it/sidebar.awk               |    2 +-
 doc/it/texinfo.tex               |    7 +-
 doc/texinfo.tex                  |  231 +-
 extension/build-aux/ChangeLog    |    4 +
 extension/build-aux/config.guess |    5 +-
 extension/build-aux/config.sub   |    2 +-
 extension/build-aux/install-sh   |   13 +-
 install-sh                       |   13 +-
 14 files changed, 3287 insertions(+), 3059 deletions(-)


hooks/post-receive
-- 
gawk



reply via email to

[Prev in Thread] Current Thread [Next in Thread]