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
24 #include "wine/port.h"
30 #define WINE_NO_INLINE_STRING
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 )
49 SetLastError( ERROR_INVALID_PARAMETER );
57 /***********************************************************************
58 * lstrcatW (KERNEL32.@)
60 LPWSTR WINAPI lstrcatW( LPWSTR dst, LPCWSTR src )
68 SetLastError( ERROR_INVALID_PARAMETER );
76 /***********************************************************************
77 * lstrcpyA (KERNEL32.@)
78 * lstrcpy (KERNEL32.@)
80 LPSTR WINAPI lstrcpyA( LPSTR dst, LPCSTR src )
84 /* this is how Windows does it */
85 memmove( dst, src, strlen(src)+1 );
89 SetLastError( ERROR_INVALID_PARAMETER );
97 /***********************************************************************
98 * lstrcpyW (KERNEL32.@)
100 LPWSTR WINAPI lstrcpyW( LPWSTR dst, LPCWSTR src )
108 SetLastError( ERROR_INVALID_PARAMETER );
116 /***********************************************************************
117 * lstrcpynA (KERNEL32.@)
118 * lstrcpyn (KERNEL32.@)
120 * Note: this function differs from the UNIX strncpy, it _always_ writes
123 * Note: n is an INT but Windows treats it as unsigned, and will happily
124 * copy a gazillion chars if n is negative.
126 LPSTR WINAPI lstrcpynA( LPSTR dst, LPCSTR src, INT n )
134 while ((count > 1) && *s)
143 SetLastError( ERROR_INVALID_PARAMETER );
151 /***********************************************************************
152 * lstrcpynW (KERNEL32.@)
154 * Note: this function differs from the UNIX strncpy, it _always_ writes
157 * Note: n is an INT but Windows treats it as unsigned, and will happily
158 * copy a gazillion chars if n is negative.
160 LPWSTR WINAPI lstrcpynW( LPWSTR dst, LPCWSTR src, INT n )
168 while ((count > 1) && *s)
177 SetLastError( ERROR_INVALID_PARAMETER );
185 /***********************************************************************
186 * lstrlenA (KERNEL32.@)
187 * lstrlen (KERNEL32.@)
189 INT WINAPI lstrlenA( LPCSTR str )
198 SetLastError( ERROR_INVALID_PARAMETER );
206 /***********************************************************************
207 * lstrlenW (KERNEL32.@)
209 INT WINAPI lstrlenW( LPCWSTR str )
218 SetLastError( ERROR_INVALID_PARAMETER );