gawk-diffs
[Top][All Lists]
Advanced

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

[gawk-diffs] [SCM] gawk branch, gawk-4.1-stable, updated. gawk-4.1.0-569


From: Arnold Robbins
Subject: [gawk-diffs] [SCM] gawk branch, gawk-4.1-stable, updated. gawk-4.1.0-569-g62fe40d
Date: Tue, 27 Jan 2015 04:21:46 +0000

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, gawk-4.1-stable has been updated
       via  62fe40d1944810a79c13bd519a5f1157c49cefb6 (commit)
      from  762f30020bfa5e333345adc25d34da84918faa96 (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=62fe40d1944810a79c13bd519a5f1157c49cefb6

commit 62fe40d1944810a79c13bd519a5f1157c49cefb6
Author: Arnold D. Robbins <address@hidden>
Date:   Tue Jan 27 06:21:23 2015 +0200

    O'Reilly fixes.

diff --git a/doc/ChangeLog b/doc/ChangeLog
index 48d05b0..6efc88b 100644
--- a/doc/ChangeLog
+++ b/doc/ChangeLog
@@ -1,3 +1,7 @@
+2015-01-27         Arnold D. Robbins     <address@hidden>
+
+       * gawktexi.in: O'Reilly fixes.
+
 2015-01-26         Arnold D. Robbins     <address@hidden>
 
        * gawktexi.in: O'Reilly fixes.
diff --git a/doc/gawk.info b/doc/gawk.info
index ef09270..80cca4b 100644
--- a/doc/gawk.info
+++ b/doc/gawk.info
@@ -10855,9 +10855,9 @@ languages allow arbitrary starting and ending 
indices--e.g., `15 ..
 27'--but the size of the array is still fixed when the array is
 declared.)
 
-   A contiguous array of four elements might look like the following
-example, conceptually, if the element values are 8, `"foo"', `""', and
-30 as shown in *note figure-array-elements:::
+   A contiguous array of four elements might look like *note
+figure-array-elements::, conceptually, if the element values are eight,
+`"foo"', `""', and 30.
 
 +---------+---------+--------+---------+
 |    8    |  "foo"  |   ""   |    30   |    @r{Value}
@@ -10866,17 +10866,19 @@ example, conceptually, if the element values are 8, 
`"foo"', `""', and
 Figure 8.1: A contiguous array
 
 Only the values are stored; the indices are implicit from the order of
-the values. Here, 8 is the value at index zero, because 8 appears in the
-position with zero elements before it.
+the values. Here, eight is the value at index zero, because eight
+appears in the position with zero elements before it.
 
    Arrays in `awk' are different--they are "associative".  This means
 that each array is a collection of pairs--an index and its corresponding
 array element value:
 
-     Index 3     Value 30
-     Index 1     Value "foo"
-     Index 0     Value 8
-     Index 2     Value ""
+        Index   Value
+------------------------ 
+        `3'     `30'
+        `1'     `"foo"'
+        `0'     `8'
+        `2'     `""'
 
 The pairs are shown in jumbled order because their order is
 irrelevant.(1)
@@ -10885,11 +10887,13 @@ irrelevant.(1)
 at any time.  For example, suppose a tenth element is added to the array
 whose value is `"number ten"'.  The result is:
 
-     Index 10    Value "number ten"
-     Index 3     Value 30
-     Index 1     Value "foo"
-     Index 0     Value 8
-     Index 2     Value ""
+        Index   Value
+------------------------------- 
+        `10'    `"number ten"'
+        `3'     `30'
+        `1'     `"foo"'
+        `0'     `8'
+        `2'     `""'
 
 Now the array is "sparse", which just means some indices are missing.
 It has elements 0-3 and 10, but doesn't have elements 4, 5, 6, 7, 8, or
@@ -10900,17 +10904,19 @@ have to be positive integers.  Any number, or even a 
string, can be an
 index.  For example, the following is an array that translates words
 from English to French:
 
-     Index "dog" Value "chien"
-     Index "cat" Value "chat"
-     Index "one" Value "un"
-     Index 1     Value "un"
+        Index   Value
+------------------------ 
+        `"dog"' `"chien"'
+        `"cat"' `"chat"'
+        `"one"' `"un"'
+        `1'     `"un"'
 
 Here we decided to translate the number one in both spelled-out and
 numeric form--thus illustrating that a single array can have both
 numbers and strings as indices.  (In fact, array subscripts are always
 strings.  There are some subtleties to how numbers work when used as
 array subscripts; this is discussed in more detail in *note Numeric
-Array Subscripts::.)  Here, the number `1' isn't double quoted, because
+Array Subscripts::.)  Here, the number `1' isn't double-quoted, because
 `awk' automatically converts it to a string.
 
    The value of `IGNORECASE' has no effect upon array subscripting.
@@ -10934,7 +10940,7 @@ File: gawk.info,  Node: Reference to Elements,  Next: 
Assigning Elements,  Prev:
 -----------------------------------
 
 The principal way to use an array is to refer to one of its elements.
-An array reference is an expression as follows:
+An "array reference" is an expression as follows:
 
      ARRAY[INDEX-EXPRESSION]
 
@@ -10942,8 +10948,8 @@ Here, ARRAY is the name of an array.  The expression 
INDEX-EXPRESSION is
 the index of the desired element of the array.
 
    The value of the array reference is the current value of that array
-element.  For example, `foo[4.3]' is an expression for the element of
-array `foo' at index `4.3'.
+element.  For example, `foo[4.3]' is an expression referencing the
+element of array `foo' at index `4.3'.
 
    A reference to an array element that has no recorded value yields a
 value of `""', the null string.  This includes elements that have not
@@ -11010,7 +11016,7 @@ File: gawk.info,  Node: Array Example,  Next: Scanning 
an Array,  Prev: Assignin
 
 The following program takes a list of lines, each beginning with a line
 number, and prints them out in order of line number.  The line numbers
-are not in order when they are first read--instead they are scrambled.
+are not in order when they are first read--instead, they are scrambled.
 This program sorts the lines by making an array using the line numbers
 as subscripts.  The program then prints out the lines in sorted order
 of their numbers.  It is a very simple program and gets confused upon
@@ -11081,7 +11087,7 @@ has previously used, with the variable VAR set to that 
index.
    The following program uses this form of the `for' statement.  The
 first rule scans the input records and notes which words appear (at
 least once) in the input, by storing a one into the array `used' with
-the word as index.  The second rule scans the elements of `used' to
+the word as the index.  The second rule scans the elements of `used' to
 find all the distinct words that appear in the input.  It prints each
 word that is more than 10 characters long and also prints the number of
 such words.  *Note String Functions::, for more information on the
@@ -11164,7 +11170,7 @@ internal implementation of arrays and will vary from 
one version of
    Often, though, you may wish to do something simple, such as
 "traverse the array by comparing the indices in ascending order," or
 "traverse the array by comparing the values in descending order."
-`gawk' provides two mechanisms which give you this control.
+`gawk' provides two mechanisms that give you this control:
 
    * Set `PROCINFO["sorted_in"]' to one of a set of predefined values.
      We describe this now.
@@ -11212,22 +11218,26 @@ available:
      which `gawk' uses internally to perform the sorting.
 
 `"@ind_str_desc"'
-     String indices ordered from high to low.
+     Like `"@ind_str_asc"', but the string indices are ordered from
+     high to low.
 
 `"@ind_num_desc"'
-     Numeric indices ordered from high to low.
+     Like `"@ind_num_asc"', but the numeric indices are ordered from
+     high to low.
 
 `"@val_type_desc"'
-     Element values, based on type, ordered from high to low.
-     Subarrays, if present, come out first.
+     Like `"@val_type_asc"', but the element values, based on type, are
+     ordered from high to low.  Subarrays, if present, come out first.
 
 `"@val_str_desc"'
-     Element values, treated as strings, ordered from high to low.
-     Subarrays, if present, come out first.
+     Like `"@val_str_asc"', but the element values, treated as strings,
+     are ordered from high to low.  Subarrays, if present, come out
+     first.
 
 `"@val_num_desc"'
-     Element values, treated as numbers, ordered from high to low.
-     Subarrays, if present, come out first.
+     Like `"@val_num_asc"', but the element values, treated as numbers,
+     are ordered from high to low.  Subarrays, if present, come out
+     first.
 
    The array traversal order is determined before the `for' loop starts
 to run. Changing `PROCINFO["sorted_in"]' in the loop body does not
@@ -11413,8 +11423,8 @@ deleting elements in an array:
 
 This example removes all the elements from the array `frequencies'.
 Once an element is deleted, a subsequent `for' statement to scan the
-array does not report that element and the `in' operator to check for
-the presence of that element returns zero (i.e., false):
+array does not report that element and using the `in' operator to check
+for the presence of that element returns zero (i.e., false):
 
      delete foo[4]
      if (4 in foo)
@@ -11617,7 +11627,7 @@ two-element subarray at index `1' of the main array `a':
    This simulates a true two-dimensional array. Each subarray element
 can contain another subarray as a value, which in turn can hold other
 arrays as well. In this way, you can create arrays of three or more
-dimensions.  The indices can be any `awk' expression, including scalars
+dimensions.  The indices can be any `awk' expressions, including scalars
 separated by commas (i.e., a regular `awk' simulated multidimensional
 subscript). So the following is valid in `gawk':
 
@@ -11626,7 +11636,7 @@ subscript). So the following is valid in `gawk':
    Each subarray and the main array can be of different length. In
 fact, the elements of an array or its subarray do not all have to have
 the same type. This means that the main array and any of its subarrays
-can be non-rectangular, or jagged in structure. You can assign a scalar
+can be nonrectangular, or jagged in structure. You can assign a scalar
 value to the index `4' of the main array `a', even though `a[1]' is
 itself an array and not a scalar:
 
@@ -11644,8 +11654,8 @@ the element at that index:
      a[4][5][6][7] = "An element in a four-dimensional array"
 
 This removes the scalar value from index `4' and then inserts a
-subarray of subarray of subarray containing a scalar. You can also
-delete an entire subarray or subarray of subarrays:
+three-level nested subarray containing a scalar. You can also delete an
+entire subarray or subarray of subarrays:
 
      delete a[4][5]
      a[4][5] = "An element in subarray a[4]"
@@ -11653,7 +11663,7 @@ delete an entire subarray or subarray of subarrays:
    But recall that you can not delete the main array `a' and then use it
 as a scalar.
 
-   The built-in functions which take array arguments can also be used
+   The built-in functions that take array arguments can also be used
 with subarrays. For example, the following code fragment uses `length()'
 (*note String Functions::) to determine the number of elements in the
 main array `a' and its subarrays:
@@ -11674,7 +11684,7 @@ be nested to scan all the elements of an array of 
arrays if it is
 rectangular in structure. In order to print the contents (scalar
 values) of a two-dimensional array of arrays (i.e., in which each
 first-level element is itself an array, not necessarily of the same
-length) you could use the following code:
+length), you could use the following code:
 
      for (i in array)
          for (j in array[i])
@@ -11756,9 +11766,9 @@ File: gawk.info,  Node: Arrays Summary,  Prev: Arrays 
of Arrays,  Up: Arrays
      of `awk'.
 
    * Standard `awk' simulates multidimensional arrays by separating
-     subscript values with a comma.  The values are concatenated into a
+     subscript values with commas.  The values are concatenated into a
      single string, separated by the value of `SUBSEP'.  The fact that
-     such a subscript was created in this way is not retained; thus
+     such a subscript was created in this way is not retained; thus,
      changing `SUBSEP' may have unexpected consequences.  You can use
      `(SUB1, SUB2, ...) in ARRAY' to see if such a multidimensional
      subscript exists in ARRAY.
@@ -11766,7 +11776,7 @@ File: gawk.info,  Node: Arrays Summary,  Prev: Arrays 
of Arrays,  Up: Arrays
    * `gawk' provides true arrays of arrays. You use a separate set of
      square brackets for each dimension in such an array:
      `data[row][col]', for example. Array elements may thus be either
-     scalar values (number or string) or another array.
+     scalar values (number or string) or other arrays.
 
    * Use the `isarray()' built-in function to determine if an array
      element is itself a subarray.
@@ -12319,7 +12329,7 @@ Options::):
 
           split("cul-de-sac", a, "-", seps)
 
-     splits the string `cul-de-sac' into three fields using `-' as the
+     splits the string `"cul-de-sac"' into three fields using `-' as the
      separator.  It sets the contents of the array `a' as follows:
 
           a[1] = "cul"
@@ -31743,7 +31753,7 @@ Index
 * arrays:                                Arrays.              (line   6)
 * arrays of arrays:                      Arrays of Arrays.    (line   6)
 * arrays, an example of using:           Array Example.       (line   6)
-* arrays, and IGNORECASE variable:       Array Intro.         (line  94)
+* arrays, and IGNORECASE variable:       Array Intro.         (line 100)
 * arrays, as parameters to functions:    Pass By Value/Reference.
                                                               (line  44)
 * arrays, associative:                   Array Intro.         (line  50)
@@ -31770,7 +31780,7 @@ Index
                                                               (line   6)
 * arrays, sorting, and IGNORECASE variable: Array Sorting Functions.
                                                               (line  83)
-* arrays, sparse:                        Array Intro.         (line  72)
+* arrays, sparse:                        Array Intro.         (line  76)
 * arrays, subscripts, uninitialized variables as: Uninitialized Subscripts.
                                                               (line   6)
 * arrays, unassigned elements:           Reference to Elements.
@@ -32063,7 +32073,7 @@ Index
 * case keyword:                          Switch Statement.    (line   6)
 * case sensitivity, and regexps:         User-modified.       (line  76)
 * case sensitivity, and string comparisons: User-modified.    (line  76)
-* case sensitivity, array indices and:   Array Intro.         (line  94)
+* case sensitivity, array indices and:   Array Intro.         (line 100)
 * case sensitivity, converting case:     String Functions.    (line 522)
 * case sensitivity, example programs:    Library Functions.   (line  53)
 * case sensitivity, gawk:                Case-sensitivity.    (line  26)
@@ -32936,7 +32946,7 @@ Index
 * gawk, IGNORECASE variable in <1>:      Array Sorting Functions.
                                                               (line  83)
 * gawk, IGNORECASE variable in <2>:      String Functions.    (line  58)
-* gawk, IGNORECASE variable in <3>:      Array Intro.         (line  94)
+* gawk, IGNORECASE variable in <3>:      Array Intro.         (line 100)
 * gawk, IGNORECASE variable in <4>:      User-modified.       (line  76)
 * gawk, IGNORECASE variable in:          Case-sensitivity.    (line  26)
 * gawk, implementation issues:           Notes.               (line   6)
@@ -33103,7 +33113,7 @@ Index
 * ignore breakpoint:                     Breakpoint Control.  (line  87)
 * ignore debugger command:               Breakpoint Control.  (line  87)
 * IGNORECASE variable:                   User-modified.       (line  76)
-* IGNORECASE variable, and array indices: Array Intro.        (line  94)
+* IGNORECASE variable, and array indices: Array Intro.        (line 100)
 * IGNORECASE variable, and array sorting functions: Array Sorting Functions.
                                                               (line  83)
 * IGNORECASE variable, in example programs: Library Functions.
@@ -34093,7 +34103,7 @@ Index
 * source code, QuikTrim Awk:             Other Versions.      (line 139)
 * source code, Solaris awk:              Other Versions.      (line 100)
 * source files, search path for:         Programs Exercises.  (line  70)
-* sparse arrays:                         Array Intro.         (line  72)
+* sparse arrays:                         Array Intro.         (line  76)
 * Spencer, Henry:                        Glossary.            (line  16)
 * split:                                 String Functions.    (line 316)
 * split string into array:               String Functions.    (line 297)
@@ -34659,351 +34669,351 @@ Node: Pattern Action Summary458113
 Node: Arrays460546
 Node: Array Basics461875
 Node: Array Intro462719
-Ref: figure-array-elements464683
-Ref: Array Intro-Footnote-1467209
-Node: Reference to Elements467337
-Node: Assigning Elements469789
-Node: Array Example470280
-Node: Scanning an Array472038
-Node: Controlling Scanning475054
-Ref: Controlling Scanning-Footnote-1480250
-Node: Numeric Array Subscripts480566
-Node: Uninitialized Subscripts482751
-Node: Delete484368
-Ref: Delete-Footnote-1487111
-Node: Multidimensional487168
-Node: Multiscanning490265
-Node: Arrays of Arrays491854
-Node: Arrays Summary496613
-Node: Functions498705
-Node: Built-in499604
-Node: Calling Built-in500682
-Node: Numeric Functions502673
-Ref: Numeric Functions-Footnote-1506690
-Ref: Numeric Functions-Footnote-2507047
-Ref: Numeric Functions-Footnote-3507095
-Node: String Functions507367
-Ref: String Functions-Footnote-1530842
-Ref: String Functions-Footnote-2530971
-Ref: String Functions-Footnote-3531219
-Node: Gory Details531306
-Ref: table-sub-escapes533087
-Ref: table-sub-proposed534607
-Ref: table-posix-sub535971
-Ref: table-gensub-escapes537507
-Ref: Gory Details-Footnote-1538339
-Node: I/O Functions538490
-Ref: I/O Functions-Footnote-1545708
-Node: Time Functions545855
-Ref: Time Functions-Footnote-1556343
-Ref: Time Functions-Footnote-2556411
-Ref: Time Functions-Footnote-3556569
-Ref: Time Functions-Footnote-4556680
-Ref: Time Functions-Footnote-5556792
-Ref: Time Functions-Footnote-6557019
-Node: Bitwise Functions557285
-Ref: table-bitwise-ops557847
-Ref: Bitwise Functions-Footnote-1562156
-Node: Type Functions562325
-Node: I18N Functions563476
-Node: User-defined565121
-Node: Definition Syntax565926
-Ref: Definition Syntax-Footnote-1571333
-Node: Function Example571404
-Ref: Function Example-Footnote-1574323
-Node: Function Caveats574345
-Node: Calling A Function574863
-Node: Variable Scope575821
-Node: Pass By Value/Reference578809
-Node: Return Statement582304
-Node: Dynamic Typing585285
-Node: Indirect Calls586214
-Ref: Indirect Calls-Footnote-1597516
-Node: Functions Summary597644
-Node: Library Functions600346
-Ref: Library Functions-Footnote-1603955
-Ref: Library Functions-Footnote-2604098
-Node: Library Names604269
-Ref: Library Names-Footnote-1607723
-Ref: Library Names-Footnote-2607946
-Node: General Functions608032
-Node: Strtonum Function609135
-Node: Assert Function612157
-Node: Round Function615481
-Node: Cliff Random Function617022
-Node: Ordinal Functions618038
-Ref: Ordinal Functions-Footnote-1621101
-Ref: Ordinal Functions-Footnote-2621353
-Node: Join Function621564
-Ref: Join Function-Footnote-1623333
-Node: Getlocaltime Function623533
-Node: Readfile Function627277
-Node: Shell Quoting629247
-Node: Data File Management630648
-Node: Filetrans Function631280
-Node: Rewind Function635336
-Node: File Checking636723
-Ref: File Checking-Footnote-1638055
-Node: Empty Files638256
-Node: Ignoring Assigns640235
-Node: Getopt Function641786
-Ref: Getopt Function-Footnote-1653248
-Node: Passwd Functions653448
-Ref: Passwd Functions-Footnote-1662285
-Node: Group Functions662373
-Ref: Group Functions-Footnote-1670267
-Node: Walking Arrays670480
-Node: Library Functions Summary672083
-Node: Library Exercises673484
-Node: Sample Programs674764
-Node: Running Examples675534
-Node: Clones676262
-Node: Cut Program677486
-Node: Egrep Program687205
-Ref: Egrep Program-Footnote-1694703
-Node: Id Program694813
-Node: Split Program698458
-Ref: Split Program-Footnote-1701906
-Node: Tee Program702034
-Node: Uniq Program704823
-Node: Wc Program712242
-Ref: Wc Program-Footnote-1716492
-Node: Miscellaneous Programs716586
-Node: Dupword Program717799
-Node: Alarm Program719830
-Node: Translate Program724634
-Ref: Translate Program-Footnote-1729199
-Node: Labels Program729469
-Ref: Labels Program-Footnote-1732820
-Node: Word Sorting732904
-Node: History Sorting736975
-Node: Extract Program738811
-Node: Simple Sed746336
-Node: Igawk Program749404
-Ref: Igawk Program-Footnote-1763728
-Ref: Igawk Program-Footnote-2763929
-Ref: Igawk Program-Footnote-3764051
-Node: Anagram Program764166
-Node: Signature Program767223
-Node: Programs Summary768470
-Node: Programs Exercises769663
-Ref: Programs Exercises-Footnote-1773794
-Node: Advanced Features773885
-Node: Nondecimal Data775833
-Node: Array Sorting777423
-Node: Controlling Array Traversal778120
-Ref: Controlling Array Traversal-Footnote-1786453
-Node: Array Sorting Functions786571
-Ref: Array Sorting Functions-Footnote-1790460
-Node: Two-way I/O790656
-Ref: Two-way I/O-Footnote-1795601
-Ref: Two-way I/O-Footnote-2795787
-Node: TCP/IP Networking795869
-Node: Profiling798742
-Node: Advanced Features Summary806289
-Node: Internationalization808222
-Node: I18N and L10N809702
-Node: Explaining gettext810388
-Ref: Explaining gettext-Footnote-1815413
-Ref: Explaining gettext-Footnote-2815597
-Node: Programmer i18n815762
-Ref: Programmer i18n-Footnote-1820628
-Node: Translator i18n820677
-Node: String Extraction821471
-Ref: String Extraction-Footnote-1822602
-Node: Printf Ordering822688
-Ref: Printf Ordering-Footnote-1825474
-Node: I18N Portability825538
-Ref: I18N Portability-Footnote-1827993
-Node: I18N Example828056
-Ref: I18N Example-Footnote-1830859
-Node: Gawk I18N830931
-Node: I18N Summary831569
-Node: Debugger832908
-Node: Debugging833930
-Node: Debugging Concepts834371
-Node: Debugging Terms836224
-Node: Awk Debugging838796
-Node: Sample Debugging Session839690
-Node: Debugger Invocation840210
-Node: Finding The Bug841594
-Node: List of Debugger Commands848069
-Node: Breakpoint Control849402
-Node: Debugger Execution Control853098
-Node: Viewing And Changing Data856462
-Node: Execution Stack859840
-Node: Debugger Info861477
-Node: Miscellaneous Debugger Commands865494
-Node: Readline Support870523
-Node: Limitations871415
-Node: Debugging Summary873529
-Node: Arbitrary Precision Arithmetic874697
-Node: Computer Arithmetic876113
-Ref: table-numeric-ranges879711
-Ref: Computer Arithmetic-Footnote-1880570
-Node: Math Definitions880627
-Ref: table-ieee-formats883915
-Ref: Math Definitions-Footnote-1884519
-Node: MPFR features884624
-Node: FP Math Caution886295
-Ref: FP Math Caution-Footnote-1887345
-Node: Inexactness of computations887714
-Node: Inexact representation888673
-Node: Comparing FP Values890030
-Node: Errors accumulate891112
-Node: Getting Accuracy892545
-Node: Try To Round895207
-Node: Setting precision896106
-Ref: table-predefined-precision-strings896790
-Node: Setting the rounding mode898579
-Ref: table-gawk-rounding-modes898943
-Ref: Setting the rounding mode-Footnote-1902398
-Node: Arbitrary Precision Integers902577
-Ref: Arbitrary Precision Integers-Footnote-1905563
-Node: POSIX Floating Point Problems905712
-Ref: POSIX Floating Point Problems-Footnote-1909585
-Node: Floating point summary909623
-Node: Dynamic Extensions911817
-Node: Extension Intro913369
-Node: Plugin License914635
-Node: Extension Mechanism Outline915432
-Ref: figure-load-extension915860
-Ref: figure-register-new-function917340
-Ref: figure-call-new-function918344
-Node: Extension API Description920330
-Node: Extension API Functions Introduction921780
-Node: General Data Types926604
-Ref: General Data Types-Footnote-1932343
-Node: Memory Allocation Functions932642
-Ref: Memory Allocation Functions-Footnote-1935481
-Node: Constructor Functions935577
-Node: Registration Functions937311
-Node: Extension Functions937996
-Node: Exit Callback Functions940293
-Node: Extension Version String941541
-Node: Input Parsers942206
-Node: Output Wrappers952085
-Node: Two-way processors956600
-Node: Printing Messages958804
-Ref: Printing Messages-Footnote-1959880
-Node: Updating `ERRNO'960032
-Node: Requesting Values960772
-Ref: table-value-types-returned961500
-Node: Accessing Parameters962457
-Node: Symbol Table Access963688
-Node: Symbol table by name964202
-Node: Symbol table by cookie966183
-Ref: Symbol table by cookie-Footnote-1970327
-Node: Cached values970390
-Ref: Cached values-Footnote-1973889
-Node: Array Manipulation973980
-Ref: Array Manipulation-Footnote-1975078
-Node: Array Data Types975115
-Ref: Array Data Types-Footnote-1977770
-Node: Array Functions977862
-Node: Flattening Arrays981716
-Node: Creating Arrays988608
-Node: Extension API Variables993379
-Node: Extension Versioning994015
-Node: Extension API Informational Variables995916
-Node: Extension API Boilerplate996981
-Node: Finding Extensions1000790
-Node: Extension Example1001350
-Node: Internal File Description1002122
-Node: Internal File Ops1006189
-Ref: Internal File Ops-Footnote-11017859
-Node: Using Internal File Ops1017999
-Ref: Using Internal File Ops-Footnote-11020382
-Node: Extension Samples1020655
-Node: Extension Sample File Functions1022181
-Node: Extension Sample Fnmatch1029819
-Node: Extension Sample Fork1031310
-Node: Extension Sample Inplace1032525
-Node: Extension Sample Ord1034200
-Node: Extension Sample Readdir1035036
-Ref: table-readdir-file-types1035912
-Node: Extension Sample Revout1036723
-Node: Extension Sample Rev2way1037313
-Node: Extension Sample Read write array1038053
-Node: Extension Sample Readfile1039993
-Node: Extension Sample Time1041088
-Node: Extension Sample API Tests1042437
-Node: gawkextlib1042928
-Node: Extension summary1045586
-Node: Extension Exercises1049275
-Node: Language History1049997
-Node: V7/SVR3.11051653
-Node: SVR41053834
-Node: POSIX1055279
-Node: BTL1056668
-Node: POSIX/GNU1057402
-Node: Feature History1062966
-Node: Common Extensions1076064
-Node: Ranges and Locales1077388
-Ref: Ranges and Locales-Footnote-11082006
-Ref: Ranges and Locales-Footnote-21082033
-Ref: Ranges and Locales-Footnote-31082267
-Node: Contributors1082488
-Node: History summary1088029
-Node: Installation1089399
-Node: Gawk Distribution1090345
-Node: Getting1090829
-Node: Extracting1091652
-Node: Distribution contents1093287
-Node: Unix Installation1099004
-Node: Quick Installation1099621
-Node: Additional Configuration Options1102045
-Node: Configuration Philosophy1103783
-Node: Non-Unix Installation1106152
-Node: PC Installation1106610
-Node: PC Binary Installation1107929
-Node: PC Compiling1109777
-Ref: PC Compiling-Footnote-11112798
-Node: PC Testing1112907
-Node: PC Using1114083
-Node: Cygwin1118198
-Node: MSYS1119021
-Node: VMS Installation1119521
-Node: VMS Compilation1120313
-Ref: VMS Compilation-Footnote-11121535
-Node: VMS Dynamic Extensions1121593
-Node: VMS Installation Details1123277
-Node: VMS Running1125529
-Node: VMS GNV1128365
-Node: VMS Old Gawk1129099
-Node: Bugs1129569
-Node: Other Versions1133452
-Node: Installation summary1139876
-Node: Notes1140932
-Node: Compatibility Mode1141797
-Node: Additions1142579
-Node: Accessing The Source1143504
-Node: Adding Code1144939
-Node: New Ports1151096
-Node: Derived Files1155578
-Ref: Derived Files-Footnote-11161053
-Ref: Derived Files-Footnote-21161087
-Ref: Derived Files-Footnote-31161683
-Node: Future Extensions1161797
-Node: Implementation Limitations1162403
-Node: Extension Design1163651
-Node: Old Extension Problems1164805
-Ref: Old Extension Problems-Footnote-11166322
-Node: Extension New Mechanism Goals1166379
-Ref: Extension New Mechanism Goals-Footnote-11169739
-Node: Extension Other Design Decisions1169928
-Node: Extension Future Growth1172036
-Node: Old Extension Mechanism1172872
-Node: Notes summary1174634
-Node: Basic Concepts1175820
-Node: Basic High Level1176501
-Ref: figure-general-flow1176773
-Ref: figure-process-flow1177372
-Ref: Basic High Level-Footnote-11180601
-Node: Basic Data Typing1180786
-Node: Glossary1184114
-Node: Copying1216043
-Node: GNU Free Documentation License1253599
-Node: Index1278735
+Ref: figure-array-elements464653
+Ref: Array Intro-Footnote-1467273
+Node: Reference to Elements467401
+Node: Assigning Elements469863
+Node: Array Example470354
+Node: Scanning an Array472113
+Node: Controlling Scanning475133
+Ref: Controlling Scanning-Footnote-1480527
+Node: Numeric Array Subscripts480843
+Node: Uninitialized Subscripts483028
+Node: Delete484645
+Ref: Delete-Footnote-1487394
+Node: Multidimensional487451
+Node: Multiscanning490548
+Node: Arrays of Arrays492137
+Node: Arrays Summary496891
+Node: Functions498982
+Node: Built-in499881
+Node: Calling Built-in500959
+Node: Numeric Functions502950
+Ref: Numeric Functions-Footnote-1506967
+Ref: Numeric Functions-Footnote-2507324
+Ref: Numeric Functions-Footnote-3507372
+Node: String Functions507644
+Ref: String Functions-Footnote-1531121
+Ref: String Functions-Footnote-2531250
+Ref: String Functions-Footnote-3531498
+Node: Gory Details531585
+Ref: table-sub-escapes533366
+Ref: table-sub-proposed534886
+Ref: table-posix-sub536250
+Ref: table-gensub-escapes537786
+Ref: Gory Details-Footnote-1538618
+Node: I/O Functions538769
+Ref: I/O Functions-Footnote-1545987
+Node: Time Functions546134
+Ref: Time Functions-Footnote-1556622
+Ref: Time Functions-Footnote-2556690
+Ref: Time Functions-Footnote-3556848
+Ref: Time Functions-Footnote-4556959
+Ref: Time Functions-Footnote-5557071
+Ref: Time Functions-Footnote-6557298
+Node: Bitwise Functions557564
+Ref: table-bitwise-ops558126
+Ref: Bitwise Functions-Footnote-1562435
+Node: Type Functions562604
+Node: I18N Functions563755
+Node: User-defined565400
+Node: Definition Syntax566205
+Ref: Definition Syntax-Footnote-1571612
+Node: Function Example571683
+Ref: Function Example-Footnote-1574602
+Node: Function Caveats574624
+Node: Calling A Function575142
+Node: Variable Scope576100
+Node: Pass By Value/Reference579088
+Node: Return Statement582583
+Node: Dynamic Typing585564
+Node: Indirect Calls586493
+Ref: Indirect Calls-Footnote-1597795
+Node: Functions Summary597923
+Node: Library Functions600625
+Ref: Library Functions-Footnote-1604234
+Ref: Library Functions-Footnote-2604377
+Node: Library Names604548
+Ref: Library Names-Footnote-1608002
+Ref: Library Names-Footnote-2608225
+Node: General Functions608311
+Node: Strtonum Function609414
+Node: Assert Function612436
+Node: Round Function615760
+Node: Cliff Random Function617301
+Node: Ordinal Functions618317
+Ref: Ordinal Functions-Footnote-1621380
+Ref: Ordinal Functions-Footnote-2621632
+Node: Join Function621843
+Ref: Join Function-Footnote-1623612
+Node: Getlocaltime Function623812
+Node: Readfile Function627556
+Node: Shell Quoting629526
+Node: Data File Management630927
+Node: Filetrans Function631559
+Node: Rewind Function635615
+Node: File Checking637002
+Ref: File Checking-Footnote-1638334
+Node: Empty Files638535
+Node: Ignoring Assigns640514
+Node: Getopt Function642065
+Ref: Getopt Function-Footnote-1653527
+Node: Passwd Functions653727
+Ref: Passwd Functions-Footnote-1662564
+Node: Group Functions662652
+Ref: Group Functions-Footnote-1670546
+Node: Walking Arrays670759
+Node: Library Functions Summary672362
+Node: Library Exercises673763
+Node: Sample Programs675043
+Node: Running Examples675813
+Node: Clones676541
+Node: Cut Program677765
+Node: Egrep Program687484
+Ref: Egrep Program-Footnote-1694982
+Node: Id Program695092
+Node: Split Program698737
+Ref: Split Program-Footnote-1702185
+Node: Tee Program702313
+Node: Uniq Program705102
+Node: Wc Program712521
+Ref: Wc Program-Footnote-1716771
+Node: Miscellaneous Programs716865
+Node: Dupword Program718078
+Node: Alarm Program720109
+Node: Translate Program724913
+Ref: Translate Program-Footnote-1729478
+Node: Labels Program729748
+Ref: Labels Program-Footnote-1733099
+Node: Word Sorting733183
+Node: History Sorting737254
+Node: Extract Program739090
+Node: Simple Sed746615
+Node: Igawk Program749683
+Ref: Igawk Program-Footnote-1764007
+Ref: Igawk Program-Footnote-2764208
+Ref: Igawk Program-Footnote-3764330
+Node: Anagram Program764445
+Node: Signature Program767502
+Node: Programs Summary768749
+Node: Programs Exercises769942
+Ref: Programs Exercises-Footnote-1774073
+Node: Advanced Features774164
+Node: Nondecimal Data776112
+Node: Array Sorting777702
+Node: Controlling Array Traversal778399
+Ref: Controlling Array Traversal-Footnote-1786732
+Node: Array Sorting Functions786850
+Ref: Array Sorting Functions-Footnote-1790739
+Node: Two-way I/O790935
+Ref: Two-way I/O-Footnote-1795880
+Ref: Two-way I/O-Footnote-2796066
+Node: TCP/IP Networking796148
+Node: Profiling799021
+Node: Advanced Features Summary806568
+Node: Internationalization808501
+Node: I18N and L10N809981
+Node: Explaining gettext810667
+Ref: Explaining gettext-Footnote-1815692
+Ref: Explaining gettext-Footnote-2815876
+Node: Programmer i18n816041
+Ref: Programmer i18n-Footnote-1820907
+Node: Translator i18n820956
+Node: String Extraction821750
+Ref: String Extraction-Footnote-1822881
+Node: Printf Ordering822967
+Ref: Printf Ordering-Footnote-1825753
+Node: I18N Portability825817
+Ref: I18N Portability-Footnote-1828272
+Node: I18N Example828335
+Ref: I18N Example-Footnote-1831138
+Node: Gawk I18N831210
+Node: I18N Summary831848
+Node: Debugger833187
+Node: Debugging834209
+Node: Debugging Concepts834650
+Node: Debugging Terms836503
+Node: Awk Debugging839075
+Node: Sample Debugging Session839969
+Node: Debugger Invocation840489
+Node: Finding The Bug841873
+Node: List of Debugger Commands848348
+Node: Breakpoint Control849681
+Node: Debugger Execution Control853377
+Node: Viewing And Changing Data856741
+Node: Execution Stack860119
+Node: Debugger Info861756
+Node: Miscellaneous Debugger Commands865773
+Node: Readline Support870802
+Node: Limitations871694
+Node: Debugging Summary873808
+Node: Arbitrary Precision Arithmetic874976
+Node: Computer Arithmetic876392
+Ref: table-numeric-ranges879990
+Ref: Computer Arithmetic-Footnote-1880849
+Node: Math Definitions880906
+Ref: table-ieee-formats884194
+Ref: Math Definitions-Footnote-1884798
+Node: MPFR features884903
+Node: FP Math Caution886574
+Ref: FP Math Caution-Footnote-1887624
+Node: Inexactness of computations887993
+Node: Inexact representation888952
+Node: Comparing FP Values890309
+Node: Errors accumulate891391
+Node: Getting Accuracy892824
+Node: Try To Round895486
+Node: Setting precision896385
+Ref: table-predefined-precision-strings897069
+Node: Setting the rounding mode898858
+Ref: table-gawk-rounding-modes899222
+Ref: Setting the rounding mode-Footnote-1902677
+Node: Arbitrary Precision Integers902856
+Ref: Arbitrary Precision Integers-Footnote-1905842
+Node: POSIX Floating Point Problems905991
+Ref: POSIX Floating Point Problems-Footnote-1909864
+Node: Floating point summary909902
+Node: Dynamic Extensions912096
+Node: Extension Intro913648
+Node: Plugin License914914
+Node: Extension Mechanism Outline915711
+Ref: figure-load-extension916139
+Ref: figure-register-new-function917619
+Ref: figure-call-new-function918623
+Node: Extension API Description920609
+Node: Extension API Functions Introduction922059
+Node: General Data Types926883
+Ref: General Data Types-Footnote-1932622
+Node: Memory Allocation Functions932921
+Ref: Memory Allocation Functions-Footnote-1935760
+Node: Constructor Functions935856
+Node: Registration Functions937590
+Node: Extension Functions938275
+Node: Exit Callback Functions940572
+Node: Extension Version String941820
+Node: Input Parsers942485
+Node: Output Wrappers952364
+Node: Two-way processors956879
+Node: Printing Messages959083
+Ref: Printing Messages-Footnote-1960159
+Node: Updating `ERRNO'960311
+Node: Requesting Values961051
+Ref: table-value-types-returned961779
+Node: Accessing Parameters962736
+Node: Symbol Table Access963967
+Node: Symbol table by name964481
+Node: Symbol table by cookie966462
+Ref: Symbol table by cookie-Footnote-1970606
+Node: Cached values970669
+Ref: Cached values-Footnote-1974168
+Node: Array Manipulation974259
+Ref: Array Manipulation-Footnote-1975357
+Node: Array Data Types975394
+Ref: Array Data Types-Footnote-1978049
+Node: Array Functions978141
+Node: Flattening Arrays981995
+Node: Creating Arrays988887
+Node: Extension API Variables993658
+Node: Extension Versioning994294
+Node: Extension API Informational Variables996195
+Node: Extension API Boilerplate997260
+Node: Finding Extensions1001069
+Node: Extension Example1001629
+Node: Internal File Description1002401
+Node: Internal File Ops1006468
+Ref: Internal File Ops-Footnote-11018138
+Node: Using Internal File Ops1018278
+Ref: Using Internal File Ops-Footnote-11020661
+Node: Extension Samples1020934
+Node: Extension Sample File Functions1022460
+Node: Extension Sample Fnmatch1030098
+Node: Extension Sample Fork1031589
+Node: Extension Sample Inplace1032804
+Node: Extension Sample Ord1034479
+Node: Extension Sample Readdir1035315
+Ref: table-readdir-file-types1036191
+Node: Extension Sample Revout1037002
+Node: Extension Sample Rev2way1037592
+Node: Extension Sample Read write array1038332
+Node: Extension Sample Readfile1040272
+Node: Extension Sample Time1041367
+Node: Extension Sample API Tests1042716
+Node: gawkextlib1043207
+Node: Extension summary1045865
+Node: Extension Exercises1049554
+Node: Language History1050276
+Node: V7/SVR3.11051932
+Node: SVR41054113
+Node: POSIX1055558
+Node: BTL1056947
+Node: POSIX/GNU1057681
+Node: Feature History1063245
+Node: Common Extensions1076343
+Node: Ranges and Locales1077667
+Ref: Ranges and Locales-Footnote-11082285
+Ref: Ranges and Locales-Footnote-21082312
+Ref: Ranges and Locales-Footnote-31082546
+Node: Contributors1082767
+Node: History summary1088308
+Node: Installation1089678
+Node: Gawk Distribution1090624
+Node: Getting1091108
+Node: Extracting1091931
+Node: Distribution contents1093566
+Node: Unix Installation1099283
+Node: Quick Installation1099900
+Node: Additional Configuration Options1102324
+Node: Configuration Philosophy1104062
+Node: Non-Unix Installation1106431
+Node: PC Installation1106889
+Node: PC Binary Installation1108208
+Node: PC Compiling1110056
+Ref: PC Compiling-Footnote-11113077
+Node: PC Testing1113186
+Node: PC Using1114362
+Node: Cygwin1118477
+Node: MSYS1119300
+Node: VMS Installation1119800
+Node: VMS Compilation1120592
+Ref: VMS Compilation-Footnote-11121814
+Node: VMS Dynamic Extensions1121872
+Node: VMS Installation Details1123556
+Node: VMS Running1125808
+Node: VMS GNV1128644
+Node: VMS Old Gawk1129378
+Node: Bugs1129848
+Node: Other Versions1133731
+Node: Installation summary1140155
+Node: Notes1141211
+Node: Compatibility Mode1142076
+Node: Additions1142858
+Node: Accessing The Source1143783
+Node: Adding Code1145218
+Node: New Ports1151375
+Node: Derived Files1155857
+Ref: Derived Files-Footnote-11161332
+Ref: Derived Files-Footnote-21161366
+Ref: Derived Files-Footnote-31161962
+Node: Future Extensions1162076
+Node: Implementation Limitations1162682
+Node: Extension Design1163930
+Node: Old Extension Problems1165084
+Ref: Old Extension Problems-Footnote-11166601
+Node: Extension New Mechanism Goals1166658
+Ref: Extension New Mechanism Goals-Footnote-11170018
+Node: Extension Other Design Decisions1170207
+Node: Extension Future Growth1172315
+Node: Old Extension Mechanism1173151
+Node: Notes summary1174913
+Node: Basic Concepts1176099
+Node: Basic High Level1176780
+Ref: figure-general-flow1177052
+Ref: figure-process-flow1177651
+Ref: Basic High Level-Footnote-11180880
+Node: Basic Data Typing1181065
+Node: Glossary1184393
+Node: Copying1216322
+Node: GNU Free Documentation License1253878
+Node: Index1279014
 
 End Tag Table
diff --git a/doc/gawk.texi b/doc/gawk.texi
index f354318..48583f4 100644
--- a/doc/gawk.texi
+++ b/doc/gawk.texi
@@ -15494,15 +15494,17 @@ the declaration.
 indices---e.g., @samp{15 .. 27}---but the size of the array is still fixed when
 the array is declared.)
 
-A contiguous array of four elements might look like the following example,
-conceptually, if the element values are 8, @code{"foo"},
address@hidden""}, and 30
address@hidden 1/2015: Do not put the numeric values into @code. Array element
address@hidden values are no different than scalar variable values.
+A contiguous array of four elements might look like
 @ifnotdocbook
-as shown in @ref{figure-array-elements}:
address@hidden,
 @end ifnotdocbook
 @ifdocbook
-as shown in @inlineraw{docbook, <xref linkend="figure-array-elements"/>}:
address@hidden, <xref linkend="figure-array-elements"/>},
 @end ifdocbook
+conceptually, if the element values are eight, @code{"foo"},
address@hidden""}, and 30.
 
 @ifnotdocbook
 @float Figure,figure-array-elements
@@ -15527,7 +15529,7 @@ as shown in @inlineraw{docbook, <xref 
linkend="figure-array-elements"/>}:
 
 @noindent
 Only the values are stored; the indices are implicit from the order of
-the values. Here, 8 is the value at index zero, because 8 appears in the
+the values. Here, eight is the value at index zero, because eight appears in 
the
 position with zero elements before it.
 
 @cindex arrays, indexing
@@ -15539,19 +15541,21 @@ that each array is a collection of pairs---an index 
and its corresponding
 array element value:
 
 @ifnotdocbook
address@hidden
address@hidden 3     @r{Value} 30
address@hidden 1     @r{Value} "foo"
address@hidden 0     @r{Value} 8
address@hidden 2     @r{Value} ""
address@hidden example
address@hidden extra empty column to indent it right
address@hidden @columnfractions .1 .1 .1
address@hidden @tab Index @tab Value
address@hidden @tab @code{3} @tab @code{30}
address@hidden @tab @code{1} @tab @code{"foo"}
address@hidden @tab @code{0} @tab @code{8}
address@hidden @tab @code{2} @tab @code{""}
address@hidden multitable
 @end ifnotdocbook
 
 @docbook
 <informaltable>
 <tgroup cols="2">
-<colspec colname="1" align="center"/>
-<colspec colname="2" align="center"/>
+<colspec colname="1" align="left"/>
+<colspec colname="2" align="left"/>
 <thead>
 <row>
 <entry>Index</entry>
@@ -15597,20 +15601,22 @@ at any time.  For example, suppose a tenth element is 
added to the array
 whose value is @address@hidden"number ten"}}.  The result is:
 
 @ifnotdocbook
address@hidden
address@hidden 10    @r{Value} "number ten"
address@hidden 3     @r{Value} 30
address@hidden 1     @r{Value} "foo"
address@hidden 0     @r{Value} 8
address@hidden 2     @r{Value} ""
address@hidden example
address@hidden extra empty column to indent it right
address@hidden @columnfractions .1 .1 .2
address@hidden @tab Index @tab Value
address@hidden @tab @code{10} @tab @code{"number ten"}
address@hidden @tab @code{3} @tab @code{30}
address@hidden @tab @code{1} @tab @code{"foo"}
address@hidden @tab @code{0} @tab @code{8}
address@hidden @tab @code{2} @tab @code{""}
address@hidden multitable
 @end ifnotdocbook
 
 @docbook
 <informaltable>
 <tgroup cols="2">
-<colspec colname="1" align="center"/>
-<colspec colname="2" align="center"/>
+<colspec colname="1" align="left"/>
+<colspec colname="2" align="left"/>
 <thead>
 <row>
 <entry>Index</entry>
@@ -15662,19 +15668,20 @@ an index.  For example, the following is an array 
that translates words from
 English to French:
 
 @ifnotdocbook
address@hidden
address@hidden "dog" @r{Value} "chien"
address@hidden "cat" @r{Value} "chat"
address@hidden "one" @r{Value} "un"
address@hidden 1     @r{Value} "un"
address@hidden example
address@hidden @columnfractions .1 .1 .1
address@hidden @tab Index @tab Value
address@hidden @tab @code{"dog"} @tab @code{"chien"}
address@hidden @tab @code{"cat"} @tab @code{"chat"}
address@hidden @tab @code{"one"} @tab @code{"un"}
address@hidden @tab @code{1} @tab @code{"un"}
address@hidden multitable
 @end ifnotdocbook
 
 @docbook
 <informaltable>
 <tgroup cols="2">
-<colspec colname="1" align="center"/>
-<colspec colname="2" align="center"/>
+<colspec colname="1" align="left"/>
+<colspec colname="2" align="left"/>
 <thead>
 <row>
 <entry>Index</entry>
@@ -15716,7 +15723,7 @@ numbers and strings as indices.
 There are some subtleties to how numbers work when used as
 array subscripts; this is discussed in more detail in
 @ref{Numeric Array Subscripts}.)
-Here, the number @code{1} isn't double quoted, because @command{awk}
+Here, the number @code{1} isn't double-quoted, because @command{awk}
 automatically converts it to a string.
 
 @cindex @command{gawk}, @code{IGNORECASE} variable in
@@ -15741,7 +15748,7 @@ is independent of the number of elements in the array.
 @cindex elements of arrays
 
 The principal way to use an array is to refer to one of its elements.
-An array reference is an expression as follows:
+An @dfn{array reference} is an expression as follows:
 
 @example
 @address@hidden
@@ -15751,8 +15758,11 @@ An array reference is an expression as follows:
 Here, @var{array} is the name of an array.  The expression 
@var{index-expression} is
 the index of the desired element of the array.
 
address@hidden 1/2015: Having the 4.3 in @samp is a little iffy. It's 
essentially
address@hidden an expression though, so leave be. It's to early in the 
discussion
address@hidden to mention that it's really a string.
 The value of the array reference is the current value of that array
-element.  For example, @code{foo[4.3]} is an expression for the element
+element.  For example, @code{foo[4.3]} is an expression referencing the element
 of array @code{foo} at index @samp{4.3}.
 
 @cindex arrays, unassigned elements
@@ -15844,7 +15854,7 @@ assign to that element of the array.
 
 The following program takes a list of lines, each beginning with a line
 number, and prints them out in order of line number.  The line numbers
-are not in order when they are first read---instead they
+are not in order when they are first read---instead, they
 are scrambled.  This program sorts the lines by making an array using
 the line numbers as subscripts.  The program then prints out the lines
 in sorted order of their numbers.  It is a very simple program and gets
@@ -15938,7 +15948,7 @@ program has previously used, with the variable 
@var{var} set to that index.
 The following program uses this form of the @code{for} statement.  The
 first rule scans the input records and notes which words appear (at
 least once) in the input, by storing a one into the array @code{used} with
-the word as index.  The second rule scans the elements of @code{used} to
+the word as the index.  The second rule scans the elements of @code{used} to
 find all the distinct words that appear in the input.  It prints each
 word that is more than 10 characters long and also prints the number of
 such words.
@@ -16035,7 +16045,7 @@ and will vary from one version of @command{awk} to the 
next.
 Often, though, you may wish to do something simple, such as
 ``traverse the array by comparing the indices in ascending order,''
 or ``traverse the array by comparing the values in descending order.''
address@hidden provides two mechanisms which give you this control.
address@hidden provides two mechanisms that give you this control:
 
 @itemize @value{BULLET}
 @item
@@ -16092,21 +16102,26 @@ across different environments.} which @command{gawk} 
uses internally
 to perform the sorting.
 
 @item "@@ind_str_desc"
-String indices ordered from high to low.
+Like @code{"@@ind_str_asc"}, but the
+string indices are ordered from high to low.
 
 @item "@@ind_num_desc"
-Numeric indices ordered from high to low.
+Like @code{"@@ind_num_asc"}, but the
+numeric indices are ordered from high to low.
 
 @item "@@val_type_desc"
-Element values, based on type, ordered from high to low.
+Like @code{"@@val_type_asc"}, but the
+element values, based on type, are ordered from high to low.
 Subarrays, if present, come out first.
 
 @item "@@val_str_desc"
-Element values, treated as strings, ordered from high to low.
+Like @code{"@@val_str_asc"}, but the
+element values, treated as strings, are ordered from high to low.
 Subarrays, if present, come out first.
 
 @item "@@val_num_desc"
-Element values, treated as numbers, ordered from high to low.
+Like @code{"@@val_num_asc"}, but the
+element values, treated as numbers, are ordered from high to low.
 Subarrays, if present, come out first.
 @end table
 
@@ -16329,7 +16344,7 @@ for (i in frequencies)
 @noindent
 This example removes all the elements from the array @code{frequencies}.
 Once an element is deleted, a subsequent @code{for} statement to scan the array
-does not report that element and the @code{in} operator to check for
+does not report that element and using the @code{in} operator to check for
 the presence of that element returns zero (i.e., false):
 
 @example
@@ -16589,7 +16604,7 @@ a[1][2] = 2
 This simulates a true two-dimensional array. Each subarray element can
 contain another subarray as a value, which in turn can hold other arrays
 as well. In this way, you can create arrays of three or more dimensions.
-The indices can be any @command{awk} expression, including scalars
+The indices can be any @command{awk} expressions, including scalars
 separated by commas (i.e., a regular @command{awk} simulated
 multidimensional subscript). So the following is valid in
 @command{gawk}:
@@ -16601,7 +16616,7 @@ a[1][3][1, "name"] = "barney"
 Each subarray and the main array can be of different length. In fact, the
 elements of an array or its subarray do not all have to have the same
 type. This means that the main array and any of its subarrays can be
-non-rectangular, or jagged in structure. You can assign a scalar value to
+nonrectangular, or jagged in structure. You can assign a scalar value to
 the index @code{4} of the main array @code{a}, even though @code{a[1]}
 is itself an array and not a scalar:
 
@@ -16625,7 +16640,8 @@ a[4][5][6][7] = "An element in a four-dimensional array"
 
 @noindent
 This removes the scalar value from index @code{4} and then inserts a
-subarray of subarray of subarray containing a scalar. You can also
+three-level nested subarray
+containing a scalar. You can also
 delete an entire subarray or subarray of subarrays:
 
 @example
@@ -16636,7 +16652,7 @@ a[4][5] = "An element in subarray a[4]"
 But recall that you can not delete the main array @code{a} and then use it
 as a scalar.
 
-The built-in functions which take array arguments can also be used
+The built-in functions that take array arguments can also be used
 with subarrays. For example, the following code fragment uses @code{length()}
 (@pxref{String Functions})
 to determine the number of elements in the main array @code{a} and
@@ -16666,7 +16682,7 @@ can be nested to scan all the
 elements of an array of arrays if it is rectangular in structure. In order
 to print the contents (scalar values) of a two-dimensional array of arrays
 (i.e., in which each first-level element is itself an
-array, not necessarily of the same length)
+array, not necessarily of the same length),
 you could use the following code:
 
 @example
@@ -16766,9 +16782,9 @@ versions of @command{awk}.
 
 @item
 Standard @command{awk} simulates multidimensional arrays by separating
-subscript values with a comma.  The values are concatenated into a
+subscript values with commas.  The values are concatenated into a
 single string, separated by the value of @code{SUBSEP}.  The fact
-that such a subscript was created in this way is not retained; thus
+that such a subscript was created in this way is not retained; thus,
 changing @code{SUBSEP} may have unexpected consequences.  You can use
 @samp{(@var{sub1}, @var{sub2}, @dots{}) in @var{array}} to see if such
 a multidimensional subscript exists in @var{array}.
@@ -16777,7 +16793,7 @@ a multidimensional subscript exists in @var{array}.
 @command{gawk} provides true arrays of arrays. You use a separate
 set of square brackets for each dimension in such an array:
 @code{data[row][col]}, for example. Array elements may thus be either
-scalar values (number or string) or another array.
+scalar values (number or string) or other arrays.
 
 @item
 Use the @code{isarray()} built-in function to determine if an array
@@ -17498,7 +17514,7 @@ split("cul-de-sac", a, "-", seps)
 
 @noindent
 @cindex strings splitting, example
-splits the string @samp{cul-de-sac} into three fields using @samp{-} as the
+splits the string @code{"cul-de-sac"} into three fields using @samp{-} as the
 separator.  It sets the contents of the array @code{a} as follows:
 
 @example
diff --git a/doc/gawktexi.in b/doc/gawktexi.in
index a94d11b..8fd8428 100644
--- a/doc/gawktexi.in
+++ b/doc/gawktexi.in
@@ -14776,15 +14776,17 @@ the declaration.
 indices---e.g., @samp{15 .. 27}---but the size of the array is still fixed when
 the array is declared.)
 
-A contiguous array of four elements might look like the following example,
-conceptually, if the element values are 8, @code{"foo"},
address@hidden""}, and 30
address@hidden 1/2015: Do not put the numeric values into @code. Array element
address@hidden values are no different than scalar variable values.
+A contiguous array of four elements might look like
 @ifnotdocbook
-as shown in @ref{figure-array-elements}:
address@hidden,
 @end ifnotdocbook
 @ifdocbook
-as shown in @inlineraw{docbook, <xref linkend="figure-array-elements"/>}:
address@hidden, <xref linkend="figure-array-elements"/>},
 @end ifdocbook
+conceptually, if the element values are eight, @code{"foo"},
address@hidden""}, and 30.
 
 @ifnotdocbook
 @float Figure,figure-array-elements
@@ -14809,7 +14811,7 @@ as shown in @inlineraw{docbook, <xref 
linkend="figure-array-elements"/>}:
 
 @noindent
 Only the values are stored; the indices are implicit from the order of
-the values. Here, 8 is the value at index zero, because 8 appears in the
+the values. Here, eight is the value at index zero, because eight appears in 
the
 position with zero elements before it.
 
 @cindex arrays, indexing
@@ -14821,19 +14823,21 @@ that each array is a collection of pairs---an index 
and its corresponding
 array element value:
 
 @ifnotdocbook
address@hidden
address@hidden 3     @r{Value} 30
address@hidden 1     @r{Value} "foo"
address@hidden 0     @r{Value} 8
address@hidden 2     @r{Value} ""
address@hidden example
address@hidden extra empty column to indent it right
address@hidden @columnfractions .1 .1 .1
address@hidden @tab Index @tab Value
address@hidden @tab @code{3} @tab @code{30}
address@hidden @tab @code{1} @tab @code{"foo"}
address@hidden @tab @code{0} @tab @code{8}
address@hidden @tab @code{2} @tab @code{""}
address@hidden multitable
 @end ifnotdocbook
 
 @docbook
 <informaltable>
 <tgroup cols="2">
-<colspec colname="1" align="center"/>
-<colspec colname="2" align="center"/>
+<colspec colname="1" align="left"/>
+<colspec colname="2" align="left"/>
 <thead>
 <row>
 <entry>Index</entry>
@@ -14879,20 +14883,22 @@ at any time.  For example, suppose a tenth element is 
added to the array
 whose value is @address@hidden"number ten"}}.  The result is:
 
 @ifnotdocbook
address@hidden
address@hidden 10    @r{Value} "number ten"
address@hidden 3     @r{Value} 30
address@hidden 1     @r{Value} "foo"
address@hidden 0     @r{Value} 8
address@hidden 2     @r{Value} ""
address@hidden example
address@hidden extra empty column to indent it right
address@hidden @columnfractions .1 .1 .2
address@hidden @tab Index @tab Value
address@hidden @tab @code{10} @tab @code{"number ten"}
address@hidden @tab @code{3} @tab @code{30}
address@hidden @tab @code{1} @tab @code{"foo"}
address@hidden @tab @code{0} @tab @code{8}
address@hidden @tab @code{2} @tab @code{""}
address@hidden multitable
 @end ifnotdocbook
 
 @docbook
 <informaltable>
 <tgroup cols="2">
-<colspec colname="1" align="center"/>
-<colspec colname="2" align="center"/>
+<colspec colname="1" align="left"/>
+<colspec colname="2" align="left"/>
 <thead>
 <row>
 <entry>Index</entry>
@@ -14944,19 +14950,20 @@ an index.  For example, the following is an array 
that translates words from
 English to French:
 
 @ifnotdocbook
address@hidden
address@hidden "dog" @r{Value} "chien"
address@hidden "cat" @r{Value} "chat"
address@hidden "one" @r{Value} "un"
address@hidden 1     @r{Value} "un"
address@hidden example
address@hidden @columnfractions .1 .1 .1
address@hidden @tab Index @tab Value
address@hidden @tab @code{"dog"} @tab @code{"chien"}
address@hidden @tab @code{"cat"} @tab @code{"chat"}
address@hidden @tab @code{"one"} @tab @code{"un"}
address@hidden @tab @code{1} @tab @code{"un"}
address@hidden multitable
 @end ifnotdocbook
 
 @docbook
 <informaltable>
 <tgroup cols="2">
-<colspec colname="1" align="center"/>
-<colspec colname="2" align="center"/>
+<colspec colname="1" align="left"/>
+<colspec colname="2" align="left"/>
 <thead>
 <row>
 <entry>Index</entry>
@@ -14998,7 +15005,7 @@ numbers and strings as indices.
 There are some subtleties to how numbers work when used as
 array subscripts; this is discussed in more detail in
 @ref{Numeric Array Subscripts}.)
-Here, the number @code{1} isn't double quoted, because @command{awk}
+Here, the number @code{1} isn't double-quoted, because @command{awk}
 automatically converts it to a string.
 
 @cindex @command{gawk}, @code{IGNORECASE} variable in
@@ -15023,7 +15030,7 @@ is independent of the number of elements in the array.
 @cindex elements of arrays
 
 The principal way to use an array is to refer to one of its elements.
-An array reference is an expression as follows:
+An @dfn{array reference} is an expression as follows:
 
 @example
 @address@hidden
@@ -15033,8 +15040,11 @@ An array reference is an expression as follows:
 Here, @var{array} is the name of an array.  The expression 
@var{index-expression} is
 the index of the desired element of the array.
 
address@hidden 1/2015: Having the 4.3 in @samp is a little iffy. It's 
essentially
address@hidden an expression though, so leave be. It's to early in the 
discussion
address@hidden to mention that it's really a string.
 The value of the array reference is the current value of that array
-element.  For example, @code{foo[4.3]} is an expression for the element
+element.  For example, @code{foo[4.3]} is an expression referencing the element
 of array @code{foo} at index @samp{4.3}.
 
 @cindex arrays, unassigned elements
@@ -15126,7 +15136,7 @@ assign to that element of the array.
 
 The following program takes a list of lines, each beginning with a line
 number, and prints them out in order of line number.  The line numbers
-are not in order when they are first read---instead they
+are not in order when they are first read---instead, they
 are scrambled.  This program sorts the lines by making an array using
 the line numbers as subscripts.  The program then prints out the lines
 in sorted order of their numbers.  It is a very simple program and gets
@@ -15220,7 +15230,7 @@ program has previously used, with the variable 
@var{var} set to that index.
 The following program uses this form of the @code{for} statement.  The
 first rule scans the input records and notes which words appear (at
 least once) in the input, by storing a one into the array @code{used} with
-the word as index.  The second rule scans the elements of @code{used} to
+the word as the index.  The second rule scans the elements of @code{used} to
 find all the distinct words that appear in the input.  It prints each
 word that is more than 10 characters long and also prints the number of
 such words.
@@ -15317,7 +15327,7 @@ and will vary from one version of @command{awk} to the 
next.
 Often, though, you may wish to do something simple, such as
 ``traverse the array by comparing the indices in ascending order,''
 or ``traverse the array by comparing the values in descending order.''
address@hidden provides two mechanisms which give you this control.
address@hidden provides two mechanisms that give you this control:
 
 @itemize @value{BULLET}
 @item
@@ -15374,21 +15384,26 @@ across different environments.} which @command{gawk} 
uses internally
 to perform the sorting.
 
 @item "@@ind_str_desc"
-String indices ordered from high to low.
+Like @code{"@@ind_str_asc"}, but the
+string indices are ordered from high to low.
 
 @item "@@ind_num_desc"
-Numeric indices ordered from high to low.
+Like @code{"@@ind_num_asc"}, but the
+numeric indices are ordered from high to low.
 
 @item "@@val_type_desc"
-Element values, based on type, ordered from high to low.
+Like @code{"@@val_type_asc"}, but the
+element values, based on type, are ordered from high to low.
 Subarrays, if present, come out first.
 
 @item "@@val_str_desc"
-Element values, treated as strings, ordered from high to low.
+Like @code{"@@val_str_asc"}, but the
+element values, treated as strings, are ordered from high to low.
 Subarrays, if present, come out first.
 
 @item "@@val_num_desc"
-Element values, treated as numbers, ordered from high to low.
+Like @code{"@@val_num_asc"}, but the
+element values, treated as numbers, are ordered from high to low.
 Subarrays, if present, come out first.
 @end table
 
@@ -15611,7 +15626,7 @@ for (i in frequencies)
 @noindent
 This example removes all the elements from the array @code{frequencies}.
 Once an element is deleted, a subsequent @code{for} statement to scan the array
-does not report that element and the @code{in} operator to check for
+does not report that element and using the @code{in} operator to check for
 the presence of that element returns zero (i.e., false):
 
 @example
@@ -15871,7 +15886,7 @@ a[1][2] = 2
 This simulates a true two-dimensional array. Each subarray element can
 contain another subarray as a value, which in turn can hold other arrays
 as well. In this way, you can create arrays of three or more dimensions.
-The indices can be any @command{awk} expression, including scalars
+The indices can be any @command{awk} expressions, including scalars
 separated by commas (i.e., a regular @command{awk} simulated
 multidimensional subscript). So the following is valid in
 @command{gawk}:
@@ -15883,7 +15898,7 @@ a[1][3][1, "name"] = "barney"
 Each subarray and the main array can be of different length. In fact, the
 elements of an array or its subarray do not all have to have the same
 type. This means that the main array and any of its subarrays can be
-non-rectangular, or jagged in structure. You can assign a scalar value to
+nonrectangular, or jagged in structure. You can assign a scalar value to
 the index @code{4} of the main array @code{a}, even though @code{a[1]}
 is itself an array and not a scalar:
 
@@ -15907,7 +15922,8 @@ a[4][5][6][7] = "An element in a four-dimensional array"
 
 @noindent
 This removes the scalar value from index @code{4} and then inserts a
-subarray of subarray of subarray containing a scalar. You can also
+three-level nested subarray
+containing a scalar. You can also
 delete an entire subarray or subarray of subarrays:
 
 @example
@@ -15918,7 +15934,7 @@ a[4][5] = "An element in subarray a[4]"
 But recall that you can not delete the main array @code{a} and then use it
 as a scalar.
 
-The built-in functions which take array arguments can also be used
+The built-in functions that take array arguments can also be used
 with subarrays. For example, the following code fragment uses @code{length()}
 (@pxref{String Functions})
 to determine the number of elements in the main array @code{a} and
@@ -15948,7 +15964,7 @@ can be nested to scan all the
 elements of an array of arrays if it is rectangular in structure. In order
 to print the contents (scalar values) of a two-dimensional array of arrays
 (i.e., in which each first-level element is itself an
-array, not necessarily of the same length)
+array, not necessarily of the same length),
 you could use the following code:
 
 @example
@@ -16048,9 +16064,9 @@ versions of @command{awk}.
 
 @item
 Standard @command{awk} simulates multidimensional arrays by separating
-subscript values with a comma.  The values are concatenated into a
+subscript values with commas.  The values are concatenated into a
 single string, separated by the value of @code{SUBSEP}.  The fact
-that such a subscript was created in this way is not retained; thus
+that such a subscript was created in this way is not retained; thus,
 changing @code{SUBSEP} may have unexpected consequences.  You can use
 @samp{(@var{sub1}, @var{sub2}, @dots{}) in @var{array}} to see if such
 a multidimensional subscript exists in @var{array}.
@@ -16059,7 +16075,7 @@ a multidimensional subscript exists in @var{array}.
 @command{gawk} provides true arrays of arrays. You use a separate
 set of square brackets for each dimension in such an array:
 @code{data[row][col]}, for example. Array elements may thus be either
-scalar values (number or string) or another array.
+scalar values (number or string) or other arrays.
 
 @item
 Use the @code{isarray()} built-in function to determine if an array
@@ -16780,7 +16796,7 @@ split("cul-de-sac", a, "-", seps)
 
 @noindent
 @cindex strings splitting, example
-splits the string @samp{cul-de-sac} into three fields using @samp{-} as the
+splits the string @code{"cul-de-sac"} into three fields using @samp{-} as the
 separator.  It sets the contents of the array @code{a} as follows:
 
 @example

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

Summary of changes:
 doc/ChangeLog   |    4 +
 doc/gawk.info   |  804 ++++++++++++++++++++++++++++---------------------------
 doc/gawk.texi   |  120 +++++----
 doc/gawktexi.in |  120 +++++----
 4 files changed, 547 insertions(+), 501 deletions(-)


hooks/post-receive
-- 
gawk



reply via email to

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