2009-02-19 16:14:09 +00:00
|
|
|
/*
|
|
|
|
* uhub - A tiny ADC p2p connection hub
|
|
|
|
* Copyright (C) 2007-2009, Jan Vidar Krey
|
|
|
|
*
|
|
|
|
* This program is free software; you can redistribute it and/or modify
|
|
|
|
* it under the terms of the GNU General Public License as published by
|
|
|
|
* the Free Software Foundation; either version 3 of the License, or
|
|
|
|
* (at your option) any later version.
|
|
|
|
*
|
|
|
|
* This program is distributed in the hope that it will be useful,
|
|
|
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
|
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
|
|
* GNU General Public License for more details.
|
|
|
|
*
|
|
|
|
* You should have received a copy of the GNU General Public License
|
|
|
|
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
|
|
|
*
|
|
|
|
*/
|
|
|
|
|
|
|
|
#ifndef HAVE_UHUB_MISC_H
|
|
|
|
#define HAVE_UHUB_MISC_H
|
|
|
|
|
|
|
|
typedef int (*file_line_handler_t)(char* line, int line_number, void* data);
|
|
|
|
|
2009-07-26 04:03:43 +00:00
|
|
|
extern const char* get_timestamp(time_t time);
|
|
|
|
|
2009-02-19 16:14:09 +00:00
|
|
|
extern int is_num(char c);
|
|
|
|
extern int is_space(char c);
|
|
|
|
extern int is_white_space(char c);
|
|
|
|
extern int is_valid_utf8(const char* string);
|
2009-03-23 20:47:05 +00:00
|
|
|
extern int is_printable_utf8(const char* string, size_t length);
|
2009-02-19 16:14:09 +00:00
|
|
|
extern int is_valid_base32_char(char c);
|
|
|
|
extern void base32_encode(const unsigned char* buffer, size_t len, char* result);
|
|
|
|
extern void base32_decode(const char* src, unsigned char* dst, size_t len);
|
|
|
|
extern char* strip_white_space(char* string);
|
2010-05-25 17:35:00 +00:00
|
|
|
extern void strip_off_ini_line_comments(char* line, int line_count);
|
2009-02-19 16:14:09 +00:00
|
|
|
|
|
|
|
extern int file_read_lines(const char* file, void* data, file_line_handler_t handler);
|
|
|
|
|
2010-07-29 06:42:40 +00:00
|
|
|
/**
|
|
|
|
* Convert a string to a boolean (0 or 1).
|
|
|
|
* Example:
|
|
|
|
* "yes", "true", "1", "on" sets 1 in boolean, and returns 1.
|
|
|
|
* "no", "false", "0", "off" sets 0 in boolean, and returns 1.
|
|
|
|
* All other values return 0, and boolean is unchanged.
|
|
|
|
*/
|
|
|
|
extern int string_to_boolean(const char* str, int* boolean);
|
2010-01-27 22:55:05 +00:00
|
|
|
|
2010-05-25 17:35:00 +00:00
|
|
|
|
2009-02-19 16:14:09 +00:00
|
|
|
extern const char* uhub_itoa(int val);
|
|
|
|
extern const char* uhub_ulltoa(uint64_t val);
|
|
|
|
|
|
|
|
extern int uhub_atoi(const char* value);
|
|
|
|
|
|
|
|
#ifdef NEED_ATOLL
|
|
|
|
extern int atoll(const char* value);
|
|
|
|
#endif
|
|
|
|
|
|
|
|
|
|
|
|
#ifndef HAVE_STRNDUP
|
|
|
|
extern char* strndup(const char* string, size_t n);
|
|
|
|
#endif
|
|
|
|
|
|
|
|
#ifndef HAVE_MEMMEM
|
|
|
|
void* memmem(const void *haystack, size_t haystacklen, const void *needle, size_t needlelen);
|
|
|
|
#endif
|
|
|
|
|
2009-06-25 23:15:06 +00:00
|
|
|
/**
|
|
|
|
* Split the string based on split, and place the different parts into list.
|
|
|
|
* @return the number of items in the list after split, or -1 if an error occured.
|
|
|
|
*/
|
|
|
|
struct linked_list;
|
|
|
|
extern int split_string(const char* string, const char* split, struct linked_list* list, int allow_empty);
|
|
|
|
|
2010-01-27 22:55:05 +00:00
|
|
|
typedef int (*string_split_handler_t)(char* string, int count, void* data);
|
|
|
|
extern int string_split(const char* string, const char* split, void* data, string_split_handler_t handler);
|
2009-02-19 16:14:09 +00:00
|
|
|
|
|
|
|
#endif /* HAVE_UHUB_MISC_H */
|
|
|
|
|
|
|
|
|