mirror of
				https://github.com/RGBCube/serenity
				synced 2025-10-31 09:02:43 +00:00 
			
		
		
		
	LibC: Implement wmemcpy
This commit is contained in:
		
							parent
							
								
									0ca1df4dc6
								
							
						
					
					
						commit
						485c0ef691
					
				
					 3 changed files with 26 additions and 0 deletions
				
			
		|  | @ -6,6 +6,7 @@ | |||
| 
 | ||||
| #include <LibTest/TestCase.h> | ||||
| 
 | ||||
| #include <string.h> | ||||
| #include <wchar.h> | ||||
| 
 | ||||
| TEST_CASE(wcspbrk) | ||||
|  | @ -97,6 +98,22 @@ TEST_CASE(wmemchr) | |||
|     EXPECT_EQ(ret, input + 6); | ||||
| } | ||||
| 
 | ||||
| TEST_CASE(wmemcpy) | ||||
| { | ||||
|     const wchar_t* input = L"abc\0def"; | ||||
|     auto buf = static_cast<wchar_t*>(malloc(8 * sizeof(wchar_t))); | ||||
| 
 | ||||
|     if (!buf) { | ||||
|         FAIL("Could not allocate space for copy target"); | ||||
|         return; | ||||
|     } | ||||
| 
 | ||||
|     wchar_t* ret = wmemcpy(buf, input, 8); | ||||
| 
 | ||||
|     EXPECT_EQ(ret, buf); | ||||
|     EXPECT_EQ(memcmp(buf, input, 8 * sizeof(wchar_t)), 0); | ||||
| } | ||||
| 
 | ||||
| TEST_CASE(wcscoll) | ||||
| { | ||||
|     // Check if wcscoll is sorting correctly. At the moment we are doing raw char comparisons,
 | ||||
|  |  | |||
|  | @ -385,4 +385,12 @@ wchar_t* wmemchr(const wchar_t* s, wchar_t c, size_t n) | |||
| 
 | ||||
|     return nullptr; | ||||
| } | ||||
| 
 | ||||
| wchar_t* wmemcpy(wchar_t* dest, const wchar_t* src, size_t n) | ||||
| { | ||||
|     for (size_t i = 0; i < n; i++) | ||||
|         dest[i] = src[i]; | ||||
| 
 | ||||
|     return dest; | ||||
| } | ||||
| } | ||||
|  |  | |||
|  | @ -44,5 +44,6 @@ int mbsinit(const mbstate_t*); | |||
| wchar_t* wcspbrk(const wchar_t*, const wchar_t*); | ||||
| wchar_t* wcsstr(const wchar_t*, const wchar_t*); | ||||
| wchar_t* wmemchr(const wchar_t*, wchar_t, size_t); | ||||
| wchar_t* wmemcpy(wchar_t*, const wchar_t*, size_t); | ||||
| 
 | ||||
| __END_DECLS | ||||
|  |  | |||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue
	
	 Tim Schumacher
						Tim Schumacher