mirror of
https://github.com/asterisk/asterisk.git
synced 2025-09-24 06:53:41 +00:00
(closes issue #13557)
Reported by: nickpeirson The user attached a patch, but the license is not yet recorded. I took the liberty of finding and replacing ALL index() calls with strchr() calls, and that involves more than just main/pbx.c; chan_oss, app_playback, func_cut also had calls to index(), and I changed them out. 1.4 had no references to index() at all. git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@144569 65c4cc65-6c06-0410-ace0-fbb531ad65f3
This commit is contained in:
@@ -200,13 +200,13 @@ static int do_say(say_args_t *a, const char *s, const char *options, int depth)
|
||||
ast_debug(2, "doing [%s]\n", fn);
|
||||
|
||||
/* locate prefix and data, if any */
|
||||
fmt = index(fn, ':');
|
||||
fmt = strchr(fn, ':');
|
||||
if (!fmt || fmt == fn) { /* regular filename */
|
||||
ret = s_streamwait3(a, fn);
|
||||
continue;
|
||||
}
|
||||
fmt++;
|
||||
data = index(fmt, ':'); /* colon before data */
|
||||
data = strchr(fmt, ':'); /* colon before data */
|
||||
if (!data || data == fmt) { /* simple prefix-fmt */
|
||||
ret = do_say(a, fn, options, depth);
|
||||
continue;
|
||||
@@ -219,14 +219,14 @@ static int do_say(say_args_t *a, const char *s, const char *options, int depth)
|
||||
if (*p == '\'') {/* file name - we trim them */
|
||||
char *y;
|
||||
strcpy(fn2, ast_skip_blanks(p+1)); /* make a full copy */
|
||||
y = index(fn2, '\'');
|
||||
y = strchr(fn2, '\'');
|
||||
if (!y) {
|
||||
p = data; /* invalid. prepare to end */
|
||||
break;
|
||||
}
|
||||
*y = '\0';
|
||||
ast_trim_blanks(fn2);
|
||||
p = index(p+1, '\'');
|
||||
p = strchr(p+1, '\'');
|
||||
ret = s_streamwait3(a, fn2);
|
||||
} else {
|
||||
int l = fmt-fn;
|
||||
|
@@ -1299,7 +1299,7 @@ static void store_mixer(struct chan_oss_pvt *o, const char *s)
|
||||
int i;
|
||||
|
||||
for (i = 0; i < strlen(s); i++) {
|
||||
if (!isalnum(s[i]) && index(" \t-/", s[i]) == NULL) {
|
||||
if (!isalnum(s[i]) && strchr(" \t-/", s[i]) == NULL) {
|
||||
ast_log(LOG_WARNING, "Suspect char %c in mixer cmd, ignoring:\n\t%s\n", s[i], s);
|
||||
return;
|
||||
}
|
||||
|
@@ -82,7 +82,7 @@ static int sort_internal(struct ast_channel *chan, char *data, char *buffer, siz
|
||||
/* Parse each into a struct */
|
||||
count2 = 0;
|
||||
while ((ptrkey = strsep(&strings, ","))) {
|
||||
ptrvalue = index(ptrkey, ':');
|
||||
ptrvalue = strchr(ptrkey, ':');
|
||||
if (!ptrvalue) {
|
||||
count--;
|
||||
continue;
|
||||
@@ -171,7 +171,7 @@ static int cut_internal(struct ast_channel *chan, char *data, char *buffer, size
|
||||
/* Get to start, if any */
|
||||
if (num1 > 0) {
|
||||
while (tmp2 != (char *)NULL + 1 && curfieldnum < num1) {
|
||||
tmp2 = index(tmp2, d) + 1;
|
||||
tmp2 = strchr(tmp2, d) + 1;
|
||||
curfieldnum++;
|
||||
}
|
||||
}
|
||||
|
@@ -1048,7 +1048,7 @@ static void pbx_destroy(struct ast_pbx *p)
|
||||
* NULL
|
||||
*
|
||||
* In the above, I could easily turn "N" into "23456789", but I think that a quick "if( *z >= '2' && *z <= '9' )" might take
|
||||
* fewer CPU cycles than a call to index("23456789",*z), where *z is the char to match...
|
||||
* fewer CPU cycles than a call to strchr("23456789",*z), where *z is the char to match...
|
||||
*
|
||||
* traversal is pretty simple: one routine merely traverses the alt list, and for each matching char in the pattern, it calls itself
|
||||
* on the corresponding next pointer, incrementing also the pointer of the string to be matched, and passing the total specificity and length.
|
||||
@@ -1346,7 +1346,7 @@ static void new_find_extension(const char *str, struct scoreboard *score, struct
|
||||
return; /* the first match is all we need */
|
||||
}
|
||||
}
|
||||
} else if (index(p->x, *str)) {
|
||||
} else if (strchr(p->x, *str)) {
|
||||
ast_debug(4, "Nothing strange about this match\n");
|
||||
NEW_MATCHER_CHK_MATCH;
|
||||
NEW_MATCHER_RECURSE;
|
||||
|
Reference in New Issue
Block a user