op_string.c

Go to the documentation of this file.
00001 
00012 #include <string.h>
00013 #include "op_libiberty.h"
00014 
00015 
00016 char * op_xstrndup(char const * s, size_t len)
00017 {
00018     return xmemdup(s, len, len + 1);
00019 }
00020 
00021 
00022 size_t op_hash_string(char const * str)
00023 {
00024     size_t hash = 0;
00025     for (; *str; ++str)
00026         hash ^= (hash << 16) ^ (hash >> 8) ^ *str;
00027     return hash;
00028 }
00029 
00030 
00031 int strisprefix(char const * str, char const * prefix)
00032 {
00033     return strstr(str, prefix) == str;
00034 }
00035 
00036 
00037 char const * skip_ws(char const * c)
00038 {
00039     while (*c == ' ' || *c == '\t' || *c == '\n')
00040         ++c;
00041     return c;
00042 }
00043 
00044 
00045 char const * skip_nonws(char const * c)
00046 {
00047     while (*c && *c != ' ' && *c != '\t' && *c != '\n')
00048         ++c;
00049     return c;
00050 }
00051 
00052 
00053 int empty_line(char const * c)
00054 {
00055     return !*skip_ws(c);
00056 }
00057 
00058 
00059 int comment_line(char const * c)
00060 {
00061     return *skip_ws(c) == '#';
00062 }

Generated on 8 Nov 2012 for Oprofile by  doxygen 1.6.1