summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorArnold D. Robbins <arnold@skeeve.com>2015-03-24 22:10:37 +0200
committerArnold D. Robbins <arnold@skeeve.com>2015-03-24 22:10:37 +0200
commit02856054ac25477e5913bdee1632d8cb11a184cd (patch)
treec7ea1797786c7ab052890cadfff9598c556d4da8
parent59514868fde1190f719e78d4c4b91bd14a321541 (diff)
parent981e106b111672aac520fbb397ee82c64f3c4f2a (diff)
downloadgawk-02856054ac25477e5913bdee1632d8cb11a184cd.tar.gz
Merge branch 'gawk-4.1-stable' into feature/fix-indirect-call
-rw-r--r--doc/ChangeLog5
-rw-r--r--doc/gawk.info170
-rw-r--r--doc/gawk.texi22
-rw-r--r--doc/gawktexi.in22
4 files changed, 137 insertions, 82 deletions
diff --git a/doc/ChangeLog b/doc/ChangeLog
index f2fa97bc..6dbe79dc 100644
--- a/doc/ChangeLog
+++ b/doc/ChangeLog
@@ -1,3 +1,8 @@
+2015-03-24 Arnold D. Robbins <arnold@skeeve.com>
+
+ * gawktexi.in: Minor fixes from Antonio Colombo and new exercise
+ in chapter 16.
+
2015-03-17 Andrew J. Schorr <aschorr@telemetry-investments.com>
* gawktexi.in: Modify inplace.awk to call inplace_end in BEGINFILE
diff --git a/doc/gawk.info b/doc/gawk.info
index d6aea49f..6cb2abdb 100644
--- a/doc/gawk.info
+++ b/doc/gawk.info
@@ -26121,12 +26121,26 @@ File: gawk.info, Node: Extension Exercises, Prev: Extension summary, Up: Dyna
`chmod()', and `umask()' to the file operations extension
presented in *note Internal File Ops::.
- 2. (Hard.) How would you provide namespaces in `gawk', so that the
+ 2. Write an input parser that prints a prompt if the input is a from
+ a "terminal" device. You can use the `isatty()' function to tell
+ if the input file is a terminal. (Hint: this function is usually
+ expensive to call; try to call it just once.) The content of the
+ prompt should come from a variable settable by `awk'-level code.
+ You can write the prompt to stanard error. However, for best
+ results, open a new file descriptor (or file pointer) on
+ `/dev/tty' and print the prompt there, in case standard error has
+ been redirected.
+
+ Why is standard error a better choice than standard output for
+ writing the prompt? Which reading mechanism should you replace,
+ the one to get a record, or the one to read raw bytes?
+
+ 3. (Hard.) How would you provide namespaces in `gawk', so that the
names of functions in different extensions don't conflict with
each other? If you come up with a really good scheme, contact the
`gawk' maintainer to tell him about it.
- 3. Write a wrapper script that provides an interface similar to `sed
+ 4. Write a wrapper script that provides an interface similar to `sed
-i' for the "inplace" extension presented in *note Extension
Sample Inplace::.
@@ -33416,7 +33430,7 @@ Index
* messages from extensions: Printing Messages. (line 6)
* metacharacters in regular expressions: Regexp Operators. (line 6)
* metacharacters, escape sequences for: Escape Sequences. (line 136)
-* minimum precision supported by MPFR library: Auto-set. (line 224)
+* minimum precision required by MPFR library: Auto-set. (line 224)
* mktime: Time Functions. (line 25)
* modifiers, in format specifiers: Format Modifiers. (line 6)
* monetary information, localization: Explaining gettext. (line 104)
@@ -33756,7 +33770,7 @@ Index
* printing, unduplicated lines of text: Uniq Program. (line 6)
* printing, user information: Id Program. (line 6)
* private variables: Library Names. (line 11)
-* process group idIDof gawk process: Auto-set. (line 183)
+* process group ID of gawk process: Auto-set. (line 183)
* process ID of gawk process: Auto-set. (line 186)
* processes, two-way communications with: Two-way I/O. (line 6)
* processing data: Basic High Level. (line 6)
@@ -34976,79 +34990,79 @@ Node: Extension Sample API Tests1043960
Node: gawkextlib1044451
Node: Extension summary1047129
Node: Extension Exercises1050818
-Node: Language History1051540
-Node: V7/SVR3.11053196
-Node: SVR41055349
-Node: POSIX1056783
-Node: BTL1058164
-Node: POSIX/GNU1058895
-Node: Feature History1064416
-Node: Common Extensions1077514
-Node: Ranges and Locales1078886
-Ref: Ranges and Locales-Footnote-11083505
-Ref: Ranges and Locales-Footnote-21083532
-Ref: Ranges and Locales-Footnote-31083767
-Node: Contributors1083988
-Node: History summary1089528
-Node: Installation1090907
-Node: Gawk Distribution1091853
-Node: Getting1092337
-Node: Extracting1093160
-Node: Distribution contents1094797
-Node: Unix Installation1100551
-Node: Quick Installation1101168
-Node: Additional Configuration Options1103592
-Node: Configuration Philosophy1105395
-Node: Non-Unix Installation1107764
-Node: PC Installation1108222
-Node: PC Binary Installation1109542
-Node: PC Compiling1111390
-Ref: PC Compiling-Footnote-11114411
-Node: PC Testing1114520
-Node: PC Using1115696
-Node: Cygwin1119811
-Node: MSYS1120581
-Node: VMS Installation1121082
-Node: VMS Compilation1121874
-Ref: VMS Compilation-Footnote-11123103
-Node: VMS Dynamic Extensions1123161
-Node: VMS Installation Details1124845
-Node: VMS Running1127096
-Node: VMS GNV1129936
-Node: VMS Old Gawk1130671
-Node: Bugs1131141
-Node: Other Versions1135030
-Node: Installation summary1141464
-Node: Notes1142523
-Node: Compatibility Mode1143388
-Node: Additions1144170
-Node: Accessing The Source1145095
-Node: Adding Code1146530
-Node: New Ports1152687
-Node: Derived Files1157169
-Ref: Derived Files-Footnote-11162644
-Ref: Derived Files-Footnote-21162678
-Ref: Derived Files-Footnote-31163274
-Node: Future Extensions1163388
-Node: Implementation Limitations1163994
-Node: Extension Design1165242
-Node: Old Extension Problems1166396
-Ref: Old Extension Problems-Footnote-11167913
-Node: Extension New Mechanism Goals1167970
-Ref: Extension New Mechanism Goals-Footnote-11171330
-Node: Extension Other Design Decisions1171519
-Node: Extension Future Growth1173627
-Node: Old Extension Mechanism1174463
-Node: Notes summary1176225
-Node: Basic Concepts1177411
-Node: Basic High Level1178092
-Ref: figure-general-flow1178364
-Ref: figure-process-flow1178963
-Ref: Basic High Level-Footnote-11182192
-Node: Basic Data Typing1182377
-Node: Glossary1185705
-Node: Copying1217634
-Node: GNU Free Documentation License1255190
-Node: Index1280326
+Node: Language History1052314
+Node: V7/SVR3.11053970
+Node: SVR41056123
+Node: POSIX1057557
+Node: BTL1058938
+Node: POSIX/GNU1059669
+Node: Feature History1065190
+Node: Common Extensions1078288
+Node: Ranges and Locales1079660
+Ref: Ranges and Locales-Footnote-11084279
+Ref: Ranges and Locales-Footnote-21084306
+Ref: Ranges and Locales-Footnote-31084541
+Node: Contributors1084762
+Node: History summary1090302
+Node: Installation1091681
+Node: Gawk Distribution1092627
+Node: Getting1093111
+Node: Extracting1093934
+Node: Distribution contents1095571
+Node: Unix Installation1101325
+Node: Quick Installation1101942
+Node: Additional Configuration Options1104366
+Node: Configuration Philosophy1106169
+Node: Non-Unix Installation1108538
+Node: PC Installation1108996
+Node: PC Binary Installation1110316
+Node: PC Compiling1112164
+Ref: PC Compiling-Footnote-11115185
+Node: PC Testing1115294
+Node: PC Using1116470
+Node: Cygwin1120585
+Node: MSYS1121355
+Node: VMS Installation1121856
+Node: VMS Compilation1122648
+Ref: VMS Compilation-Footnote-11123877
+Node: VMS Dynamic Extensions1123935
+Node: VMS Installation Details1125619
+Node: VMS Running1127870
+Node: VMS GNV1130710
+Node: VMS Old Gawk1131445
+Node: Bugs1131915
+Node: Other Versions1135804
+Node: Installation summary1142238
+Node: Notes1143297
+Node: Compatibility Mode1144162
+Node: Additions1144944
+Node: Accessing The Source1145869
+Node: Adding Code1147304
+Node: New Ports1153461
+Node: Derived Files1157943
+Ref: Derived Files-Footnote-11163418
+Ref: Derived Files-Footnote-21163452
+Ref: Derived Files-Footnote-31164048
+Node: Future Extensions1164162
+Node: Implementation Limitations1164768
+Node: Extension Design1166016
+Node: Old Extension Problems1167170
+Ref: Old Extension Problems-Footnote-11168687
+Node: Extension New Mechanism Goals1168744
+Ref: Extension New Mechanism Goals-Footnote-11172104
+Node: Extension Other Design Decisions1172293
+Node: Extension Future Growth1174401
+Node: Old Extension Mechanism1175237
+Node: Notes summary1176999
+Node: Basic Concepts1178185
+Node: Basic High Level1178866
+Ref: figure-general-flow1179138
+Ref: figure-process-flow1179737
+Ref: Basic High Level-Footnote-11182966
+Node: Basic Data Typing1183151
+Node: Glossary1186479
+Node: Copying1218408
+Node: GNU Free Documentation License1255964
+Node: Index1281100

End Tag Table
diff --git a/doc/gawk.texi b/doc/gawk.texi
index 96d3370e..80f8528d 100644
--- a/doc/gawk.texi
+++ b/doc/gawk.texi
@@ -14956,7 +14956,7 @@ while the program runs.
The value of the @code{getgid()} system call.
@item PROCINFO["pgrpid"]
-@cindex process group idIDof @command{gawk} process
+@cindex process group ID of @command{gawk} process
The process group ID of the current process.
@item PROCINFO["pid"]
@@ -15008,7 +15008,7 @@ The version of the GNU MP library.
The maximum precision supported by MPFR.
@item PROCINFO["prec_min"]
-@cindex minimum precision supported by MPFR library
+@cindex minimum precision required by MPFR library
The minimum precision required by MPFR.
@end table
@@ -35117,6 +35117,24 @@ Add functions to implement system calls such as @code{chown()},
@code{chmod()}, and @code{umask()} to the file operations extension
presented in @ref{Internal File Ops}.
+@c Idea from comp.lang.awk, February 2015
+@item
+Write an input parser that prints a prompt if the input is
+a from a ``terminal'' device. You can use the @code{isatty()}
+function to tell if the input file is a terminal. (Hint: this function
+is usually expensive to call; try to call it just once.)
+The content of the prompt should come from a variable settable
+by @command{awk}-level code.
+You can write the prompt to stanard error. However,
+for best results, open a new file descriptor (or file pointer)
+on @file{/dev/tty} and print the prompt there, in case standard
+error has been redirected.
+
+Why is standard error a better
+choice than standard output for writing the prompt?
+Which reading mechanism should you replace, the one to get
+a record, or the one to read raw bytes?
+
@item
(Hard.)
How would you provide namespaces in @command{gawk}, so that the
diff --git a/doc/gawktexi.in b/doc/gawktexi.in
index 08a9f7c3..cf669976 100644
--- a/doc/gawktexi.in
+++ b/doc/gawktexi.in
@@ -14284,7 +14284,7 @@ while the program runs.
The value of the @code{getgid()} system call.
@item PROCINFO["pgrpid"]
-@cindex process group idIDof @command{gawk} process
+@cindex process group ID of @command{gawk} process
The process group ID of the current process.
@item PROCINFO["pid"]
@@ -14336,7 +14336,7 @@ The version of the GNU MP library.
The maximum precision supported by MPFR.
@item PROCINFO["prec_min"]
-@cindex minimum precision supported by MPFR library
+@cindex minimum precision required by MPFR library
The minimum precision required by MPFR.
@end table
@@ -34208,6 +34208,24 @@ Add functions to implement system calls such as @code{chown()},
@code{chmod()}, and @code{umask()} to the file operations extension
presented in @ref{Internal File Ops}.
+@c Idea from comp.lang.awk, February 2015
+@item
+Write an input parser that prints a prompt if the input is
+a from a ``terminal'' device. You can use the @code{isatty()}
+function to tell if the input file is a terminal. (Hint: this function
+is usually expensive to call; try to call it just once.)
+The content of the prompt should come from a variable settable
+by @command{awk}-level code.
+You can write the prompt to stanard error. However,
+for best results, open a new file descriptor (or file pointer)
+on @file{/dev/tty} and print the prompt there, in case standard
+error has been redirected.
+
+Why is standard error a better
+choice than standard output for writing the prompt?
+Which reading mechanism should you replace, the one to get
+a record, or the one to read raw bytes?
+
@item
(Hard.)
How would you provide namespaces in @command{gawk}, so that the