mirror of
git://git.sv.gnu.org/nano.git
synced 2024-11-26 06:39:43 +03:00
in mbstrncasecmp(), mbstrcasestr(), and mbrevstrcasestr(), don't
allocate space for multibyte characters until we've asserted that the parameters we're using aren't NULL git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@3803 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
This commit is contained in:
parent
d3887dc695
commit
118cb37e63
@ -90,6 +90,10 @@ CVS code -
|
|||||||
allocated, use null_at() to strip the directory from the
|
allocated, use null_at() to strip the directory from the
|
||||||
string. Also, return the stripped path instead of modifying
|
string. Also, return the stripped path instead of modifying
|
||||||
path. (DLR)
|
path. (DLR)
|
||||||
|
- chars.c:
|
||||||
|
mbstrncasecmp(), mbstrcasestr(), mbrevstrcasestr()
|
||||||
|
- Don't allocate space for multibyte characters until we've
|
||||||
|
asserted that the parameters we're using aren't NULL. (DLR)
|
||||||
- files.c:
|
- files.c:
|
||||||
do_insertfile()
|
do_insertfile()
|
||||||
- If we execute a command in a new buffer, move back to the
|
- If we execute a command in a new buffer, move back to the
|
||||||
|
18
src/chars.c
18
src/chars.c
@ -527,12 +527,14 @@ int mbstrncasecmp(const char *s1, const char *s2, size_t n)
|
|||||||
{
|
{
|
||||||
#ifdef ENABLE_UTF8
|
#ifdef ENABLE_UTF8
|
||||||
if (use_utf8) {
|
if (use_utf8) {
|
||||||
char *s1_mb = charalloc(MB_CUR_MAX);
|
char *s1_mb, *s2_mb;
|
||||||
char *s2_mb = charalloc(MB_CUR_MAX);
|
|
||||||
wchar_t ws1, ws2;
|
wchar_t ws1, ws2;
|
||||||
|
|
||||||
assert(s1 != NULL && s2 != NULL);
|
assert(s1 != NULL && s2 != NULL);
|
||||||
|
|
||||||
|
s1_mb = charalloc(MB_CUR_MAX);
|
||||||
|
s2_mb = charalloc(MB_CUR_MAX);
|
||||||
|
|
||||||
while (n > 0 && *s1 != '\0' && *s2 != '\0') {
|
while (n > 0 && *s1 != '\0' && *s2 != '\0') {
|
||||||
bool bad_s1_mb = FALSE, bad_s2_mb = FALSE;
|
bool bad_s1_mb = FALSE, bad_s2_mb = FALSE;
|
||||||
int s1_mb_len, s2_mb_len;
|
int s1_mb_len, s2_mb_len;
|
||||||
@ -620,13 +622,15 @@ const char *mbstrcasestr(const char *haystack, const char *needle)
|
|||||||
{
|
{
|
||||||
#ifdef ENABLE_UTF8
|
#ifdef ENABLE_UTF8
|
||||||
if (use_utf8) {
|
if (use_utf8) {
|
||||||
char *r_mb = charalloc(MB_CUR_MAX);
|
char *r_mb. *q_mb;
|
||||||
char *q_mb = charalloc(MB_CUR_MAX);
|
|
||||||
wchar_t wr, wq;
|
wchar_t wr, wq;
|
||||||
bool found_needle = FALSE;
|
bool found_needle = FALSE;
|
||||||
|
|
||||||
assert(haystack != NULL && needle != NULL);
|
assert(haystack != NULL && needle != NULL);
|
||||||
|
|
||||||
|
r_mb = charalloc(MB_CUR_MAX);
|
||||||
|
q_mb = charalloc(MB_CUR_MAX);
|
||||||
|
|
||||||
while (*haystack != '\0') {
|
while (*haystack != '\0') {
|
||||||
const char *r = haystack, *q = needle;
|
const char *r = haystack, *q = needle;
|
||||||
int r_mb_len, q_mb_len;
|
int r_mb_len, q_mb_len;
|
||||||
@ -726,13 +730,15 @@ const char *mbrevstrcasestr(const char *haystack, const char *needle,
|
|||||||
{
|
{
|
||||||
#ifdef ENABLE_UTF8
|
#ifdef ENABLE_UTF8
|
||||||
if (use_utf8) {
|
if (use_utf8) {
|
||||||
char *r_mb = charalloc(MB_CUR_MAX);
|
char *r_mb. *q_mb;
|
||||||
char *q_mb = charalloc(MB_CUR_MAX);
|
|
||||||
wchar_t wr, wq;
|
wchar_t wr, wq;
|
||||||
bool begin_line = FALSE, found_needle = FALSE;
|
bool begin_line = FALSE, found_needle = FALSE;
|
||||||
|
|
||||||
assert(haystack != NULL && needle != NULL && rev_start != NULL);
|
assert(haystack != NULL && needle != NULL && rev_start != NULL);
|
||||||
|
|
||||||
|
r_mb = charalloc(MB_CUR_MAX);
|
||||||
|
q_mb = charalloc(MB_CUR_MAX);
|
||||||
|
|
||||||
while (!begin_line) {
|
while (!begin_line) {
|
||||||
const char *r = rev_start, *q = needle;
|
const char *r = rev_start, *q = needle;
|
||||||
int r_mb_len, q_mb_len;
|
int r_mb_len, q_mb_len;
|
||||||
|
Loading…
Reference in New Issue
Block a user