mirror of
https://git.savannah.gnu.org/git/bison.git
synced 2026-08-17 22:55:15 +00:00
Compare commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
506c368ab2 | ||
|
|
4f9dc3bdc1 | ||
|
|
0d81be2dc7 | ||
|
|
32f44f4bfb | ||
|
|
38a8287813 | ||
|
|
df752784c2 | ||
|
|
292409e91e | ||
|
|
eea56d70d9 | ||
|
|
6e2de439e6 | ||
|
|
e33cd4b824 | ||
|
|
0669780ff8 | ||
|
|
160df220b1 | ||
|
|
da5c072a62 | ||
|
|
73ac8ff409 |
+1
-1
@@ -1 +1 @@
|
|||||||
3.5.91
|
3.5.92
|
||||||
|
|||||||
@@ -1,5 +1,9 @@
|
|||||||
GNU Bison NEWS
|
GNU Bison NEWS
|
||||||
|
|
||||||
|
* Noteworthy changes in release 3.5.93 (2020-05-03) [beta]
|
||||||
|
|
||||||
|
Portability issues.
|
||||||
|
|
||||||
* Noteworthy changes in release 3.5.92 (2020-05-03) [beta]
|
* Noteworthy changes in release 3.5.92 (2020-05-03) [beta]
|
||||||
|
|
||||||
Portability issues.
|
Portability issues.
|
||||||
|
|||||||
+9
-1
@@ -262,7 +262,8 @@ if ! "$LEX_IS_FLEX" || test "X$LEX" = X:; then
|
|||||||
LEX=:
|
LEX=:
|
||||||
fi
|
fi
|
||||||
AM_CONDITIONAL([FLEX_WORKS], [$LEX_IS_FLEX && $FLEX_SUPPORTS_HEADER_OPT])
|
AM_CONDITIONAL([FLEX_WORKS], [$LEX_IS_FLEX && $FLEX_SUPPORTS_HEADER_OPT])
|
||||||
AM_CONDITIONAL([FLEX_CXX_WORKS], [$LEX_WORKS && test $bison_cv_cxx_works = yes])
|
AM_CONDITIONAL([FLEX_CXX_WORKS],
|
||||||
|
[$LEX_IS_FLEX && $FLEX_SUPPORTS_HEADER_OPT && test $bison_cv_cxx_works = yes])
|
||||||
AC_PROG_YACC
|
AC_PROG_YACC
|
||||||
AC_PROG_RANLIB
|
AC_PROG_RANLIB
|
||||||
AC_PROG_GNU_M4
|
AC_PROG_GNU_M4
|
||||||
@@ -331,6 +332,13 @@ AC_MSG_RESULT([$suppfile])
|
|||||||
# Whether we cannot run the compiled bison.
|
# Whether we cannot run the compiled bison.
|
||||||
AM_CONDITIONAL([CROSS_COMPILING], [test "$cross_compiling" = yes])
|
AM_CONDITIONAL([CROSS_COMPILING], [test "$cross_compiling" = yes])
|
||||||
|
|
||||||
|
# Build bistromathic if we have the lib and both readline/readline.h
|
||||||
|
# and readline/history.h.
|
||||||
|
AM_CONDITIONAL([ENABLE_BISTROMATHIC],
|
||||||
|
[test "$gl_cv_lib_readline" != no &&
|
||||||
|
test "$ac_cv_header_readline_readline_h" = yes &&
|
||||||
|
test "$ac_cv_header_readline_history_h" = yes])
|
||||||
|
|
||||||
AM_MISSING_PROG([AUTOM4TE], [autom4te])
|
AM_MISSING_PROG([AUTOM4TE], [autom4te])
|
||||||
# Needed by tests/atlocal.in.
|
# Needed by tests/atlocal.in.
|
||||||
AC_SUBST([GCC])
|
AC_SUBST([GCC])
|
||||||
|
|||||||
+13
-4
@@ -259,14 +259,14 @@ m4_define([b4_public_types_declare],
|
|||||||
struct token
|
struct token
|
||||||
{
|
{
|
||||||
]b4_token_enums[
|
]b4_token_enums[
|
||||||
/// Backward compatibility alias.
|
/// Backward compatibility alias (Bison 3.6).
|
||||||
typedef token_kind_type yytokentype;
|
typedef token_kind_type yytokentype;
|
||||||
};
|
};
|
||||||
|
|
||||||
/// Token kind, as returned by yylex.
|
/// Token kind, as returned by yylex.
|
||||||
typedef token::yytokentype token_kind_type;
|
typedef token::yytokentype token_kind_type;
|
||||||
|
|
||||||
/// Backward compatibility alias.
|
/// Backward compatibility alias (Bison 3.6).
|
||||||
typedef token_kind_type token_type;
|
typedef token_kind_type token_type;
|
||||||
|
|
||||||
/// Symbol kinds.
|
/// Symbol kinds.
|
||||||
@@ -357,7 +357,7 @@ m4_define([b4_symbol_type_define],
|
|||||||
Base::clear ();
|
Base::clear ();
|
||||||
}
|
}
|
||||||
|
|
||||||
/// Backward compatibility.
|
/// Backward compatibility (Bison 3.6).
|
||||||
symbol_kind_type type_get () const YY_NOEXCEPT;
|
symbol_kind_type type_get () const YY_NOEXCEPT;
|
||||||
|
|
||||||
/// Whether empty.
|
/// Whether empty.
|
||||||
@@ -409,12 +409,15 @@ m4_define([b4_symbol_type_define],
|
|||||||
/// \a empty when empty.
|
/// \a empty when empty.
|
||||||
symbol_kind_type kind () const YY_NOEXCEPT;
|
symbol_kind_type kind () const YY_NOEXCEPT;
|
||||||
|
|
||||||
|
/// Backward compatibility (Bison 3.6).
|
||||||
|
symbol_kind_type type_get () const YY_NOEXCEPT;
|
||||||
|
|
||||||
/// The symbol kind.
|
/// The symbol kind.
|
||||||
/// \a ]b4_symbol_prefix[YYEMPTY when empty.
|
/// \a ]b4_symbol_prefix[YYEMPTY when empty.
|
||||||
symbol_kind_type kind_;
|
symbol_kind_type kind_;
|
||||||
};
|
};
|
||||||
|
|
||||||
/// Backward compatibility for a private implementation detail.
|
/// Backward compatibility for a private implementation detail (Bison 3.6).
|
||||||
typedef by_kind by_type;
|
typedef by_kind by_type;
|
||||||
|
|
||||||
/// "External" symbols: returned by the scanner.
|
/// "External" symbols: returned by the scanner.
|
||||||
@@ -534,6 +537,12 @@ m4_define([b4_public_types_define],
|
|||||||
{
|
{
|
||||||
return kind_;
|
return kind_;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
]b4_inline([$1])[]b4_parser_class[::symbol_kind_type
|
||||||
|
]b4_parser_class[::by_kind::type_get () const YY_NOEXCEPT
|
||||||
|
{
|
||||||
|
return this->kind ();
|
||||||
|
}
|
||||||
]])
|
]])
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -139,7 +139,7 @@ namespace yy
|
|||||||
int
|
int
|
||||||
main (int argc, const char *argv[])
|
main (int argc, const char *argv[])
|
||||||
{
|
{
|
||||||
if (2 <= argc && isdigit (*argv[1]))
|
if (2 <= argc && isdigit (static_cast<unsigned char> (*argv[1])))
|
||||||
{
|
{
|
||||||
auto maxl = strtol (argv[1], nullptr, 10);
|
auto maxl = strtol (argv[1], nullptr, 10);
|
||||||
max = INT_MIN <= maxl && maxl <= INT_MAX ? int(maxl) : 4;
|
max = INT_MIN <= maxl && maxl <= INT_MAX ? int(maxl) : 4;
|
||||||
|
|||||||
@@ -28,14 +28,26 @@
|
|||||||
#
|
#
|
||||||
# On OpenBSD 6.5 the prompt is displayed, but the input is not
|
# On OpenBSD 6.5 the prompt is displayed, but the input is not
|
||||||
# repeated (!). So input "1+2*3\n" gives "> 7\n> \n" as output.
|
# repeated (!). So input "1+2*3\n" gives "> 7\n> \n" as output.
|
||||||
|
#
|
||||||
|
# On AIX, you get some escaping sequence before the prompt:
|
||||||
|
# "<ESC>[?1034h> 1+2*3". It appears to pass the terminfo capability
|
||||||
|
# "smm", to put the terminal in "meta mode": as if the user had hit
|
||||||
|
# META.
|
||||||
|
|
||||||
if ! echo '1-1' | prog | grep '>' >/dev/null; then
|
echo >perfect '> 0
|
||||||
# macOS.
|
0
|
||||||
|
> '
|
||||||
|
|
||||||
|
echo >ok '0'
|
||||||
|
echo '0' | prog >effective
|
||||||
|
|
||||||
|
if diff perfect effective >/dev/null 2>&1; then
|
||||||
|
# Alles ist gut.
|
||||||
|
elif diff ok effective >/dev/null 2>&1; then
|
||||||
strip_prompt=true
|
strip_prompt=true
|
||||||
elif ! echo '1-1' | prog | grep '1-1' >/dev/null; then
|
else
|
||||||
# OpenBSD 6.5. I don't want to spend time on this.
|
|
||||||
echo "SKIP: this is not the GNU Readline we expect"
|
echo "SKIP: this is not the GNU Readline we expect"
|
||||||
exit 0
|
exit 77
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -19,19 +19,22 @@ bistromathicdir = $(docdir)/%D%
|
|||||||
## Bistromathics. ##
|
## Bistromathics. ##
|
||||||
## --------------- ##
|
## --------------- ##
|
||||||
|
|
||||||
check_PROGRAMS += %D%/bistromathic
|
|
||||||
TESTS += %D%/bistromathic.test
|
|
||||||
EXTRA_DIST += %D%/bistromathic.test
|
|
||||||
nodist_%C%_bistromathic_SOURCES = %D%/parse.y %D%/parse.h
|
|
||||||
%D%/parse.c: $(dependencies)
|
%D%/parse.c: $(dependencies)
|
||||||
|
|
||||||
# Don't use gnulib's system headers.
|
if ENABLE_BISTROMATHIC
|
||||||
%C%_bistromathic_CPPFLAGS = \
|
check_PROGRAMS += %D%/bistromathic
|
||||||
-DBISON_LOCALEDIR='"$(localdir)"' \
|
TESTS += %D%/bistromathic.test
|
||||||
-DLOCALEDIR='"$(localdir)"' \
|
nodist_%C%_bistromathic_SOURCES = %D%/parse.y
|
||||||
-I$(top_srcdir)/%D% -I$(top_builddir)/%D%
|
|
||||||
%C%_bistromathic_LDADD = -lm -lreadline $(LIBINTL)
|
|
||||||
|
|
||||||
|
# Don't use gnulib's system headers.
|
||||||
|
%C%_bistromathic_CPPFLAGS = \
|
||||||
|
-DBISON_LOCALEDIR='"$(localdir)"' \
|
||||||
|
-DLOCALEDIR='"$(localdir)"' \
|
||||||
|
-I$(top_srcdir)/%D% -I$(top_builddir)/%D%
|
||||||
|
%C%_bistromathic_LDADD = -lm $(LIBREADLINE) $(LIBINTL)
|
||||||
|
endif
|
||||||
|
|
||||||
|
EXTRA_DIST += %D%/bistromathic.test
|
||||||
dist_bistromathic_DATA = %D%/parse.y %D%/Makefile %D%/README.md
|
dist_bistromathic_DATA = %D%/parse.y %D%/Makefile %D%/README.md
|
||||||
CLEANFILES += %D%/parse.[ch] %D%/parse.output
|
CLEANFILES += %D%/parse.[ch] %D%/parse.output
|
||||||
CLEANDIRS += %D%/*.dSYM
|
CLEANDIRS += %D%/*.dSYM
|
||||||
|
|||||||
@@ -1,6 +1,7 @@
|
|||||||
%require "3.6"
|
%require "3.6"
|
||||||
|
|
||||||
%code top {
|
%code top {
|
||||||
|
#include <assert.h>
|
||||||
#include <ctype.h> // isdigit
|
#include <ctype.h> // isdigit
|
||||||
#include <locale.h> // LC_ALL
|
#include <locale.h> // LC_ALL
|
||||||
#include <math.h> // cos, sin, etc.
|
#include <math.h> // cos, sin, etc.
|
||||||
@@ -316,7 +317,7 @@ error_format_string (int argc)
|
|||||||
{
|
{
|
||||||
switch (argc)
|
switch (argc)
|
||||||
{
|
{
|
||||||
default: /* Avoid compiler warnings. */
|
default: // Avoid compiler warnings.
|
||||||
case 0: return _("%@: syntax error");
|
case 0: return _("%@: syntax error");
|
||||||
case 1: return _("%@: syntax error: unexpected %u");
|
case 1: return _("%@: syntax error: unexpected %u");
|
||||||
// TRANSLATORS: '%@' is a location in a file, '%u' is an
|
// TRANSLATORS: '%@' is a location in a file, '%u' is an
|
||||||
@@ -362,7 +363,7 @@ yyreport_syntax_error (const yypcontext_t *ctx)
|
|||||||
}
|
}
|
||||||
// %0e, %1e...: expected token.
|
// %0e, %1e...: expected token.
|
||||||
else if (format[0] == '%'
|
else if (format[0] == '%'
|
||||||
&& isdigit (format[1])
|
&& isdigit ((unsigned char) format[1])
|
||||||
&& format[2] == 'e'
|
&& format[2] == 'e'
|
||||||
&& (format[1] - '0') < argsize)
|
&& (format[1] - '0') < argsize)
|
||||||
{
|
{
|
||||||
@@ -393,6 +394,20 @@ void yyerror (YYLTYPE *loc, char const *format, ...)
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
// Return a newly allocated copy of at most N bytes of STRING. In
|
||||||
|
// other words, return a copy of the initial segment of length N of
|
||||||
|
// STRING.
|
||||||
|
static char *
|
||||||
|
xstrndup (const char *string, size_t n)
|
||||||
|
{
|
||||||
|
size_t len = strnlen (string, n);
|
||||||
|
char *new = malloc (len + 1);
|
||||||
|
assert (new);
|
||||||
|
new[len] = '\0';
|
||||||
|
return memcpy (new, string, len);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
/*-----------.
|
/*-----------.
|
||||||
| Readline. |
|
| Readline. |
|
||||||
`-----------*/
|
`-----------*/
|
||||||
@@ -438,11 +453,11 @@ expected_tokens (const char *input,
|
|||||||
return res;
|
return res;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Attempt to complete on the contents of TEXT. START and END bound the
|
// Attempt to complete on the contents of TEXT. START and END bound
|
||||||
region of rl_line_buffer that contains the word to complete. TEXT is
|
// the region of rl_line_buffer that contains the word to complete.
|
||||||
the word to complete. We can use the entire contents of rl_line_buffer
|
// TEXT is the word to complete. We can use the entire contents of
|
||||||
in case we want to do some simple parsing. Return the array of matches,
|
// rl_line_buffer in case we want to do some simple parsing. Return
|
||||||
or NULL if there aren't any. */
|
// the array of matches, or NULL if there aren't any.
|
||||||
char **
|
char **
|
||||||
completion (const char *text, int start, int end)
|
completion (const char *text, int start, int end)
|
||||||
{
|
{
|
||||||
@@ -453,7 +468,7 @@ completion (const char *text, int start, int end)
|
|||||||
|
|
||||||
// Get list of token numbers.
|
// Get list of token numbers.
|
||||||
int tokens[YYNTOKENS];
|
int tokens[YYNTOKENS];
|
||||||
char *line = strndup (rl_line_buffer, start);
|
char *line = xstrndup (rl_line_buffer, start);
|
||||||
int ntokens = expected_tokens (line, tokens, YYNTOKENS);
|
int ntokens = expected_tokens (line, tokens, YYNTOKENS);
|
||||||
free (line);
|
free (line);
|
||||||
|
|
||||||
@@ -495,7 +510,7 @@ completion (const char *text, int start, int end)
|
|||||||
for (int j = 0; j < lcplen; ++j)
|
for (int j = 0; j < lcplen; ++j)
|
||||||
if (matches[1][j] != matches[i][j])
|
if (matches[1][j] != matches[i][j])
|
||||||
lcplen = j;
|
lcplen = j;
|
||||||
matches[0] = strndup (matches[1], lcplen);
|
matches[0] = xstrndup (matches[1], lcplen);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (yydebug)
|
if (yydebug)
|
||||||
|
|||||||
@@ -15,7 +15,7 @@
|
|||||||
# You should have received a copy of the GNU General Public License
|
# You should have received a copy of the GNU General Public License
|
||||||
# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
|
||||||
seq 0 >/dev/null || exit 77
|
(seq 0) >/dev/null 2>&1 || exit 77
|
||||||
|
|
||||||
cat >input <<EOF
|
cat >input <<EOF
|
||||||
1+2*3
|
1+2*3
|
||||||
|
|||||||
+1
-1
@@ -115,7 +115,7 @@ run ()
|
|||||||
} >eff
|
} >eff
|
||||||
|
|
||||||
if test $sta_eff -eq $sta_exp; then
|
if test $sta_eff -eq $sta_exp; then
|
||||||
if cmp eff exp 2>/dev/null; then
|
if diff eff exp >/dev/null 2>&1; then
|
||||||
echo "$me: PASS: $number"
|
echo "$me: PASS: $number"
|
||||||
else
|
else
|
||||||
echo "$me: FAIL: $number"
|
echo "$me: FAIL: $number"
|
||||||
|
|||||||
+1
-1
Submodule gnulib updated: 3db0ae5f4f...2ac33b29fc
+2
-2
@@ -23,7 +23,7 @@
|
|||||||
#include "system.h"
|
#include "system.h"
|
||||||
|
|
||||||
#include <argmatch.h>
|
#include <argmatch.h>
|
||||||
#include <ctype.h>
|
#include <c-ctype.h>
|
||||||
#include <progname.h>
|
#include <progname.h>
|
||||||
#include <stdarg.h>
|
#include <stdarg.h>
|
||||||
#include <sys/stat.h>
|
#include <sys/stat.h>
|
||||||
@@ -609,7 +609,7 @@ syntax_error (location loc,
|
|||||||
|
|
||||||
while (*format)
|
while (*format)
|
||||||
if (format[0] == '%'
|
if (format[0] == '%'
|
||||||
&& isdigit (format[1])
|
&& c_isdigit (format[1])
|
||||||
&& format[2] == '$'
|
&& format[2] == '$'
|
||||||
&& format[3] == 's'
|
&& format[3] == 's'
|
||||||
&& (format[1] - '0') < argc)
|
&& (format[1] - '0') < argc)
|
||||||
|
|||||||
+3
-2
@@ -124,10 +124,11 @@ fixits_run (void)
|
|||||||
FILE *out = xfopen (input, "w");
|
FILE *out = xfopen (input, "w");
|
||||||
size_t line = 1;
|
size_t line = 1;
|
||||||
size_t offset = 1;
|
size_t offset = 1;
|
||||||
fixit const *f = NULL;
|
void const *p = NULL;
|
||||||
gl_list_iterator_t iter = gl_list_iterator (fixits);
|
gl_list_iterator_t iter = gl_list_iterator (fixits);
|
||||||
while (gl_list_iterator_next (&iter, (const void**) &f, NULL))
|
while (gl_list_iterator_next (&iter, &p, NULL))
|
||||||
{
|
{
|
||||||
|
fixit const *f = p;
|
||||||
/* Look for the correct line. */
|
/* Look for the correct line. */
|
||||||
while (line < f->location.start.line)
|
while (line < f->location.start.line)
|
||||||
{
|
{
|
||||||
|
|||||||
+1
-1
@@ -92,7 +92,7 @@ goto_print (goto_number i, FILE *out)
|
|||||||
const state_number dst = to_state[i];
|
const state_number dst = to_state[i];
|
||||||
symbol_number var = states[dst]->accessing_symbol;
|
symbol_number var = states[dst]->accessing_symbol;
|
||||||
fprintf (out,
|
fprintf (out,
|
||||||
"goto[%ld] = (%d, %s, %d)", i, src, symbols[var]->tag, dst);
|
"goto[%zu] = (%d, %s, %d)", i, src, symbols[var]->tag, dst);
|
||||||
}
|
}
|
||||||
|
|
||||||
void
|
void
|
||||||
|
|||||||
+2
-2
@@ -117,6 +117,7 @@ BUILT_SOURCES += \
|
|||||||
# definition of libbison, beware that they might expand as flags such as
|
# definition of libbison, beware that they might expand as flags such as
|
||||||
# `-lm`. Keep them here. Or use a Libtool convenience library.
|
# `-lm`. Keep them here. Or use a Libtool convenience library.
|
||||||
src_bison_LDADD = \
|
src_bison_LDADD = \
|
||||||
|
lib/libbison.a \
|
||||||
$(ISNAND_LIBM) \
|
$(ISNAND_LIBM) \
|
||||||
$(ISNANF_LIBM) \
|
$(ISNANF_LIBM) \
|
||||||
$(ISNANL_LIBM) \
|
$(ISNANL_LIBM) \
|
||||||
@@ -126,8 +127,7 @@ src_bison_LDADD = \
|
|||||||
$(LIBTHREAD) \
|
$(LIBTHREAD) \
|
||||||
$(LIB_CLOCK_GETTIME) \
|
$(LIB_CLOCK_GETTIME) \
|
||||||
$(LIB_GETHRXTIME) \
|
$(LIB_GETHRXTIME) \
|
||||||
$(LIBTEXTSTYLE) \
|
$(LIBTEXTSTYLE)
|
||||||
lib/libbison.a
|
|
||||||
|
|
||||||
|
|
||||||
EXTRA_DIST += %D%/i18n-strings.c
|
EXTRA_DIST += %D%/i18n-strings.c
|
||||||
|
|||||||
@@ -19,7 +19,7 @@ AT_BANNER([[Diagnostics.]])
|
|||||||
|
|
||||||
|
|
||||||
# AT_TEST($1: TITLE, $2: GRAMMAR, $3: EXIT-STATUS, $4: OUTPUT-WITH-STYLE,
|
# AT_TEST($1: TITLE, $2: GRAMMAR, $3: EXIT-STATUS, $4: OUTPUT-WITH-STYLE,
|
||||||
# $5: EXTRA_ENV
|
# $5: EXTRA_ENV, $6: SKIP-IF)
|
||||||
# -----------------------------------------------------------------------
|
# -----------------------------------------------------------------------
|
||||||
# Run Bison on GRAMMAR with debugging style enabled, and expect
|
# Run Bison on GRAMMAR with debugging style enabled, and expect
|
||||||
# OUTPUT-WITH-STYLE as diagnostics.
|
# OUTPUT-WITH-STYLE as diagnostics.
|
||||||
@@ -33,6 +33,9 @@ AT_KEYWORDS([diagnostics])
|
|||||||
locale=`locale -a | $EGREP '^en_US\.(UTF-8|utf8)$' | sed 1q`
|
locale=`locale -a | $EGREP '^en_US\.(UTF-8|utf8)$' | sed 1q`
|
||||||
AT_SKIP_IF([test x == x"$locale"])
|
AT_SKIP_IF([test x == x"$locale"])
|
||||||
|
|
||||||
|
m4_ifval([$6],
|
||||||
|
[AT_SKIP_IF([$6])])
|
||||||
|
|
||||||
AT_BISON_OPTION_PUSHDEFS
|
AT_BISON_OPTION_PUSHDEFS
|
||||||
|
|
||||||
AT_DATA_GRAMMAR([[input.y]], [$2])
|
AT_DATA_GRAMMAR([[input.y]], [$2])
|
||||||
@@ -261,11 +264,9 @@ input.y:17.4-17: <warning>warning:</warning> empty rule without %empty [<warning
|
|||||||
input.y: <warning>warning:</warning> fix-its can be applied. Rerun with option '--update'. [<warning>-Wother</warning>]
|
input.y: <warning>warning:</warning> fix-its can be applied. Rerun with option '--update'. [<warning>-Wother</warning>]
|
||||||
]])
|
]])
|
||||||
|
|
||||||
|
|
||||||
# Likewise, but currently not portable to Cygwin.
|
# Likewise, but currently not portable to Cygwin.
|
||||||
# https://lists.gnu.org/r/bug-bison/2020-05/msg00003.html.
|
# https://lists.gnu.org/r/bug-bison/2020-05/msg00003.html.
|
||||||
case `uname -a` in
|
|
||||||
(CYGWIN*);;
|
|
||||||
(*)
|
|
||||||
AT_TEST([[Tabulations and multibyte characters]],
|
AT_TEST([[Tabulations and multibyte characters]],
|
||||||
[[%%
|
[[%%
|
||||||
e: {∇⃗×𝐸⃗ = -∂𝐵⃗/∂t}
|
e: {∇⃗×𝐸⃗ = -∂𝐵⃗/∂t}
|
||||||
@@ -276,9 +277,7 @@ e: {∇⃗×𝐸⃗ = -∂𝐵⃗/∂t}
|
|||||||
| <warning>^~~~~~~~~~~~~~</warning>
|
| <warning>^~~~~~~~~~~~~~</warning>
|
||||||
| <fixit-insert>%empty</fixit-insert>
|
| <fixit-insert>%empty</fixit-insert>
|
||||||
input.y: <warning>warning:</warning> fix-its can be applied. Rerun with option '--update'. [<warning>-Wother</warning>]
|
input.y: <warning>warning:</warning> fix-its can be applied. Rerun with option '--update'. [<warning>-Wother</warning>]
|
||||||
]])
|
]], [], [uname -a | grep -i cygwin])
|
||||||
;;
|
|
||||||
esac
|
|
||||||
|
|
||||||
|
|
||||||
## --------------- ##
|
## --------------- ##
|
||||||
|
|||||||
Reference in New Issue
Block a user