| 1003 | } |
| 1004 | |
| 1005 | const ACL_VSTRING *acl_buffer_gets(ACL_VSTRING *vp, const char **src, size_t dlen) |
| 1006 | { |
| 1007 | const char *myname = "acl_buffer_gets"; |
| 1008 | const char *ptr; |
| 1009 | |
| 1010 | if (dlen <= 0) { |
| 1011 | acl_msg_warn("%s(%d): dlen(%d) invalid", |
| 1012 | myname, __LINE__, (int) dlen); |
| 1013 | return NULL; |
| 1014 | } |
| 1015 | |
| 1016 | ptr = memchr(*src, '\n', dlen); |
| 1017 | if (ptr == NULL) { |
| 1018 | acl_vstring_memcat(vp, *src, dlen); |
| 1019 | ACL_VSTRING_TERMINATE(vp); |
| 1020 | *src += dlen; |
| 1021 | return NULL; |
| 1022 | } |
| 1023 | |
| 1024 | acl_vstring_memcat(vp, *src, ptr - *src + 1); |
| 1025 | ACL_VSTRING_TERMINATE(vp); |
| 1026 | *src = ptr + 1; /* �� *src ָ��λ�� */ |
| 1027 | return vp; |
| 1028 | } |
searching dependent graphs…