MCPcopy Create free account
hub / github.com/acl-dev/acl / get_valid_string

Function get_valid_string

lib_acl_cpp/samples/rfc2047/main.cpp:28–74  ·  view source on GitHub ↗

�����Ч�ĺ����ַ�

Source from the content-addressed store, hash-verified

26
27// �����Ч�ĺ����ַ�
28static int get_valid_string(char *src, unsigned dlen, char *buffer, unsigned bsize)
29{
30 int n = 0;
31 unsigned char *src_ptr = NULL;
32 unsigned char *obj_ptr = NULL;
33 unsigned char *ch = NULL;
34 int firstChineseChar = 0;
35 char lastChar = 0;
36
37 if (src == NULL || dlen == 0 || buffer == NULL || bsize == 0)
38 return -1;
39
40 obj_ptr = (unsigned char *)buffer;
41
42 src_ptr = (unsigned char *)src;
43
44 /* Ϊ���һ�� '\0' ����һ���ֽڿռ� */
45 n = bsize - 1;
46
47 for (ch = src_ptr; *ch; ch++) {
48 if (ch - src_ptr >= n)
49 break;
50
51 /* ���ж�ǰһ���ֽ����λ�Ƿ�Ϊ 1 */
52 if (firstChineseChar) {
53 if (!isvalidChinese(lastChar,*ch))
54 break;
55
56 //if (ch - src_ptr >= n + 1)
57 // break;
58
59 firstChineseChar = 0;
60 /* �ȿ���ǰһ���ֽ� */
61 *obj_ptr++ = lastChar;
62 *obj_ptr++ = *ch;
63 }
64 else if ((*ch) & 0x80) {
65 /* ˵����ǰ�ֽڵ����λΪ 1, ���п����Ǻ��ֵĵ�һ���ֽ� */
66 firstChineseChar = 1;
67 lastChar = *ch;
68 }
69 else
70 *obj_ptr++ = *ch;
71 }
72 *obj_ptr = 0;
73 return 0;
74}
75
76static void rfc2047_test(acl::rfc2047& rfc2047, const char* s)
77{

Callers 1

rfc2047_testFunction · 0.85

Calls 1

isvalidChineseFunction · 0.85

Tested by

no test coverage detected

Used in the wild real call sites across dependent graphs

searching dependent graphs…