トークンの処理を推敲
[YACASL2.git] / src / cmem.c
index 17535d8..e921bb0 100644 (file)
@@ -2,7 +2,7 @@
 
 void *malloc_chk(size_t size, const char *tag)
 {
-    void *p;
+    void *p = NULL;
 
     if((p = malloc(size)) == NULL) {
         fprintf(stderr, "%s: cannot allocate memory\n", tag);
@@ -11,9 +11,9 @@ void *malloc_chk(size_t size, const char *tag)
     return memset(p, 0, size);
 }
 
-void *calloc_chk(size_t nmemb, size_t size, char *tag)
+void *calloc_chk(size_t nmemb, size_t size, const char *tag)
 {
-    void *p;
+    void *p = NULL;
 
     if((p = calloc(nmemb, size)) == NULL) {
         fprintf(stderr, "%s: cannot allocate memory\n", tag);
@@ -22,20 +22,20 @@ void *calloc_chk(size_t nmemb, size_t size, char *tag)
     return p;
 }
 
-char *strdup_chk(const char *s, char *tag)
+char *strdup_chk(const char *s, const char *tag)
 {
     assert(s != NULL);
-    char *t;
+    char *t = NULL;
 
     t = malloc_chk(strlen(s) + 1, tag);
     strcpy(t, s);
     return t;
 }
 
-char *strndup_chk(const char *s, size_t len, char *tag)
+char *strndup_chk(const char *s, size_t len, const char *tag)
 {
     assert(s != NULL);
-    char *t;
+    char *t = NULL;
 
     if(len < strlen(s)) {
         t = malloc_chk(len + 1, tag);
@@ -46,3 +46,13 @@ char *strndup_chk(const char *s, size_t len, char *tag)
     }
     return t;
 }
+
+char *strip_end(char *s)
+{
+    int i;
+    i = strlen(s) - 1;
+    while(i > 0 && (s[i] == '\n' || s[i] == ' ' || s[i] == '\t')) {
+        s[i--] = '\0';
+    }
+    return s;
+}