X-Git-Url: http://j8takagi.net/cgi-bin/gitweb.cgi?p=YACASL2.git;a=blobdiff_plain;f=src%2Fcmem.c;h=bd6328d94ef80bdfadc72153fc51b5c2105cb6a6;hp=48bc632b9ae58728a2145fd8fa4961c01257a3f9;hb=HEAD;hpb=93c7fbb80b79236d96ef53dc18cf7e32760fa613 diff --git a/src/cmem.c b/src/cmem.c index 48bc632..bd6328d 100644 --- a/src/cmem.c +++ b/src/cmem.c @@ -25,9 +25,7 @@ void *calloc_chk(size_t nmemb, size_t size, const char *tag) char *strdup_chk(const char *s, const char *tag) { assert(s != NULL); - char *t = NULL; - - t = malloc_chk(strlen(s) + 1, tag); + char *t = malloc_chk(strlen(s) + 1, tag); strcpy(t, s); return t; } @@ -47,15 +45,14 @@ char *strndup_chk(const char *s, size_t len, const char *tag) return t; } -char *strip_end(char *s) +void strip_end(char *s) { - for(int i = strlen(s) - 1; i > 0 && (s[i] == '\n' || s[i] == ' ' || s[i] == '\t'); i--) { + for(int i = strlen(s) - 1; i > 0 && (s[i] == '\n' || s[i] == '\r' || s[i] == ' ' || s[i] == '\t'); i--) { s[i] = '\0'; } - return s; } -char *strip_casl2_comment(char *s) +void strip_casl2_comment(char *s) { bool quoting = false; @@ -69,5 +66,17 @@ char *strip_casl2_comment(char *s) break; } } - return s; +} + +char *strrev(const char *s) +{ + char *t = strdup_chk(s, "strrev.t"); + int l = strlen(t); + + for(int i = 0; i < l-1-i; i++) { + char tmp = t[i]; + t[i] = t[l-1-i]; + t[l-1-i] = tmp; + } + return t; }