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 }