Expose andoma strndup to rest of code and make use of it in xmltv code.

This commit is contained in:
Adam Sutton 2012-08-05 22:06:54 +01:00
parent 78cfe1b3ed
commit 9cf3b81fb9
3 changed files with 8 additions and 5 deletions

View file

@ -32,6 +32,7 @@
#include "tvheadend.h"
#include "channels.h"
#include "spawn.h"
#include "htsstr.h"
#include "epg.h"
#include "epggrab.h"
@ -188,7 +189,7 @@ static void parse_xmltv_dd_progid
if (!strncmp("EP", s, 2) || !strncmp("SH", s, 2)) {
int e = 0;
while (s[e] && s[e] != '.') e++;
*suri = strndup(s, e);
*suri = hts_strndup(s, e);
if (s[e] && s[e+1]) sscanf(s+e+1, "%d", en);
}
}

View file

@ -26,8 +26,8 @@
static void htsstr_argsplit_add(char ***argv, int *argc, char *s);
static int htsstr_format0(const char *str, char *out, char **map);
static char *
mystrndup(const char *src, size_t len)
char *
hts_strndup(const char *src, size_t len)
{
char *r = malloc(len + 1);
r[len] = 0;
@ -85,7 +85,7 @@ htsstr_argsplit(const char *str) {
for(s = str; *s; s++) {
if(start && stop) {
htsstr_argsplit_add(&argv, &argc,
htsstr_unescape(mystrndup(start, stop - start)));
htsstr_unescape(hts_strndup(start, stop - start)));
start = stop = NULL;
}
@ -131,7 +131,7 @@ htsstr_argsplit(const char *str) {
if(!stop)
stop = str + strlen(str);
htsstr_argsplit_add(&argv, &argc,
htsstr_unescape(mystrndup(start, stop - start)));
htsstr_unescape(hts_strndup(start, stop - start)));
}
htsstr_argsplit_add(&argv, &argc, NULL);

View file

@ -21,6 +21,8 @@
#ifndef HTSSTR_H__
#define HTSSTR_H__
char *hts_strndup(const char *str, size_t len);
char *htsstr_unescape(char *str);
char **htsstr_argsplit(const char *str);