mirror of
https://https.git.savannah.gnu.org/git/bash.git
synced 2026-07-05 19:30:49 +02:00
commit bash-20181123 snapshot
This commit is contained in:
+10
-1
@@ -384,7 +384,7 @@ BRACKMATCH (p, test, flags)
|
||||
{
|
||||
register CHAR cstart, cend, c;
|
||||
register int not; /* Nonzero if the sense of the character class is inverted. */
|
||||
int brcnt, brchr, forcecoll;
|
||||
int brcnt, brchr, forcecoll, isrange;
|
||||
INT pc;
|
||||
CHAR *savep;
|
||||
U_CHAR orig_test;
|
||||
@@ -519,6 +519,7 @@ BRACKMATCH (p, test, flags)
|
||||
}
|
||||
|
||||
cstart = cend = FOLD (cstart);
|
||||
isrange = 0;
|
||||
|
||||
/* POSIX.2 2.8.3.1.2 says: `An expression containing a `[' that
|
||||
is not preceded by a backslash and is not part of a bracket
|
||||
@@ -573,10 +574,18 @@ BRACKMATCH (p, test, flags)
|
||||
c = FOLD (c);
|
||||
continue;
|
||||
}
|
||||
isrange = 1;
|
||||
}
|
||||
|
||||
#if 0 /* TAG: bash-5.1 */
|
||||
if (isrange == 0 && test == cstart)
|
||||
goto matched;
|
||||
if (isrange && RANGECMP (test, cstart, forcecoll) >= 0 && RANGECMP (test, cend, forcecoll) <= 0)
|
||||
goto matched;
|
||||
#else
|
||||
if (RANGECMP (test, cstart, forcecoll) >= 0 && RANGECMP (test, cend, forcecoll) <= 0)
|
||||
goto matched;
|
||||
#endif
|
||||
|
||||
if (c == L(']'))
|
||||
break;
|
||||
|
||||
+17
-2
@@ -30,6 +30,12 @@
|
||||
#include "shmbutil.h"
|
||||
#include "xmalloc.h"
|
||||
|
||||
#include <errno.h>
|
||||
|
||||
#if !defined (errno)
|
||||
extern int errno;
|
||||
#endif
|
||||
|
||||
/* First, compile `sm_loop.c' for single-byte characters. */
|
||||
#define CHAR unsigned char
|
||||
#define U_CHAR unsigned char
|
||||
@@ -82,7 +88,7 @@ rangecmp (c1, c2, forcecoll)
|
||||
|
||||
if ((ret = strcoll (s1, s2)) != 0)
|
||||
return ret;
|
||||
return (c1 - c2);
|
||||
return (c1 - c2); /* impose total ordering */
|
||||
}
|
||||
#else /* !HAVE_STRCOLL */
|
||||
# define rangecmp(c1, c2, f) ((int)(c1) - (int)(c2))
|
||||
@@ -289,6 +295,7 @@ rangecmp_wc (c1, c2, forcecoll)
|
||||
{
|
||||
static wchar_t s1[2] = { L' ', L'\0' };
|
||||
static wchar_t s2[2] = { L' ', L'\0' };
|
||||
int r, oerrno;
|
||||
|
||||
if (c1 == c2)
|
||||
return 0;
|
||||
@@ -299,14 +306,22 @@ rangecmp_wc (c1, c2, forcecoll)
|
||||
s1[0] = c1;
|
||||
s2[0] = c2;
|
||||
|
||||
#if 0 /* TAG: bash-5.1 */
|
||||
/* We impose a total ordering here by returning c1-c2 if wcscoll returns 0,
|
||||
as we do above in the single-byte case. */
|
||||
if ((r = wcscoll (s1, s2)) != 0)
|
||||
return r;
|
||||
return ((int)(c1 - c2)); /* impose total ordering */
|
||||
#else
|
||||
return (wcscoll (s1, s2));
|
||||
#endif
|
||||
}
|
||||
|
||||
static int
|
||||
collequiv_wc (c, equiv)
|
||||
wint_t c, equiv;
|
||||
{
|
||||
return (c == equiv);
|
||||
return (rangecmp_wc (c, equiv, 1) == 0);
|
||||
}
|
||||
|
||||
/* Helper function for collating symbol. */
|
||||
|
||||
@@ -720,19 +720,22 @@ Return the name matching @var{keymap}. @var{name} is one which would
|
||||
be supplied in a @code{set keymap} inputrc line (@pxref{Readline Init File}).
|
||||
@end deftypefun
|
||||
|
||||
@deftypefun void rl_set_keymap (const char *name, Keymap keymap)
|
||||
@deftypefun int rl_set_keymap_name (const char *name, Keymap keymap)
|
||||
Set the name of @var{keymap}. This name will then be "registered" and
|
||||
available for use in a @code{set keymap} inputrc directive
|
||||
@pxref{Readline Init File}).
|
||||
The @var{name} may not be one of Readline's builtin names;
|
||||
The @var{name} may not be one of Readline's builtin keymap names;
|
||||
you may not add a different name for one of Readline's builtin keymaps.
|
||||
Readline will make a copy of @var{name}.
|
||||
You may replace the name associated with a given keymap by calling this
|
||||
function two or more times with the same @var{keymap} argument.
|
||||
You can associate a registered name with a new keymap by calling this
|
||||
function two or more times with the same @var{name} argument.
|
||||
function more than once with the same @var{keymap} argument.
|
||||
You may associate a registered @var{name} with a new keymap by calling this
|
||||
function more than once with the same @var{name} argument.
|
||||
There is no way to remove a named keymap once the name has been
|
||||
registered.
|
||||
Readline will make a copy of @var{name}.
|
||||
The return value is greater than zero unless @var{name} is one of
|
||||
Readline's builtin keymap names or @var{keymap} is one of Readline's
|
||||
builtin keymaps.
|
||||
@end deftypefun
|
||||
|
||||
@node Binding Keys
|
||||
@@ -2143,6 +2146,8 @@ character (@samp{\0}) prevents anything being appended automatically.
|
||||
This can be changed in application-specific completion functions to
|
||||
provide the ``most sensible word separator character'' according to
|
||||
an application-specific command line syntax specification.
|
||||
It is set to the default before any application-specific completion function
|
||||
is called, and may only be changed within such a function.
|
||||
@end deftypevar
|
||||
|
||||
@deftypevar int rl_completion_suppress_append
|
||||
|
||||
@@ -4,7 +4,7 @@ Copyright (C) 1988-2018 Free Software Foundation, Inc.
|
||||
|
||||
@set EDITION 8.0
|
||||
@set VERSION 8.0
|
||||
@set UPDATED 18 September 2018
|
||||
@set UPDATED-MONTH September 2018
|
||||
@set UPDATED 30 November 2018
|
||||
@set UPDATED-MONTH November 2018
|
||||
|
||||
@set LASTCHANGE Tue Sep 18 13:08:12 EDT 2018
|
||||
@set LASTCHANGE Fri Nov 30 22:50:53 EST 2018
|
||||
|
||||
Reference in New Issue
Block a user