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
);