/* $Id: str.h,v 1.666 2004/09/20 10:49:53 shrike Exp $ */
/************************************************************************************
* Copyright 2004 Astrum Metaphora consortium *
* *
* Licensed under the Apache License, Version 2.0 (the "License"); *
* you may not use this file except in compliance with the License. *
* You may obtain a copy of the License at *
* *
* http://www.apache.org/licenses/LICENSE-2.0 *
* *
* Unless required by applicable law or agreed to in writing, software *
* distributed under the License is distributed on an "AS IS" BASIS, *
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. *
* See the License for the specific language governing permissions and *
* limitations under the License. *
* *
************************************************************************************/
#ifndef _STR_H_
#define _STR_H_
enum {
ALIGN_LEFT,
ALIGN_CENTER,
ALIGN_RIGHT,
MAX_ALIGN
};
const char * str_dup (const char *str);
const char * str_qdup (const char *str);
void free_string (const char *str);
const char * str_printf (const char *format,...);
extern char str_empty[1];
char * strnzcpy(char *dest, size_t len, const char *src);
#define strnzncpy(dest, len, src, count) \
strnzcpy((dest), UMIN((len), (count)+1), (src))
char * strnzcat(char *dest, size_t len, const char *src);
char * strnzncat(char *dest, size_t len, const char *src, size_t count);
const char *fmt_color_string(const char *txt, int max, int align);
#define fmt_color_str(txt, max) \
fmt_color_string((txt), (max), ALIGN_LEFT)
const char * fmt_wrap_str(const char * txt, int len, const char * pad);
#if !defined (WIN32)
char * strlwr(const char *s);
#endif
int str_cmp (const char *astr, const char *bstr);
int str_ncmp (const char *astr, const char *bstr, size_t len);
bool str_prefix (const char *astr, const char *bstr);
bool str_infix (const char *astr, const char *bstr);
bool str_suffix (const char *astr, const char *bstr);
int hashstr(const char *s, int maxn, int hashs);
int hashistr(const char *s, int maxn, int hashs);
int cmpstr(const void*, const void*);
int toupper1 (int c);
int tolower1 (int c);
int isupper1 (int c);
int islower1 (int c);
#endif