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.2-stable, updated. gawk-4.1.0-282


From: Arnold Robbins
Subject: [gawk-diffs] [SCM] gawk branch, gawk-4.2-stable, updated. gawk-4.1.0-2822-g372e3be
Date: Sat, 21 Oct 2017 14:03:08 -0400 (EDT)

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

The branch, gawk-4.2-stable has been updated
       via  372e3bef424ad2cec3de5fbc4da30ddf88c9533e (commit)
       via  2d292c06360febc796bc21c9e75bdda84a158158 (commit)
      from  73a0bda71873bdc095f171d3d8bf322b974a010d (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=372e3bef424ad2cec3de5fbc4da30ddf88c9533e

commit 372e3bef424ad2cec3de5fbc4da30ddf88c9533e
Author: Arnold D. Robbins <address@hidden>
Date:   Sat Oct 21 21:02:57 2017 +0300

    Update README.os2.

diff --git a/README_d/ChangeLog b/README_d/ChangeLog
index 369b136..2b88d42 100644
--- a/README_d/ChangeLog
+++ b/README_d/ChangeLog
@@ -1,3 +1,7 @@
+2017-10-21         Arnold D. Robbins     <address@hidden>
+
+       * README.os2: Updated with email from Andreas.
+
 2017-10-19         Arnold D. Robbins     <address@hidden>
 
        * 4.2.0: Release tar ball made.
diff --git a/README_d/README.os2 b/README_d/README.os2
index 7171daf..c12f82d 100644
--- a/README_d/README.os2
+++ b/README_d/README.os2
@@ -1,22 +1,57 @@
-Date: Mon, 16 Aug 2010 08:19:37 +0200
-From: Andreas =?iso-8859-1?Q?B=FCning?= <address@hidden>
-To: Aharon Robbins <address@hidden>
-Subject: Re: how alive is OS/2?
+From address@hidden  Thu Oct 19 15:34:16 2017
+Date: Thu, 19 Oct 2017 23:34:09 +0200 (CEST)
+From: =?UTF-8?Q?Andreas_B=C3=BCning?= <address@hidden>
+To: address@hidden
+Message-ID: <address@hidden>
+Subject: Re: gawk for OS/2 - any updates?
 
-Hello!
+Hello Arnold,
 
-Aharon Robbins schrieb:
+I'd like to inform you about the current state of compiling gawk on
+OS/2:
 
-> Is OS/2 still viable?  Or can I look to start removing support for it
-> also?
+1. Compilation
 
-I apologize for the late response. Yes, OS/2 is still "alive" in some sense.
-At least, licenses are still sold but under the name "eComStation" (eCS)
-instead of OS/2. The (only) distributor is a small company "Serenity Systems",
-see www.ecomstation.com for details.
+Running ./configure does work but
 
-So I would be pleased if you don't remove the code during the next years. :-)
+- I tried only running with --disable-nls, so with NLS I didn't test.
+- Depending on the gcc version you use you may get linker errors. In
+  that case add 'CFLAGS=-O2 -g -fgnu89-inline' to the configure options
+  (-O2 -g already is the default).
 
-Thanks.
 
-Andreas
+2. Tests
+
+It is possible to run the built-in checks but many test results depend
+on the shell being used. I recommend to use 'make -i check' to run
+the tests because some failures might cause a immediate termination
+of the make run.
+
+- If your shell uses \r\n linebreaks (in that case all tests fail)
+  then you have to run 'make -i check CMP=diff' to ignore the linebreak
+  differences at the test result comparison.
+- Depending on the shell some tests might just hang forever. Press
+  Ctrl+C and/or Ctrl+Break until the tests continue.
+- OS/2 can only load DLLs with filenames up to 8+3 bytes but gawk
+  creates three internal DLLs with longer names (e.g. filefuncs.dll,
+  revoutput.dll, revtwoway.dll). Thus, all tests trying to load
+  filefuncs.dll or the other two DLLs will fail. This is not a bug
+  of gawk. If you change e.g. the '@load filefuncs' directive to
+  '@load filefunc' in the according *.awk file then the tests will
+  succeed.
+- The number of failling tests is currently around 50, less if your
+  shell uses \r\n linebreaks, more otherwise.
+
+Best wishes,
+
+Andreas Buening
+======================================================
+
+Sat Oct 21 21:01:49 IDT 2017
+============================
+
+Fixes for loading extension libraries have since been included
+in the git repo and will be part of 4.2.1.
+
+Arnold Robbins
address@hidden

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

commit 2d292c06360febc796bc21c9e75bdda84a158158
Author: Arnold D. Robbins <address@hidden>
Date:   Sat Oct 21 20:59:19 2017 +0300

    Don't fold constant strings if either is translatable.

diff --git a/ChangeLog b/ChangeLog
index 1b4234e..8ff8ab5 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,9 @@
+2017-10-21         Arnold D. Robbins     <address@hidden>
+
+       * awkgram.y: For string concatenation, don't fold constants
+       if one or the other is translatable. Thanks to Harald van Dijk
+       <address@hidden> for the report.
+
 2017-10-21  KO Myung-Hun <address@hidden>
 
        * nonposix.h [__KLIBC__]: Include dlfcn.h, declare os2_dlsym, and
diff --git a/awkgram.c b/awkgram.c
index 97b5970..1700a83 100644
--- a/awkgram.c
+++ b/awkgram.c
@@ -684,13 +684,13 @@ static const yytype_uint16 yyrline[] =
     1401,  1409,  1414,  1423,  1424,  1429,  1431,  1436,  1438,  1446,
     1451,  1459,  1460,  1465,  1472,  1476,  1478,  1480,  1493,  1510,
     1520,  1527,  1529,  1534,  1536,  1538,  1546,  1548,  1553,  1555,
-    1560,  1562,  1564,  1620,  1622,  1624,  1626,  1628,  1630,  1632,
-    1634,  1648,  1653,  1658,  1683,  1689,  1691,  1693,  1695,  1697,
-    1699,  1704,  1708,  1740,  1747,  1753,  1759,  1772,  1773,  1774,
-    1779,  1784,  1788,  1792,  1807,  1828,  1833,  1870,  1899,  1900,
-    1906,  1907,  1912,  1914,  1921,  1938,  1955,  1957,  1964,  1969,
-    1977,  1987,  1999,  2008,  2012,  2016,  2020,  2024,  2028,  2031,
-    2033,  2037,  2041,  2045
+    1560,  1562,  1564,  1621,  1623,  1625,  1627,  1629,  1631,  1633,
+    1635,  1649,  1654,  1659,  1684,  1690,  1692,  1694,  1696,  1698,
+    1700,  1705,  1709,  1741,  1748,  1754,  1760,  1773,  1774,  1775,
+    1780,  1785,  1789,  1793,  1808,  1829,  1834,  1871,  1900,  1901,
+    1907,  1908,  1913,  1915,  1922,  1939,  1956,  1958,  1965,  1970,
+    1978,  1988,  2000,  2009,  2013,  2017,  2021,  2025,  2029,  2032,
+    2034,  2038,  2042,  2046
 };
 #endif
 
@@ -3627,7 +3627,8 @@ regular_print:
 
                        // 1.5 ""   # can't fold this if program mucks with 
CONVFMT.
                        // See test #12 in test/posix.awk.
-                       if ((n1->flags & (NUMBER|NUMINT)) != 0 || (n2->flags & 
(NUMBER|NUMINT)) != 0)
+                       // Also can't fold if one or the other is translatable.
+                       if ((n1->flags & (NUMBER|NUMINT|INTLSTR)) != 0 || 
(n2->flags & (NUMBER|NUMINT|INTLSTR)) != 0)
                                goto plain_concat;
 
                        n1 = force_string(n1);
@@ -3652,47 +3653,47 @@ regular_print:
                                max_args = count;
                }
          }
-#line 3656 "awkgram.c" /* yacc.c:1646  */
+#line 3657 "awkgram.c" /* yacc.c:1646  */
     break;
 
   case 144:
-#line 1623 "awkgram.y" /* yacc.c:1646  */
+#line 1624 "awkgram.y" /* yacc.c:1646  */
     { (yyval) = mk_binary((yyvsp[-2]), (yyvsp[0]), (yyvsp[-1])); }
-#line 3662 "awkgram.c" /* yacc.c:1646  */
+#line 3663 "awkgram.c" /* yacc.c:1646  */
     break;
 
   case 145:
-#line 1625 "awkgram.y" /* yacc.c:1646  */
+#line 1626 "awkgram.y" /* yacc.c:1646  */
     { (yyval) = mk_binary((yyvsp[-2]), (yyvsp[0]), (yyvsp[-1])); }
-#line 3668 "awkgram.c" /* yacc.c:1646  */
+#line 3669 "awkgram.c" /* yacc.c:1646  */
     break;
 
   case 146:
-#line 1627 "awkgram.y" /* yacc.c:1646  */
+#line 1628 "awkgram.y" /* yacc.c:1646  */
     { (yyval) = mk_binary((yyvsp[-2]), (yyvsp[0]), (yyvsp[-1])); }
-#line 3674 "awkgram.c" /* yacc.c:1646  */
+#line 3675 "awkgram.c" /* yacc.c:1646  */
     break;
 
   case 147:
-#line 1629 "awkgram.y" /* yacc.c:1646  */
+#line 1630 "awkgram.y" /* yacc.c:1646  */
     { (yyval) = mk_binary((yyvsp[-2]), (yyvsp[0]), (yyvsp[-1])); }
-#line 3680 "awkgram.c" /* yacc.c:1646  */
+#line 3681 "awkgram.c" /* yacc.c:1646  */
     break;
 
   case 148:
-#line 1631 "awkgram.y" /* yacc.c:1646  */
+#line 1632 "awkgram.y" /* yacc.c:1646  */
     { (yyval) = mk_binary((yyvsp[-2]), (yyvsp[0]), (yyvsp[-1])); }
-#line 3686 "awkgram.c" /* yacc.c:1646  */
+#line 3687 "awkgram.c" /* yacc.c:1646  */
     break;
 
   case 149:
-#line 1633 "awkgram.y" /* yacc.c:1646  */
+#line 1634 "awkgram.y" /* yacc.c:1646  */
     { (yyval) = mk_binary((yyvsp[-2]), (yyvsp[0]), (yyvsp[-1])); }
-#line 3692 "awkgram.c" /* yacc.c:1646  */
+#line 3693 "awkgram.c" /* yacc.c:1646  */
     break;
 
   case 150:
-#line 1635 "awkgram.y" /* yacc.c:1646  */
+#line 1636 "awkgram.y" /* yacc.c:1646  */
     {
                /*
                 * In BEGINFILE/ENDFILE, allow `getline [var] < file'
@@ -3706,29 +3707,29 @@ regular_print:
                                _("non-redirected `getline' undefined inside 
END action"));
                (yyval) = mk_getline((yyvsp[-2]), (yyvsp[-1]), (yyvsp[0]), 
redirect_input);
          }
-#line 3710 "awkgram.c" /* yacc.c:1646  */
+#line 3711 "awkgram.c" /* yacc.c:1646  */
     break;
 
   case 151:
-#line 1649 "awkgram.y" /* yacc.c:1646  */
+#line 1650 "awkgram.y" /* yacc.c:1646  */
     {
                (yyvsp[0])->opcode = Op_postincrement;
                (yyval) = mk_assignment((yyvsp[-1]), NULL, (yyvsp[0]));
          }
-#line 3719 "awkgram.c" /* yacc.c:1646  */
+#line 3720 "awkgram.c" /* yacc.c:1646  */
     break;
 
   case 152:
-#line 1654 "awkgram.y" /* yacc.c:1646  */
+#line 1655 "awkgram.y" /* yacc.c:1646  */
     {
                (yyvsp[0])->opcode = Op_postdecrement;
                (yyval) = mk_assignment((yyvsp[-1]), NULL, (yyvsp[0]));
          }
-#line 3728 "awkgram.c" /* yacc.c:1646  */
+#line 3729 "awkgram.c" /* yacc.c:1646  */
     break;
 
   case 153:
-#line 1659 "awkgram.y" /* yacc.c:1646  */
+#line 1660 "awkgram.y" /* yacc.c:1646  */
     {
                if (do_lint_old) {
                    warning_ln((yyvsp[-1])->source_line,
@@ -3748,64 +3749,64 @@ regular_print:
                        (yyval) = list_append(list_merge(t, (yyvsp[0])), 
(yyvsp[-1]));
                }
          }
-#line 3752 "awkgram.c" /* yacc.c:1646  */
+#line 3753 "awkgram.c" /* yacc.c:1646  */
     break;
 
   case 154:
-#line 1684 "awkgram.y" /* yacc.c:1646  */
+#line 1685 "awkgram.y" /* yacc.c:1646  */
     {
                  (yyval) = mk_getline((yyvsp[-1]), (yyvsp[0]), (yyvsp[-3]), 
(yyvsp[-2])->redir_type);
                  bcfree((yyvsp[-2]));
                }
-#line 3761 "awkgram.c" /* yacc.c:1646  */
+#line 3762 "awkgram.c" /* yacc.c:1646  */
     break;
 
   case 155:
-#line 1690 "awkgram.y" /* yacc.c:1646  */
+#line 1691 "awkgram.y" /* yacc.c:1646  */
     { (yyval) = mk_binary((yyvsp[-2]), (yyvsp[0]), (yyvsp[-1])); }
-#line 3767 "awkgram.c" /* yacc.c:1646  */
+#line 3768 "awkgram.c" /* yacc.c:1646  */
     break;
 
   case 156:
-#line 1692 "awkgram.y" /* yacc.c:1646  */
+#line 1693 "awkgram.y" /* yacc.c:1646  */
     { (yyval) = mk_binary((yyvsp[-2]), (yyvsp[0]), (yyvsp[-1])); }
-#line 3773 "awkgram.c" /* yacc.c:1646  */
+#line 3774 "awkgram.c" /* yacc.c:1646  */
     break;
 
   case 157:
-#line 1694 "awkgram.y" /* yacc.c:1646  */
+#line 1695 "awkgram.y" /* yacc.c:1646  */
     { (yyval) = mk_binary((yyvsp[-2]), (yyvsp[0]), (yyvsp[-1])); }
-#line 3779 "awkgram.c" /* yacc.c:1646  */
+#line 3780 "awkgram.c" /* yacc.c:1646  */
     break;
 
   case 158:
-#line 1696 "awkgram.y" /* yacc.c:1646  */
+#line 1697 "awkgram.y" /* yacc.c:1646  */
     { (yyval) = mk_binary((yyvsp[-2]), (yyvsp[0]), (yyvsp[-1])); }
-#line 3785 "awkgram.c" /* yacc.c:1646  */
+#line 3786 "awkgram.c" /* yacc.c:1646  */
     break;
 
   case 159:
-#line 1698 "awkgram.y" /* yacc.c:1646  */
+#line 1699 "awkgram.y" /* yacc.c:1646  */
     { (yyval) = mk_binary((yyvsp[-2]), (yyvsp[0]), (yyvsp[-1])); }
-#line 3791 "awkgram.c" /* yacc.c:1646  */
+#line 3792 "awkgram.c" /* yacc.c:1646  */
     break;
 
   case 160:
-#line 1700 "awkgram.y" /* yacc.c:1646  */
+#line 1701 "awkgram.y" /* yacc.c:1646  */
     { (yyval) = mk_binary((yyvsp[-2]), (yyvsp[0]), (yyvsp[-1])); }
-#line 3797 "awkgram.c" /* yacc.c:1646  */
+#line 3798 "awkgram.c" /* yacc.c:1646  */
     break;
 
   case 161:
-#line 1705 "awkgram.y" /* yacc.c:1646  */
+#line 1706 "awkgram.y" /* yacc.c:1646  */
     {
                (yyval) = list_create((yyvsp[0]));
          }
-#line 3805 "awkgram.c" /* yacc.c:1646  */
+#line 3806 "awkgram.c" /* yacc.c:1646  */
     break;
 
   case 162:
-#line 1709 "awkgram.y" /* yacc.c:1646  */
+#line 1710 "awkgram.y" /* yacc.c:1646  */
     {
                if ((yyvsp[0])->opcode == Op_match_rec) {
                        (yyvsp[0])->opcode = Op_nomatch;
@@ -3837,42 +3838,42 @@ regular_print:
                        }
                }
           }
-#line 3841 "awkgram.c" /* yacc.c:1646  */
+#line 3842 "awkgram.c" /* yacc.c:1646  */
     break;
 
   case 163:
-#line 1741 "awkgram.y" /* yacc.c:1646  */
+#line 1742 "awkgram.y" /* yacc.c:1646  */
     {
                if (do_pretty_print)
                        (yyval) = list_append((yyvsp[-1]), bcalloc(Op_parens, 
1, sourceline));
                else
                        (yyval) = (yyvsp[-1]);
          }
-#line 3852 "awkgram.c" /* yacc.c:1646  */
+#line 3853 "awkgram.c" /* yacc.c:1646  */
     break;
 
   case 164:
-#line 1748 "awkgram.y" /* yacc.c:1646  */
+#line 1749 "awkgram.y" /* yacc.c:1646  */
     {
                (yyval) = snode((yyvsp[-1]), (yyvsp[-3]));
                if ((yyval) == NULL)
                        YYABORT;
          }
-#line 3862 "awkgram.c" /* yacc.c:1646  */
+#line 3863 "awkgram.c" /* yacc.c:1646  */
     break;
 
   case 165:
-#line 1754 "awkgram.y" /* yacc.c:1646  */
+#line 1755 "awkgram.y" /* yacc.c:1646  */
     {
                (yyval) = snode((yyvsp[-1]), (yyvsp[-3]));
                if ((yyval) == NULL)
                        YYABORT;
          }
-#line 3872 "awkgram.c" /* yacc.c:1646  */
+#line 3873 "awkgram.c" /* yacc.c:1646  */
     break;
 
   case 166:
-#line 1760 "awkgram.y" /* yacc.c:1646  */
+#line 1761 "awkgram.y" /* yacc.c:1646  */
     {
                static bool warned = false;
 
@@ -3885,45 +3886,45 @@ regular_print:
                if ((yyval) == NULL)
                        YYABORT;
          }
-#line 3889 "awkgram.c" /* yacc.c:1646  */
+#line 3890 "awkgram.c" /* yacc.c:1646  */
     break;
 
   case 169:
-#line 1775 "awkgram.y" /* yacc.c:1646  */
+#line 1776 "awkgram.y" /* yacc.c:1646  */
     {
                (yyvsp[-1])->opcode = Op_preincrement;
                (yyval) = mk_assignment((yyvsp[0]), NULL, (yyvsp[-1]));
          }
-#line 3898 "awkgram.c" /* yacc.c:1646  */
+#line 3899 "awkgram.c" /* yacc.c:1646  */
     break;
 
   case 170:
-#line 1780 "awkgram.y" /* yacc.c:1646  */
+#line 1781 "awkgram.y" /* yacc.c:1646  */
     {
                (yyvsp[-1])->opcode = Op_predecrement;
                (yyval) = mk_assignment((yyvsp[0]), NULL, (yyvsp[-1]));
          }
-#line 3907 "awkgram.c" /* yacc.c:1646  */
+#line 3908 "awkgram.c" /* yacc.c:1646  */
     break;
 
   case 171:
-#line 1785 "awkgram.y" /* yacc.c:1646  */
+#line 1786 "awkgram.y" /* yacc.c:1646  */
     {
                (yyval) = list_create((yyvsp[0]));
          }
-#line 3915 "awkgram.c" /* yacc.c:1646  */
+#line 3916 "awkgram.c" /* yacc.c:1646  */
     break;
 
   case 172:
-#line 1789 "awkgram.y" /* yacc.c:1646  */
+#line 1790 "awkgram.y" /* yacc.c:1646  */
     {
                (yyval) = list_create((yyvsp[0]));
          }
-#line 3923 "awkgram.c" /* yacc.c:1646  */
+#line 3924 "awkgram.c" /* yacc.c:1646  */
     break;
 
   case 173:
-#line 1793 "awkgram.y" /* yacc.c:1646  */
+#line 1794 "awkgram.y" /* yacc.c:1646  */
     {
                if ((yyvsp[0])->lasti->opcode == Op_push_i
                        && ((yyvsp[0])->lasti->memory->flags & STRING) == 0
@@ -3938,11 +3939,11 @@ regular_print:
                        (yyval) = list_append((yyvsp[0]), (yyvsp[-1]));
                }
          }
-#line 3942 "awkgram.c" /* yacc.c:1646  */
+#line 3943 "awkgram.c" /* yacc.c:1646  */
     break;
 
   case 174:
-#line 1808 "awkgram.y" /* yacc.c:1646  */
+#line 1809 "awkgram.y" /* yacc.c:1646  */
     {
                if ((yyvsp[0])->lasti->opcode == Op_push_i
                        && ((yyvsp[0])->lasti->memory->flags & STRING) == 0
@@ -3960,20 +3961,20 @@ regular_print:
                        (yyval) = list_append((yyvsp[0]), (yyvsp[-1]));
                }
          }
-#line 3964 "awkgram.c" /* yacc.c:1646  */
+#line 3965 "awkgram.c" /* yacc.c:1646  */
     break;
 
   case 175:
-#line 1829 "awkgram.y" /* yacc.c:1646  */
+#line 1830 "awkgram.y" /* yacc.c:1646  */
     {
                func_use((yyvsp[0])->lasti->func_name, FUNC_USE);
                (yyval) = (yyvsp[0]);
          }
-#line 3973 "awkgram.c" /* yacc.c:1646  */
+#line 3974 "awkgram.c" /* yacc.c:1646  */
     break;
 
   case 176:
-#line 1834 "awkgram.y" /* yacc.c:1646  */
+#line 1835 "awkgram.y" /* yacc.c:1646  */
     {
                /* indirect function call */
                INSTRUCTION *f, *t;
@@ -4007,11 +4008,11 @@ regular_print:
                (yyval) = list_prepend((yyvsp[0]), t);
                at_seen = false;
          }
-#line 4011 "awkgram.c" /* yacc.c:1646  */
+#line 4012 "awkgram.c" /* yacc.c:1646  */
     break;
 
   case 177:
-#line 1871 "awkgram.y" /* yacc.c:1646  */
+#line 1872 "awkgram.y" /* yacc.c:1646  */
     {
                NODE *n;
 
@@ -4036,49 +4037,49 @@ regular_print:
                        (yyval) = list_append(t, (yyvsp[-3]));
                }
          }
-#line 4040 "awkgram.c" /* yacc.c:1646  */
+#line 4041 "awkgram.c" /* yacc.c:1646  */
     break;
 
   case 178:
-#line 1899 "awkgram.y" /* yacc.c:1646  */
+#line 1900 "awkgram.y" /* yacc.c:1646  */
     { (yyval) = NULL; }
-#line 4046 "awkgram.c" /* yacc.c:1646  */
+#line 4047 "awkgram.c" /* yacc.c:1646  */
     break;
 
   case 179:
-#line 1901 "awkgram.y" /* yacc.c:1646  */
+#line 1902 "awkgram.y" /* yacc.c:1646  */
     { (yyval) = (yyvsp[0]); }
-#line 4052 "awkgram.c" /* yacc.c:1646  */
+#line 4053 "awkgram.c" /* yacc.c:1646  */
     break;
 
   case 180:
-#line 1906 "awkgram.y" /* yacc.c:1646  */
+#line 1907 "awkgram.y" /* yacc.c:1646  */
     { (yyval) = NULL; }
-#line 4058 "awkgram.c" /* yacc.c:1646  */
+#line 4059 "awkgram.c" /* yacc.c:1646  */
     break;
 
   case 181:
-#line 1908 "awkgram.y" /* yacc.c:1646  */
+#line 1909 "awkgram.y" /* yacc.c:1646  */
     { (yyval) = (yyvsp[-1]); }
-#line 4064 "awkgram.c" /* yacc.c:1646  */
+#line 4065 "awkgram.c" /* yacc.c:1646  */
     break;
 
   case 182:
-#line 1913 "awkgram.y" /* yacc.c:1646  */
+#line 1914 "awkgram.y" /* yacc.c:1646  */
     {  (yyval) = (yyvsp[0]); }
-#line 4070 "awkgram.c" /* yacc.c:1646  */
+#line 4071 "awkgram.c" /* yacc.c:1646  */
     break;
 
   case 183:
-#line 1915 "awkgram.y" /* yacc.c:1646  */
+#line 1916 "awkgram.y" /* yacc.c:1646  */
     {
                (yyval) = list_merge((yyvsp[-1]), (yyvsp[0]));
          }
-#line 4078 "awkgram.c" /* yacc.c:1646  */
+#line 4079 "awkgram.c" /* yacc.c:1646  */
     break;
 
   case 184:
-#line 1922 "awkgram.y" /* yacc.c:1646  */
+#line 1923 "awkgram.y" /* yacc.c:1646  */
     {
                INSTRUCTION *ip = (yyvsp[0])->lasti;
                int count = ip->sub_count;      /* # of SUBSEP-seperated 
expressions */
@@ -4092,11 +4093,11 @@ regular_print:
                sub_counter++;  /* count # of dimensions */
                (yyval) = (yyvsp[0]);
          }
-#line 4096 "awkgram.c" /* yacc.c:1646  */
+#line 4097 "awkgram.c" /* yacc.c:1646  */
     break;
 
   case 185:
-#line 1939 "awkgram.y" /* yacc.c:1646  */
+#line 1940 "awkgram.y" /* yacc.c:1646  */
     {
                INSTRUCTION *t = (yyvsp[-1]);
                if ((yyvsp[-1]) == NULL) {
@@ -4110,31 +4111,31 @@ regular_print:
                        (yyvsp[0])->sub_count = count_expressions(&t, false);
                (yyval) = list_append(t, (yyvsp[0]));
          }
-#line 4114 "awkgram.c" /* yacc.c:1646  */
+#line 4115 "awkgram.c" /* yacc.c:1646  */
     break;
 
   case 186:
-#line 1956 "awkgram.y" /* yacc.c:1646  */
+#line 1957 "awkgram.y" /* yacc.c:1646  */
     {  (yyval) = (yyvsp[0]); }
-#line 4120 "awkgram.c" /* yacc.c:1646  */
+#line 4121 "awkgram.c" /* yacc.c:1646  */
     break;
 
   case 187:
-#line 1958 "awkgram.y" /* yacc.c:1646  */
+#line 1959 "awkgram.y" /* yacc.c:1646  */
     {
                (yyval) = list_merge((yyvsp[-1]), (yyvsp[0]));
          }
-#line 4128 "awkgram.c" /* yacc.c:1646  */
+#line 4129 "awkgram.c" /* yacc.c:1646  */
     break;
 
   case 188:
-#line 1965 "awkgram.y" /* yacc.c:1646  */
+#line 1966 "awkgram.y" /* yacc.c:1646  */
     { (yyval) = (yyvsp[-1]); }
-#line 4134 "awkgram.c" /* yacc.c:1646  */
+#line 4135 "awkgram.c" /* yacc.c:1646  */
     break;
 
   case 189:
-#line 1970 "awkgram.y" /* yacc.c:1646  */
+#line 1971 "awkgram.y" /* yacc.c:1646  */
     {
                char *var_name = (yyvsp[0])->lextok;
 
@@ -4142,22 +4143,22 @@ regular_print:
                (yyvsp[0])->memory = variable((yyvsp[0])->source_line, 
var_name, Node_var_new);
                (yyval) = list_create((yyvsp[0]));
          }
-#line 4146 "awkgram.c" /* yacc.c:1646  */
+#line 4147 "awkgram.c" /* yacc.c:1646  */
     break;
 
   case 190:
-#line 1978 "awkgram.y" /* yacc.c:1646  */
+#line 1979 "awkgram.y" /* yacc.c:1646  */
     {
                char *arr = (yyvsp[-1])->lextok;
                (yyvsp[-1])->memory = variable((yyvsp[-1])->source_line, arr, 
Node_var_new);
                (yyvsp[-1])->opcode = Op_push_array;
                (yyval) = list_prepend((yyvsp[0]), (yyvsp[-1]));
          }
-#line 4157 "awkgram.c" /* yacc.c:1646  */
+#line 4158 "awkgram.c" /* yacc.c:1646  */
     break;
 
   case 191:
-#line 1988 "awkgram.y" /* yacc.c:1646  */
+#line 1989 "awkgram.y" /* yacc.c:1646  */
     {
                INSTRUCTION *ip = (yyvsp[0])->nexti;
                if (ip->opcode == Op_push
@@ -4169,73 +4170,73 @@ regular_print:
                } else
                        (yyval) = (yyvsp[0]);
          }
-#line 4173 "awkgram.c" /* yacc.c:1646  */
+#line 4174 "awkgram.c" /* yacc.c:1646  */
     break;
 
   case 192:
-#line 2000 "awkgram.y" /* yacc.c:1646  */
+#line 2001 "awkgram.y" /* yacc.c:1646  */
     {
                (yyval) = list_append((yyvsp[-1]), (yyvsp[-2]));
                if ((yyvsp[0]) != NULL)
                        mk_assignment((yyvsp[-1]), NULL, (yyvsp[0]));
          }
-#line 4183 "awkgram.c" /* yacc.c:1646  */
+#line 4184 "awkgram.c" /* yacc.c:1646  */
     break;
 
   case 193:
-#line 2009 "awkgram.y" /* yacc.c:1646  */
+#line 2010 "awkgram.y" /* yacc.c:1646  */
     {
                (yyvsp[0])->opcode = Op_postincrement;
          }
-#line 4191 "awkgram.c" /* yacc.c:1646  */
+#line 4192 "awkgram.c" /* yacc.c:1646  */
     break;
 
   case 194:
-#line 2013 "awkgram.y" /* yacc.c:1646  */
+#line 2014 "awkgram.y" /* yacc.c:1646  */
     {
                (yyvsp[0])->opcode = Op_postdecrement;
          }
-#line 4199 "awkgram.c" /* yacc.c:1646  */
+#line 4200 "awkgram.c" /* yacc.c:1646  */
     break;
 
   case 195:
-#line 2016 "awkgram.y" /* yacc.c:1646  */
+#line 2017 "awkgram.y" /* yacc.c:1646  */
     { (yyval) = NULL; }
-#line 4205 "awkgram.c" /* yacc.c:1646  */
+#line 4206 "awkgram.c" /* yacc.c:1646  */
     break;
 
   case 197:
-#line 2024 "awkgram.y" /* yacc.c:1646  */
+#line 2025 "awkgram.y" /* yacc.c:1646  */
     { yyerrok; }
-#line 4211 "awkgram.c" /* yacc.c:1646  */
+#line 4212 "awkgram.c" /* yacc.c:1646  */
     break;
 
   case 198:
-#line 2028 "awkgram.y" /* yacc.c:1646  */
+#line 2029 "awkgram.y" /* yacc.c:1646  */
     { yyerrok; }
-#line 4217 "awkgram.c" /* yacc.c:1646  */
+#line 4218 "awkgram.c" /* yacc.c:1646  */
     break;
 
   case 201:
-#line 2037 "awkgram.y" /* yacc.c:1646  */
+#line 2038 "awkgram.y" /* yacc.c:1646  */
     { yyerrok; }
-#line 4223 "awkgram.c" /* yacc.c:1646  */
+#line 4224 "awkgram.c" /* yacc.c:1646  */
     break;
 
   case 202:
-#line 2041 "awkgram.y" /* yacc.c:1646  */
+#line 2042 "awkgram.y" /* yacc.c:1646  */
     { (yyval) = (yyvsp[0]); yyerrok; }
-#line 4229 "awkgram.c" /* yacc.c:1646  */
+#line 4230 "awkgram.c" /* yacc.c:1646  */
     break;
 
   case 203:
-#line 2045 "awkgram.y" /* yacc.c:1646  */
+#line 2046 "awkgram.y" /* yacc.c:1646  */
     { yyerrok; }
-#line 4235 "awkgram.c" /* yacc.c:1646  */
+#line 4236 "awkgram.c" /* yacc.c:1646  */
     break;
 
 
-#line 4239 "awkgram.c" /* yacc.c:1646  */
+#line 4240 "awkgram.c" /* yacc.c:1646  */
       default: break;
     }
   /* User semantic actions sometimes alter yychar, and that requires
@@ -4463,7 +4464,7 @@ yyreturn:
 #endif
   return yyresult;
 }
-#line 2047 "awkgram.y" /* yacc.c:1906  */
+#line 2048 "awkgram.y" /* yacc.c:1906  */
 
 
 struct token {
diff --git a/awkgram.y b/awkgram.y
index 1a75e64..9f35143 100644
--- a/awkgram.y
+++ b/awkgram.y
@@ -1589,7 +1589,8 @@ common_exp
 
                        // 1.5 ""   # can't fold this if program mucks with 
CONVFMT.
                        // See test #12 in test/posix.awk.
-                       if ((n1->flags & (NUMBER|NUMINT)) != 0 || (n2->flags & 
(NUMBER|NUMINT)) != 0)
+                       // Also can't fold if one or the other is translatable.
+                       if ((n1->flags & (NUMBER|NUMINT|INTLSTR)) != 0 || 
(n2->flags & (NUMBER|NUMINT|INTLSTR)) != 0)
                                goto plain_concat;
 
                        n1 = force_string(n1);

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

Summary of changes:
 ChangeLog           |   6 ++
 README_d/ChangeLog  |   4 +
 README_d/README.os2 |  65 ++++++++++----
 awkgram.c           | 243 ++++++++++++++++++++++++++--------------------------
 awkgram.y           |   3 +-
 5 files changed, 184 insertions(+), 137 deletions(-)


hooks/post-receive
-- 
gawk



reply via email to

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