📄 gdhelpers.c
字号:
#include "gd.h"#include "gdhelpers.h"#include <stdlib.h>/* TBB: gd_strtok_r is not portable; provide an implementation */#define SEP_TEST (separators[*((unsigned char *) s)])char *gd_strtok_r (char *s, char *sep, char **state){ char separators[256]; char *start; char *result = 0; memset (separators, 0, sizeof (separators)); while (*sep) { separators[*((unsigned char *) sep)] = 1; sep++; } if (!s) { /* Pick up where we left off */ s = *state; } start = s; /* 1. EOS */ if (!(*s)) { *state = s; return 0; } /* 2. Leading separators, if any */ if (SEP_TEST) { do { s++; } while (SEP_TEST); /* 2a. EOS after separators only */ if (!(*s)) { *state = s; return 0; } } /* 3. A token */ result = s; do { /* 3a. Token at end of string */ if (!(*s)) { *state = s; return result; } s++; } while (!SEP_TEST); /* 4. Terminate token and skip trailing separators */ *s = '\0'; do { s++; } while (SEP_TEST); /* 5. Return token */ *state = s; return result;}void *gdCalloc (size_t nmemb, size_t size){ return calloc (nmemb, size);}void *gdMalloc (size_t size){ return malloc (size);}void *gdRealloc (void *ptr, size_t size){ return realloc (ptr, size);}voidgdFree (void *ptr){ free (ptr);}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -