mirror of
https://github.com/ipxe/ipxe
synced 2025-12-17 10:01:03 +03:00
@@ -27,6 +27,7 @@ FILE_LICENCE ( GPL2_OR_LATER_OR_UBDL );
|
||||
#include <stdint.h>
|
||||
#include <stdlib.h>
|
||||
#include <string.h>
|
||||
#include <strings.h>
|
||||
#include <ctype.h>
|
||||
|
||||
/** @file
|
||||
@@ -205,11 +206,24 @@ int strncmp ( const char *first, const char *second, size_t max ) {
|
||||
* @ret diff Difference
|
||||
*/
|
||||
int strcasecmp ( const char *first, const char *second ) {
|
||||
|
||||
return strncasecmp ( first, second, ~( ( size_t ) 0 ) );
|
||||
}
|
||||
|
||||
/**
|
||||
* Compare case-insensitive strings
|
||||
*
|
||||
* @v first First string
|
||||
* @v second Second string
|
||||
* @v max Maximum length to compare
|
||||
* @ret diff Difference
|
||||
*/
|
||||
int strncasecmp ( const char *first, const char *second, size_t max ) {
|
||||
const uint8_t *first_bytes = ( ( const uint8_t * ) first );
|
||||
const uint8_t *second_bytes = ( ( const uint8_t * ) second );
|
||||
int diff;
|
||||
|
||||
for ( ; ; first_bytes++, second_bytes++ ) {
|
||||
for ( ; max-- ; first_bytes++, second_bytes++ ) {
|
||||
diff = ( toupper ( *first_bytes ) -
|
||||
toupper ( *second_bytes ) );
|
||||
if ( diff )
|
||||
@@ -217,6 +231,7 @@ int strcasecmp ( const char *first, const char *second ) {
|
||||
if ( ! *first_bytes )
|
||||
return 0;
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
Reference in New Issue
Block a user