I know, `strlcpy` is safer than `strncpy` while copying from source to destination character arrays where we want destination to be null terminated,
Is the following wrapper ok?

```
size_t strlcpy(char *dst, const char *src, size_t size) {
  if (size != 0) {
    int maxSize = size - 1;
    int currSize = -1;
    while ((++currSize < maxSize) && (*dst++ = *src++));
    *dst = 0;
    return currSize;
  }
  return 0;
}

```

Please comment.