view th_string.h @ 77:e8c9d7d13866

Handle certain key sequences better.
author Matti Hamalainen <ccr@tnsp.org>
date Sat, 13 Dec 2008 11:19:19 +0200
parents 4e3616709752
children e36df57c5b0f
line wrap: on
line source

/*
 * Miscellaneous string-handling related utility-functions
 * Programmed and designed by Matti 'ccr' Hamalainen
 * (C) Copyright 2002-2008 Tecnic Software productions (TNSP)
 *
 * Please read file 'COPYING' for information on license and distribution.
 */
#ifndef _TH_STRING_H
#define _TH_STRING_H

#ifdef __cplusplus
extern "C" {
#endif

#include "th_util.h"
#include <stdlib.h>
#include <ctype.h>

/* Macros
 */
#define th_isalnum(c)	isalnum((int)(unsigned char) c)
#define th_isalpha(c)	isalpha((int)(unsigned char) c)
#define th_isascii(c)	isascii((int)(unsigned char) c)
#define th_isblank(c)	isblank((int)(unsigned char) c)
#define th_iscntrl(c)	iscntrl((int)(unsigned char) c)
#define th_isdigit(c)	isdigit((int)(unsigned char) c)
#define th_isgraph(c)	isgraph((int)(unsigned char) c)
#define th_islower(c)	islower((int)(unsigned char) c)
#define th_isprint(c)	isprint((int)(unsigned char) c)
#define th_ispunct(c)	ispunct((int)(unsigned char) c)
#define th_isspace(c)	isspace((int)(unsigned char) c)
#define th_isupper(c)	isupper((int)(unsigned char) c)
#define th_isxdigit(c)	isxdigit((int)(unsigned char) c)
#define th_iscrlf(c)	((c=='\r')||(c=='\n'))

#define th_isspecial(q)	(((q >= 0x5b) && (q <= 0x60)) || ((q >= 0x7b) && (q <= 0x7d)))

#define th_tolower(c)	tolower((int)(unsigned char) c)
#define th_toupper(c)	toupper((int)(unsigned char) c)


/* Normal NUL-terminated string functions
 */
char	*th_stralloc(size_t);
char	*th_strrealloc(char *, size_t);
char	*th_strncpy(char *, const char *, size_t);
int	th_strcasecmp(char *, char *);
int	th_strncasecmp(char *, char *, size_t);
void	th_strip_ctrlchars(char *);

int	th_pstrcpy(char **, char *);
int	th_pstrcat(char **, char *);

char	*th_findnext(char *, size_t *);
char	*th_findsep(char *, size_t *, char);
char	*th_findseporspace(char *, size_t *, char);

BOOL	th_strmatch(char *, char *);
BOOL	th_strcasematch(char *, char *);


#ifdef __cplusplus
}
#endif
#endif /* _TH_STRING_H */