projects
/
YACASL2.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
READMEのCASL II仕様書へのリンクを修正
[YACASL2.git]
/
src
/
cmem.c
diff --git
a/src/cmem.c
b/src/cmem.c
index
48bc632
..
bd6328d
100644
(file)
--- 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 *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;
}
strcpy(t, s);
return t;
}
@@
-47,15
+45,14
@@
char *strndup_chk(const char *s, size_t len, const char *tag)
return t;
}
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';
}
s[i] = '\0';
}
- return s;
}
}
-
char *
strip_casl2_comment(char *s)
+
void
strip_casl2_comment(char *s)
{
bool quoting = false;
{
bool quoting = false;
@@
-69,5
+66,17
@@
char *strip_casl2_comment(char *s)
break;
}
}
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;
}
}