Coverage Report

Created: 2025-06-24 06:49

/src/nspr/lib/libc/src/strcat.c
Line
Count
Source (jump to first uncovered line)
1
/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
2
/* This Source Code Form is subject to the terms of the Mozilla Public
3
 * License, v. 2.0. If a copy of the MPL was not distributed with this
4
 * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
5
6
#include "plstr.h"
7
#include <string.h>
8
9
PR_IMPLEMENT(char*)
10
0
PL_strcat(char* dest, const char* src) {
11
0
  if (((char*)0 == dest) || ((const char*)0 == src)) {
12
0
    return dest;
13
0
  }
14
15
0
  return strcat(dest, src);
16
0
}
17
18
PR_IMPLEMENT(char*)
19
0
PL_strncat(char* dest, const char* src, PRUint32 max) {
20
0
  char* rv;
21
22
0
  if (((char*)0 == dest) || ((const char*)0 == src) || (0 == max)) {
23
0
    return dest;
24
0
  }
25
26
0
  for (rv = dest; *dest; dest++);
27
28
0
  (void)PL_strncpy(dest, src, max);
29
0
  return rv;
30
0
}
31
32
PR_IMPLEMENT(char*)
33
0
PL_strcatn(char* dest, PRUint32 max, const char* src) {
34
0
  char* rv;
35
0
  PRUint32 dl;
36
37
0
  if (((char*)0 == dest) || ((const char*)0 == src)) {
38
0
    return dest;
39
0
  }
40
41
0
  for (rv = dest, dl = 0; *dest; dest++, dl++);
42
43
0
  if (max <= dl) {
44
0
    return rv;
45
0
  }
46
0
  (void)PL_strncpyz(dest, src, max - dl);
47
48
0
  return rv;
49
0
}