mirror of
https://github.com/subsurface/subsurface.git
synced 2025-01-19 14:25:27 +00:00
Add strndup.h header so we can use this useful function
It's missing on Windows... we had this helper in liquivision.c but since I used the function in git-access.c I figured I should just turn it into a little helper. Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
This commit is contained in:
parent
5bbcc7f16d
commit
e84d8624bb
4 changed files with 25 additions and 19 deletions
|
@ -12,6 +12,7 @@
|
|||
|
||||
#include "dive.h"
|
||||
#include "membuffer.h"
|
||||
#include "strndup.h"
|
||||
|
||||
/*
|
||||
* The libgit2 people are incompetent at making libraries. They randomly change
|
||||
|
|
|
@ -3,7 +3,7 @@
|
|||
#include "dive.h"
|
||||
#include "divelist.h"
|
||||
#include "file.h"
|
||||
|
||||
#include "strndup.h"
|
||||
|
||||
// Convert bytes into an INT
|
||||
#define array_uint16_le(p) ((unsigned int) (p)[0] \
|
||||
|
@ -12,21 +12,6 @@
|
|||
+ ((p)[1]<<8) + ((p)[2]<<16) \
|
||||
+ ((p)[3]<<24))
|
||||
|
||||
#if __WIN32__
|
||||
static char *strndup (const char *s, size_t n)
|
||||
{
|
||||
char *cpy;
|
||||
size_t len = strlen(s);
|
||||
if (n < len)
|
||||
len = n;
|
||||
if ((cpy = malloc(len + 1)) != NULL) {
|
||||
cpy[len] = '\0';
|
||||
memcpy(cpy, s, len);
|
||||
}
|
||||
return cpy;
|
||||
}
|
||||
#endif
|
||||
|
||||
struct lv_event {
|
||||
time_t time;
|
||||
struct pressure {
|
||||
|
|
|
@ -10,6 +10,7 @@
|
|||
#include "dive.h"
|
||||
#include "device.h"
|
||||
#include "membuffer.h"
|
||||
#include "strndup.h"
|
||||
|
||||
/*
|
||||
* We're outputting utf8 in xml.
|
||||
|
@ -45,9 +46,7 @@ static void show_utf8(struct membuffer *b, const char *text, const char *pre, co
|
|||
return;
|
||||
while (len && isascii(text[len - 1]) && isspace(text[len - 1]))
|
||||
len--;
|
||||
/* strndup would be easier, but that doesn't appear to exist on Windows / Mac */
|
||||
cleaned = strdup(text);
|
||||
cleaned[len] = '\0';
|
||||
cleaned = strndup(text, len);
|
||||
put_string(b, pre);
|
||||
quote(b, cleaned, is_attribute);
|
||||
put_string(b, post);
|
||||
|
|
21
strndup.h
Normal file
21
strndup.h
Normal file
|
@ -0,0 +1,21 @@
|
|||
#ifndef STRNDUP_H
|
||||
#define STRNDUP_H
|
||||
#if __WIN32__
|
||||
static char *strndup (const char *s, size_t n)
|
||||
{
|
||||
char *cpy;
|
||||
size_t len = strlen(s);
|
||||
if (n < len)
|
||||
len = n;
|
||||
if ((cpy = malloc(len + 1)) !=
|
||||
NULL) {
|
||||
cpy[len] =
|
||||
'\0';
|
||||
memcpy(cpy,
|
||||
s,
|
||||
len);
|
||||
}
|
||||
return cpy;
|
||||
}
|
||||
#endif
|
||||
#endif /* STRNDUP_H */
|
Loading…
Add table
Reference in a new issue