Imported from ../bash-2.05.tar.gz.
This commit is contained in:
		
					parent
					
						
							
								bb70624e96
							
						
					
				
			
			
				commit
				
					
						28ef6c316f
					
				
			
		
					 251 changed files with 22319 additions and 12413 deletions
				
			
		
							
								
								
									
										52
									
								
								lib/sh/strindex.c
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										52
									
								
								lib/sh/strindex.c
									
										
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1,52 @@ | |||
| /* strindex.c - Find if one string appears as a substring of another string,
 | ||||
| 		without regard to case. */ | ||||
| 
 | ||||
| /* Copyright (C) 2000
 | ||||
|    Free Software Foundation, Inc. | ||||
| 
 | ||||
|    This file is part of GNU Bash, the Bourne Again SHell. | ||||
| 
 | ||||
|    Bash is free software; you can redistribute it and/or modify it under | ||||
|    the terms of the GNU General Public License as published by the Free | ||||
|    Software Foundation; either version 2, or (at your option) any later | ||||
|    version. | ||||
| 
 | ||||
|    Bash is distributed in the hope that it will be useful, but WITHOUT ANY | ||||
|    WARRANTY; without even the implied warranty of MERCHANTABILITY or | ||||
|    FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License | ||||
|    for more details. | ||||
| 
 | ||||
|    You should have received a copy of the GNU General Public License along | ||||
|    with Bash; see the file COPYING.  If not, write to the Free Software | ||||
|    Foundation, 59 Temple Place, Suite 330, Boston, MA 02111 USA. */ | ||||
| 
 | ||||
| #include <config.h> | ||||
| 
 | ||||
| #include "bashansi.h" | ||||
| #include <ctype.h> | ||||
| 
 | ||||
| #include <stdc.h> | ||||
| 
 | ||||
| #ifndef to_upper | ||||
| #  define to_upper(c) (islower(c) ? toupper(c) : (c)) | ||||
| #  define to_lower(c) (isupper(c) ? tolower(c) : (c)) | ||||
| #endif | ||||
| 
 | ||||
| /* Determine if s2 occurs in s1.  If so, return a pointer to the
 | ||||
|    match in s1.  The compare is case insensitive.  This is a | ||||
|    case-insensitive strstr(3). */ | ||||
| char * | ||||
| strindex (s1, s2) | ||||
|      const char *s1; | ||||
|      const char *s2; | ||||
| { | ||||
|   register int i, l, len, c; | ||||
| 
 | ||||
|   c = to_upper (s2[0]); | ||||
|   len = strlen (s1); | ||||
|   l = strlen (s2); | ||||
|   for (i = 0; (len - i) >= l; i++) | ||||
|     if ((to_upper (s1[i]) == c) && (strncasecmp (s1 + i, s2, l) == 0)) | ||||
|       return ((char *)s1 + i); | ||||
|   return ((char *)0); | ||||
| } | ||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue
	
	 Jari Aalto
				Jari Aalto