1
0
mirror of https://github.com/Tha14/toxic.git synced 2024-07-02 06:27:47 +02:00
toxic/src/misc_tools.h

76 lines
2.6 KiB
C
Raw Normal View History

/*
* Toxic -- Tox Curses Client
*/
2013-11-30 00:52:21 +01:00
// #define MIN(x, y) (((x) < (y)) ? (x) : (y))
/* convert a hex string to binary */
unsigned char *hex_string_to_bin(char hex_string[]);
/* get the current local time */
struct tm *get_time(void);
2013-10-11 10:42:30 +02:00
/* Prints the time to given window */
void print_time(WINDOW *window);
2013-10-20 06:50:08 +02:00
/* Returns 1 if the string is empty, 0 otherwise */
int string_is_empty(char *string);
/* convert a multibyte string to a wide character string (must provide buffer) */
int char_to_wcs_buf(wchar_t *buf, const uint8_t *string, size_t n);
/* converts wide character string into a multibyte string.
Same thing as wcs_to_char() but caller must provide its own buffer */
int wcs_to_char_buf(uint8_t *buf, const wchar_t *string, size_t n);
/* convert wide characters to multibyte string string */
uint8_t *wcs_to_char(wchar_t *string);
/* convert a wide char to multibyte string string */
char *wc_to_char(wchar_t ch);
2013-11-15 01:14:54 +01:00
/* Returns true if connection has timed out, false otherwise */
2013-11-19 08:31:22 +01:00
bool timed_out(uint64_t timestamp, uint64_t timeout, uint64_t curtime);
2013-11-29 01:45:28 +01:00
/* Colours the window tab according to type. Beeps if is_beep is true */
void alert_window(ToxWindow *self, int type, bool is_beep);
2013-11-24 08:33:03 +01:00
/* case-insensitive string compare function for use with qsort - same return logic as strcmp */
2013-11-24 23:12:24 +01:00
int name_compare(const void *nick1, const void *nick2);
2013-11-28 08:53:43 +01:00
/* Returns true if nick is valid. A valid toxic nick:
- cannot be empty
- cannot start with a space
- must not contain contiguous spaces */
2013-11-29 00:56:56 +01:00
bool valid_nick(uint8_t *nick);
/*
* Buffer helper tools.
*/
/* Adds char to buffer at pos */
void add_char_to_buf(wchar_t *buf, size_t *pos, size_t *len, wint_t ch);
/* Deletes the character before pos */
void del_char_buf_bck(wchar_t *buf, size_t *pos, size_t *len);
2013-12-04 00:01:17 +01:00
/* Deletes the character at pos */
void del_char_buf_frnt(wchar_t *buf, size_t *pos, size_t *len);
/* Deletes the line from beginning to pos */
void discard_buf(wchar_t *buf, size_t *pos, size_t *len);
/* Deletes the line from pos to len */
void kill_buf(wchar_t *buf, size_t *pos, size_t *len);
/* nulls buf and sets pos and len to 0 */
void reset_buf(wchar_t *buf, size_t *pos, size_t *len);
/* looks for the first instance in list that begins with the last entered word in buf,
then completes the word. e.g. "Hello jo" would complete the buffer with "Hello john".
list is a pointer to the list of strings being compared, n_items is the number of items
in the list, and size is the size of each item in the list.
Returns the difference between the old len and new len of buf */
int complete_line(wchar_t *buf, size_t *pos, size_t *len, const uint8_t *list, int n_items, int size);