Parcourir la source

[libc] Add wcslen() function

Signed-off-by: Michael Brown <mcb30@ipxe.org>
tags/v1.20.1
Michael Brown il y a 12 ans
Parent
révision
51b65d5f9c
2 fichiers modifiés avec 45 ajouts et 0 suppressions
  1. 43
    0
      src/core/wchar.c
  2. 2
    0
      src/include/wchar.h

+ 43
- 0
src/core/wchar.c Voir le fichier

@@ -0,0 +1,43 @@
1
+/*
2
+ * Copyright (C) 2012 Michael Brown <mbrown@fensystems.co.uk>.
3
+ *
4
+ * This program is free software; you can redistribute it and/or
5
+ * modify it under the terms of the GNU General Public License as
6
+ * published by the Free Software Foundation; either version 2 of the
7
+ * License, or any later version.
8
+ *
9
+ * This program is distributed in the hope that it will be useful, but
10
+ * WITHOUT ANY WARRANTY; without even the implied warranty of
11
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
12
+ * General Public License for more details.
13
+ *
14
+ * You should have received a copy of the GNU General Public License
15
+ * along with this program; if not, write to the Free Software
16
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
17
+ * 02110-1301, USA.
18
+ */
19
+
20
+FILE_LICENCE ( GPL2_OR_LATER );
21
+
22
+/**
23
+ * @file
24
+ *
25
+ * Wide-character strings
26
+ *
27
+ */
28
+
29
+#include <wchar.h>
30
+
31
+/**
32
+ * Calculate length of wide-character string
33
+ *
34
+ * @v string		String
35
+ * @ret len		Length (excluding terminating NUL)
36
+ */
37
+size_t wcslen ( const wchar_t *string ) {
38
+	size_t len = 0;
39
+
40
+	while ( *(string++) )
41
+		len++;
42
+	return len;
43
+}

+ 2
- 0
src/include/wchar.h Voir le fichier

@@ -24,4 +24,6 @@ size_t wcrtomb ( char *buf, wchar_t wc, mbstate_t *ps __unused ) {
24 24
 	return 1;
25 25
 }
26 26
 
27
+extern size_t wcslen ( const wchar_t *string );
28
+
27 29
 #endif /* WCHAR_H */

Chargement…
Annuler
Enregistrer