gdhelpers.c

来自「下载来的一个看图软件的源代码」· C语言 代码 · 共 96 行

C
96
字号
#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 + =
减小字号Ctrl + -
显示快捷键?