82 lines
1.6 KiB
C
82 lines
1.6 KiB
C
/**
|
|
* @file op_string.h
|
|
* general purpose C string handling declarations.
|
|
*
|
|
* @remark Copyright 2003 OProfile authors
|
|
* @remark Read the file COPYING
|
|
*
|
|
* @author John Levon
|
|
* @author Philippe Elie
|
|
*/
|
|
|
|
#ifndef OP_STRING_H
|
|
#define OP_STRING_H
|
|
|
|
#include <string.h>
|
|
|
|
#ifdef __cplusplus
|
|
extern "C" {
|
|
#endif
|
|
|
|
/**
|
|
* @param s: input string
|
|
* @param len: len char to copy
|
|
*
|
|
* Allocate and copy len character from s to a newly allocated buffer then
|
|
* append a '\0' terminator. Return the newly allocated string
|
|
*/
|
|
char * op_xstrndup(char const * s, size_t len);
|
|
|
|
/**
|
|
* @param s: string to hash
|
|
*
|
|
* Generate a hash code from a string
|
|
*/
|
|
size_t op_hash_string(char const * s);
|
|
|
|
/**
|
|
* @param str: string to test
|
|
* @param prefix: prefix string
|
|
*
|
|
* return non zero if prefix parameters is a prefix of str
|
|
*/
|
|
int strisprefix(char const * str, char const * prefix);
|
|
|
|
/**
|
|
* @param c: input string
|
|
*
|
|
* return a pointer to the first location in c which is not a blank space
|
|
* where blank space are in " \t\n"
|
|
*/
|
|
char const * skip_ws(char const * c);
|
|
|
|
/**
|
|
* @param c: input string
|
|
*
|
|
* return a pointer to the first location in c which is a blank space
|
|
* where blank space are in " \t\n"
|
|
*/
|
|
char const * skip_nonws(char const * c);
|
|
|
|
/**
|
|
* @param c: input string
|
|
*
|
|
* return non zero if c string contains only blank space
|
|
* where blank space are in " \t\n"
|
|
*/
|
|
int empty_line(char const * c);
|
|
|
|
/**
|
|
* @param c: input string
|
|
*
|
|
* return non zero if c string is a comment. Comment are lines with optional
|
|
* blank space at left then a '#' character. Blank space are in " \t\n"
|
|
*/
|
|
int comment_line(char const * c);
|
|
|
|
#ifdef __cplusplus
|
|
}
|
|
#endif
|
|
|
|
#endif /* !OP_STRING_H */
|