blob: 2e5e5d5d46e80ac7f234576c8e34409570228f23 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
|
/*
* Platform agnostic string portability functions for the Fast Light Tool Kit (FLTK).
*
* Copyright 2020 by Bill Spitzak and others.
*
* This library is free software. Distribution and use rights are outlined in
* the file "COPYING" which should have been included with this file. If this
* file is missing or damaged, see the license at:
*
* https://www.fltk.org/COPYING.php
*
* Please see the following page on how to report bugs and issues:
*
* https://www.fltk.org/bugs.php
*/
#include <FL/fl_string_functions.h>
#include <string.h> // strdup/_strdup
#include "Fl_System_Driver.H"
/**
Cross platform interface to POSIX function strdup().
The fl_strdup() function returns a pointer to a new string which is
a duplicate of the string 's'. Memory for the new string is obtained
with malloc(3), and can be freed with free(3).
Implementation:
- POSIX: strdup()
- WinAPI: _strdup()
*/
char *fl_strdup(const char *s) {
return Fl::system_driver()->strdup(s);
}
/*
* 'fl_strlcpy()' - Safely copy two strings.
*/
size_t /* O - Length of string */
fl_strlcpy(char *dst, /* O - Destination string */
const char *src, /* I - Source string */
size_t size) { /* I - Size of destination string buffer */
size_t srclen; /* Length of source string */
/*
* Figure out how much room is needed...
*/
size --;
srclen = strlen(src);
/*
* Copy the appropriate amount...
*/
if (srclen > size) srclen = size;
memcpy(dst, src, srclen);
dst[srclen] = '\0';
return (srclen);
}
|