Skip to content
GitLab
Menu
Projects
Groups
Snippets
Help
Projects
Groups
Snippets
Loading...
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Sign in
Toggle navigation
Menu
Open sidebar
cs24-19fa
git_rec_nano
Commits
a3743514
Commit
a3743514
authored
7 years ago
by
Benno Schulenberg
Browse files
Options
Download
Email Patches
Plain Diff
tweaks: rename some more of these 'rev_start' variables
parent
329021e2
master
feature/match-parens
refactor/readbility
No related merge requests found
Changes
2
Hide whitespace changes
Inline
Side-by-side
Showing
2 changed files
src/chars.c
+32
-32
src/chars.c
src/proto.h
+3
-3
src/proto.h
with
35 additions
and
35 deletions
+35
-35
src/chars.c
View file @
a3743514
...
...
@@ -477,91 +477,91 @@ char *mbstrcasestr(const char *haystack, const char *needle)
}
/* This function is equivalent to strstr(), except in that it scans the
* string in reverse, starting at
rev_start
. */
* string in reverse, starting at
index
. */
char
*
revstrstr
(
const
char
*
haystack
,
const
char
*
needle
,
const
char
*
pointer
)
const
char
*
index
)
{
size_t
needle_len
=
strlen
(
needle
);
size_t
tail_len
=
strlen
(
pointer
);
size_t
tail_len
=
strlen
(
index
);
if
(
needle_len
==
0
)
return
(
char
*
)
pointer
;
return
(
char
*
)
index
;
if
(
strlen
(
haystack
)
<
needle_len
)
return
NULL
;
if
(
tail_len
<
needle_len
)
pointer
+=
tail_len
-
needle_len
;
index
+=
tail_len
-
needle_len
;
while
(
pointer
>=
haystack
)
{
if
(
strncmp
(
pointer
,
needle
,
needle_len
)
==
0
)
return
(
char
*
)
pointer
;
pointer
--
;
while
(
index
>=
haystack
)
{
if
(
strncmp
(
index
,
needle
,
needle_len
)
==
0
)
return
(
char
*
)
index
;
index
--
;
}
return
NULL
;
}
/* This function is equivalent to strcasestr(), except in that it scans
* the string in reverse, starting at
rev_start
. */
char
*
revstrcasestr
(
const
char
*
haystack
,
const
char
*
needle
,
const
char
*
rev_start
)
* the string in reverse, starting at
index
. */
char
*
revstrcasestr
(
const
char
*
haystack
,
const
char
*
needle
,
const
char
*
index
)
{
size_t
rev_start
_len
,
needle_len
;
size_t
tail
_len
,
needle_len
;
if
(
*
needle
==
'\0'
)
return
(
char
*
)
rev_start
;
return
(
char
*
)
index
;
needle_len
=
strlen
(
needle
);
if
(
strlen
(
haystack
)
<
needle_len
)
return
NULL
;
rev_start
_len
=
strlen
(
rev_start
);
tail
_len
=
strlen
(
index
);
for
(;
rev_start
>=
haystack
;
rev_start
--
,
rev_start
_len
++
)
{
if
(
rev_start
_len
>=
needle_len
&&
strncasecmp
(
rev_start
,
needle
,
needle_len
)
==
0
)
return
(
char
*
)
rev_start
;
for
(;
index
>=
haystack
;
index
--
,
tail
_len
++
)
{
if
(
tail
_len
>=
needle_len
&&
strncasecmp
(
index
,
needle
,
needle_len
)
==
0
)
return
(
char
*
)
index
;
}
return
NULL
;
}
/* This function is equivalent to strcasestr() for multibyte strings,
* except in that it scans the string in reverse, starting at
rev_start
. */
char
*
mbrevstrcasestr
(
const
char
*
haystack
,
const
char
*
needle
,
const
c
har
*
rev_start
)
* except in that it scans the string in reverse, starting at
index
. */
char
*
mbrevstrcasestr
(
const
char
*
haystack
,
const
char
*
needle
,
c
onst
char
*
index
)
{
#ifdef ENABLE_UTF8
if
(
use_utf8
)
{
size_t
rev_start
_len
,
needle_len
;
size_t
tail
_len
,
needle_len
;
if
(
*
needle
==
'\0'
)
return
(
char
*
)
rev_start
;
return
(
char
*
)
index
;
needle_len
=
mbstrlen
(
needle
);
if
(
mbstrlen
(
haystack
)
<
needle_len
)
return
NULL
;
rev_start
_len
=
mbstrlen
(
rev_start
);
tail
_len
=
mbstrlen
(
index
);
while
(
TRUE
)
{
if
(
rev_start
_len
>=
needle_len
&&
mbstrncasecmp
(
rev_start
,
needle
,
needle_len
)
==
0
)
return
(
char
*
)
rev_start
;
if
(
tail
_len
>=
needle_len
&&
mbstrncasecmp
(
index
,
needle
,
needle_len
)
==
0
)
return
(
char
*
)
index
;
/* If we've reached the head of the haystack, we found nothing. */
if
(
rev_start
==
haystack
)
if
(
index
==
haystack
)
return
NULL
;
rev_start
=
haystack
+
move_mbleft
(
haystack
,
rev_start
-
haystack
);
rev_start
_len
++
;
index
=
haystack
+
move_mbleft
(
haystack
,
index
-
haystack
);
tail
_len
++
;
}
}
else
#endif
return
revstrcasestr
(
haystack
,
needle
,
rev_start
);
return
revstrcasestr
(
haystack
,
needle
,
index
);
}
/* This function is equivalent to strlen() for multibyte strings. */
...
...
This diff is collapsed.
Click to expand it.
src/proto.h
View file @
a3743514
...
...
@@ -206,9 +206,9 @@ int mbstrcasecmp(const char *s1, const char *s2);
int
mbstrncasecmp
(
const
char
*
s1
,
const
char
*
s2
,
size_t
n
);
char
*
mbstrcasestr
(
const
char
*
haystack
,
const
char
*
needle
);
char
*
revstrstr
(
const
char
*
haystack
,
const
char
*
needle
,
const
char
*
pointer
);
char
*
mbrevstrcasestr
(
const
char
*
haystack
,
const
char
*
needle
,
const
c
har
*
rev_start
);
const
char
*
index
);
char
*
mbrevstrcasestr
(
const
char
*
haystack
,
const
char
*
needle
,
c
onst
char
*
index
);
size_t
mbstrlen
(
const
char
*
s
);
size_t
mbstrnlen
(
const
char
*
s
,
size_t
maxlen
);
#if !defined(NANO_TINY) || !defined(DISABLE_JUSTIFY)
...
...
This diff is collapsed.
Click to expand it.
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
.
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment
Menu
Projects
Groups
Snippets
Help