Stuff
This commit is contained in:
101
utility.c
101
utility.c
@ -686,41 +686,6 @@ my_getgrgid(char* group, gid_t gid)
|
||||
|
||||
|
||||
|
||||
#if !defined BB_REGEXP && (defined BB_GREP || defined BB_FIND )
|
||||
/* This tries to find a needle in a haystack, but does so by
|
||||
* only trying to match literal strings (look 'ma, no regexps!)
|
||||
* This is short, sweet, and carries _very_ little baggage,
|
||||
* unlike its beefier cousin a few lines down...
|
||||
* -Erik Andersen
|
||||
*/
|
||||
extern int find_match(char *haystack, char *needle, int ignoreCase)
|
||||
{
|
||||
|
||||
if (ignoreCase == FALSE) {
|
||||
haystack = strstr (haystack, needle);
|
||||
if (haystack == NULL)
|
||||
return FALSE;
|
||||
return TRUE;
|
||||
} else {
|
||||
int i;
|
||||
char needle1[BUF_SIZE];
|
||||
char haystack1[BUF_SIZE];
|
||||
|
||||
strncpy( haystack1, haystack, sizeof(haystack1));
|
||||
strncpy( needle1, needle, sizeof(needle1));
|
||||
for( i=0; i<sizeof(haystack1) && haystack1[i]; i++)
|
||||
haystack1[i]=tolower( haystack1[i]);
|
||||
for( i=0; i<sizeof(needle1) && needle1[i]; i++)
|
||||
needle1[i]=tolower( needle1[i]);
|
||||
haystack = strstr (haystack1, needle1);
|
||||
if (haystack == NULL)
|
||||
return FALSE;
|
||||
return TRUE;
|
||||
}
|
||||
}
|
||||
#endif
|
||||
|
||||
|
||||
|
||||
#if (defined BB_CHVT) || (defined BB_DEALLOCVT)
|
||||
|
||||
@ -812,5 +777,71 @@ int get_console_fd(char* tty_name)
|
||||
#endif
|
||||
|
||||
|
||||
#if !defined BB_REGEXP && (defined BB_GREP || defined BB_FIND )
|
||||
/* This tries to find a needle in a haystack, but does so by
|
||||
* only trying to match literal strings (look 'ma, no regexps!)
|
||||
* This is short, sweet, and carries _very_ little baggage,
|
||||
* unlike its beefier cousin a few lines down...
|
||||
* -Erik Andersen
|
||||
*/
|
||||
extern int find_match(char *haystack, char *needle, int ignoreCase)
|
||||
{
|
||||
|
||||
if (ignoreCase == FALSE) {
|
||||
haystack = strstr (haystack, needle);
|
||||
if (haystack == NULL)
|
||||
return FALSE;
|
||||
return TRUE;
|
||||
} else {
|
||||
int i;
|
||||
char needle1[BUF_SIZE];
|
||||
char haystack1[BUF_SIZE];
|
||||
|
||||
strncpy( haystack1, haystack, sizeof(haystack1));
|
||||
strncpy( needle1, needle, sizeof(needle1));
|
||||
for( i=0; i<sizeof(haystack1) && haystack1[i]; i++)
|
||||
haystack1[i]=tolower( haystack1[i]);
|
||||
for( i=0; i<sizeof(needle1) && needle1[i]; i++)
|
||||
needle1[i]=tolower( needle1[i]);
|
||||
haystack = strstr (haystack1, needle1);
|
||||
if (haystack == NULL)
|
||||
return FALSE;
|
||||
return TRUE;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/* This performs substitutions after a regexp match has been found. */
|
||||
extern int replace_match(char *haystack, char *needle, char *newNeedle, int ignoreCase)
|
||||
{
|
||||
int foundOne;
|
||||
char *where, *slider;
|
||||
|
||||
if (ignoreCase == FALSE) {
|
||||
/*Find needle in haystack */
|
||||
where = strstr (haystack, needle);
|
||||
while(where!=NULL) {
|
||||
foundOne++;
|
||||
fprintf(stderr, "A match: haystack='%s'\n", haystack);
|
||||
haystack = (char *)realloc(haystack, (unsigned)(strlen(haystack) -
|
||||
strlen(needle) + strlen(newNeedle)));
|
||||
for(slider=haystack;slider!=where;slider++);
|
||||
*slider=0;
|
||||
haystack=strcat(haystack, newNeedle);
|
||||
slider+=1+sizeof(newNeedle);
|
||||
haystack = strcat(haystack, slider);
|
||||
where = strstr (where+1, needle);
|
||||
}
|
||||
} else {
|
||||
// FIXME
|
||||
|
||||
}
|
||||
if (foundOne)
|
||||
return TRUE;
|
||||
else
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
#endif
|
||||
/* END CODE */
|
||||
|
||||
|
Reference in New Issue
Block a user