mirror of
https://https.git.savannah.gnu.org/git/bash.git
synced 2026-06-27 15:43:18 +02:00
fix for readline to handle setlocale() returning NULL
This commit is contained in:
@@ -4020,3 +4020,13 @@ m4/strtoimax.m4
|
||||
- BASH_FUNC_STRTOIMAX: fix logic inversion of result; we should be
|
||||
replacing the function if the tests show we *don't* have a working
|
||||
version. Report from Emanuel Haupt <ehaupt@FreeBSD.org>
|
||||
|
||||
10/4
|
||||
----
|
||||
lib/readline/nls.c
|
||||
- _rl_init_locale: cope with setlocale returning NULL, make sure we
|
||||
set up a default value for LC_CTYPE. Report from
|
||||
https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=1021109
|
||||
|
||||
lib/readline/{input.c,rlprivate.h}
|
||||
- fixes for compiling on w64-mingw32
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
/* Copyright (C) 1991-2021 Free Software Foundation, Inc.
|
||||
/* Copyright (C) 1991-2021,2022 Free Software Foundation, Inc.
|
||||
This file is part of the GNU C Library.
|
||||
|
||||
This program is free software; you can redistribute it and/or modify
|
||||
@@ -21,7 +21,7 @@
|
||||
#include <unistd.h>
|
||||
#include <errno.h>
|
||||
#include <error.h>
|
||||
#include <libintl.h>
|
||||
#include <gettext.h>
|
||||
#include <locale.h>
|
||||
#include <string.h>
|
||||
#include <stdlib.h>
|
||||
|
||||
@@ -151,7 +151,9 @@ int rl_timeout_remaining (unsigned int *, unsigned int *);
|
||||
|
||||
int _rl_timeout_init (void);
|
||||
int _rl_timeout_sigalrm_handler (void);
|
||||
#if defined (RL_TIMEOUT_USE_SELECT)
|
||||
int _rl_timeout_select (int, fd_set *, fd_set *, fd_set *, const struct timeval *, const sigset_t *);
|
||||
#endif
|
||||
|
||||
static void _rl_timeout_handle (void);
|
||||
#if defined (RL_TIMEOUT_USE_SIGALRM)
|
||||
|
||||
@@ -141,6 +141,10 @@ _rl_init_locale (void)
|
||||
if (lspec == 0)
|
||||
lspec = "";
|
||||
ret = setlocale (LC_CTYPE, lspec); /* ok, since it does not change locale */
|
||||
if (ret == 0 || *ret == 0)
|
||||
ret = setlocale (LC_CTYPE, NULL);
|
||||
if (ret == 0 || *ret == 0)
|
||||
ret = RL_DEFAULT_LOCALE;
|
||||
#else
|
||||
ret = (lspec == 0 || *lspec == 0) ? RL_DEFAULT_LOCALE : lspec;
|
||||
#endif
|
||||
|
||||
@@ -303,7 +303,7 @@ extern int _rl_pushed_input_available (void);
|
||||
|
||||
extern int _rl_timeout_init (void);
|
||||
extern int _rl_timeout_handle_sigalrm (void);
|
||||
#if defined (_POSIXSELECT_H_)
|
||||
#if defined (_POSIXSELECT_H_) && !defined (__MINGW32__)
|
||||
/* use as a sentinel for fd_set, struct timeval, and sigset_t definitions */
|
||||
extern int _rl_timeout_select (int, fd_set *, fd_set *, fd_set *, const struct timeval *, const sigset_t *);
|
||||
#endif
|
||||
|
||||
Reference in New Issue
Block a user