makefiles: Don't use standard libs for programs that specify -nodefaultlibs.
[wine/zf.git] / dlls / kernel32 / string.c
blob9e1450ca580f8723b9aa09009ad4e9e8b0e71e31
1 /*
2 * Kernel string functions
4 * Copyright 1993 Yngvi Sigurjonsson
5 * Copyright 1996 Alexandre Julliard
6 * Copyright 2001 Dmitry Timoshkov for CodeWeavers
8 * This library is free software; you can redistribute it and/or
9 * modify it under the terms of the GNU Lesser General Public
10 * License as published by the Free Software Foundation; either
11 * version 2.1 of the License, or (at your option) any later version.
13 * This library is distributed in the hope that it will be useful,
14 * but WITHOUT ANY WARRANTY; without even the implied warranty of
15 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
16 * Lesser General Public License for more details.
18 * You should have received a copy of the GNU Lesser General Public
19 * License along with this library; if not, write to the Free Software
20 * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
23 #include "config.h"
24 #include "wine/port.h"
26 #include <ctype.h>
27 #include <stdarg.h>
28 #include <string.h>
30 #define WINE_NO_INLINE_STRING
31 #include "windef.h"
32 #include "winbase.h"
33 #include "wine/unicode.h"
34 #include "wine/exception.h"
37 /***********************************************************************
38 * lstrcatA (KERNEL32.@)
39 * lstrcat (KERNEL32.@)
41 LPSTR WINAPI lstrcatA( LPSTR dst, LPCSTR src )
43 __TRY
45 strcat( dst, src );
47 __EXCEPT_PAGE_FAULT
49 SetLastError( ERROR_INVALID_PARAMETER );
50 return NULL;
52 __ENDTRY
53 return dst;
57 /***********************************************************************
58 * lstrcatW (KERNEL32.@)
60 LPWSTR WINAPI lstrcatW( LPWSTR dst, LPCWSTR src )
62 __TRY
64 strcatW( dst, src );
66 __EXCEPT_PAGE_FAULT
68 SetLastError( ERROR_INVALID_PARAMETER );
69 return NULL;
71 __ENDTRY
72 return dst;
76 /***********************************************************************
77 * lstrcpyA (KERNEL32.@)
78 * lstrcpy (KERNEL32.@)
80 LPSTR WINAPI lstrcpyA( LPSTR dst, LPCSTR src )
82 __TRY
84 /* this is how Windows does it */
85 memmove( dst, src, strlen(src)+1 );
87 __EXCEPT_PAGE_FAULT
89 SetLastError( ERROR_INVALID_PARAMETER );
90 return NULL;
92 __ENDTRY
93 return dst;
97 /***********************************************************************
98 * lstrcpyW (KERNEL32.@)
100 LPWSTR WINAPI lstrcpyW( LPWSTR dst, LPCWSTR src )
102 __TRY
104 strcpyW( dst, src );
106 __EXCEPT_PAGE_FAULT
108 SetLastError( ERROR_INVALID_PARAMETER );
109 return NULL;
111 __ENDTRY
112 return dst;