aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorArnold D. Robbins <arnold@skeeve.com>2014-07-31 20:29:38 +0300
committerArnold D. Robbins <arnold@skeeve.com>2014-07-31 20:29:38 +0300
commitd60fb05cc5db4f1ee1176a9ed7f053011f8521aa (patch)
tree2471e5d7757a3aad0f9fbf6722964a30ae1b01ee
parentcafa8fcd5a5d593f4638b199fbf5f94a006a4aac (diff)
parent54146e27c8fd7756a944d0e168aa969624567b55 (diff)
downloadegawk-d60fb05cc5db4f1ee1176a9ed7f053011f8521aa.tar.gz
egawk-d60fb05cc5db4f1ee1176a9ed7f053011f8521aa.tar.bz2
egawk-d60fb05cc5db4f1ee1176a9ed7f053011f8521aa.zip
Merge branch 'master' into comment
-rw-r--r--ChangeLog37
-rw-r--r--awk.h3
-rw-r--r--dfa.c16
-rw-r--r--doc/ChangeLog6
-rw-r--r--doc/gawk.info687
-rw-r--r--doc/gawk.texi15
-rw-r--r--doc/gawktexi.in15
-rw-r--r--extension/ChangeLog8
-rw-r--r--extension/Makefile.am2
-rw-r--r--extension/Makefile.in2
-rw-r--r--interpret.h2
-rw-r--r--io.c10
-rw-r--r--main.c9
-rw-r--r--mpfr.c11
-rw-r--r--po/it.po32
-rw-r--r--test/ChangeLog9
-rw-r--r--test/badargs.ok2
-rw-r--r--test/printhuge.awk2
-rw-r--r--test/printhuge.ok2
19 files changed, 478 insertions, 392 deletions
diff --git a/ChangeLog b/ChangeLog
index 2066b5a8..7e3d9a3e 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,40 @@
+2014-07-31 Arnold D. Robbins <arnold@skeeve.com>
+
+ * dfa.c: Sync with GNU grep. Mainly white space differences.
+
+ Unrelated:
+
+ * mpfr.c (cleanup_mpfr): New function to deallocate _mpf_t1
+ and _mpf_t2; removes some valgrind warnings.
+ * awk.h (cleanup_mpfr): Add declaration.
+ * main.c (main): Add call to `cleanup_mpfr'.
+
+ Fix memory leak:
+
+ * mpfr.c (do_mpfr_div): Add unref to denominator and numerator
+ to not leak memory. Thanks to Katie Wasserman <katie@wass.net>
+ for isolating the problem to that routine.
+
+2014-07-25 Arnold D. Robbins <arnold@skeeve.com>
+
+ * main.c (main): Add a warning message if -M is used and gawk was
+ compiled without MPFR/GMP.
+
+2014-07-24 Arnold D. Robbins <arnold@skeeve.com>
+
+ * main.c (usage): Put text for `-n' *after* text for `-m'.
+ Report from Robert P. J. Day <rpjday@crashcourse.ca>.
+
+ Fix problems with I/O errors reported by Assaf Gordon
+ <assafgordon@gmail.com>:
+
+ * io.c (inrec): Change type to bool to make calling easier. Add
+ check in non-EOF case for error, and if so, return false.
+ Update ERRNO in case there is an ENDFILE block.
+ * awk.h (inrec): Change type in declaration.
+ * interpret.h (r_interpret): Change call of inrec() to boolean
+ notation.
+
2014-07-10 Arnold D. Robbins <arnold@skeeve.com>
New `div()' function to do integer division and remainder;
diff --git a/awk.h b/awk.h
index 686a8bdd..64d3d7ba 100644
--- a/awk.h
+++ b/awk.h
@@ -1534,7 +1534,7 @@ extern char *find_source(const char *src, struct stat *stb, int *errcode, int is
extern NODE *do_getline_redir(int intovar, enum redirval redirtype);
extern NODE *do_getline(int intovar, IOBUF *iop);
extern struct redirect *getredirect(const char *str, int len);
-extern int inrec(IOBUF *iop, int *errcode);
+extern bool inrec(IOBUF *iop, int *errcode);
extern int nextfile(IOBUF **curfile, bool skipping);
/* main.c */
extern int arg_assign(char *arg, bool initing);
@@ -1571,6 +1571,7 @@ extern NODE *do_mpfr_srand(int);
extern NODE *do_mpfr_strtonum(int);
extern NODE *do_mpfr_xor(int);
extern void init_mpfr(mpfr_prec_t, const char *);
+extern void cleanup_mpfr(void);
extern NODE *mpg_node(unsigned int);
extern const char *mpg_fmt(const char *, ...);
extern int mpg_strtoui(mpz_ptr, char *, size_t, char **, int);
diff --git a/dfa.c b/dfa.c
index e2a83d43..1a153785 100644
--- a/dfa.c
+++ b/dfa.c
@@ -1204,7 +1204,8 @@ parse_bracket_exp (void)
if (wc != WEOF && wc2 != WEOF)
{
work_mbc->ranges
- = maybe_realloc (work_mbc->ranges, work_mbc->nranges + 2,
+ = maybe_realloc (work_mbc->ranges,
+ work_mbc->nranges + 2,
&ranges_al, sizeof *work_mbc->ranges);
work_mbc->ranges[work_mbc->nranges].beg
= case_fold ? towlower (wc) : wc;
@@ -1213,7 +1214,8 @@ parse_bracket_exp (void)
if (case_fold && (iswalpha (wc) || iswalpha (wc2)))
{
- work_mbc->ranges[work_mbc->nranges].beg = towupper (wc);
+ work_mbc->ranges[work_mbc->nranges].beg
+ = towupper (wc);
work_mbc->ranges[work_mbc->nranges++].end
= towupper (wc2);
}
@@ -3783,13 +3785,13 @@ dfafree (struct dfa *d)
CAT (p->is==ZERO)? (q->is==ZERO)? (p->is!=ZERO && p->in plus
p->left : q->right : q->is!=ZERO) ? q->in plus
- p->is##q->left p->right##q->is p->is##q->is : p->right##q->left
+ p->is##q->left p->right##q->is p->is##q->is : p->right##q->left
ZERO
- OR longest common longest common (do p->is and substrings common to
- leading trailing q->is have same p->in and q->in
- (sub)sequence (sub)sequence length and
- of p->left of p->right content) ?
+ OR longest common longest common (do p->is and substrings common
+ leading trailing to q->is have same p->in and
+ (sub)sequence (sub)sequence q->in length and content) ?
+ of p->left of p->right
and q->left and q->right p->is : NULL
If there's anything else we recognize in the tree, all four sequences get set
diff --git a/doc/ChangeLog b/doc/ChangeLog
index f69e401d..9bf0b156 100644
--- a/doc/ChangeLog
+++ b/doc/ChangeLog
@@ -1,3 +1,9 @@
+2014-07-24 Arnold D. Robbins <arnold@skeeve.com>
+
+ * gawktexi.in (Numeric Functions): For `div()', clarify
+ truncation is towards zero. Thanks to Michal Jaegermann
+ for pointing out the need to clarify this.
+
2014-07-10 Arnold D. Robbins <arnold@skeeve.com>
* gawktexi.in (Numeric Functions): Document new `div()' function.
diff --git a/doc/gawk.info b/doc/gawk.info
index e7854caf..e6c9a5d4 100644
--- a/doc/gawk.info
+++ b/doc/gawk.info
@@ -11682,14 +11682,15 @@ brackets ([ ]):
`div(NUMERATOR, DENOMINATOR, RESULT)'
Perform integer division, similar to the standard C function of the
- same name. First, truncate `numerator' and `denominator' to
- integers. Clear the `result' array, and then set
- `result["quotient"]' to the result of `numerator / denominator',
- truncated to an integer, and set `result["remainder"]' to the
- result of `numerator % denominator', truncated to an integer.
- This function is primarily intended for use with arbitrary length
- integers; it avoids creating MPFR arbitrary precision
- floating-point values (*note Arbitrary Precision Integers::).
+ same name. First, truncate `numerator' and `denominator' towards
+ zero, creating integer values. Clear the `result' array, and then
+ set `result["quotient"]' to the result of `numerator /
+ denominator', truncated towards zero to an integer, and set
+ `result["remainder"]' to the result of `numerator % denominator',
+ truncated towards zero to an integer. This function is primarily
+ intended for use with arbitrary length integers; it avoids
+ creating MPFR arbitrary precision floating-point values (*note
+ Arbitrary Precision Integers::).
This function is a `gawk' extension. It is not available in
compatibility mode (*note Options::).
@@ -32163,10 +32164,10 @@ Index
* exit status, of VMS: VMS Running. (line 29)
* exit the debugger: Miscellaneous Debugger Commands.
(line 99)
-* exp: Numeric Functions. (line 32)
+* exp: Numeric Functions. (line 33)
* expand utility: Very Simple. (line 69)
* Expat XML parser library: gawkextlib. (line 35)
-* exponent: Numeric Functions. (line 32)
+* exponent: Numeric Functions. (line 33)
* expressions: Expressions. (line 6)
* expressions, as patterns: Expression Patterns. (line 6)
* expressions, assignment: Assignment Ops. (line 6)
@@ -32702,7 +32703,7 @@ Index
* installation, VMS: VMS Installation. (line 6)
* installing gawk: Installation. (line 6)
* instruction tracing, in debugger: Debugger Info. (line 89)
-* int: Numeric Functions. (line 37)
+* int: Numeric Functions. (line 38)
* INT signal (MS-Windows): Profiling. (line 214)
* integer array indices: Numeric Array Subscripts.
(line 31)
@@ -32851,9 +32852,9 @@ Index
* localization: I18N and L10N. (line 6)
* localization, See internationalization, localization: I18N and L10N.
(line 6)
-* log: Numeric Functions. (line 44)
+* log: Numeric Functions. (line 45)
* log files, timestamps in: Time Functions. (line 6)
-* logarithm: Numeric Functions. (line 44)
+* logarithm: Numeric Functions. (line 45)
* logical false/true: Truth Values. (line 6)
* logical operators, See Boolean expressions: Boolean Ops. (line 6)
* login information: Passwd Functions. (line 16)
@@ -33310,12 +33311,12 @@ Index
* Rakitzis, Byron: History Sorting. (line 25)
* Ramey, Chet <1>: General Data Types. (line 6)
* Ramey, Chet: Acknowledgments. (line 60)
-* rand: Numeric Functions. (line 48)
+* rand: Numeric Functions. (line 49)
* random numbers, Cliff: Cliff Random Function.
(line 6)
* random numbers, rand()/srand() functions: Numeric Functions.
- (line 48)
-* random numbers, seed of: Numeric Functions. (line 78)
+ (line 49)
+* random numbers, seed of: Numeric Functions. (line 79)
* range expressions (regexps): Bracket Expressions. (line 6)
* range patterns: Ranges. (line 6)
* range patterns, line continuation and: Ranges. (line 65)
@@ -33443,7 +33444,7 @@ Index
* Robbins, Miriam <2>: Getline/Pipe. (line 39)
* Robbins, Miriam: Acknowledgments. (line 82)
* Rommel, Kai Uwe: Contributors. (line 42)
-* round to nearest integer: Numeric Functions. (line 37)
+* round to nearest integer: Numeric Functions. (line 38)
* round() user-defined function: Round Function. (line 16)
* rounding numbers: Round Function. (line 6)
* ROUNDMODE variable: User-modified. (line 128)
@@ -33493,7 +33494,7 @@ Index
* sed utility <2>: Simple Sed. (line 6)
* sed utility: Field Splitting Summary.
(line 46)
-* seeding random number generator: Numeric Functions. (line 78)
+* seeding random number generator: Numeric Functions. (line 79)
* semicolon (;), AWKPATH variable and: PC Using. (line 10)
* semicolon (;), separating statements in actions <1>: Statements.
(line 10)
@@ -33595,8 +33596,8 @@ Index
* SIGUSR1 signal, for dynamic profiling: Profiling. (line 188)
* silent debugger command: Debugger Execution Control.
(line 10)
-* sin: Numeric Functions. (line 89)
-* sine: Numeric Functions. (line 89)
+* sin: Numeric Functions. (line 90)
+* sine: Numeric Functions. (line 90)
* single quote ('): One-shot. (line 15)
* single quote (') in gawk command lines: Long. (line 33)
* single quote ('), in shell commands: Quoting. (line 48)
@@ -33646,10 +33647,10 @@ Index
* sprintf() function, OFMT variable and: User-modified. (line 114)
* sprintf() function, print/printf statements and: Round Function.
(line 6)
-* sqrt: Numeric Functions. (line 92)
+* sqrt: Numeric Functions. (line 93)
* square brackets ([]), regexp operator: Regexp Operators. (line 56)
-* square root: Numeric Functions. (line 92)
-* srand: Numeric Functions. (line 96)
+* square root: Numeric Functions. (line 93)
+* srand: Numeric Functions. (line 97)
* stack frame: Debugging Terms. (line 10)
* Stallman, Richard <1>: Glossary. (line 296)
* Stallman, Richard <2>: Contributors. (line 23)
@@ -34218,325 +34219,325 @@ Node: Functions489801
Node: Built-in490674
Node: Calling Built-in491752
Node: Numeric Functions493740
-Ref: Numeric Functions-Footnote-1498318
-Ref: Numeric Functions-Footnote-2498675
-Ref: Numeric Functions-Footnote-3498723
-Node: String Functions498992
-Ref: String Functions-Footnote-1522003
-Ref: String Functions-Footnote-2522132
-Ref: String Functions-Footnote-3522380
-Node: Gory Details522467
-Ref: table-sub-escapes524136
-Ref: table-sub-posix-92525490
-Ref: table-sub-proposed526841
-Ref: table-posix-sub528195
-Ref: table-gensub-escapes529740
-Ref: Gory Details-Footnote-1530916
-Ref: Gory Details-Footnote-2530967
-Node: I/O Functions531118
-Ref: I/O Functions-Footnote-1538241
-Node: Time Functions538388
-Ref: Time Functions-Footnote-1548852
-Ref: Time Functions-Footnote-2548920
-Ref: Time Functions-Footnote-3549078
-Ref: Time Functions-Footnote-4549189
-Ref: Time Functions-Footnote-5549301
-Ref: Time Functions-Footnote-6549528
-Node: Bitwise Functions549794
-Ref: table-bitwise-ops550356
-Ref: Bitwise Functions-Footnote-1554601
-Node: Type Functions554785
-Node: I18N Functions555927
-Node: User-defined557572
-Node: Definition Syntax558376
-Ref: Definition Syntax-Footnote-1563555
-Node: Function Example563624
-Ref: Function Example-Footnote-1566268
-Node: Function Caveats566290
-Node: Calling A Function566808
-Node: Variable Scope567763
-Node: Pass By Value/Reference570751
-Node: Return Statement574259
-Node: Dynamic Typing577243
-Node: Indirect Calls578172
-Node: Functions Summary587885
-Node: Library Functions590424
-Ref: Library Functions-Footnote-1594042
-Ref: Library Functions-Footnote-2594185
-Node: Library Names594356
-Ref: Library Names-Footnote-1597829
-Ref: Library Names-Footnote-2598049
-Node: General Functions598135
-Node: Strtonum Function599163
-Node: Assert Function601943
-Node: Round Function605269
-Node: Cliff Random Function606810
-Node: Ordinal Functions607826
-Ref: Ordinal Functions-Footnote-1610903
-Ref: Ordinal Functions-Footnote-2611155
-Node: Join Function611366
-Ref: Join Function-Footnote-1613137
-Node: Getlocaltime Function613337
-Node: Readfile Function617073
-Node: Data File Management618912
-Node: Filetrans Function619544
-Node: Rewind Function623613
-Node: File Checking625000
-Ref: File Checking-Footnote-1626132
-Node: Empty Files626333
-Node: Ignoring Assigns628312
-Node: Getopt Function629866
-Ref: Getopt Function-Footnote-1641169
-Node: Passwd Functions641372
-Ref: Passwd Functions-Footnote-1650351
-Node: Group Functions650439
-Ref: Group Functions-Footnote-1658380
-Node: Walking Arrays658593
-Node: Library Functions Summary660196
-Node: Library exercises661584
-Node: Sample Programs662864
-Node: Running Examples663634
-Node: Clones664362
-Node: Cut Program665586
-Node: Egrep Program675454
-Ref: Egrep Program-Footnote-1683425
-Node: Id Program683535
-Node: Split Program687199
-Ref: Split Program-Footnote-1690737
-Node: Tee Program690865
-Node: Uniq Program693672
-Node: Wc Program701102
-Ref: Wc Program-Footnote-1705367
-Node: Miscellaneous Programs705459
-Node: Dupword Program706672
-Node: Alarm Program708703
-Node: Translate Program713517
-Ref: Translate Program-Footnote-1717908
-Ref: Translate Program-Footnote-2718178
-Node: Labels Program718312
-Ref: Labels Program-Footnote-1721683
-Node: Word Sorting721767
-Node: History Sorting725810
-Node: Extract Program727646
-Node: Simple Sed735182
-Node: Igawk Program738244
-Ref: Igawk Program-Footnote-1752555
-Ref: Igawk Program-Footnote-2752756
-Node: Anagram Program752894
-Node: Signature Program755962
-Node: Programs Summary757209
-Node: Programs Exercises758424
-Node: Advanced Features762075
-Node: Nondecimal Data764023
-Node: Array Sorting765600
-Node: Controlling Array Traversal766297
-Node: Array Sorting Functions774577
-Ref: Array Sorting Functions-Footnote-1778484
-Node: Two-way I/O778678
-Ref: Two-way I/O-Footnote-1784194
-Node: TCP/IP Networking784276
-Node: Profiling787120
-Node: Advanced Features Summary794671
-Node: Internationalization796535
-Node: I18N and L10N798015
-Node: Explaining gettext798701
-Ref: Explaining gettext-Footnote-1803841
-Ref: Explaining gettext-Footnote-2804025
-Node: Programmer i18n804190
-Node: Translator i18n808415
-Node: String Extraction809209
-Ref: String Extraction-Footnote-1810170
-Node: Printf Ordering810256
-Ref: Printf Ordering-Footnote-1813038
-Node: I18N Portability813102
-Ref: I18N Portability-Footnote-1815551
-Node: I18N Example815614
-Ref: I18N Example-Footnote-1818336
-Node: Gawk I18N818408
-Node: I18N Summary819046
-Node: Debugger820385
-Node: Debugging821407
-Node: Debugging Concepts821848
-Node: Debugging Terms823704
-Node: Awk Debugging826301
-Node: Sample Debugging Session827193
-Node: Debugger Invocation827713
-Node: Finding The Bug829046
-Node: List of Debugger Commands835528
-Node: Breakpoint Control836860
-Node: Debugger Execution Control840524
-Node: Viewing And Changing Data843884
-Node: Execution Stack847242
-Node: Debugger Info848755
-Node: Miscellaneous Debugger Commands852749
-Node: Readline Support857933
-Node: Limitations858825
-Node: Debugging Summary861099
-Node: Arbitrary Precision Arithmetic862263
-Node: Computer Arithmetic863592
-Ref: Computer Arithmetic-Footnote-1867979
-Node: Math Definitions868036
-Ref: table-ieee-formats870920
-Node: MPFR features871424
-Node: FP Math Caution873066
-Ref: FP Math Caution-Footnote-1874107
-Node: Inexactness of computations874476
-Node: Inexact representation875424
-Node: Comparing FP Values876779
-Node: Errors accumulate877743
-Node: Getting Accuracy879176
-Node: Try To Round881835
-Node: Setting precision882734
-Ref: table-predefined-precision-strings883416
-Node: Setting the rounding mode885209
-Ref: table-gawk-rounding-modes885573
-Ref: Setting the rounding mode-Footnote-1889027
-Node: Arbitrary Precision Integers889206
-Ref: Arbitrary Precision Integers-Footnote-1893001
-Node: POSIX Floating Point Problems893150
-Ref: POSIX Floating Point Problems-Footnote-1897026
-Node: Floating point summary897064
-Node: Dynamic Extensions899281
-Node: Extension Intro900833
-Node: Plugin License902098
-Node: Extension Mechanism Outline902783
-Ref: figure-load-extension903207
-Ref: figure-load-new-function904692
-Ref: figure-call-new-function905694
-Node: Extension API Description907678
-Node: Extension API Functions Introduction909128
-Node: General Data Types913993
-Ref: General Data Types-Footnote-1919686
-Node: Requesting Values919985
-Ref: table-value-types-returned920722
-Node: Memory Allocation Functions921680
-Ref: Memory Allocation Functions-Footnote-1924427
-Node: Constructor Functions924523
-Node: Registration Functions926281
-Node: Extension Functions926966
-Node: Exit Callback Functions929268
-Node: Extension Version String930517
-Node: Input Parsers931167
-Node: Output Wrappers940970
-Node: Two-way processors945486
-Node: Printing Messages947690
-Ref: Printing Messages-Footnote-1948767
-Node: Updating `ERRNO'948919
-Node: Accessing Parameters949658
-Node: Symbol Table Access950888
-Node: Symbol table by name951402
-Node: Symbol table by cookie953378
-Ref: Symbol table by cookie-Footnote-1957511
-Node: Cached values957574
-Ref: Cached values-Footnote-1961078
-Node: Array Manipulation961169
-Ref: Array Manipulation-Footnote-1962267
-Node: Array Data Types962306
-Ref: Array Data Types-Footnote-1965009
-Node: Array Functions965101
-Node: Flattening Arrays968975
-Node: Creating Arrays975827
-Node: Extension API Variables980558
-Node: Extension Versioning981194
-Node: Extension API Informational Variables983095
-Node: Extension API Boilerplate984181
-Node: Finding Extensions987985
-Node: Extension Example988545
-Node: Internal File Description989275
-Node: Internal File Ops993366
-Ref: Internal File Ops-Footnote-11004798
-Node: Using Internal File Ops1004938
-Ref: Using Internal File Ops-Footnote-11007285
-Node: Extension Samples1007553
-Node: Extension Sample File Functions1009077
-Node: Extension Sample Fnmatch1016645
-Node: Extension Sample Fork1018127
-Node: Extension Sample Inplace1019340
-Node: Extension Sample Ord1021015
-Node: Extension Sample Readdir1021851
-Ref: table-readdir-file-types1022707
-Node: Extension Sample Revout1023506
-Node: Extension Sample Rev2way1024097
-Node: Extension Sample Read write array1024838
-Node: Extension Sample Readfile1026717
-Node: Extension Sample API Tests1027817
-Node: Extension Sample Time1028342
-Node: gawkextlib1029657
-Node: Extension summary1032470
-Node: Extension Exercises1036163
-Node: Language History1036885
-Node: V7/SVR3.11038528
-Node: SVR41040848
-Node: POSIX1042290
-Node: BTL1043676
-Node: POSIX/GNU1044410
-Node: Feature History1050009
-Node: Common Extensions1063139
-Node: Ranges and Locales1064451
-Ref: Ranges and Locales-Footnote-11069068
-Ref: Ranges and Locales-Footnote-21069095
-Ref: Ranges and Locales-Footnote-31069329
-Node: Contributors1069550
-Node: History summary1074975
-Node: Installation1076344
-Node: Gawk Distribution1077295
-Node: Getting1077779
-Node: Extracting1078603
-Node: Distribution contents1080245
-Node: Unix Installation1086015
-Node: Quick Installation1086632
-Node: Additional Configuration Options1089074
-Node: Configuration Philosophy1090812
-Node: Non-Unix Installation1093163
-Node: PC Installation1093621
-Node: PC Binary Installation1094932
-Node: PC Compiling1096780
-Ref: PC Compiling-Footnote-11099779
-Node: PC Testing1099884
-Node: PC Using1101060
-Node: Cygwin1105218
-Node: MSYS1106027
-Node: VMS Installation1106541
-Node: VMS Compilation1107337
-Ref: VMS Compilation-Footnote-11108559
-Node: VMS Dynamic Extensions1108617
-Node: VMS Installation Details1109990
-Node: VMS Running1112242
-Node: VMS GNV1115076
-Node: VMS Old Gawk1115799
-Node: Bugs1116269
-Node: Other Versions1120273
-Node: Installation summary1126528
-Node: Notes1127584
-Node: Compatibility Mode1128449
-Node: Additions1129231
-Node: Accessing The Source1130156
-Node: Adding Code1131592
-Node: New Ports1137770
-Node: Derived Files1142251
-Ref: Derived Files-Footnote-11147332
-Ref: Derived Files-Footnote-21147366
-Ref: Derived Files-Footnote-31147962
-Node: Future Extensions1148076
-Node: Implementation Limitations1148682
-Node: Extension Design1149930
-Node: Old Extension Problems1151084
-Ref: Old Extension Problems-Footnote-11152601
-Node: Extension New Mechanism Goals1152658
-Ref: Extension New Mechanism Goals-Footnote-11156018
-Node: Extension Other Design Decisions1156207
-Node: Extension Future Growth1158313
-Node: Old Extension Mechanism1159149
-Node: Notes summary1160911
-Node: Basic Concepts1162097
-Node: Basic High Level1162778
-Ref: figure-general-flow1163050
-Ref: figure-process-flow1163649
-Ref: Basic High Level-Footnote-11166878
-Node: Basic Data Typing1167063
-Node: Glossary1170391
-Node: Copying1195543
-Node: GNU Free Documentation License1233099
-Node: Index1258235
+Ref: Numeric Functions-Footnote-1498376
+Ref: Numeric Functions-Footnote-2498733
+Ref: Numeric Functions-Footnote-3498781
+Node: String Functions499050
+Ref: String Functions-Footnote-1522061
+Ref: String Functions-Footnote-2522190
+Ref: String Functions-Footnote-3522438
+Node: Gory Details522525
+Ref: table-sub-escapes524194
+Ref: table-sub-posix-92525548
+Ref: table-sub-proposed526899
+Ref: table-posix-sub528253
+Ref: table-gensub-escapes529798
+Ref: Gory Details-Footnote-1530974
+Ref: Gory Details-Footnote-2531025
+Node: I/O Functions531176
+Ref: I/O Functions-Footnote-1538299
+Node: Time Functions538446
+Ref: Time Functions-Footnote-1548910
+Ref: Time Functions-Footnote-2548978
+Ref: Time Functions-Footnote-3549136
+Ref: Time Functions-Footnote-4549247
+Ref: Time Functions-Footnote-5549359
+Ref: Time Functions-Footnote-6549586
+Node: Bitwise Functions549852
+Ref: table-bitwise-ops550414
+Ref: Bitwise Functions-Footnote-1554659
+Node: Type Functions554843
+Node: I18N Functions555985
+Node: User-defined557630
+Node: Definition Syntax558434
+Ref: Definition Syntax-Footnote-1563613
+Node: Function Example563682
+Ref: Function Example-Footnote-1566326
+Node: Function Caveats566348
+Node: Calling A Function566866
+Node: Variable Scope567821
+Node: Pass By Value/Reference570809
+Node: Return Statement574317
+Node: Dynamic Typing577301
+Node: Indirect Calls578230
+Node: Functions Summary587943
+Node: Library Functions590482
+Ref: Library Functions-Footnote-1594100
+Ref: Library Functions-Footnote-2594243
+Node: Library Names594414
+Ref: Library Names-Footnote-1597887
+Ref: Library Names-Footnote-2598107
+Node: General Functions598193
+Node: Strtonum Function599221
+Node: Assert Function602001
+Node: Round Function605327
+Node: Cliff Random Function606868
+Node: Ordinal Functions607884
+Ref: Ordinal Functions-Footnote-1610961
+Ref: Ordinal Functions-Footnote-2611213
+Node: Join Function611424
+Ref: Join Function-Footnote-1613195
+Node: Getlocaltime Function613395
+Node: Readfile Function617131
+Node: Data File Management618970
+Node: Filetrans Function619602
+Node: Rewind Function623671
+Node: File Checking625058
+Ref: File Checking-Footnote-1626190
+Node: Empty Files626391
+Node: Ignoring Assigns628370
+Node: Getopt Function629924
+Ref: Getopt Function-Footnote-1641227
+Node: Passwd Functions641430
+Ref: Passwd Functions-Footnote-1650409
+Node: Group Functions650497
+Ref: Group Functions-Footnote-1658438
+Node: Walking Arrays658651
+Node: Library Functions Summary660254
+Node: Library exercises661642
+Node: Sample Programs662922
+Node: Running Examples663692
+Node: Clones664420
+Node: Cut Program665644
+Node: Egrep Program675512
+Ref: Egrep Program-Footnote-1683483
+Node: Id Program683593
+Node: Split Program687257
+Ref: Split Program-Footnote-1690795
+Node: Tee Program690923
+Node: Uniq Program693730
+Node: Wc Program701160
+Ref: Wc Program-Footnote-1705425
+Node: Miscellaneous Programs705517
+Node: Dupword Program706730
+Node: Alarm Program708761
+Node: Translate Program713575
+Ref: Translate Program-Footnote-1717966
+Ref: Translate Program-Footnote-2718236
+Node: Labels Program718370
+Ref: Labels Program-Footnote-1721741
+Node: Word Sorting721825
+Node: History Sorting725868
+Node: Extract Program727704
+Node: Simple Sed735240
+Node: Igawk Program738302
+Ref: Igawk Program-Footnote-1752613
+Ref: Igawk Program-Footnote-2752814
+Node: Anagram Program752952
+Node: Signature Program756020
+Node: Programs Summary757267
+Node: Programs Exercises758482
+Node: Advanced Features762133
+Node: Nondecimal Data764081
+Node: Array Sorting765658
+Node: Controlling Array Traversal766355
+Node: Array Sorting Functions774635
+Ref: Array Sorting Functions-Footnote-1778542
+Node: Two-way I/O778736
+Ref: Two-way I/O-Footnote-1784252
+Node: TCP/IP Networking784334
+Node: Profiling787178
+Node: Advanced Features Summary794729
+Node: Internationalization796593
+Node: I18N and L10N798073
+Node: Explaining gettext798759
+Ref: Explaining gettext-Footnote-1803899
+Ref: Explaining gettext-Footnote-2804083
+Node: Programmer i18n804248
+Node: Translator i18n808473
+Node: String Extraction809267
+Ref: String Extraction-Footnote-1810228
+Node: Printf Ordering810314
+Ref: Printf Ordering-Footnote-1813096
+Node: I18N Portability813160
+Ref: I18N Portability-Footnote-1815609
+Node: I18N Example815672
+Ref: I18N Example-Footnote-1818394
+Node: Gawk I18N818466
+Node: I18N Summary819104
+Node: Debugger820443
+Node: Debugging821465
+Node: Debugging Concepts821906
+Node: Debugging Terms823762
+Node: Awk Debugging826359
+Node: Sample Debugging Session827251
+Node: Debugger Invocation827771
+Node: Finding The Bug829104
+Node: List of Debugger Commands835586
+Node: Breakpoint Control836918
+Node: Debugger Execution Control840582
+Node: Viewing And Changing Data843942
+Node: Execution Stack847300
+Node: Debugger Info848813
+Node: Miscellaneous Debugger Commands852807
+Node: Readline Support857991
+Node: Limitations858883
+Node: Debugging Summary861157
+Node: Arbitrary Precision Arithmetic862321
+Node: Computer Arithmetic863650
+Ref: Computer Arithmetic-Footnote-1868037
+Node: Math Definitions868094
+Ref: table-ieee-formats870978
+Node: MPFR features871482
+Node: FP Math Caution873124
+Ref: FP Math Caution-Footnote-1874165
+Node: Inexactness of computations874534
+Node: Inexact representation875482
+Node: Comparing FP Values876837
+Node: Errors accumulate877801
+Node: Getting Accuracy879234
+Node: Try To Round881893
+Node: Setting precision882792
+Ref: table-predefined-precision-strings883474
+Node: Setting the rounding mode885267
+Ref: table-gawk-rounding-modes885631
+Ref: Setting the rounding mode-Footnote-1889085
+Node: Arbitrary Precision Integers889264
+Ref: Arbitrary Precision Integers-Footnote-1893059
+Node: POSIX Floating Point Problems893208
+Ref: POSIX Floating Point Problems-Footnote-1897084
+Node: Floating point summary897122
+Node: Dynamic Extensions899339
+Node: Extension Intro900891
+Node: Plugin License902156
+Node: Extension Mechanism Outline902841
+Ref: figure-load-extension903265
+Ref: figure-load-new-function904750
+Ref: figure-call-new-function905752
+Node: Extension API Description907736
+Node: Extension API Functions Introduction909186
+Node: General Data Types914051
+Ref: General Data Types-Footnote-1919744
+Node: Requesting Values920043
+Ref: table-value-types-returned920780
+Node: Memory Allocation Functions921738
+Ref: Memory Allocation Functions-Footnote-1924485
+Node: Constructor Functions924581
+Node: Registration Functions926339
+Node: Extension Functions927024
+Node: Exit Callback Functions929326
+Node: Extension Version String930575
+Node: Input Parsers931225
+Node: Output Wrappers941028
+Node: Two-way processors945544
+Node: Printing Messages947748
+Ref: Printing Messages-Footnote-1948825
+Node: Updating `ERRNO'948977
+Node: Accessing Parameters949716
+Node: Symbol Table Access950946
+Node: Symbol table by name951460
+Node: Symbol table by cookie953436
+Ref: Symbol table by cookie-Footnote-1957569
+Node: Cached values957632
+Ref: Cached values-Footnote-1961136
+Node: Array Manipulation961227
+Ref: Array Manipulation-Footnote-1962325
+Node: Array Data Types962364
+Ref: Array Data Types-Footnote-1965067
+Node: Array Functions965159
+Node: Flattening Arrays969033
+Node: Creating Arrays975885
+Node: Extension API Variables980616
+Node: Extension Versioning981252
+Node: Extension API Informational Variables983153
+Node: Extension API Boilerplate984239
+Node: Finding Extensions988043
+Node: Extension Example988603
+Node: Internal File Description989333
+Node: Internal File Ops993424
+Ref: Internal File Ops-Footnote-11004856
+Node: Using Internal File Ops1004996
+Ref: Using Internal File Ops-Footnote-11007343
+Node: Extension Samples1007611
+Node: Extension Sample File Functions1009135
+Node: Extension Sample Fnmatch1016703
+Node: Extension Sample Fork1018185
+Node: Extension Sample Inplace1019398
+Node: Extension Sample Ord1021073
+Node: Extension Sample Readdir1021909
+Ref: table-readdir-file-types1022765
+Node: Extension Sample Revout1023564
+Node: Extension Sample Rev2way1024155
+Node: Extension Sample Read write array1024896
+Node: Extension Sample Readfile1026775
+Node: Extension Sample API Tests1027875
+Node: Extension Sample Time1028400
+Node: gawkextlib1029715
+Node: Extension summary1032528
+Node: Extension Exercises1036221
+Node: Language History1036943
+Node: V7/SVR3.11038586
+Node: SVR41040906
+Node: POSIX1042348
+Node: BTL1043734
+Node: POSIX/GNU1044468
+Node: Feature History1050067
+Node: Common Extensions1063197
+Node: Ranges and Locales1064509
+Ref: Ranges and Locales-Footnote-11069126
+Ref: Ranges and Locales-Footnote-21069153
+Ref: Ranges and Locales-Footnote-31069387
+Node: Contributors1069608
+Node: History summary1075033
+Node: Installation1076402
+Node: Gawk Distribution1077353
+Node: Getting1077837
+Node: Extracting1078661
+Node: Distribution contents1080303
+Node: Unix Installation1086073
+Node: Quick Installation1086690
+Node: Additional Configuration Options1089132
+Node: Configuration Philosophy1090870
+Node: Non-Unix Installation1093221
+Node: PC Installation1093679
+Node: PC Binary Installation1094990
+Node: PC Compiling1096838
+Ref: PC Compiling-Footnote-11099837
+Node: PC Testing1099942
+Node: PC Using1101118
+Node: Cygwin1105276
+Node: MSYS1106085
+Node: VMS Installation1106599
+Node: VMS Compilation1107395
+Ref: VMS Compilation-Footnote-11108617
+Node: VMS Dynamic Extensions1108675
+Node: VMS Installation Details1110048
+Node: VMS Running1112300
+Node: VMS GNV1115134
+Node: VMS Old Gawk1115857
+Node: Bugs1116327
+Node: Other Versions1120331
+Node: Installation summary1126586
+Node: Notes1127642
+Node: Compatibility Mode1128507
+Node: Additions1129289
+Node: Accessing The Source1130214
+Node: Adding Code1131650
+Node: New Ports1137828
+Node: Derived Files1142309
+Ref: Derived Files-Footnote-11147390
+Ref: Derived Files-Footnote-21147424
+Ref: Derived Files-Footnote-31148020
+Node: Future Extensions1148134
+Node: Implementation Limitations1148740
+Node: Extension Design1149988
+Node: Old Extension Problems1151142
+Ref: Old Extension Problems-Footnote-11152659
+Node: Extension New Mechanism Goals1152716
+Ref: Extension New Mechanism Goals-Footnote-11156076
+Node: Extension Other Design Decisions1156265
+Node: Extension Future Growth1158371
+Node: Old Extension Mechanism1159207
+Node: Notes summary1160969
+Node: Basic Concepts1162155
+Node: Basic High Level1162836
+Ref: figure-general-flow1163108
+Ref: figure-process-flow1163707
+Ref: Basic High Level-Footnote-11166936
+Node: Basic Data Typing1167121
+Node: Glossary1170449
+Node: Copying1195601
+Node: GNU Free Documentation License1233157
+Node: Index1258293

End Tag Table
diff --git a/doc/gawk.texi b/doc/gawk.texi
index d6db2018..1fb343de 100644
--- a/doc/gawk.texi
+++ b/doc/gawk.texi
@@ -16619,13 +16619,14 @@ Return the cosine of @var{x}, with @var{x} in radians.
@cindex div
Perform integer division, similar to the standard C function of the
same name. First, truncate @code{numerator} and @code{denominator}
-to integers. Clear the @code{result} array, and then set
-@code{result["quotient"]} to the result of @samp{numerator / denominator},
-truncated to an integer, and set @code{result["remainder"]} to the result
-of @samp{numerator % denominator}, truncated to an integer.
-This function is primarily intended for use with arbitrary length
-integers; it avoids creating MPFR arbitrary precision floating-point
-values (@pxref{Arbitrary Precision Integers}).
+towards zero, creating integer values. Clear the @code{result}
+array, and then set @code{result["quotient"]} to the result of
+@samp{numerator / denominator}, truncated towards zero to an integer,
+and set @code{result["remainder"]} to the result of @samp{numerator %
+denominator}, truncated towards zero to an integer. This function is
+primarily intended for use with arbitrary length integers; it avoids
+creating MPFR arbitrary precision floating-point values (@pxref{Arbitrary
+Precision Integers}).
This function is a @code{gawk} extension. It is not available in
compatibility mode (@pxref{Options}).
diff --git a/doc/gawktexi.in b/doc/gawktexi.in
index 2d749e48..93139a04 100644
--- a/doc/gawktexi.in
+++ b/doc/gawktexi.in
@@ -15924,13 +15924,14 @@ Return the cosine of @var{x}, with @var{x} in radians.
@cindex div
Perform integer division, similar to the standard C function of the
same name. First, truncate @code{numerator} and @code{denominator}
-to integers. Clear the @code{result} array, and then set
-@code{result["quotient"]} to the result of @samp{numerator / denominator},
-truncated to an integer, and set @code{result["remainder"]} to the result
-of @samp{numerator % denominator}, truncated to an integer.
-This function is primarily intended for use with arbitrary length
-integers; it avoids creating MPFR arbitrary precision floating-point
-values (@pxref{Arbitrary Precision Integers}).
+towards zero, creating integer values. Clear the @code{result}
+array, and then set @code{result["quotient"]} to the result of
+@samp{numerator / denominator}, truncated towards zero to an integer,
+and set @code{result["remainder"]} to the result of @samp{numerator %
+denominator}, truncated towards zero to an integer. This function is
+primarily intended for use with arbitrary length integers; it avoids
+creating MPFR arbitrary precision floating-point values (@pxref{Arbitrary
+Precision Integers}).
This function is a @code{gawk} extension. It is not available in
compatibility mode (@pxref{Options}).
diff --git a/extension/ChangeLog b/extension/ChangeLog
index 869c30a5..799b0121 100644
--- a/extension/ChangeLog
+++ b/extension/ChangeLog
@@ -1,3 +1,11 @@
+2014-06-13 Paul Gortmaker <paul.gortmaker@windriver.com>
+
+ * Makefile.am (uninstall-so): Came across below bug while cross
+ compiling, and changed both install-data-hook and uninstall-so
+ to use $(DESTDIR) on v4.1.1 before seeing most of the fix in
+ gawk-4.1.1-3-g976f73ab0356; here we ensure uninstall-so also
+ uses the $(DESTDIR) prefix on its use of pkgextensiondir.
+
2014-04-11 Arnold D. Robbins <arnold@skeeve.com>
* Makefile.am (install-data-hook): Use $(DESTDIR) when removing
diff --git a/extension/Makefile.am b/extension/Makefile.am
index 11826e2b..b6beaee3 100644
--- a/extension/Makefile.am
+++ b/extension/Makefile.am
@@ -105,7 +105,7 @@ install-data-hook:
# Keep the uninstall check working:
uninstall-so:
- $(RM) $(pkgextensiondir)/*.so
+ $(RM) $(DESTDIR)$(pkgextensiondir)/*.so
uninstall-recursive: uninstall-so
diff --git a/extension/Makefile.in b/extension/Makefile.in
index d81b1696..294e4f88 100644
--- a/extension/Makefile.in
+++ b/extension/Makefile.in
@@ -1236,7 +1236,7 @@ install-data-hook:
# Keep the uninstall check working:
uninstall-so:
- $(RM) $(pkgextensiondir)/*.so
+ $(RM) $(DESTDIR)$(pkgextensiondir)/*.so
uninstall-recursive: uninstall-so
diff --git a/interpret.h b/interpret.h
index e2e0d6b7..6b56efa7 100644
--- a/interpret.h
+++ b/interpret.h
@@ -1191,7 +1191,7 @@ match_re:
JUMPTO(ni);
}
- if (inrec(curfile, & errcode) != 0) {
+ if (! inrec(curfile, & errcode)) {
if (errcode > 0 && (do_traditional || ! pc->has_endfile))
fatal(_("error reading input file `%s': %s"),
curfile->public.name, strerror(errcode));
diff --git a/io.c b/io.c
index 57d4af22..45b5015f 100644
--- a/io.c
+++ b/io.c
@@ -574,12 +574,12 @@ set_NR()
/* inrec --- This reads in a record from the input file */
-int
+bool
inrec(IOBUF *iop, int *errcode)
{
char *begin;
int cnt;
- int retval = 0;
+ bool retval = true;
if (at_eof(iop) && no_data_left(iop))
cnt = EOF;
@@ -589,13 +589,17 @@ inrec(IOBUF *iop, int *errcode)
cnt = get_a_record(& begin, iop, errcode);
if (cnt == EOF) {
- retval = 1;
+ retval = false;
if (*errcode > 0)
update_ERRNO_int(*errcode);
} else {
INCREMENT_REC(NR);
INCREMENT_REC(FNR);
set_record(begin, cnt);
+ if (*errcode > 0) {
+ update_ERRNO_int(*errcode);
+ retval = false;
+ }
}
return retval;
diff --git a/main.c b/main.c
index 901bfea5..7f1595b8 100644
--- a/main.c
+++ b/main.c
@@ -472,6 +472,8 @@ main(int argc, char **argv)
case 'M':
#ifdef HAVE_MPFR
do_flags |= DO_MPFR;
+#else
+ warning(_("-M ignored: MPFR/GMP support not compiled in"));
#endif
break;
@@ -752,6 +754,11 @@ out:
if (do_dump_vars)
dump_vars(varfile);
+#ifdef HAVE_MPFR
+ if (do_mpfr)
+ cleanup_mpfr();
+#endif
+
if (do_tidy_mem)
release_all_vars();
@@ -819,9 +826,9 @@ usage(int exitval, FILE *fp)
fputs(_("\t-i includefile\t\t--include=includefile\n"), fp);
fputs(_("\t-l library\t\t--load=library\n"), fp);
fputs(_("\t-L [fatal]\t\t--lint[=fatal]\n"), fp);
- fputs(_("\t-n\t\t\t--non-decimal-data\n"), fp);
fputs(_("\t-M\t\t\t--bignum\n"), fp);
fputs(_("\t-N\t\t\t--use-lc-numeric\n"), fp);
+ fputs(_("\t-n\t\t\t--non-decimal-data\n"), fp);
fputs(_("\t-o[file]\t\t--pretty-print[=file]\n"), fp);
fputs(_("\t-O\t\t\t--optimize\n"), fp);
fputs(_("\t-p[file]\t\t--profile[=file]\n"), fp);
diff --git a/mpfr.c b/mpfr.c
index e9c9d154..52247978 100644
--- a/mpfr.c
+++ b/mpfr.c
@@ -89,6 +89,15 @@ init_mpfr(mpfr_prec_t prec, const char *rmode)
register_exec_hook(mpg_interpret, 0);
}
+/* cleanup_mpfr --- clean stuff up, mainly for valgrind */
+
+void
+cleanup_mpfr(void)
+{
+ mpfr_clear(_mpf_t1);
+ mpfr_clear(_mpf_t2);
+}
+
/* mpg_node --- allocate a node to store MPFR float or GMP integer */
NODE *
@@ -1239,6 +1248,8 @@ do_mpfr_div(int nargs)
mpz_tdiv_qr(quotient->mpg_i, remainder->mpg_i, num->mpg_i, denom->mpg_i);
unref(num);
unref(denom);
+ unref(numerator);
+ unref(denominator);
sub = make_string("quotient", 8);
lhs = assoc_lookup(result, sub);
diff --git a/po/it.po b/po/it.po
index 68f2d7f0..a5578723 100644
--- a/po/it.po
+++ b/po/it.po
@@ -1,5 +1,5 @@
# Italian messages for GNU Awk
-# Copyright (C) 2002-2013 Free Software Foundation, Inc.
+# Copyright (C) 2002-2014 Free Software Foundation, Inc.
# Antonio Colombo <azc100@gmail.com>.
#
msgid ""
@@ -7,7 +7,7 @@ msgstr ""
"Project-Id-Version: GNU Awk 4.0.73, API: 0.0\n"
"Report-Msgid-Bugs-To: arnold@skeeve.com\n"
"POT-Creation-Date: 2014-04-08 19:23+0300\n"
-"PO-Revision-Date: 2014-01-15 10:39+0100\n"
+"PO-Revision-Date: 2014-06-14 17:50+0100\n"
"Last-Translator: Antonio Colombo <azc100@gmail.com>\n"
"Language-Team: Italian <it@li.org>\n"
"Language: it\n"
@@ -211,7 +211,7 @@ msgstr "`getline' invalida all'interno della regola `%s'"
#: awkgram.y:1425
msgid "non-redirected `getline' undefined inside END action"
-msgstr "`getline' non re-diretta indefinita dentro `azione' END"
+msgstr "`getline' non ri-diretta indefinita dentro `azione' END"
#: awkgram.y:1444
msgid "old awk does not support multidimensional arrays"
@@ -1141,7 +1141,7 @@ msgstr ""
#: command.y:855
msgid "list [-|+|[filename:]lineno|function|range] - list specified line(s)."
msgstr ""
-"list [-|+|[nome-file:]num_linea|funzione|intervallo] - elenca riga/he "
+"list [-|+|[nome-file:]num_riga|funzione|intervallo] - elenca riga/he "
"richiesta/e."
#: command.y:857
@@ -1229,7 +1229,7 @@ msgid ""
"line or line N within current frame."
msgstr ""
"until [[nome-file:]N|funzione] - esegui finché il programma arriva una "
-"rigadifferente, o alla riga N nell'elemento di stack corrente."
+"riga differente, o alla riga N nell'elemento di stack corrente."
#: command.y:895
msgid "unwatch [N] - remove variable(s) from watch list."
@@ -2615,23 +2615,23 @@ msgstr "chiusura di fd %d (`%s') non riuscita (%s)"
#: io.c:716
msgid "redirection not allowed in sandbox mode"
-msgstr "re-direzione non consentita in modo `sandbox'"
+msgstr "ri-direzione non consentita in modo `sandbox'"
#: io.c:750
#, c-format
msgid "expression in `%s' redirection only has numeric value"
-msgstr "espressione nella re-direzione `%s' ha solo un valore numerico"
+msgstr "espressione nella ri-direzione `%s' ha solo un valore numerico"
#: io.c:756
#, c-format
msgid "expression for `%s' redirection has null string value"
-msgstr "espressione nella re-direzione `%s' ha per valore la stringa nulla"
+msgstr "espressione nella ri-direzione `%s' ha per valore la stringa nulla"
#: io.c:761
#, c-format
msgid "filename `%s' for `%s' redirection may be result of logical expression"
msgstr ""
-"nome-file `%s' per la re-direzione `%s' può essere il risultato di una "
+"nome-file `%s' per la ri-direzione `%s' può essere il risultato di una "
"espressione logica"
#: io.c:809
@@ -2658,12 +2658,12 @@ msgstr ""
#: io.c:986
#, c-format
msgid "can't redirect from `%s' (%s)"
-msgstr "non riesco a re-dirigere da `%s' (%s)"
+msgstr "non riesco a ri-dirigere da `%s' (%s)"
#: io.c:989
#, c-format
msgid "can't redirect to `%s' (%s)"
-msgstr "non riesco a re-dirigere a `%s' (%s)"
+msgstr "non riesco a ri-dirigere a `%s' (%s)"
#: io.c:1040
msgid ""
@@ -2692,12 +2692,12 @@ msgstr "close: `%.*s' non è un file aperto, una `pipe' o un co-processo"
#: io.c:1108
msgid "close of redirection that was never opened"
-msgstr "chiusura di una re-direzione mai aperta"
+msgstr "chiusura di una ri-direzione mai aperta"
#: io.c:1205
#, c-format
msgid "close: redirection `%s' not opened with `|&', second argument ignored"
-msgstr "close: re-direzione `%s' non aperta con `|&', ignoro secondo argomento"
+msgstr "close: ri-direzione `%s' non aperta con `|&', ignoro secondo argomento"
#: io.c:1222
#, c-format
@@ -3313,7 +3313,7 @@ msgstr "%s: argomento #%d con valore negativo %Zd, darà risultati strani"
#: msg.c:68
#, c-format
msgid "cmd. line:"
-msgstr "linea com.:"
+msgstr "riga com.:"
#: node.c:421
msgid "backslash at end of string"
@@ -3427,7 +3427,7 @@ msgstr ""
#: profile.c:1513
#, c-format
msgid "redir2str: unknown redirection type %d"
-msgstr "redir2str: tipo di re-direzione non noto %d"
+msgstr "redir2str: tipo di ri-direzione non noto %d"
#: re.c:607
#, c-format
@@ -3503,5 +3503,3 @@ msgstr "Nessuna espressione regolare precedente"
msgid "can not pop main context"
msgstr "non posso salire più in alto nello stack"
-#~ msgid "range of the form `[%c-%c]' is locale dependent"
-#~ msgstr "intervallo della forma `[%c-%c]' dipende da `locale'"
diff --git a/test/ChangeLog b/test/ChangeLog
index cc921277..ed673d8c 100644
--- a/test/ChangeLog
+++ b/test/ChangeLog
@@ -1,3 +1,12 @@
+2014-07-25 Arnold D. Robbins <arnold@skeeve.com>
+
+ * printhuge.awk: Add a newline to output.
+ * printhuge.ok: Adjust.
+
+2014-07-24 Arnold D. Robbins <arnold@skeeve.com>
+
+ * badargs.ok: Adjust after correctly alphabetizing options.
+
2014-07-10 Arnold D. Robbins <arnold@skeeve.com>
* Makefile.am (printhuge): New test.
diff --git a/test/badargs.ok b/test/badargs.ok
index 1be81ec3..8d34be1f 100644
--- a/test/badargs.ok
+++ b/test/badargs.ok
@@ -18,9 +18,9 @@ Short options: GNU long options: (extensions)
-i includefile --include=includefile
-l library --load=library
-L [fatal] --lint[=fatal]
- -n --non-decimal-data
-M --bignum
-N --use-lc-numeric
+ -n --non-decimal-data
-o[file] --pretty-print[=file]
-O --optimize
-p[file] --profile[=file]
diff --git a/test/printhuge.awk b/test/printhuge.awk
index 4d4fb7d4..1de27ecc 100644
--- a/test/printhuge.awk
+++ b/test/printhuge.awk
@@ -1,3 +1,3 @@
BEGIN {
- printf("%c", sprintf("%c", (0xffffff00+255)))
+ printf("%c\n", sprintf("%c", (0xffffff00+255)))
}
diff --git a/test/printhuge.ok b/test/printhuge.ok
index ce542efa..29e181eb 100644
--- a/test/printhuge.ok
+++ b/test/printhuge.ok
@@ -1 +1 @@
-˙ \ No newline at end of file